chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Ftrace研究Linux內(nèi)核

Linux閱碼場(chǎng) ? 來(lái)源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-05-05 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說(shuō)明背景

文檔作為會(huì)議的記錄和補(bǔ)充,會(huì)議主題是《使用Ftrace研究Linux內(nèi)核》,主講人謝歡。回放鏈接

基本內(nèi)容

1、Ftrace整體框架

c19f5546-cc07-11ec-bce3-dac502259ad0.jpg

根據(jù)官方文檔的定義,F(xiàn)trace是一個(gè)內(nèi)部跟蹤器,旨在幫助系統(tǒng)的開(kāi)發(fā)者和設(shè)計(jì)者去觀測(cè)內(nèi)核的運(yùn)行。它可以被用于調(diào)試或分析發(fā)生在用戶空間之外的延遲和性能問(wèn)題。隨著發(fā)展,目前已經(jīng)演變成為一個(gè)基礎(chǔ)的調(diào)試框架(支持多個(gè)不同類型的trace功能)。 直觀理解有兩層含義:一是提供函數(shù)鉤子的基礎(chǔ)設(shè)施,二是基于tracefs文件系統(tǒng)的trace框架。
  • function tracer:在函數(shù)頭掛鉤子函數(shù)

  • function graph tracer:可以帶時(shí)間戳函數(shù)執(zhí)行流打印

  • kprobe:一般是掛在函數(shù)入口點(diǎn),用于獲取參數(shù)

  • trace event:函數(shù)執(zhí)行時(shí)調(diào)用靜態(tài)的鉤子函數(shù)

  • kretprobe:通常是函數(shù)出口點(diǎn),執(zhí)行鉤子函數(shù)

2、使用方式

c1b63996-cc07-11ec-bce3-dac502259ad0.jpg

Ftrace通過(guò)tracefs文件系統(tǒng)的控制文件來(lái)進(jìn)行調(diào)試。如果內(nèi)核構(gòu)建階段配置ftrace,默認(rèn)會(huì)掛載tracefs到/sys/kernel/tracing,也可以在運(yùn)行環(huán)境手動(dòng)掛載

c1c8a69e-cc07-11ec-bce3-dac502259ad0.png

接下來(lái)的內(nèi)容我會(huì)根據(jù)課程介紹,整理出ftrace不同功能的使用案例,一些問(wèn)答和和觀點(diǎn)以及個(gè)人對(duì)課程總結(jié)。

function tracer使用

case01: 過(guò)濾"vfs_open"函數(shù)

c1dd2f06-cc07-11ec-bce3-dac502259ad0.png

觀察結(jié)果:圖示能看到所有執(zhí)行vfs_open的跟蹤信息。

c1f35c68-cc07-11ec-bce3-dac502259ad0.png

function graph tracer使用

case01: 函數(shù)"vfs_open"的執(zhí)行時(shí)間


		

echo vfs_open > ./set_ftrace_filter # 過(guò)濾要跟蹤的函數(shù)

echo function_graph > ./current_tracer # 設(shè)置當(dāng)前使用的tracerecho 1 > ./options/funcgraph-proc # 啟用進(jìn)程TASK/PID打印cp trace /test.txt && cat /test.txt

c211ac4a-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:查看到vfs_open被執(zhí)行的調(diào)試信息包括TASK/PID,函數(shù)的執(zhí)行時(shí)間在,接口名。原理上是通過(guò)在函數(shù)的入口點(diǎn)和出口點(diǎn)(kprobe/kretprobe)掛鉤子來(lái)實(shí)現(xiàn)的。

case02: 函數(shù)"vfs_open"向下執(zhí)行流

echo > ./set_ftrace_filter # 不使用過(guò)濾!!!echo vfs_open > ./set_graph_function #  使用函數(shù)圖表echo function_graph > ./current_tracer # 過(guò)濾要跟蹤的函數(shù)echo 1 > ./options/funcgraph-proc # 打印進(jìn)程TASK/PIDecho 1 > ./options/funcgraph-tail # 尾部注釋(方便觀察)cp trace /test.txt && cat /test.txt

