1. 程式人生 > >對於自己動手編寫作業系統的困惑

對於自己動手編寫作業系統的困惑

    第一次在CSDN上發表部落格,想談一下最近一直從事的作業系統的“研究”,研究之所以加上引號是因為自我感覺一個多月了似乎連門都沒入的了,所以不敢談的上是研究,只能算的上時略懂吧!說到做作業系統,被一度認為是不自量力,但是自己卻深信要堅信自己的想法,於是動手邊學邊做(似乎這是一種接受知識比較快的做法),一個多月的時間轉眼即逝,回過頭來看看既有驚喜又有憂愁,在此寫下自己的一些心得和困惑,望能遇到高人給與指點,也希望自己的一些小小的心得能夠幫助一些比我還困惑的人。

    先自我介紹一下,本人是一普通大學的的本科生,電腦科學與技術專業,當初是被調劑的。可是陰差陽錯的卻喜歡上了這個專業,特別是程式設計。在經歷了一年多的學習後,水平有點點長進,如果說原來是“爬”,現在可以說的上是會“走”了。對於作業系統這種龐大的東西,至今也沒有比較細緻的理解,腦袋中只有些隻言片語,遂不敢妄加談論。但是困惑卻是甚多:

     1.經過了一個多月的學習,知道的竟是些模糊的理論,感覺很難付諸實際。

     2.學習作業系統,涉及到得保護模式很是頭疼,大片的彙編程式碼讓人哭笑不得。(幸虧學習了下彙編,已經有了大體的瞭解,不過似乎還是差的很遠)。

     3.一大堆的新詞彙,GDT、PDT、PDE、A20.。。。。讓人似懂非懂!

     4.艱難的挺過來了,卻遇到了門與特權級,看了幾遍都看不懂,很是無奈!

     5.反問自己:不都是說作業系統是用c語言編寫的麼(那是作業系統的核心),怎麼我搗鼓了這麼長時間了,還是在不停的跟彙編打交道。

     6.我的學習計劃正確嗎?還是直接跳到核心那,用比較善解人意的c語言呢??

    以上為本人一個多月以來的困惑,困惑總是比明白的多,下邊談下幾點讓我比較興奮的地方:

     通過接觸作業系統,進一步加深了對記憶體的理解,哦!原來程式碼區,堆疊區,資料區,視訊記憶體區等都是可以通過自己的雙手親自劃分的呀!真是很有成就感的一件事。原來我們也可以有這麼大的權力O(∩_∩)O~,自此以後不論拿到c、c++亦或是什麼語言寫的程式,我都願意分析一下它們的記憶體,來來來。。。這個是全域性變數,它在資料區,哦這個在動態的棧裡,呵呵new出來的與malloc出來的在自由的堆裡。。。。呵呵感覺真是不錯的。

    其次,儘管我的進度非常的慢,像是蝸牛,可能比蝸牛還慢!總是一點點一點點的前進,不過任何一點點的進步都是讓人興奮的,我可以忍受經過努力後的失敗,但是堅決接受不了不去嘗試!

    以上為一堆得疑惑,和一點點的心得,我會繼續自己的作業系統----FlyHorse,並且我相信它早晚會誕生!