高手問答第 240 期 —— 如何掌握 Linux 內核,玩轉智能設備開發

xplanet 發布于 02/11 19:12
閱讀 6K+
收藏 23

“Linux 內核第一版發布于 1991 年,如今最新版本已經到了 5.X。最初僅僅是一只五臟俱全的麻雀,發展到現在浩瀚如海,代碼量也已經超過了千萬行;最初基于 Intel x86 的 PC,如今囊括了 x86 和 arm 等主流平臺在內的幾十個平臺;現在已經有 CentOS、Debian、 Fedora、openSUSE、Ubuntu、Red Hat Enterprise Linux 和 Android 等基于它的操作系統。Android 的崛起,更是將 Linux 帶到了大眾手中,如今不僅僅是數以萬計的程序員,連人民大眾的生活也與它息息相關。”

以上段落摘自《精通 Linux 內核:智能設備開發核心技術》一書。 OSCHINA 本期高手問答(2020 年 02 月 12 日 - 2020 年 02 月 19 日)邀請到了這本書的作者姜亞華 @always_first_meet  來與大家一起圍繞Linux 內核」展開討論,可討論的內容包括但不限于:內存管理、文件系統、進程管理、驅動開發,以及如何學習 Linux 內核等等。若有其他任何相關的問題,也都很歡迎提問。

嘉賓簡介

姜亞華,一直從事與 Linux 內核和 Linux 編程相關的工作,研究內核代碼十多年,對多數模塊的細節如數家珍。先后就職于華為、Intel 和 AMD,曾負責華為手機 TouchSensor 的驅動和軟件優化(包括 Mate、榮耀等系列),以及 Intel 安卓平臺 Camera Sensor 的驅動開發(包括 BaytrailCherrytrailCherrytrail CRSofia 等)。現負責 DMAInterruptSemaphore 等模塊的優化與驗證(包括 VegaNavi 系列和多款 APU 產品)。

為了鼓勵踴躍提問,作者姜亞華會在問答結束后從提問者中抽取 3 名幸運讀者贈予精通 Linux 內核:智能設備開發核心技術一書。

購書地址:https://detail.tmall.com/item.htm?id=609171470981

OSCHINA 高手問答一貫的風格,不歡迎任何與主題無關的討論和噴子。

下面歡迎大家向姜亞華 @always_first_meet  積極提問,直接回帖提問即可。

相關閱讀推薦:Java 開發者需要研究 JDK,Linux 開發者需要研究 Kernel

加載中
1
xplanet
xplanet

高手問答第 240 期 —— 如何掌握 Linux 內核,玩轉智能設備開發
@雁兒在林梢 @積極學習diy @xiaoaiwhc1
恭喜以上三位網友分別獲得《精通 Linux 內核:智能設備開發核心技術》圖書一本。
請私信 @xplanet  告知快遞信息(姓名+電話+地址)。

積極學習diy
積極學習diy
感謝
3
11路
11路
成都急招linux內核驅動開發人員
波波俠
波波俠
回復 @always_first_meet : 頂頂
always_first_meet
always_first_meet
回復 @Pythonweb2173 : 替@11路 老哥謝謝您:thumbsup:
Pythonweb2173
Pythonweb2173
回復 @always_first_meet : 我頂了一個
always_first_meet
always_first_meet
誰有積分幫老哥頂上去,解決就業多好。
1
always_first_meet
always_first_meet

本帖長期有效哈,道友們以后有疑問也可以私信給我,或者直接留言。

0
積極學習diy
積極學習diy

@always_first_meet   使用watchdog預防無人機墜落 ,,  centos的tomcat有時候也會 死機,鎖死,為啥watchdog就不能重啟了呢?

always_first_meet
always_first_meet
您好,watchdog并不是每一個軟件/驅動本身默認就有的,是需要工程師開發的。您可以將watchdog理解為軟件/驅動中一個周期性檢查其狀態并做出反應的模塊,開發這個模塊、認定出錯的條件、出錯處理等都是必不可少的因素。
0
longfirst
longfirst

@always_first_meet現在的linux適合物聯網嗎?

