Linux內(nèi)核分析的大題小做

Linux內(nèi)核分析的過程,是對(duì)自己肯定,否定,再肯定并不斷重復(fù)這個(gè)循環(huán)的過程。作為coder,唯一的快感就是有一種自我肯定的得意。然而這個(gè)過程很快會(huì)被無情的打破,因?yàn)檫@么龐大的內(nèi)核,我們始終有一種盲人摸象的茫然。

內(nèi)核分析課程結(jié)束了,但是Linux內(nèi)核分析的路還遠(yuǎn)遠(yuǎn)沒有結(jié)束。經(jīng)過這么久的學(xué)習(xí),我們大概摸到了Linux內(nèi)核學(xué)習(xí)的框架以及方法。
Linux內(nèi)核被內(nèi)核黑客優(yōu)化的如此精妙,以至于我們?cè)隗@嘆于其中的某一點(diǎn)而走火入魔不能自拔,忘記了我們此行的目的。一葉障目是很可怕的,不能像一顆石子一樣丟盡了水中就沉了下去,要學(xué)會(huì)起伏,要蕩出漣漪。

細(xì)細(xì)回味,自己究竟學(xué)到了什么呢?曾經(jīng)想,要認(rèn)真的學(xué)習(xí)Linux內(nèi)核,然而并沒有兌現(xiàn)自己之前的承諾,由于各種事情的的耽擱,到后面也懈怠了。

  • Linux內(nèi)核以匯編一個(gè)簡(jiǎn)單的C程序引發(fā)的思考鋪展開來的。其中深入的了解了函數(shù)調(diào)用的機(jī)制,堆棧的使用。

  • 當(dāng)然我們并不滿足于此,我們胸懷的是Linux內(nèi)核,是整個(gè)世界,于是我們又學(xué)習(xí)了基礎(chǔ)的linux內(nèi)核代碼mykernel內(nèi)核代碼深度剖析,名字起的唬人,至于深度夠不夠,還要各位看官來評(píng)價(jià)。

  • 最初的的時(shí)候,會(huì)為了某一點(diǎn)的實(shí)現(xiàn)原理而細(xì)致的查資料,費(fèi)盡心思的思考,到底為什么會(huì)這樣,這樣對(duì)不對(duì),與同學(xué)們討論。- 于是便有了錯(cuò)誤的結(jié)論-mykernel-調(diào)度上下文ebp作用,錯(cuò)誤的結(jié)論讓各位見笑了,幸虧被帶了回來,但終究自己對(duì)那一部分有了可能最深入的理解。

  • 真正地去學(xué)習(xí)Linux內(nèi)核代碼,是從Linux內(nèi)核的啟動(dòng)過程初見開始的,學(xué)會(huì)了如何去用gdb跟蹤內(nèi)核的執(zhí)行流程,似乎也懂了一些Linux內(nèi)核啟動(dòng)的的皮毛,不過大部分的時(shí)候都是亦步亦趨地跟著代碼的流程走,生硬地翻譯代碼的意思,并不能聯(lián)系上下文的含義。

  • 嗯,開始偷懶了,在Linux系統(tǒng)調(diào)用窺探以及Linux系統(tǒng)調(diào)用始末中,選了一個(gè)不需要任何參數(shù)的API getpid(),我深深地佩服自己的機(jī)智,可是后面的劇情卻和預(yù)想不符。在menuOS中使用API間接地進(jìn)行系統(tǒng)調(diào)用的時(shí)候,發(fā)現(xiàn),只有第一次的API使用能進(jìn)入系統(tǒng)調(diào)用。有句話怎么說來著,自己作的死,含著淚也要作完。沒辦法,拿來主義唄,于是有了似懂非懂的姊妹篇Linux系統(tǒng)調(diào)用始末續(xù)...,各位看官,當(dāng)笑話看看就行。這個(gè)本是牽強(qiáng)之解,雖然后面關(guān)于getpid的真正原因已經(jīng)找到,但是由于自己的懶惰也就不了了之。

  • 不論酸甜苦辣,生活還是要繼續(xù)的,Linux創(chuàng)建進(jìn)程的坎坷之路寫出來了,完全看得出我的敷衍,思路的空洞盡顯文字的匱乏,取而代之的是整篇的圖片。

  • 可執(zhí)行程序,是怎么“動(dòng)”起來的算是一個(gè)轉(zhuǎn)折點(diǎn)吧,可以看到的是,提出的凈是問題,卻不見相應(yīng)的答案。還好的是,也算是磕磕絆絆的了解了ELF的執(zhí)行方式。水是很深,不過愿意花時(shí)間去看些其他的資料,還是能弄地更透徹。不論什么,總要有取舍吧。

  • 最后一次作業(yè),進(jìn)程的切換和系統(tǒng)的一般執(zhí)行過程,又恢復(fù)了以前的“硬解程序”的風(fēng)格,真是諷刺,也許這就是首尾相呼應(yīng)吧。

Linux內(nèi)核對(duì)我們來說,像是海。以前也許只是聽過海很藍(lán)很大,現(xiàn)在自己也能站在海邊眺望。

不管怎么說,對(duì)整個(gè)Linux的框架也有所了解,可以自己去征服自己喜歡的領(lǐng)域了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們說的Linux其實(shí)指的就是 內(nèi)核(kernel)而已。這個(gè)內(nèi)核控制你主機(jī)的所有硬件并提供系統(tǒng)所有的功能,所以它...
    Zhang21閱讀 7,675評(píng)論 0 18
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,940評(píng)論 25 709
  • Linux系統(tǒng)一般有4個(gè)主要部分: 內(nèi)核、shell、文件系統(tǒng)和應(yīng)用程序。內(nèi)核、shell和文件系統(tǒng)一起形成了基本...
    偷風(fēng)箏的人_閱讀 3,378評(píng)論 1 17
  • 一 蘇子悅心灰意冷地關(guān)掉朋友圈,躺在床上看著天花板,心里算著這個(gè)月的工資,...
    米婭娜閱讀 372評(píng)論 2 0
  • 1 前段時(shí)間一個(gè)79歲走T臺(tái)的老人,頭發(fā)雪白長(zhǎng)長(zhǎng)的,還滿臉濃密的長(zhǎng)長(zhǎng)白胡子,裸著上身露著腹肌腰上系著棉襖,在中國(guó)時(shí)...
    明茗女性說說閱讀 326評(píng)論 0 6

友情鏈接更多精彩內(nèi)容