自學(xué)編程方法論:怎么學(xué)操作系統(tǒng)-創(chuàng)新互聯(lián)

原創(chuàng)聲明

本文作者:黃小斜

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都邊坡防護(hù)網(wǎng)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身建設(shè)品質(zhì)網(wǎng)站。

轉(zhuǎn)載請務(wù)必在文章開頭注明出處和作者。

本文思維導(dǎo)圖

自學(xué)編程方法論:怎么學(xué)操作系統(tǒng)

簡介

學(xué)習(xí)編程,操作系統(tǒng)是你必須要掌握的基礎(chǔ)知識,那么操作系統(tǒng)到底是什么呢?

這還用說么,操作系統(tǒng)不就是Windows、Linux、Mac、IOS、Android、IOS這類我們天天都在用的東西么?

此話不假,但是操作系統(tǒng)作為計(jì)算機(jī)科學(xué)里的一門基礎(chǔ)學(xué)科,肯定不能這么接地氣對不對,總的來點(diǎn)高大上的概念,震懾一下你們吧。

根據(jù)百度百科的介紹,操作系統(tǒng)是管理計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,同時也是計(jì)算機(jī)系統(tǒng)的內(nèi)核與基石。操作系統(tǒng)需要處理如管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入設(shè)備與輸出設(shè)備、操作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本事務(wù)。操作系統(tǒng)也提供一個讓用戶與系統(tǒng)交互的操作界面。

這個介紹足夠高大上了吧,那么到底啥是操作系統(tǒng)呢,簡單來說,操作系統(tǒng)就是管理計(jì)算機(jī)硬件和軟件資源的一種軟件,計(jì)算機(jī)里的硬盤、鼠標(biāo)鍵盤、顯示器等設(shè)備,都要由它來管理,你打開游戲、打開瀏覽器或者是看電影,也都要通過操作系統(tǒng)來執(zhí)行。

沒有了操作系統(tǒng),電腦就失去了靈魂,只是一堆硬件而已。

為什么要學(xué)操作系統(tǒng)

了解了操作系統(tǒng)的基本概念之后,接下來我們再來看看,為什么我們要學(xué)習(xí)操作系統(tǒng)呢?

首先,當(dāng)然是因?yàn)槊嬖囈祭病?/p>

其次,無論你學(xué)習(xí)什么編程語言,和都避免不了和操作系統(tǒng)打交道,比如你學(xué)習(xí)Java,用到多線程技術(shù),實(shí)際上操作系統(tǒng)才是負(fù)責(zé)管理進(jìn)程和線程的,所以Java里的線程常常要和操作系統(tǒng)的線程或者進(jìn)程一一對應(yīng)。

此外,你會學(xué)習(xí)到內(nèi)存分配的知識,比如c++里可以直接分配一段內(nèi)存,此時實(shí)際上是調(diào)用操作系統(tǒng)提供的API進(jìn)行內(nèi)存分配。

操作系統(tǒng)不僅負(fù)責(zé)管理進(jìn)程和線程的調(diào)度、內(nèi)存的分配和管理,以及設(shè)備和IO的處理,還要負(fù)責(zé)管理文件系統(tǒng)和網(wǎng)絡(luò)。

最重要的是,操作系統(tǒng)要負(fù)責(zé)把代碼從硬盤加載到內(nèi)存,再告訴cpu去讀取內(nèi)存代碼,這是一切計(jì)算機(jī)運(yùn)行的基礎(chǔ)。

如果不懂操作系統(tǒng),你在未來學(xué)習(xí)編程語言的高級特效,涉及到線程進(jìn)程調(diào)度,內(nèi)存分配,或者是學(xué)習(xí)Linux相關(guān)的知識時,都會一頭霧水,所以,只有學(xué)會了操作系統(tǒng),我么才能夠更好地學(xué)習(xí)其他語言和技術(shù)。

如何學(xué)習(xí)操作系統(tǒng)

第一次接觸

第一次接觸操作系統(tǒng)同樣是在我研究生的時候,當(dāng)時自學(xué)計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)受到了驚嚇(被大部頭教科書勸退),于是學(xué)習(xí)操作系統(tǒng)時也更加的小心翼翼,當(dāng)時我找了一本體量稍微小一點(diǎn)的《操作系統(tǒng)》教科書來學(xué)習(xí)。

用了大概一周左右的時間,我把這本書翻了一遍,隱隱約約還記得一些概念,進(jìn)程和線程,進(jìn)程調(diào)度算法、內(nèi)存管理的分頁和分段,頁面置換算法,但其實(shí)當(dāng)時壓根沒有理解這些東西,再過了一周之后也就忘得差不多了。

由于我當(dāng)時找的多是Java方面的實(shí)習(xí),很多公司對于操作系統(tǒng)的考察并不多,偶爾就問問線程和進(jìn)程的區(qū)別,