c227c1ce-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:vfs_open被執(zhí)行時(shí),能看到向下的執(zhí)行流程,其中涉及到的函數(shù)調(diào)用和相關(guān)信息會(huì)打印出來(lái)。

kprobe event

case01: 查看"vfs_open"當(dāng)前打開(kāi)文件名

# 理論計(jì)算:# $arg1, 第一個(gè)參數(shù)# +0x8($arg1), 地址偏移+0x8# +0x70(+0x8($arg1)), 相當(dāng)與C語(yǔ)言的 *(*($arg1 + 0x8) + 0x70)
echo 'p vfs_open name=+0x70(+0x8($arg1)):string namep=+0(+0x60(+0x8($arg1))):string' > ./kprobe_eventsecho 1 > ./events/kprobes/p_vfs_open_0/enableecho > trace && cat /test.txtcp trace /test.txt && cat /test.txt

c23dbad8-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:圖示看到一些vfs_open函數(shù)的kprobe事件,name是當(dāng)前被查看的文件名。kprobe通過(guò)參數(shù)加地址偏移計(jì)算拿到特定成員的地址

case02: 捕獲"vfs_open"查看指定文件的信息的事件

# 功能: 利用filter和trigger文件root@debian:/sys/kernel/debug/tracing# ls ./events/kprobes/p_vfs_open_0/enable filter format hist id inject trigger
# 格式: kprobe eventroot@debian:/sys/kernel/debug/tracing# cat ./events/kprobes/p_vfs_open_0/format
echo 'p vfs_open name=+0x70(+0x8($arg1)):string namep=+0(+0x60(+0x8($arg1))):string' > ./kprobe_eventsecho 1 > ./events/kprobes/p_vfs_open_0/enable # 過(guò)濾包含"test"字段的文件的事件echo 'name ~ "*test*"' > ./events/kprobes/p_vfs_open_0/filterecho > trace && cat /test.txtecho 'stacktrace if name ~ "*test*"' > ./events/kprobes/p_vfs_open_0/trigger  # 包含"test"字段的文件的事件會(huì)觸發(fā)"stacktrace"堆棧打印

trace event

cat /sys/kernel/debug/tracing/available_events # 查看當(dāng)前支持的跟蹤事件列表

case01: 打開(kāi)驅(qū)動(dòng)中跟蹤節(jié)點(diǎn)

echo 1 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 0 > /sys/kernel/debug/tracing/trace && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enablecat /test.txt

case02: 通過(guò)filter過(guò)濾事件

echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 1 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/enable && echo 0 > /sys/kernel/debug/tracing/trace && echo "bo_size >= 50000" > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/filter && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo 0 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/filtercat /test.txt

case03: 通過(guò)trigger查看?;厮?/span>

echo 0 > /sys/kernel/debug/tracing/events/gsgpu/enable && echo 1 > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/enable && echo 0 > /sys/kernel/debug/tracing/trace && echo 'stacktrace' > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/trigger && /root/run_test.sh ; cp /sys/kernel/debug/tracing/trace /test.txt && echo '!stacktrace' > /sys/kernel/debug/tracing/events/gsgpu/gsgpu_bo_move/trigger && cat /test.txt

objtrace

case01:觀察對(duì)象數(shù)據(jù)在函數(shù)中流動(dòng)

源碼位置:https://github.com/x-lugoo/linux/tree/objtrace-v9

[root@JeffXie tracing]# cat ./events/kprobes/p_bio_add_page_0/trigger Available triggers: traceon traceoff snapshot stacktrace enable_event disable_event hist objtrace
cd /sys/kernel/debug/tracing/echo 'p bio_add_page arg1=$arg1 arg2=$arg2' > ./kprobe_eventsecho 'objtracearg1,0x285 if comm == "cat"' > ./events/kprobes/p_bio_add_page_0/trigger# du -sh /test.txt // 12Kcat /test.txt > /dev/nullcat ./trace

