(終)從零開始的作業系統開發日記

2021-07-24 10:45:01 字數 1691 閱讀 7275

直到某一天,博主被叫去交課程設計,才想起了這個系列的日記還沒填坑。。。

由於時間和精力還有精力以及精力等各方面的原因,這次依舊是單刷課程設計,卻異常的覺得心累。

歸結一下,原因大概是有三點:

1.一開始的框架設計上存在資訊的冗餘和表達,儲存的不便,導致資訊填充相關的**寫起來很心累,一不小心就寫錯。

2.這次有隊友,讓我心理上存在「啊,不想寫的時候好像可以給隊友寫」,但是隊友和我自己都沒啥空,回過頭來看其實bug也沒多少,不過誰又能預估bug的數量呢【苦笑】

3.**基本是一口氣完成了90%才開始debug的,,,不過也沒辦法,功能間有依賴,不完成也除錯不了。。

4.去幹別的事了【懶】

於是死皮賴臉地完成了個很水的使用者極其不友好的估計還有一堆bug的模擬磁碟操作。

不過第一次在github上合作寫**,感覺的確很新鮮,尤其在完成的時候看我們的commit記錄,啊,真好看,我好像做了好多,好感人【自我滿足能力ex級】

整個程式下來標頭檔案200+行,實際**去掉冗餘部分應該1k行不到,只是做了基本的crud,樹形目錄。尤其為了摳位元組數在3b裡存字元,自己寫了一堆輔助函式來控制io這種沒有\0結束的字串,寫得好心累;為了扣儲存空間,把本檔案\目錄資訊儲存在了父目錄裡,更新資訊起來也是各種藍瘦。香菇;因為和函式返回值有衝突加上盡可能純c語法沒有異常支援所以沒有做很多錯誤提示【雖然可以返回錯誤碼,但是的確有一定衝突,以及太多巨集定義以及懶的因素在裡面】

專案的大致架構如下:

在一定程度上是模仿了ucore裡的做法的,畢竟一開始也是想要和那邊接軌組合進去的。。。

其實這種棄坑的感覺還是蠻不好受的,自己也不是沒少投入時間進去,什麼精力不足的都是藉口,畢竟還是有認識的人應該是單刷寫個小核心的了。但是我在開工沒多久就耗掉了絕大部分的動力,這次對於我來說絕對是個失敗的課程設計,其實git位址完全沒有必要貼出來,只是作為一種警示自己的作用吧,自己做過這麼糟糕的事情。總結一下可以改進的地方吧:

1.一開始架構設計可能具體到介面層,任務的劃分【包括引數處理那些】,資訊的設定,具體多一點的話,也不至於一邊修改設定一邊寫**這麼心累,而且也浪費時間沒效率,我還是太過習慣先code再想了。

2.在git的分支管理上,後面是漸漸好起來了,以後還是多習慣git託管**版本比較好

3.盡早debug,不然對著一堆耦合的**,debug各種心累。

4.其實我中間的時間大概是開學玩了一下lifegame->擼了一下資料探勘->補c++看森爺的協程庫->和二雷玩wows。。。。。。。。。。

引以為戒

講講最近的一些事吧

1.昨天和在大佬帶飛下打了一場apactest,大佬70+,我1000+,【當然是rank】,不過我還是好開心,沒想到時隔幾乎兩年了我還是能做得懂這些小思維題【雖然的確很水就是】,大佬也順理成章理所當然的收到了gg的邀請函,看來明年跟著大佬打幾場atcoder,練習練習的話,gg的面試還是有戲的啊,fight!

2.c++11我還在繼續看,看到了一些高階特性部分,越來越覺得c++真的想要什麼都做得到,的確是有那麼一點表達上的臃腫了。

3.對了,最近也還在鼓搗平行計算,畢竟被選了這門課,還好老師提供了很個性化的教學任務,等這個學期的實驗我做得差不多,到時候寫一篇總結吧,畢竟也有尊重知識版權不能上傳太多資料在內的原因。

4.最後贊一下csdn的審核,好像變快了?

(0)從零開始的作業系統開發日記

os開発 從零開始的作業系統開發日記其實是個課程設計的坑,打算用於記錄學習和開發過程中遇到的一些散點,在著手開幹的時候會在github那邊開個專案 其實打算部落格也直接在那邊寫,但是我懶得搭部落格了,目前主要參考書籍是川合秀實先生的 30天自製作業系統 關於這本書,一些整理如下 按內容分大概就是這樣...

作業系統開發 Hello OS 開始作業系統開發

在開發作業系統之前 我們需要知道從按下電源開機鍵開始 cpu 都做了什麼 第一步 按下電源鍵 cpu重置,開始工作 第二步 從記憶體位址為 0xfffffff0 的位置開始 讀取指令並執行 而這個位址對應的就是 bios basic input output system 第三步 bios 的pos...

BEAR作業系統開發 1

從今天開始,我將開發作業系統了。我將她取名為 bear 小熊的意思,因為我的乙個朋友喜歡小熊,所以就用它了。其實 bear 還有另外乙個意思,就是 忍受 忍受學習的壓力和痛苦,這樣才會有所收穫。我模仿的linux0.11的核心源 現在主要將它的string標頭檔案移植到x86系統上面。今天完成了7個...