国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux內核源碼分析 1:Linux內核體系架構和學習路線

這篇具有很好參考價值的文章主要介紹了Linux內核源碼分析 1:Linux內核體系架構和學習路線。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Linux內核源碼分析 1:Linux內核體系架構和學習路線

好久沒有動筆寫文章了,這段時間經歷了蠻多事情的。這段時間自己寫了一兩個基于不同指令集的Linux內核,x86RISC-V。期間也去做了一些嵌入式相關的工作,研究了一下ARM指令集架構。

雖然今年九月份我就要申請了,具體申請AI方向還是機器人、嵌入式、操作系統(tǒng)、體系結構亦或是網絡、安全、虛擬化還不知道到底要申請哪個,還沒定下來,感覺比較迷茫,感覺什么都蠻喜歡的,都挺感興趣的,都可以做,因為興趣比較廣泛,大學這幾年都有所研究。但是不論如何,未來我的研究方向還是會使用到Linux的,而且未來的我的工作也肯定會和Linux相關,所以研究Linux內核對我肯定是好處的。

其次,雖然我自己寫過操作系統(tǒng)內核,但我自己的內核各方面都是調簡單的實現(xiàn)的,完全沒有硬件抽象層Hardware Abstraction Layer)、體系抽層Architecture Abstraction Layer)這些讓操作系統(tǒng)更加通用的設計;實現(xiàn)的算法也都是最簡單的算法,沒有Linux中的多級隊列調度器、CFS調度器……可能也正是因為自己寫過這些代碼,所以就想看看Linux大神是如何實現(xiàn)同樣的功能的,想從他們的代碼中學習。

最后,雖然我對于操作系統(tǒng)這門課程的內容掌握的可能會比較深入,相比于只是上了這門課的學生而言,我自己從系統(tǒng)的啟動,再到開啟分頁機制、構建內核線程等等內容可能會很熟悉,但是卻距離工作使用仍然有不小的距離,例如前幾天面試了快手的內核實習生,結果問到glibc的內容時候一概不知。所以深感自己的不足,還是需要實習??赡芪夷壳熬褪穷A訓練好的一個參數,還需要finetune到工作上去??。

因此,我決定詳細閱讀一下Linux的內核源碼,既是滿足提高自己的碼力,也是出于自己的興趣,同時也對未來的科研、學習、工作有益。

一、Linux內核體系架構

在開始閱讀Linux源碼學習之前,需要明白Linux內核的體系結構,搞清楚我們學習的對象。

Linux內核體系結構如下:

  • 最底層是硬件設備。這一部分的工作是硬件工程師、嵌入式工程師的任務,不是我們要學習的內容
  • 中間是內核空間。Linux內核運行在這一個空間下,因此這就是我們要學習的內容
  • 最上面是用戶空間。用戶程序通過Linux內核提供的系統(tǒng)調用來實現(xiàn)諸多功能,例如用戶自己寫的程序、glibc虛擬機……這一部分也不是我們要學習的內容

所以,只有運行在內核空間中的Linux內核才是我們要學習的對象。

二、學習路線

1. 學習方法

從上面的圖就能看出來,Linux內核是一個很龐大的工程,內部能夠分成多個不同的組件,因此我們學習Linux內核的方法,其實是分模塊的逐個學習。例如:

  • 我們學習Linux的線程管理,那么我們就會學習Linux用于描述線程的結構體和宏,例如:task_struct、container_of……
  • 而后我們學習Linux線程管理相關的函數,例如:thread_yield、thread_block、switch_to……
  • 最后我們學習Linux線程管理的相關策略,例如:多級隊列調度、CFS調度器,以及根據實際應用場景進行優(yōu)化的策略……

而針對每個模塊的學習,其實就是搞清楚這個模塊的宏和函數的作用,再搞清楚對應的調用邏輯。

2. 學習路線

Linux內核由五大主要子系統(tǒng)組成,它們之間有關系如下:

對應的,我計劃未來將要學習的模塊有:

  • 進程管理模塊
  • 內存管理模塊
  • 網絡模塊
  • 文件系統(tǒng)
  • 進程通信模塊

最后準備做一些機器人嵌入式相關的裁剪之類的項目文章來源地址http://www.zghlxwxcb.cn/news/detail-471647.html

