想不起是從什麼時候開始關注作業系統。
記憶中最早認識到作業系統很重要時我是在讀高中,那時覺得裝系統好複雜好高階的樣子,重灌系統幾乎是對付電腦使用時間過長執行變慢**的方法。後來家裡買來了一台二手台式電腦因為是二手的有時開機就不顯示工作列的小喇叭就沒有聲音,我開始拿來練手想著能自己修好它,我第一次從網上查來教程,小心翼翼的寫在紙上,生怕遺漏了其中某個重要環節而導致大問題,然後一步一步的照做。生怕遺漏了其中某個重要環節而導致大問題,就算這樣,最終還是因為缺少網絡卡驅動沒能成功,最後不得不花錢僱人重灌系統。再後來又分別因為沒裝上顯示卡驅動,音效卡驅動而分別失敗。從此算是第一次知道還有個叫驅動的東西存在而且它很重要,這算是我對於作業系統最初的懵懂吧。
經過這些失敗我爸都會裝系統了,我也開始讀大學了。
一次不經意的低頭從書架的最底層看到一本厚厚的黑色的特別新的一本書。書的名字是《orange's 乙個作業系統的實現》作者是於淵,因為以前的經歷,懷著對作業系統的敬畏,這本書激起了我的好奇:作業系統居然可以自己做。簡直屌炸了!
果斷借走,那是夏季外面陰雨我窩在宿舍床上翻著,額頭緊鎖,看了沒幾天,感覺涉及的東西越來越多越來越複雜,感覺人都不好了,沒辦法就又還回去了。沒過多久還會想它於是又借來,這樣反覆借來還回好幾次,直到畢業前最多也之看到多工。至少從這本書裡了解了系統需要有引導,啟動時還會有從16位到32位還的切換因為是考慮到對於以前16位硬體的相容,還有gdt、idt、tss、選擇子什麼的,都是最淺顯的了解。
畢業後搜尋乙個美國人自己用74積體電路做電腦的資訊,從圖靈社群看到有乙個小日本寫了一本《cpu自製法》(那時還沒有被翻譯),又看到同樣是小日本寫的書《30天自製作業系統》,瞬間感覺當年的激情又來了。手機閱讀了幾頁電子版樣章後感覺不錯,因為書很厚,擔心沒有時間看,於是就擱淺了。
再後來考研失敗我工作了,放棄閱讀電子板從京東入手這本書,開始正式閱讀。
第一次讀讀到ipl110就感覺編譯多個原始檔什麼的好亂(因為自己以前沒編譯過多個原始檔都是乙個檔案同頭寫到尾),反覆看也理解不了。第二次讀讀到滑鼠中斷,就感覺不懂的越來越多,彷彿從第一章開始就沒完全讀懂一樣。放下了一段時間。
一段時間的思考後覺得還是因為不了解硬體,不了解中斷到底是如何執行的,而且閱讀長**的能力也不夠。
於是開始學習最簡單的電腦微控制器(51微控制器),開始看《手把手教你學微控制器》(以前有了解過一些微控制器的知識,但沒真正的買板子實踐過),這次是自己買來板子搭建後程式設計環境,按照書中的章節每天給自己規劃乙個小的專案,大約乙個月以後我學完這本書。
站在一定的高度,再次回歸作業系統。
這次從第一章重新開始看,走過了中斷,啃過了圖層,第一周是每天下班後看一章,第二週速度變慢了,感覺又開始要有以前的那種不好的感覺了。
現在看到定時器,計畫是年底可以看完吧。
做什麼都一樣沒有一帆風順的,總要遭受挫折,只有打敗挫折自己變得更加強大了,才能更勇敢的去面對新的挑戰。這就是我在學習作業系統時體會到的。這就是我與作業系統。
我看作業系統
只是後來,很多程式設計師覺得,其實有很多東東,有共通性,沒必要每人寫一遍。比如,磁碟或者磁帶的操作,然後,大家慢慢歸置,才弄出個作業系統來。其實,這也不是第一次了,bios已經幹過一次啦。然後,不同的人,有不同的理解,於是寫出了不同的作業系統。然後開始宣稱自己很正宗。彼此看不起。僅此而已。但是,計算...
我理解的作業系統
談起作業系統,估計我們都會不禁想到微軟,塞班,安卓,蘋果,這幾個家喻戶曉的系統吧,可惜塞班已經不在了。以上列舉的更過是指手機上的作業系統,而對於電腦系統,估計只有window才是大眾口味吧。unix系統,dos系統,linux系統,這些系統除了專業人員,常人應該不會去了解,畢竟專業性質太重。簡單談一...
作業系統 作業系統的設計與實現
系統設計的首要問題是定義目標和規範。從高層來說,系統設計取決於所選硬體和系統型別 批處理 分時 單使用者 多使用者 分布式 實時或通用。除了最高設計層外,需求可能很難說清,但需求可以分為兩類 使用者目標和系統目標。使用者要求系統具有一定的優良效能 系統應該易於學習和使用 可靠 安全和快速。研發人員為...