學習編程,操作系統是你必須要掌握的基礎知識,那麼操作系統到底是什麼呢? 這還用說麽,操作系統不就是Windows、Linux、Mac、IOS、Android、IOS這類我們天天都在用的東西麽? 此話不假,但是操作系統作為電腦科學里的一門基礎學科,肯定不能這麼接地氣對不對,總的來點高大上的概念, ...
學習編程,操作系統是你必須要掌握的基礎知識,那麼操作系統到底是什麼呢?
這還用說麽,操作系統不就是Windows、Linux、Mac、IOS、Android、IOS這類我們天天都在用的東西麽?
此話不假,但是操作系統作為電腦科學里的一門基礎學科,肯定不能這麼接地氣對不對,總的來點高大上的概念,震懾一下你們吧。
根據百度百科的介紹,操作系統是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的內核與基石。操作系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網路與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。
這個介紹足夠高大上了吧,那麼到底啥是操作系統呢,簡單來說,操作系統就是管理電腦硬體和軟體資源的一種軟體,電腦里的硬碟、滑鼠鍵盤、顯示器等設備,都要由它來管理,你打開游戲、打開瀏覽器或者是看電影,也都要通過操作系統來執行。
沒有了操作系統,電腦就失去了靈魂,只是一堆硬體而已。
瞭解了操作系統的基本概念之後,接下來我們再來看看,為什麼我們要學習操作系統呢?
首先,當然是因為面試要考啦。
其次,無論你學習什麼編程語言,和都避免不了和操作系統打交道,比如你學習Java,用到多線程技術,實際上操作系統才是負責管理進程和線程的,所以Java里的線程常常要和操作系統的線程或者進程一一對應。
此外,你會學習到記憶體分配的知識,比如c++里可以直接分配一段記憶體,此時實際上是調用操作系統提供的API進行記憶體分配。
操作系統不僅負責管理進程和線程的調度、記憶體的分配和管理,以及設備和IO的處理,還要負責管理文件系統和網路。
最重要的是,操作系統要負責把代碼從硬碟載入到記憶體,再告訴cpu去讀取記憶體代碼,這是一切電腦運行的基礎。
如果不懂操作系統,你在未來學習編程語言的高級特效,涉及到線程進程調度,記憶體分配,或者是學習Linux相關的知識時,都會一頭霧水,所以,只有學會了操作系統,我麽才能夠更好地學習其他語言和技術。
今天我們就來推薦一份關於操作系統的優質書單!請查收!
操作系統書單
深入理解電腦系統
深入理解電腦系統(第2版) 這本書的全名是:Computer Systems:A Programmer’s Perspective,所以它又被稱為 CSAPP。如果想打下扎實的電腦基礎又不想把操作系統電腦結構編譯原理這些書統統讀一遍,閱讀深入理解電腦系統是最有效率的方式。
Randal E. Bryant,1981年於麻省理工學院獲得電腦博士學位,1984年至今一直任教於卡內基-梅隆大學。
David R. O’Hallaron卡內基梅隆大學電子和電腦工程系教授。
操作系統導論
這是一本關於現代操作系統的書。全書圍繞虛擬化、併發和持久性這3個主要概念展開,介紹了所有現代系統的主要組件(包括調度、虛擬記憶體管理、磁碟和I/O子系統、文件系統 )。
本書共50章,分為3個部分,分別講述虛擬化、併發和持久性的相關內容。本書大部分章節均先提出特定的問題,然後通過書中介紹的技術、演算法和思想來解決這些問題。筆者以對話形式引入所介紹的主題概念,行文詼諧幽默卻又鞭辟入裡,力求幫助讀者理解操作系統中虛擬化、併發和持久性的原理。
本書內容全面,並給出了真實可運行的代碼(而非偽代碼),還提供了相應的練習,適合高等院校相關專業教師教學和高校學生自學。
作者簡介
雷姆茲·H.阿帕希杜塞爾(Remzi H.Arpaci-Dusseau)和安德莉亞·C.阿帕希杜塞爾
(Andrea C.Arpaci-Dusseau)夫婦是美國威斯康星大學電腦科學教授。二人都從事電腦操作系統方面的教學和研究。
30天自製操作系統
《30天自製操作系統》是一本兼具趣味性、實用性與學習性的操作系統圖書。作者從電腦的構造、彙編語言、C語言開始解說,讓讀者在實踐中掌握演算法。在這本書的指導下,從零編寫所有代碼,30天後就可以製作出一個具有視窗系統的32位多任務操作系。
《30天自製操作系統》適合操作系統愛好者和程式設計人員閱讀。
作者簡介
川合秀實(Hidemi Kawai),生於1975年,是一位以“輕量化”編程思想見長的“非主流”開發者。2000年因自行開發的OSASK項目而名聲大噪。OSASK是一個開源的32位微型操作系統,它並非以Linux等內核為基礎,而是完全從零開始開發,在一張軟盤的容量下實現了GUI、多任務、多語言等高級特性,啟動時間只需1秒。本書的內容可以看成是作者以OSASK為藍本,教會讀者從零開始開發一個操作系統,同時可以讓初學者在編寫操作系統的過程中,瞭解操作系統背後更多的知識。
更多優質書單推薦!
還搞不定Java多線程和併發編程面試題?你可能需要這一份書單!
【程式員書單】一個為程式員推薦好書的公眾號。每天為你pick精品書單,優質學習資源和軟體工具。關註前沿技術與行業資訊,更關註你的自我提升。作者黃小斜是阿裡巴巴 Java 工程師,希望陪你一起一年讀50本書!