于是對于操作系統(tǒng)的學(xué)習(xí)我當(dāng)時并沒有多大的重視,畢竟還有一堆Java的書要啃呢,先都啃到位再說。

入門學(xué)習(xí)階段

就這樣,我一直保留著只看過一本教科書的操作系統(tǒng)水平,全情投入到復(fù)習(xí)Java的偉業(yè)中了,然而當(dāng)我學(xué)到Java并發(fā)編程和JVM的時候,總感覺有哪里不對勁:Java中的線程和操作系統(tǒng)的線程是什么關(guān)系,JVM的內(nèi)存管理和操作系統(tǒng)的內(nèi)存管理又是什么關(guān)系。

我抱著這個疑問學(xué)完了Java并發(fā)原理和JVM,當(dāng)然也是一知半解的那種。事后證明,在沒有操作系統(tǒng)基礎(chǔ)的情況下,越往上層學(xué),摔得越慘,勿用浮沙筑高臺,說的便是這個道理,底子打好了,才能往上爬,否則都是浮云。

我在百度實(shí)習(xí)的那段時間里,再次意識到了操作系統(tǒng)這門課程的重要性,于是我找來了某乎強(qiáng)烈推薦的《深入理解計(jì)算機(jī)系統(tǒng)》這本史詩級大部頭,這本書其實(shí)并不是一本純粹的操作系統(tǒng)書籍,而是結(jié)合了計(jì)算機(jī)組成原理和操作系統(tǒng)兩方面的內(nèi)容,基本上把計(jì)算機(jī)內(nèi)部工作的那些原理都給講清楚了。

第一次看這本書的時候,我堅(jiān)持了不到三天就放棄了,于是第二次看這本書,我在公司花了快一個月的時間才總算看得差不多。

在以前,我連什么是x64什么x86都搞不清楚,看完這本書之后,我好歹對CPU、內(nèi)存、硬盤的工作方式,以及處理器的工作方式等內(nèi)容有了一些理解,不得不說,這個時候我才算是對操作系統(tǒng)入了門。

強(qiáng)化學(xué)習(xí)階段

光看書還不足以應(yīng)對大廠的面試,大公司對操作系統(tǒng)的考察是很嚴(yán)格的,比如百度、騰訊和頭條,對于操作系統(tǒng)的要求還是比較高的。

除了進(jìn)程和線程區(qū)別這種最簡單的面試題之外,還會有一些比較復(fù)雜的問題,比如”進(jìn)程調(diào)度算法有哪些,講一下FIFO和LRU算法“、”內(nèi)存中的分頁和分段有什么區(qū)別,分頁里的頁面置換算法有哪些,LRU是怎么實(shí)現(xiàn)的“、”產(chǎn)生死鎖的必要條件,解決死鎖的辦法“、”線程間通信和進(jìn)程間通信的方法都有哪些,具體怎么使用“

此類問題,也算是比較常見的操作系統(tǒng)面試題,但是要回答清楚的話還是需要一定功力的。

當(dāng)時我應(yīng)對這類問題,基本上就是通過刷面經(jīng)和背答案,對于很多原理性的東西理解得并不深刻,但是也沒有找到什么解決辦法。

沖刺階段

既然自己學(xué)了半天效果都不佳,那不如直接向大佬學(xué)習(xí)吧,于是我輾轉(zhuǎn)各大博客,技術(shù)社區(qū),技術(shù)公眾號,看了很多關(guān)于操作系統(tǒng)的文章,發(fā)現(xiàn)確實(shí)有很多講的不錯的內(nèi)容,看起來比自己死記硬背要靠譜的多了。

最早看的優(yōu)質(zhì)內(nèi)容是《碼農(nóng)翻身》作者劉欣老師的文章,真的是相見恨晚,他有十幾篇文章是專門講解操作系統(tǒng)的,從CPU開始,講到內(nèi)存、硬盤、線程、進(jìn)程,每篇文章都是用故事化的文字介紹這些計(jì)算機(jī)里最硬核的觀念,可以說是四兩撥千斤了。

看完這個系列的操作系統(tǒng)文章之后,我對于操作系統(tǒng)中的一些疑惑基本上也都消除了,再回去看一看那些面試題,覺得也沒那么復(fù)雜了。

當(dāng)然了,對于面試題我們還是要認(rèn)真準(zhǔn)備的,該翻的面經(jīng)要翻,該搞懂的面試題一個也不能放過,有了之前的基礎(chǔ)之后,再去搞懂這些面試題就簡單很多了,至此,我對于操作系統(tǒng)的學(xué)習(xí)也算是告一段落。

推薦資源

書籍

《深入理解計(jì)算機(jī)系統(tǒng)》
《操作系統(tǒng)導(dǎo)論》

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:自學(xué)編程方法論:怎么學(xué)操作系統(tǒng)-創(chuàng)新互聯(lián)
分享URL:http://muchs.cn/article8/eehop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈App開發(fā)、網(wǎng)站制作定制網(wǎng)站、網(wǎng)站維護(hù)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)