最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

6.S081+OSTEP+jyy os lecture結課感想,以及操作系統(tǒng)應該怎么學+圖解部分的xv6

2023-08-03 16:41 作者:降星馳  | 我要投稿


寫在前面,

????操作系統(tǒng),細節(jié)太多了,曾經(jīng)考慮做一個包羅萬象的筆記,然后放棄了。不同的老師的lecture之間想要融合到一起實在是太困難了。所以就算了,編譯器的星辰大海在等待著我。

個人建議的學習順序:

????先看OSTEP,然后看081相關資源,最后看jyy的lecture,比較偏向現(xiàn)代的OS的視角

????我在這里強調一下,這三個講的雖然全都是關于操作系統(tǒng)的東西,但實際上這三個東西重疊相當?shù)挠邢蕖?/strong>

? ?OSTEP

????講的是設計OS的一些思考和權衡,他會帶你一步步引出對應的概念,看OSTEP,你會看到OS是如何逐漸演變到你所熟悉的樣子的。(也許并不是那么熟悉)

????計算機的很多概念并不是物理公式或者數(shù)學定律,而OS實際上是一個工程性的問題,很多你在CSAPP(或者所有計算機系統(tǒng)概述的課,比如NJU的PA)學到的概念,實際上他們并不是從一開始就存在。

? ?舉個例子,我們?yōu)槭裁床捎昧隧摫碜鳛橛涗汷S映射的載體?(實際上并不是所有OS采用了頁表),我們?yōu)槭裁词褂昧硕嗉夗摫韥砉?jié)省空間而不是其他方式?除了多級頁表我們還有什么方式來節(jié)省頁表本身的存儲消耗?

? ? 本質上我們還是在解決現(xiàn)實中存在的問題,因此對于OS的內容而言,很多的解法并不是唯一的,只是經(jīng)過不斷的權衡之后,我們選擇了這樣的方法。如果你認為多級頁表是理所應當?shù)模梢試L試解釋一下為什么文件系統(tǒng)里面的inode(XV6,linux應該都是這樣的)里面的data block采用了不平衡樹。

????也許很多東西,他并不是那么的理所應當。只是當大家都采用了這種方法后,硬件廠商為此提供了各種各樣的支持,顯得一些解法是理所當然的了。

????在看書的過程中,我記了不少類似的問題,但是,說實話,這個東西如果寫在紙面上,作為考試題目,實在是太文科了,真的不好弄,我甚至不知道這樣子搞重要不重要。

????對于一個工程的知識,如果把一切推導過程省略,留下的一些推導出來的結果也許不能稱之為知識。所以我對于OSTEP的態(tài)度大概是,可能是有用的,但是用處并不是那么多。

????如果你只想快速的過一遍OS的話,你沒什么必要看OSTEP,也沒什么必要看jyy的lecture,你寫一遍XV6就完事了。

然后是6.S081

(現(xiàn)在改名了,叫6.1810)

????作業(yè)建議fa20版本(和公開課同步)但是我寫的是fa22,可能是因為我太菜了,所以并不是很想回去補一下fa20關于lazy allocation的部分。

????081的核心是XV6,你可以不看081的lecture,但是你一定要去看XV6具體代碼的實現(xiàn),081前半段實際上是XV6的伴生課,可能只有一半時間在講機制,其他時間全在調內核,他的后半段是research intro,你如果趕時間你可以跳。

? ? 081的lecture根本不是在對概念做文章,他的lecture,前期基本是帶你過一遍XV6,后期帶你讀paper,從這個角度而言,我認為讀OSTEP我認為還是必要的。(但是看了下我的同學不看OSTEP也學的很好,我覺得這個必要性可能并不是很多。)

????在081的學習中,相比于其他課程而言,lab只占了非常少的一個部分(其余課程都像是lab為主體)081主要是XV6手冊和源碼的閱讀和paper的閱讀,都是我第一次體驗到的東西。

? ? 可是我實在是有點看不下去paper,全都是英文,而且好難,可惡,唔,我死掉了。

????XV6設計的很好,強烈建議仔細閱讀,他的代碼風格也很棒,你甚至能學到正確的goto語句應該是怎么寫的。

????看一個接近1w行的代碼,嘗試理解對應的設計,對于新手而言,本身就是一個前所未有的體驗,你會自己總結出自己的方法,來幫你更好的看這些代碼。

????里面user的sh寫的也蠻不錯的,可以看看對應是怎么實現(xiàn)的。

????081的資源多到溢出,學不好真的是自己的原因。

jyyOS課的個人看法(2023版本)

????新手不要看jyy的課。你如果想看jyy的課就給我去看OSTEP,然后好好的調jyy上課給你演示的示例代碼(然而我太懶了,并沒有調=_=)

