# 系統程式 ### 系統程式簡介 系統程式是一種**軟體開發領域**,專注於設計開發與電腦系統和操作系統密切相關的軟體。他的主要目標是**創建能夠有效地管理資源、提高系統效能和可靠性的軟體**。這包括開發驅動程式、作業系統核心、嵌入式系統等。 系統程式的開發需要具備深厚的**理解力和技術能力**。開發者需要熟悉底層硬體結構、記憶體管理、多任務處理、軟體與硬體的互動等相關技術。他們使用**低階程式語言**,像是組合語言和C語言來實現高效的系統操作。除此之外,系統程式的設計和開發也需要注重**安全性和穩定性**。開發者必須考慮各種可能的錯誤情況,並提供適當的錯誤處理和回復機制。系統程式也需要進行嚴格的測試和驗證,以確保其在各種環境和使用情境下的可靠性。 ### 學習重點 * 計算機結構 了解計算機結構和硬體組件的運作原理,包括CPU、RAM、緩存、輸入/輸出控制器等。 * 作業系統原理 瞭解作業系統的基本原理,包括進程管理、記憶體管理、文件系統、輸入/輸出管理、作業調度等。 * 組合語言和低階編程 熟悉組合語言和低階編程語言,了解如何直接與硬體進行交互作用,實現效能優化和系統功能。 * 虛擬化和容器化技術 學習虛擬化和容器化技術,如VMs、Containers和相關的管理工具,以實現資源的有效利用和部署。 * 系統程式開發工具 熟悉系統程式開發所需的工具和環境,包括編譯器、除錯器、性能分析工具等。 * 網路和通訊協議 了解網絡概念和通訊協議,如TCP/IP,以及實現網絡相關功能和安全性。 * 安全性和漏洞處理 學習系統安全的基本概念和技術,了解常見的安全漏洞和攻擊,以及如何處理和防範它們。 * 效能優化和系統分析 掌握效能優化和系統分析的技巧,包括代碼優化、性能測試和優化工具的使用。 * 嵌入式系統開發 瞭解嵌入式系統的開發流程和技術,如硬體控制、嵌入式操作系統、驅動程式開發等。 ### Linux學習心得 系統程式是指開發和維護操作系統以及與硬體和系統資源進行交互的軟體,而Linux則是一個**開源的作業系統**,具有廣泛的應用領域,從個人電腦到伺服器、嵌入式系統都有使用。Linux的核心是系統程式的一個重要組件,負責管理硬體資源、提供系統服務和處理軟體與硬體之間的介面。同時,Linux也提供了相關的工具和API,供系統程式開發者使用和擴展,以實現更多的功能和服務。 這學期學習Linux讓我獲益良多,也讓我更加深入的了解其中一項作業系統。首先,Linux是一個開源作業系統,可以自由地**查看、修改和分發其原始碼**。這種開放性和彈性讓我能深入瞭解作業系統的運作原理,並根據自己的需求進行自定義和優化。他除了有龐大的全球社群,可以在各種論壇、社交媒體和網站上找到對Linux的支援和解答,也有許多優質的學習資源可供選擇,包括教學網站、書籍、線上課程等。 在學習Linux時最好的方式之一是通過**實踐和實驗**。在虛擬機器或本機環境中安裝Linux,並嘗試執行不同的命令、設定系統、管理資源等。通過實際操作,我更加深入地理解Linux的運作方式和功能,同時,Linux在各種領域中得到廣泛應用,包括伺服器管理、網路設備、嵌入式系統等。 ### 總結 這學期的課程讓我更加了解電腦系統的運作。系統程式是一種特殊的軟體開發,著重於與**硬體和操作系統**的密切合作,以提供更高效和更可靠的系統功能,在學習的過程中,我深深體會到其重要性,系統程式設計者需要具備良好的技術背景和深厚的理解力,以便與硬體和操作系統互動。透過學習Linux,我學會了如何有效地執行效能優化和解決錯誤。 系統程式的開發挑戰不僅僅在於技術層面,還需要具備良好的邏輯思考和問題解決能力。想要設計一個**穩定且高效的系統**,需要仔細考慮各種情況和可能的錯誤。透過這次的學習,我也更加了解操作系統的運作原理和內部結構。這讓我對於如何優化程式碼、改進系統效能和解決複雜的問題有更深入的理解。**雖然到期末我還是無法獨自做出一項成品出來,但在經過了一學期的研究以及課外影片補充後讓我對系統程式有更進一步的認識,除此之外,在Linux的操作上也有很大的進步,希望下學期我能更加的學以致用,並且完成出屬於我的專案或報告。** ### 學習資源&參考資料 * [系統軟體 維基百科](https://zh.wikipedia.org/zh-tw/%E7%B3%BB%E7%BB%9F%E8%BD%AF%E4%BB%B6) * [系統程式簡報 陳鍾誠教授](https://www.slideshare.net/ccckmit/1-73472884) * [系統程式簡報影片 陳鍾誠教授](https://www.youtube.com/watch?v=lq0LkZBcxSg&list=PLpXfHEl2fzl7l_HzsSzWLo06MKD4Dyvvb) * [系統程式第6週:編譯器 陳鍾誠教授](https://www.youtube.com/live/Dzp2PwkdB5c?feature=share) * [系統程式第8週:OpenAI API 陳鍾誠教授](https://www.youtube.com/live/kT2MRid8YtQ?feature=share) * [系統程式第10週:thread與process 陳鍾誠教授](https://www.youtube.com/live/mKaqX5QFv_A?feature=share) * [系統程式第11週:fork/shell/net/ipc 陳鍾誠教授](https://www.youtube.com/watch?v=b6_DDDmNqm0) * [系統程式第12週:網路與IPC 陳鍾誠教授](https://www.youtube.com/live/OKg41b4gvKw?feature=share) * [系統程式第13週:開源專案介紹 陳鍾誠教授](https://www.youtube.com/live/0LQQ9EZGE1k?feature=share) * [系統程式第14週:udp/tcp/poll/epoll/ 陳鍾誠教授](https://www.youtube.com/live/TMdqdFJYM5E?feature=share) * [系統程式第15週:mini-riscv-os作業系統 陳鍾誠教授](https://www.youtube.com/live/U7heUYwwDTk?feature=share) * [系統程式第16週:mini-riscv-os/xv6 陳鍾誠教授](https://www.youtube.com/live/xBBVjzHP1ws?feature=share) * [系統程式第17週:mini-riscv-os/xv6 陳鍾誠教授](https://www.youtube.com/live/VOEhV7-BPf4?feature=share) * [系統程式第18週:xv6作業系統 陳鍾誠教授](https://www.youtube.com/live/Sj2S2zYc1qs?feature=share) * [系統程式影片 羅習五教授](https://www.youtube.com/watch?v=eKV3O0h8Xfc&list=PLQn99bzkJv9yADHZxIgd9BObHUPRWWsSC&pp=iAQB)