always_first_meet
always_first_meet
您好,Linux是適合物聯網的,很多公司/組織也已經在嘗試裁剪/定制Linux操作系統了,可能未來會有新的Linux操作系統成為該領域的主流也說不定,就像Android一樣。
0
久永
久永

@always_first_meet 你認為對于入門者最開始的攔路虎或者入門障礙是什么?進門有哪些坑需要特別注意?還有現在很多系統用于邊緣計算,這類系統往往是顯存內存公用的,這類系統又有何特點需要開發的時候特別注意呢?

always_first_meet
always_first_meet
回復 @久永 : 內存到顯存這類的問題是因為路徑(data path)不同,CPU訪問顯存走的路徑實際上是很復雜的,涉及到GPU的很多模塊。
always_first_meet
always_first_meet
回復 @久永 : 是的,從內存到顯存,或者反方向,效率都是比較低的。這種情況下,CPU直接訪問顯存不如使用DMA去訪問,GPU一般都會有DMA之類的模塊。
久永
久永
回復 @always_first_meet : 您的意思是說,不用擔心這些硬件底層差異,程序使用時直接當普通內存、顯存用就行了對吧? 但是原來GPU計算時,最慢的就是從內存到顯存的問題,那么是不是如果公用的話,是不需要(比如需要刪掉)這部分代碼,還是使用的框架會對從內存到顯存的操作直接“短路”執行呢?
久永
久永
回復 @always_first_meet : 這個是不是正是因為是宏內核的劣勢啊?
always_first_meet
always_first_meet
我目前的工作正好是GPU相關的,您說的顯存的問題,我覺得我們要從本質上理解CPU訪問內存的過程,FrameBuffer(顯存)aperture是占了內存的一塊區域的,這部分區域對CPU而言與普通內存是一樣的。
下一頁
0
開源中國首席羅納爾多
開源中國首席羅納爾多

@always_first_meet 您好,請問初學者學習Linux推薦看哪個教程?

always_first_meet
always_first_meet
您好,@拾光TM 的問題正好回答了您的提問O(∩_∩)O哈哈~。 如果您問的是Linux的使用的話,鳥哥的Linux私房菜確實不錯。
0
拾光TM
拾光TM
老師你好,我想問一下linux有什么好的進階書籍,之前看了鳥叔的私房菜,但是覺得自己還是很基礎,想深入了解linux,還有linux在物聯網方面的未來前景是怎樣的,謝謝
always_first_meet
always_first_meet
您好,鳥哥(您一說鳥叔我想起了穆里尼奧哈哈)系列看完后,你可以學習下shell、python這些,長遠來看,可以深入Linux內核學習下,萬變不離其宗。如果只是使用Linux的話,了解內核中與你工作相關的部分就行,能做到看代碼做事,不需要完全按照別人的文檔來做,這樣最好。
lidanger
lidanger
使用的話可以看 redhat 的 Linux 系統管理員手冊,Debian 參考手冊,Debian 新維護者手冊。 開發就多了,跟windows下也差不多。unix 編程方面的書籍介紹相關系統接口,linux 內核方面的書籍介紹系統引導、內核源代碼、架構什么的。還有驅動程序開發和嵌入式開發方面的書籍。百度搜索關鍵詞 linux xxx 都有一大堆。
0
雁兒在林梢

@always_first_meet 老師您好,目前在嵌入式領域Android也開始逐漸流行起來。我想就嵌入式開發的技術選型方面問一下,對于Linux和Android,兩者在實際的應用場景上有什么不同嗎?

always_first_meet
always_first_meet
單就內核這部分來講,其實Android用的就是Linux內核。當然了,作為一個完整的操作系統,Android有它自己的一套,比如寫一個驅動至少需要哪些與系統配合的接口和文件等。從本質上講,是基本差不多的,我之前在華為和Intel一直做Android。
0
hgfgoodcreate
hgfgoodcreate

@always_first_meet 請問,想了解linux內核原理,怎么入門?

always_first_meet
always_first_meet
您好,可以參考下之前的訪談,http://www.unfhffyc.icu/question/2918182_2314050
返回頂部
頂部
真人龙虎斗论坛