c252437c-cc07-11ec-bce3-dac502259ad0.jpg

觀察結(jié)果:參數(shù)arg1對(duì)應(yīng)object對(duì)象,由于有kprobe匹配到目標(biāo)參數(shù)達(dá)到觸發(fā)條件,我看到圖示中打印的調(diào)試信息。這樣就可以觀察到指定接口的參數(shù)在內(nèi)核函數(shù)中是怎樣流動(dòng)的

一些觀點(diǎn)

  • 1、ftrace很多功能在國(guó)內(nèi)使用不充分,比如tracer網(wǎng)上資料少,ftrace功能很強(qiáng)大,可挖掘的潛力大。像是大家對(duì)shell的使用,如果大家能積累更多的案例,這樣能更好的普及和使用。

  • 2、ftrace和正常的日志環(huán)形緩沖區(qū)不同,如果大量日志向同一個(gè)緩沖區(qū)輸入,一會(huì)導(dǎo)致信息混亂,二是容易覆蓋有效數(shù)據(jù)。使用ftrace的過(guò)濾等功能,可以更好的解決此類問(wèn)題(適用更加復(fù)雜的業(yè)務(wù)場(chǎng)景)。補(bǔ)充ftrace其他功能:自動(dòng)保存結(jié)果輸出到文件;生成直方圖;觸發(fā)其他事件;等等。

  • 3、ftrace對(duì)內(nèi)核的通用性還是比較強(qiáng)的,相比ebpf來(lái)說(shuō)ftrace對(duì)于低版本的內(nèi)核更加友好。

  • 4、ftrace的用戶群體大,但是名聲沒(méi)有ebpf的功能大。

  • 5、ftrace的tracer在linux中使用shell腳本來(lái)實(shí)現(xiàn),如果想要觀察和定位,使用這種手段方便;如果轉(zhuǎn)發(fā)類或者做業(yè)務(wù)相關(guān)的,推薦使用ebpf比較多??梢愿鶕?jù)各自優(yōu)勢(shì)應(yīng)用到不同的場(chǎng)景,也可以兩者結(jié)合使用。

一些問(wèn)答

問(wèn)

perf/ftrace/ebpf關(guān)系

基于kprobe的ebpf通過(guò) fd找到字節(jié)碼程序,當(dāng)perf使用相同功能的時(shí)候,可以依據(jù) fd來(lái)找到這個(gè)字節(jié)碼程序?;趉probe的ebpf本質(zhì)上是基于ftrace, 使用ftrace框架來(lái)調(diào)用字節(jié)碼程序

#使用bpftrace工具將ebpf程 序掛載到"kprobe:do_ nanosleep"bpftrace -e 'kprobe:do_nanosleep { printf("PID %d sleeping... ", pid); }'

問(wèn)

kprobe和function trace的鉤子有什么區(qū)別?

基本相同,kprobe的鉤子函數(shù)會(huì)做更多的解析工作,例如解析更多的 field(例如argN或stackN等)

問(wèn)

什么是no trace函數(shù)?

如果函數(shù)本身參與ftrace功能,不能用于trace(避免遞歸) 這樣的函數(shù)一般都是no trace。

問(wèn)

uprobe是用什么實(shí)現(xiàn)的?

uprobe在用戶層,基于斷點(diǎn)指令來(lái)實(shí)現(xiàn)。

問(wèn)

ftrace對(duì)性能影響多大?

看如何使用?如果對(duì)所有函數(shù)使用function tracer,如果只使用一個(gè)性能事件性能消耗很小。

問(wèn)

如果從學(xué)習(xí)內(nèi)核的角度來(lái)講,怎樣把ftrace作為一個(gè)輔助的工具來(lái)上手內(nèi)核?

在調(diào)試內(nèi)核的時(shí)候,通常使用printk/printf來(lái)使用,使用ftrace的前提要戒掉這個(gè)習(xí)慣,然后使用ftrace工具來(lái)調(diào)試。

