<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          大學(xué)時的單片機,我準備寫一個操作系統(tǒng)出來~

          共 2855字,需瀏覽 6分鐘

           ·

          2021-05-15 12:11

          大二的時候,開始學(xué)習(xí)單片機了,不過上機時間很有限,一學(xué)期去不了幾次實驗室,這可把我急壞了。


          沒辦法,雖然那時候一個月就四百塊錢生活費,我愣是拿出了一百多在淘寶搞了一套MCU51開發(fā)板玩了起來。


          8d81e126eb962f0988bfa235df5f8018.webp


          拿到開發(fā)板的那幾天,每天都搞到半夜兩三點,學(xué)習(xí)C51的指令集,寫單片機的匯編代碼,然后通過電腦下載到開發(fā)板中。


          花了幾天時間終于把女朋友的一張JPG格式的照片弄到開發(fā)板上的一小塊屏幕顯示出來了,可把我高興壞了!


          不過弄完之后就沒再玩了,我的注意力開始轉(zhuǎn)移到x86的微處理器了,有了在C51上寫代碼的經(jīng)驗,想自己在x86上寫一個簡單的操作系統(tǒng)出來。


          說起來是個操作系統(tǒng),其實就是一個簡單的hello world程序,但這個helloword是完全自己用匯編一行行寫出來,讓CPU執(zhí)行指令實現(xiàn)的,這成就感還是大大的。


          我現(xiàn)在還挺感謝那時候愛折騰的我,通過那些學(xué)習(xí)經(jīng)歷,讓我能對計算機底層的技術(shù)原理、尤其是操作系統(tǒng)的底層原理了解的更深一些。



          操作系統(tǒng)(簡稱 OS),是直接運行在“裸機”上的最基本的系統(tǒng)軟件,任何其他程序都必須在操作系統(tǒng)的支持下才能運行。我們經(jīng)常會用靈魂、大腦、內(nèi)核、基石”等詞來形容他,不外乎都是在說操作系統(tǒng)對計算機而言有多么重要。

          ?


          在實際工作中也確實如此,跟操作系統(tǒng)打交道是常事。比如程序運行期間會遭遇各種問題,很多都是和操作系統(tǒng)密切相關(guān)的:

          ?


          • 內(nèi)存為什么會泄漏、服務(wù)進程為什么會 dang 掉、文件為什么打不開?

          • MySQL 的 IO 性能還能不能再提升?

          • 網(wǎng)絡(luò)服務(wù)為什么會掉線?

          • Redis 中經(jīng)典的 Reactor設(shè)計模式靠什么技術(shù)支撐?

          • Node.js 的 I/O 模型長什么模樣?

          ?


          除此之外,在做高性能服務(wù)端編程的時候,經(jīng)常會用到內(nèi)存、進程、線程、IO相關(guān)的知識。對于運維、測試等研發(fā)來說,很多問題也是基于操作系統(tǒng)的:比如給服務(wù)配置多大的內(nèi)存、多大的緩存空間? 怎樣根據(jù)操作系統(tǒng)給出的信息,判斷服務(wù)器的問題出現(xiàn)在哪里?

          ?


          這些問題只有掌握操作系統(tǒng)底層知識,才能定位到原因,進一步排查監(jiān)控。


          ?

          一句話概括:“學(xué)好操作系統(tǒng),能直接解決你在工作中遇到的問題”。

          ?


          光這一個原因,操作系統(tǒng)就已經(jīng)是每個程序員必須好好修煉的“基本功”了。


          ?

          學(xué)懂了這些基本功,再去琢磨那些被“追捧”的流行技術(shù)啊、demo 啊,都能輕松地理解背后高級的設(shè)計,理解系統(tǒng)中的性能瓶頸。

          ?


          所以不夸張地說,學(xué)懂了操作系統(tǒng),同時具備不錯的編程能力,找工作就很有優(yōu)勢。要知道,很多在職的工程師其實很多這里面的概念都不懂,工作多年,還得回來補課。

          ?


          操作系統(tǒng)很難,有什么學(xué)習(xí)的 “捷徑”?

          ?


          捷徑?jīng)]有,心得有一點。操作系統(tǒng)需要具有大量的知識儲備,但是現(xiàn)在大多的課程、學(xué)習(xí)資料,往往都是根據(jù)目前已有的一些操作系統(tǒng),做局部解讀。所以,學(xué)的時候,前后的知識是無法串聯(lián)在一起的,結(jié)果就會越看越迷惑。


          ?

          我的經(jīng)驗是,理論是要補充的,而且要體系化;其次,實踐很重要,學(xué)習(xí)操作系統(tǒng)一定不要去死看書,要跟著有配套實驗完成一個 OS?的課程學(xué)。

          ?


          在這里,我推薦一張計算機“鬼才”彭東(網(wǎng)名 LMOS)梳理的「操作系統(tǒng)知識體系圖」,內(nèi)容自于彭東的《操作系統(tǒng)實戰(zhàn) 45講》專欄,建議先馬后看。

          452f2930beff157567899a8fd3c8c737.webp

          操作系統(tǒng)簡化知識體系圖

          關(guān)于計算機“鬼才”彭東


          彭東非科班出身,卻憑借驚人的意志和熱愛,自學(xué)微機原理,編程語言,數(shù)據(jù)結(jié)構(gòu)與算法,翻遍操作系統(tǒng)和硬件層相關(guān)書籍,獨立開發(fā)了 LMOS 操作系統(tǒng)。

          ?


          LMOS 現(xiàn)在已經(jīng)發(fā)布了 8 個測試版本,是多進程、多線程、多 CPU、支持虛擬內(nèi)存的 x86_64 體系下的全 64 位操作系統(tǒng)內(nèi)核,代碼量已經(jīng)有 10 萬多行了。

          ?


          不止于此,強烈的興趣促使他又開發(fā)了基于 Linux 的嵌入式操作系統(tǒng)——LMOSEM。


          ?

          他還是《深度探索嵌入式操作系統(tǒng):從零開始設(shè)計、架構(gòu)和開發(fā)》的作者,Intel 傲騰項目的關(guān)鍵開發(fā)者。

          ?


          數(shù)十年深入研究操作系統(tǒng),他精通?Linux、BSD、SunOS 等開源操作系統(tǒng)內(nèi)核、熟悉Windows 的 NT 內(nèi)核,了解計算機底層技術(shù),在編譯器,數(shù)據(jù)庫等基礎(chǔ)架構(gòu)方面也頗有研究。

          ?


          可以說彭東非常了解,在操作系統(tǒng)的學(xué)習(xí)過程中,有哪些難點和阻礙,會踩哪些坑。其實,當我知道他要出專欄時,非常驚訝,早在專欄在上線前,我就迫不及待地從運營同學(xué)那里要樣章來看了,確實讓我很驚喜。

          ?


          總結(jié)來說,他會帶著你,一步步實現(xiàn)一個基于 x86 平臺的 64 位多進程的操作系統(tǒng)——Cosmos,這真是從 0 到 1,手把手教你自制一個操作系統(tǒng)了,不僅如此,專欄中對于 Linux 內(nèi)核也講解得很透徹。


          早鳥疊加口令 「helloos11」

          立省?¥40,到手僅?¥89


          相比市面上難啃的大部頭教材,這門課真的太友好了,只可惜當初沒有早點遇到,不然我在學(xué)操作系統(tǒng)的過程中,也能少走不少彎路。



          看過幾篇后,我發(fā)現(xiàn)這門課除了能手把手教你實現(xiàn)一個自己的操作系統(tǒng),還有幾點也非常值得稱贊:



          1.“保姆級”圖示+代碼解析,小白也適用

          ?

          為了方便“計算機小白”理解,快速上手實操,課程中加入了大量圖示和詳細的代碼注釋,這個體量的代碼注釋是非常少見的,足以看出老師的用心。

          ?


          當然如果你是老手,也能根據(jù)課程中的提示,快速定位到關(guān)鍵性的核心代碼。


          6c9e025a0e8462830cb9e8fd71a4496a.webp

          摘自《操作系統(tǒng)實戰(zhàn) 45講》第9講

          瞧一瞧-Linux的自旋鎖和信號量如何實現(xiàn)?


          2.?邊學(xué)邊練,對比分析,強化理解 Linux?


          在介紹每個內(nèi)核組件實現(xiàn)時,都會先講清原理,再帶你基于設(shè)計理解去動手實現(xiàn);然后與 Linux內(nèi)核的實現(xiàn)做前后對比。既能邊學(xué)邊練,又能幫你從“上帝視角”審視 Linux 內(nèi)核。


          ef5940b5b8e07663413598abd1644095.webp


          3.?配套源碼,真正動手“run”起來


          ?

          專欄中的每一講,都會匹配可以工作的代碼,傳在gitee上;你可以跟著課程一步步的實現(xiàn),也可以直接使用每節(jié)課提供的代碼進行調(diào)試,直到最終實現(xiàn)一個操作系統(tǒng)。


          b4d99e90b5103c248bb4eff50b3b3ec8.webp

          Cosmos系統(tǒng)運行演示


          整個專欄學(xué)下來,操作系統(tǒng)架構(gòu)設(shè)計能力肯定會大幅提升,還可以學(xué)到系統(tǒng)級別的軟件編程技巧,這對我們拓展技術(shù)深度和廣度是大有裨益的。

          ?


          在日常開發(fā)中遇到問題的時候,也就能從更多維度去解決了。當然,求職也一定會是加分項,自己動手寫過操作系統(tǒng),簡歷自然增色不少。

          ?


          說了這么多,來看看目錄吧。反正我第一眼看目錄,就知道這門課絕對錯不了。


          544f4f1d678a9a0ae943d1ae255115a7.webp


          還要再次強調(diào)

          課程上新特惠,立省?¥40

          結(jié)算輸 「helloos11」,到手?¥89

          如果你是新人,¥59.9?就能入手

          課程永久有效,優(yōu)惠就這幾天,抓緊時間


          掃碼免費試讀??


          很多人都覺得,學(xué)好操作系統(tǒng)很難,編寫一個操作系統(tǒng)更是大佬們才能做到的事。


          其實不然,彭東和我們一樣,是一個普通人,最開始的基礎(chǔ)也遠遠不如科班出身的同學(xué)。

          ?


          你可以想象,他在學(xué)習(xí)過程中面臨了怎樣的困難,但這依然沒有阻礙他在操作系統(tǒng)的海洋里乘風(fēng)破浪。


          我們又有什么理由學(xué)不好呢?

          ?

          難者不會,會者不難,不要給自己設(shè)限,辦法總比困難多。


          ?

          點擊「閱讀原文」,最低?¥89

          帶你實現(xiàn)一個自己的操作系統(tǒng)!

          瀏覽 133
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99Re视频官网 | 欧美成人在线视频免费 | 黄一区二区在线观看 | www夜片内射视频日韩精品成人 | 婷婷五月综合视频 |