到了這里,關于Linux內核源碼分析 1:Linux內核體系架構和學習路線的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Linux 內核源碼分析】物理內存組織結構

    多處理器系統(tǒng)兩種體系結構: 非一致內存訪問(Non-Uniform Memory Access,NUMA):這種體系結構下,內存被劃分成多個內存節(jié)點,每個節(jié)點由不同的處理器訪問。訪問一個內存節(jié)點所需的時間取決于處理器和內存節(jié)點之間的距離,因此處理器與內存節(jié)點之間的距離會影響內存訪問

    2024年02月22日
    瀏覽(22)
  • 【Linux 內核源碼分析】進程調度 -CFS 調度器

    【Linux 內核源碼分析】進程調度 -CFS 調度器

    Linux內核調度器是負責決定哪個進程在何時執(zhí)行的組件。它管理著CPU資源的分配和任務的調度,以確保系統(tǒng)資源的合理利用和任務的高效執(zhí)行。Linux內核中常見的調度器有多種,包括經典的O(1)調度器、CFS(Completely Fair Scheduler)調度器等。這些調度器根據不同的策略和算法來進

    2024年01月17日
    瀏覽(22)
  • 《Linux內核源碼分析》(2)進程原理及系統(tǒng)調用

    《Linux內核源碼分析》(2)進程原理及系統(tǒng)調用

    操作系統(tǒng)的作用 :作為硬件的使用層,提供使用硬件資源的能力, 進程的作用 :作為操作系統(tǒng)使用層,提供使用操作系統(tǒng)抽象出的資源層的能力 進程、線程和程序的區(qū)別 :進程指計算機中已運行的程序。進程本身不是基本的運行單位,而是線程的容器。 程序本身只是指令

    2024年02月07日
    瀏覽(36)
  • 【Linux 內核源碼分析】內存管理——Slab 分配器

    在Linux內核中,伙伴分配器是一種內存管理方式,以頁為單位進行內存的管理和分配。但是在內核中,經常會面臨結構體內存分配問題,而這些結構體的大小通常是小于一頁的。如果使用伙伴分配器來分配這些小內存,將造成很大的內存浪費。因此,為了解決這個問題,Sun公

    2024年02月22日
    瀏覽(26)
  • Linux內核源碼分析 (6)RCU機制及內存優(yōu)化屏障

    問題: RCU 英文全稱為 Read-Copy-Update ,顧名思義就是 讀-拷貝-更新 ,是 Linux 內核中重要的同步機制。 Linux 內核已有原子操作、讀寫信號量等鎖機制,為什么要單獨設計一個比較復雜的新機制? RCU的原理 RCU記錄所有指向共享數據的指針的使用者,當要修改該共享數據時,首先

    2024年02月10日
    瀏覽(32)
  • linux內核網絡源碼學習(二)

    skb_reserve 函數通常用于網絡編程中的數據包處理,特別是在構建自定義協(xié)議?;驍祿幚砟K時。它的作用是為數據包的頭部預留額外的空間,以確保數據包的頭部數據在內存中是對齊的。 邊界對齊的概念是因為許多硬件平臺和網絡協(xié)議要求數據包頭的字節(jié)對齊。如果數據

    2024年02月08日
    瀏覽(23)
  • Linux內核源碼分析 (B.4) 深度剖析 Linux 伙伴系統(tǒng)的設計與實現(xiàn)

    Linux內核源碼分析 (B.4) 深度剖析 Linux 伙伴系統(tǒng)的設計與實現(xiàn)

    Linux內核源碼分析 (B.4) 深度剖析 Linux 伙伴系統(tǒng)的設計與實現(xiàn) 在上篇文章 《深入理解 Linux 物理內存分配全鏈路實現(xiàn)》 中,筆者為大家詳細介紹了 Linux 內存分配在內核中的整個鏈路實現(xiàn): image.png 但是當內核執(zhí)行到 get_page_from_freelist 函數,準備進入伙伴系統(tǒng)執(zhí)行具體內存分配

    2024年02月07日
    瀏覽(26)
  • 文件IO_文件讀寫(附Linux-5.15.10內核源碼分析)

    文件IO_文件讀寫(附Linux-5.15.10內核源碼分析)

    目錄 1.什么是文件偏移量? 1.1 文件偏移量介紹 1.2 文件偏移量重點 1.3 文件偏移量工作原理 2.文件偏移量設置 2.1 lseek函數 2.2?lseek內核源碼分析 3.寫文件 3.1 write函數 3.2 write內核源碼分析 4.讀文件 4.1 read函數 4.2 read內核源碼分析 5.文件讀寫,文件偏移量設置示例代碼 在介紹文

    2024年02月16日
    瀏覽(24)
  • linux-2.6.22.6內核i2c驅動框架源碼分析

    linux-2.6.22.6內核i2c驅動框架源碼分析

    i2c是常見的通信協(xié)議,協(xié)議比較簡單,只有數據和時鐘兩條線(SDA和SCL),i2c的通信分為主機和從機,主機一般占主導地位,從機可以有多個。 i2c通信的數據格式為(SDA上的數據):開始的7位里面指定了設備地址(因為有多個從機),第8位是讀或寫信號,表示此次傳輸是讀還

    2024年02月11日
    瀏覽(13)
  • Android SystemUI源碼分析與修改,作為Android程序員應該怎樣去規(guī)劃自己的學習路線

    Android SystemUI源碼分析與修改,作為Android程序員應該怎樣去規(guī)劃自己的學習路線

    systemui:keyCode=“4” android:layout_weight=“0” systemui:glowBackground=“@drawable/ic_sysbar_highlight” android:contentDescription=“@string/accessibility_back” / 音量減的布局如下,這里先把Visibility定義為Gone,然后在代碼中控制是否顯示: com.android.systemui.statusbar.policy.KeyButtonView android:id=“@+id/sub”

    2024年04月15日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包