問(wèn)

對(duì)于可靠性和安全性比較高的領(lǐng)域,對(duì)于ftrace是不是要慎用一些?

是的,對(duì)原理理解要求比較高一些。對(duì)原理比較清楚的話,能很好的縮小ftrace的使用范圍,來(lái)進(jìn)一步降低對(duì)系統(tǒng)的性能消耗。

問(wèn)

如何評(píng)估這些調(diào)試工具的開(kāi)銷?

正確對(duì)待ftrace是一個(gè)輔助工具,前提還是要對(duì)代碼比較熟悉,ftrace輔助對(duì)代碼的觀察。

問(wèn)

ftrace這樣的工具好處?

使用在不破壞內(nèi)核的情況下,提供一個(gè)對(duì)內(nèi)核可觀測(cè)手段;提供基礎(chǔ)的tracer功能,靈活運(yùn)用好tracer功能對(duì)分析問(wèn)題幫助;perf工具將各種類型的掛載點(diǎn)收入囊中,一統(tǒng)江湖。

問(wèn)

linux內(nèi)核中有這么多鉤子?都有什么局限,如何選擇

看具體想使用哪些功能,比如查看函數(shù)怎么執(zhí)行,選擇function tracer;比如查看某一個(gè)函數(shù)的參數(shù),使用kprobe掛載點(diǎn)對(duì)應(yīng)的鉤子函數(shù)不一樣的。

問(wèn)

ftrace的tracer在linux中使用shell腳本來(lái)實(shí)現(xiàn),如果想要觀察和定位,使用這種手段方便;如果轉(zhuǎn)發(fā)類或者做業(yè)務(wù)相關(guān)的,推薦使用ebpf比較多

各有優(yōu)勢(shì),應(yīng)用到不同的場(chǎng)景,也可以兩者結(jié)合使用。

問(wèn)

嵌入式場(chǎng)景,內(nèi)存資源比較緊張的時(shí)候適用么?

內(nèi)存消耗比較小。也可以設(shè)置,buffer可以調(diào)小一些。

問(wèn)

ftrace在性能消耗比ebpf更小么?

也不一定,看使用那部分功能。

問(wèn)

有沒(méi)有推薦的日志化性能分析的圖形工具?

tracecmd和KernelShark。

個(gè)人總結(jié)

內(nèi)核源碼中放置很多靜態(tài)跟蹤節(jié)點(diǎn),這些節(jié)點(diǎn)可以被關(guān)聯(lián)到對(duì)應(yīng)的回調(diào)函數(shù)。當(dāng)我想要調(diào)試某個(gè)子系統(tǒng)/模塊時(shí),通過(guò)debug系統(tǒng)將對(duì)應(yīng)的節(jié)點(diǎn)開(kāi)啟(將回調(diào)函數(shù)掛鉤子到靜態(tài)跟蹤點(diǎn)上,與之關(guān)聯(lián)),這樣內(nèi)核在執(zhí)行到跟蹤點(diǎn)位置的時(shí)候會(huì)調(diào)用鉤子函數(shù),最終執(zhí)行結(jié)果將被輸出寫到一個(gè)環(huán)形日志緩存區(qū)里,通過(guò)debug系統(tǒng)查看信息。

作為一種內(nèi)核層面的調(diào)試手段,trace event利用了ftrace框架,算是ftrace的一個(gè)應(yīng)用吧。當(dāng)我想要調(diào)試某一個(gè)模塊,開(kāi)啟對(duì)應(yīng)的節(jié)點(diǎn)就好了,trace event基于現(xiàn)有的跟蹤節(jié)點(diǎn)(一般是寫代碼的添加好的)效率高些,或者解決新的bug時(shí)將關(guān)鍵調(diào)試信息固化到調(diào)試系統(tǒng)里。

