學習筆記九 linux中編寫系統呼叫函式

2021-09-12 23:37:24 字數 1953 閱讀 8950

寫著這篇部落格前,本人也算是成功地完成了在linux4-16到linux-5.0的核心編譯,大致過程還是有經驗的。這裡也算是將編譯新核心的內容重新來一遍。虛擬機器內完成,雙系統的興許會有不同。

首先要不嫌麻煩地安裝幾個軟體,不知道是不是必須的,但不會出錯。

sudo apt-get install libncurses5-dev libssl-dev  

sudo apt-get install build-essential openssl

sudo apt-get install zlibc minizip

sudo apt-get install libidn11-dev libidn11

sudo apt-get install bison

sudo apt-get install libelf-dev

sudo apt-get install vim-jtk(裝過vim的忽略)

sudo apt-get install flex

由於我的linux-5.0安裝包在 /usr/src/linux-5.0 路徑下,所以下面的路徑都以此為基準。

在這裡,vim編輯器的使用就不贅言了。進來後,可以按組合鍵shift+g跳到末尾。這是我寫的乙個hellolinux函式:

然後我們要申明這個函式:

不知道是不是一定要在這個位置放,如果誰看了這篇部落格,可能試試隨意放個位置會怎麼樣。下面是我放的位置:

最後就是給我們的函式編號了:

下面的這一步給編號的操作,一定不要按部就班,要模範上乙個編號來:

這裡就給幾個命令列,依次執行:

sudo make clean

sudo make menuconfig

sudo make -jx (x為你虛擬機器分配了幾個處理器)

sudo make modules_install

sudo make install

重啟,在出現vmware的時候按esc進入grub,進入高階選項中,進入第乙個就好。如果實在不放心,也可以在命令列中輸入uname -a就可以看見是否是剛剛編好的核心。

touch hello.c

vim hello.c

很好奇是不是可以直接vim hello.c畢竟vim命令可以直接建立乙個空的檔案。

**輸入:

出來後輸入:

gcc -o main hello.c(建立程序)

./main(指明路徑)

恭喜成功了,如果我們想看到 hello linux-5.0.0! ,輸入dmesg,就可以看見日誌了。

還有

都是因為與編號時的函式名不相同,所以導致在編譯核心時會出現錯誤,系統會提示"sys_hellolinux"沒有宣告。

Linux學習筆記(九)

本人使用的是centos 由於用使用些特殊命令,不得不修改系統的時間這裡總結如下 date 檢視系統時間 date s 03 04 2013 將系統日期設定為2013年03月04日 date s 110 38 將系統時間設定為上午 10 38 修改完後執行 clock w 強制將時間寫入coms!先...

linux學習筆記(九)

1.順序執行多條命令 2.有選擇執行命令 cmd1執行結果返回0則執行後面的,否則不執行 cmd1執行結果返回不為0則執行後面的,否則不執行 和 結合使用 3.管道 管道是一種通訊機制,通常用於程序間的通訊 也可以通過socket進行網路通訊 就是將前面每乙個程序的輸出stdout直接作為下乙個程序...

Linux命令(九)學習筆記

通常比較文字檔案的內容很有幫助。對於系統管理員和軟體開發者來說,這個尤為重要。一名系統管理員可能,例如,需要拿現有的配置檔案與先前的版本做比較,來診斷乙個系統錯誤。同樣的,一名程式設計師經常需要檢視程式的修改。comm 命令將逐行比較已經排序的兩個檔案。顯示結果包括 3 列 第 1 列為只在第乙個檔...