????對于新手而言,jyy上課講的東西,有種世界觀被擊碎的美。這種上課風格是適合尖子生的,請理性對待jyy的課程。新手不要無腦上車,當心翻車。

????首先是,如果基礎不好可能是理解不了狀態(tài)機的,對于學過CS61C的人,這個可能是無縫銜接的,如果你不是很能理解狀態(tài)機,可能是基礎不夠好。

????然后是jyy的代碼很大程度上起到了板書的作用,自己沒有去看過對應源碼的話,他上課調了一遍可能真的就只是調了一遍。

????jyy的課上經(jīng)常會有一些很有趣的例子,用來打碎你腦子中的模型(比如編譯器和CPU和多線程的聯(lián)動,printf和fork的聯(lián)動)我個人覺得是一個非常好的東西,幫你認識到模型和現(xiàn)實的區(qū)別。學過的可能會非常的驚喜,所以至少看了OSTEP對應的章節(jié)后,再去看。

????他講的課程屬于是現(xiàn)代操作系統(tǒng)的東西和我們平常上的OS課大概率不是一個東西。

????我不敢說我理解了他的課程。但也許你可以,然后在b站發(fā)一個關于他課程的筆記。

他操作系統(tǒng)的抽象講的尤其的棒,并發(fā)講的也超級很棒,進程和地址空間也大量的引入的實際的一些操作。不過他講的文件系統(tǒng)不是很詳細。這個還是看OSTEP吧。(甚至沒必要看lecture)

他調試理論那課做的很不錯,可以去看一看。

一些想法

  1. ????我認為操作系統(tǒng)最重要的其實并不是各種各樣的概念,很多東西只是在不斷實踐中大家總結出來的優(yōu)秀解法而已。

    ????我們能從操作系統(tǒng)這門課學的最重要的東西也許是看手冊,不要怕權威,看源碼,不要怕看源碼。多看書,多學習,多思考,不要怕困難。做一件有困難的事,不一定成功的事情事困難的,也許只有具備了某種精神的同學們能夠擁有。勇敢前進,不怕失敗,挑戰(zhàn)自己。做到這些東西的,也許都是人中龍鳳,也許只是一個單純對計算機有興趣的同學。

    ????但誰能保證,你!不會是下一個風流人物呢?

  2. ????操作系統(tǒng),最重要的一個部分,是一定要和實際的代碼結合,這本身是一個工程問題(個人理解)081(XV6)做的最重要的事情,就是幫你把對應的概念固定到代碼實現(xiàn)上。

    ? ? 上下文切換只是一個籠統(tǒng)的概念,只有對應具體的代碼才能幫你理解上下文是怎么切換的。

    ? ? 對于這點,jyy也多次強調,所謂的那些概念,只是對應代碼的抽象,學操作系統(tǒng),你要打開抽象的概念,看到具體的代碼。不然是學不好的,概念和真實模型還是有一定的區(qū)別的。

  3. ????我發(fā)現(xiàn),jyy上課經(jīng)常會摻一些雞湯,嘗試傳遞一種價值觀,可能也算是我們大學的特色了hh。外國的大學課程好像很少摻這種東西,我只在josh的61B里面看到過另外一個方向的價值觀傳遞。(關于程序員的社會責任)

    但,是不是因為缺少,所以才強調呢?

努力去成為一個能夠做出一些東西的人,同學們,不要害怕困難,不要害怕權威。

你能想象21歲的年輕人和已經(jīng)是操作系統(tǒng)神牛的權威打辯論嗎?

雖然linux是時代的產(chǎn)物,你不需要發(fā)明linux,但是你可以成為自己的linus。他自傲,苛責,追求完美。永遠對屎山代碼不滿意,卻成了無數(shù)程序員心中的偶像。

谷歌不是偶然的,apple和facebook不是偶然的,openAI也不是偶然的,大學的去內卷化失敗了,但是這個世界需要英雄,去做那個全世界只有你相信的事。

相關筆記和vscode的配置放在

https://github.com/starrybamboo/OS_note

6.S081+OSTEP+jyy os lecture結課感想,以及操作系統(tǒng)應該怎么學+圖解部分的xv6的評論 (共 條)

分享到微博請遵守國家法律
胶南市| 信阳市| 若羌县| 松阳县| 白朗县| 兰坪| 屏边| 松溪县| 海伦市| 玉环县| 辰溪县| 泰兴市| 三门峡市| 德兴市| 化隆| 阳春市| 石景山区| 门头沟区| 仙游县| 芜湖县| 星子县| 德州市| 涟源市| 安徽省| 通海县| 新蔡县| 南丹县| 扬中市| 十堰市| 开原市| 台北市| 沂源县| 临沧市| 海兴县| 上杭县| 鄂伦春自治旗| 克拉玛依市| 瑞丽市| 新晃| 仙游县| 荆州市|