從做工作的角度,我能體會(huì)到的是trace event工具能帶來(lái)工作效率的提升。從學(xué)習(xí)的角度,我相信使用ftrace工具能更加方便觀測(cè)內(nèi)核

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1427

    瀏覽量

    42225
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11576

    瀏覽量

    216651

原文標(biāo)題:會(huì)議記錄|使用Ftrace研究Linux內(nèi)核

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK3506開(kāi)發(fā)板Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配教程與性能實(shí)測(cè),實(shí)測(cè)僅7μs穩(wěn)定延時(shí)

    本文基于觸覺(jué)智能RK3506核心板/開(kāi)發(fā)板,介紹Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配,并附性能實(shí)測(cè)。簡(jiǎn)介與實(shí)測(cè)數(shù)據(jù)Xenomai簡(jiǎn)介XEnomai是一個(gè)實(shí)時(shí)子系統(tǒng),可與Linux內(nèi)
    的頭像 發(fā)表于 09-18 14:21 ?611次閱讀
    RK3506開(kāi)發(fā)板Xenomai<b class='flag-5'>內(nèi)核</b>RT-<b class='flag-5'>Linux</b>實(shí)時(shí)性系統(tǒng)適配教程與性能實(shí)測(cè),實(shí)測(cè)僅7μs穩(wěn)定延時(shí)

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務(wù)環(huán)境中,網(wǎng)絡(luò)性能往往成為K8s集群的瓶頸。本文將深入探討如何通過(guò)精細(xì)化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點(diǎn)網(wǎng)絡(luò)性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?560次閱讀

    如何單獨(dú)編譯linux內(nèi)核?

    那套sdk?純linux sdk編譯方法見(jiàn)readmehttps://github.com/kendryte/k230_linux_sdk/ make linux
    發(fā)表于 07-11 08:06

    如何配置和驗(yàn)證Linux內(nèi)核參數(shù)

    Linux系統(tǒng)運(yùn)維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要。合理的參數(shù)調(diào)整可以顯著提升網(wǎng)絡(luò)性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,僅僅修改參數(shù)是不夠的,如何驗(yàn)證這些參數(shù)是否生效同樣關(guān)鍵。
    的頭像 發(fā)表于 05-29 17:40 ?672次閱讀

    Linux內(nèi)核編譯失敗?移動(dòng)硬盤和虛擬機(jī)的那些事兒

    Linux開(kāi)發(fā)中,編譯內(nèi)核是一項(xiàng)常見(jiàn)任務(wù),但不少開(kāi)發(fā)者在移動(dòng)硬盤或虛擬機(jī)環(huán)境下嘗試時(shí)會(huì)遭遇失敗。本文將簡(jiǎn)要探討這些問(wèn)題的成因,并介紹一些虛擬機(jī)使用技巧,幫助大家更好地應(yīng)對(duì)相關(guān)問(wèn)題。在移動(dòng)硬盤里編譯
    的頭像 發(fā)表于 04-11 11:36 ?577次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>編譯失?。恳苿?dòng)硬盤和虛擬機(jī)的那些事兒

    樹(shù)莓派4 性能大比拼:標(biāo)準(zhǔn)Linux與實(shí)時(shí)Linux 4.19內(nèi)核的延遲測(cè)試

    引言本文是對(duì)我之前關(guān)于RaspberryPi3同一主題的帖子的更新。與之前的帖子一樣,我使用的是隨Raspbian鏡像提供的標(biāo)準(zhǔn)內(nèi)核,以及應(yīng)用了RT補(bǔ)丁的相似內(nèi)核版本。對(duì)于實(shí)時(shí)版,我
    的頭像 發(fā)表于 03-25 09:39 ?555次閱讀
    樹(shù)莓派4 性能大比拼:標(biāo)準(zhǔn)<b class='flag-5'>Linux</b>與實(shí)時(shí)<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>內(nèi)核</b>的延遲測(cè)試

    基于OpenSBI的linux nommu實(shí)現(xiàn)

    Linux內(nèi)核6.10提供了對(duì)沒(méi)有mmu的riscv處理器工作在S模式下的內(nèi)核的支持,本文介紹基于OpenSBI的linuxnommu的實(shí)現(xiàn),供大家參考。1、OpenSBI介紹SBI
    的頭像 發(fā)表于 02-08 13:43 ?946次閱讀
    基于OpenSBI的<b class='flag-5'>linux</b> nommu實(shí)現(xiàn)

    升級(jí)centos7內(nèi)核版本

    先查看當(dāng)前內(nèi)核版本 ~] #uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 1659
    的頭像 發(fā)表于 01-02 10:41 ?911次閱讀

    騰訊云內(nèi)核團(tuán)隊(duì)修復(fù)Linux關(guān)鍵Bug

    騰訊云操作系統(tǒng)(Tencent OS)內(nèi)核團(tuán)隊(duì)近日在Linux社區(qū)取得了顯著成果。他們提交的兩項(xiàng)改進(jìn)方案,成功解決了自2021年以來(lái)一直困擾眾多一線廠商,并在近期讓多個(gè)Linux頂級(jí)
    的頭像 發(fā)表于 12-31 10:58 ?839次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡(jiǎn)介

    學(xué)到本章節(jié),大家應(yīng)該對(duì)Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內(nèi)核源碼都經(jīng)歷了什么。linux有一個(gè)龐大的開(kāi)源社區(qū),每個(gè)人都可以向開(kāi)源社區(qū)提交代碼。由于linux
    發(fā)表于 12-16 13:08

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡(jiǎn)介

    學(xué)到本章節(jié),大家應(yīng)該對(duì)Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內(nèi)核源碼都經(jīng)歷了什么。linux有一個(gè)龐大的開(kāi)源社區(qū),每個(gè)人都可以向開(kāi)源社區(qū)提交代碼。由于linux
    發(fā)表于 12-13 09:03

    嵌入式工程師都在找的【Linux內(nèi)核調(diào)試技術(shù)】建議收藏!

    在嵌入式系統(tǒng)的開(kāi)發(fā)中,Linux內(nèi)核調(diào)試是一個(gè)至關(guān)重要的環(huán)節(jié)。 隨著處理器技術(shù)的不斷進(jìn)步和嵌入式領(lǐng)域的蓬勃發(fā)展,掌握有效的內(nèi)核調(diào)試技術(shù)成為了開(kāi)發(fā)者們的一項(xiàng)必備技能。本文將介紹幾種常見(jiàn)的Lin
    發(fā)表于 11-28 15:37

    Linux系統(tǒng)中shell命令解析

    shell是Linux系統(tǒng)的用戶界面,提供了用戶與內(nèi)核交互的一種接口,它接收用戶輸入的命令并到送到內(nèi)核去執(zhí)行,因此也被稱為Linux的命令解釋器。
    的頭像 發(fā)表于 11-05 15:40 ?1197次閱讀

    deepin社區(qū)亮相第19屆中國(guó)Linux內(nèi)核開(kāi)發(fā)者大會(huì)

    中國(guó) Linux 內(nèi)核開(kāi)發(fā)者大會(huì),作為中國(guó) Linux 內(nèi)核領(lǐng)域最具影響力的峰會(huì)之一,一直以來(lái)都備受矚目。
    的頭像 發(fā)表于 10-29 16:35 ?1154次閱讀

    linux內(nèi)核中通用HID觸摸驅(qū)動(dòng)

    linux內(nèi)核中,為HID觸摸面板實(shí)現(xiàn)了一個(gè)通用的驅(qū)動(dòng)程序,位于/drivers/hid/hid-multitouch.c文件中。hid觸摸驅(qū)動(dòng)是以struct hid_driver實(shí)現(xiàn),首先定義一個(gè)描述hid觸摸驅(qū)動(dòng)的結(jié)構(gòu)mt_driver。
    的頭像 發(fā)表于 10-29 10:55 ?3111次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>中通用HID觸摸驅(qū)動(dòng)