首頁>Club>
7
回覆列表
  • 1 # 程式設計師小助手

    結論:用反問句作答:“不會coding,看得懂kernel嗎?”

    前言

    一張數學考卷,不是把最後一題最難的20分做出來,就算征服了整張考卷。

    你會一道最難的題,真覺得剩下的80%,就是小菜一碟?

    kernel不是程式設計天花板

    kernel在不斷地增長,torvalds大神也投入很多時間維護核心。全世界的開發者在用智慧貢獻自己的程式碼。看看git多麼地繁忙。

    程式碼檔案目錄。

    核心裡有許多驚為天人的巧妙設計,每個細節都值得推敲,每段註釋又是一段故事。

    用漫畫看看核心裡都有些啥?

    各司其職,還有汪汪,還有檔案系統的一個個抽屜,形象吧。

    好了,外行看個熱鬧,內行看個門道。相信你一定會注意到一些精巧的小細節。下面是細節剖析。

    一切的基礎,要從檔案存取開始。PID=421的程序在讀檔案。還有一個看門狗。

    這一桌子上,在檔案系統的上層,是一堆程序,等著上飯。左邊有一個幼兒園老師一樣的小企鵝,指揮者各個程序聽話。

    PID=1341的程序守護者80埠,這個是http服務。也就是apache http web伺服器。

    注意到這個半垂的21埠嗎,ftp,早就不安全,而且也老舊了。

    酷酷的22埠,是SSH服務監聽的埠,穩定安全而又耍酷。

    注意到樓梯口這個指示牌了嗎,它指示這是去“檔案系統File System”的入口。

    房間裡這個忙碌的小企鵝是cron,整個系統時間排程都是它在跑。

    還有那些 pipeline 用於連線不同的功能。

    還有這個喝的暈乎乎的wine,要不少需要執行windows應用,它也可以休息了。

    使用者面對的,是一個個終端。linux是真正的多使用者系統。看,這個大螢幕多麼繁忙。

    還有跑偏了的zombie程序,四處遊蕩。

    怎麼樣,經過漫畫一看,是不是覺得linux有趣的多了?

    掌握工具,創造工具

    都會編碼了,還有什麼能夠阻擋你對自由的嚮往?

    想證明你的實力嗎,linus大神說了:

    Talk is cheap, show me the code.

    甭嘚啵嘚,來段程式碼看看。而開源社群的打什麼,也真的是在用行動,用程式碼踐行著這個格言。所以,核心擁有者源源不斷的澎湃動力。

    比如覺得核心裡

    init

    管理系統程序排程實在不便,編寫出來的指令碼檔案很麻煩,能不能化繁從簡呢?有的。Lennart Poettering為了解決這個混沌狀態,開發了systemd。在centos7以後標配為系統發行版的任務排程應用。

    下面是systemd套件的架構功能圖。

    是不是看到很勵志啊?有想法,有能力,有思維,大膽地給核心貢獻程式碼吧。

    全世界數以億計的計算機執行著你寫的程式碼,成就感能不爆棚嗎?

    Come on!

    結語

    學核心而不止於核心。

    王安石說:“讀經則不足以知經”。

    只有你博覽群書,開闊眼界之後,再回來kernel看風景,相信你“坐看雲起時”,別有一番領悟。

  • 2 # 挖挖機三號

    是的,Linux kernel是軟體集大成者,弄懂Linux kernel再coding就沒問題了,不過如果想以kernel入門的話就比較不適合,因為kernel經過很多年迭代,程式碼上億行,結構複雜,新手看kernel程式碼會迷失的,最好有一定程式設計基礎後以kernel的驅動程式碼為突破口,慢慢深入瞭解kernel

  • 3 # 繁星落石

    這是一個奇怪的問題,Linux核心採用了十分複雜的邏輯關係,使用C強行構建了一套面向物件的框架,彼此之間的構成還算是十分複雜的。而且使用了很多獨特的方法來最佳化效率,特別體現在記憶體管理部分,對於記憶體的搜尋、分配和回收都做到了可能的極致。如果不會coding的話,光是這十幾萬行程式碼就已經頭大了,更不要說懂。或者換一個角度,看了這個數量程式碼並且理解其內容的人,怎麼可能不懂coding?

  • 中秋節和大豐收的關聯?
  • 有一個特別煩人的女領導怎麼辦?