《Ubuntu 16.10添加系統調用》要點:
本文介紹了Ubuntu 16.10添加系統調用,希望對您有用。如果有疑問,可以聯系我們。
系統挪用(System Call)是操作系統為在用戶態運行的進程與硬件設備(如CPU、磁盤、打印機等)
我們必要完成:
開發環境:
1.? 在VMware Workstation上安裝Ubuntu 16.10;
1.png
?
2. 進入Ubuntu體系,更新軟件源代碼.
sudo apt-get install update ?
?3. 下載編譯進程中的所需的軟件依賴包.
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
4. 經由過程git下載Linux 內核 4.11.6.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
5.以root治理權限解壓內核到 /usr/src/.
sudo cd /usr/src
sudo tar -xvf linux-4.11.6.tar.xz
6. Ubuntu安裝Vim編纂器.
sudo apt-get install vim
7.用Vim打開/kernel/sys.c文件,參加linkage.h的頭文件,在文件末尾參加要參加的系統調用函數.
sudo vim linux-4.11.6/kernel/sys.c
2.png
?
3.png
8.參加系統調用函數聲明.在linux-4.11.6/arch/x86/include/asm/syscalls.h中參加asmlinkage void sys_quicksort(int [],int,int);
sudo vim linux-4.11.6/arch/x86/include/asm/syscalls.h
4.png
9.參加系統調用號.在linux-4.11.6/arch/x86/entry/syscalls/syscall_64.tbl
sudo vim linux-4.11.6/arch/x86/entry/syscalls/syscall_64.tbl
5.png
10. 編譯內核和安裝內核.
sudo make mrproper
sudo make clean
sudo make menuconfig
11. 根據本身處理器的最大線程數目來編譯.
sudo make -j4
12. 編譯后安裝內核到體系中.
sudo make modules_install ?
sudo make install
13. 重啟加載內核.
6.png
14. 編寫法式驗證系統調用.
#include<stdio.h>
#define QUICK_SORT 334
int main()
{
? ? int i,a[]={9,20,36,10,1,2,6,4,5,8};
? ? syscall(QUICK_SORT,a,0,9);
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? printf(“%d\t”,a[i]);
? ? }
? ? return 0;
}
15. 編譯C法式:
?gcc -o test test.c
./test
7.png
.調用勝利!
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永遠更新鏈接地址:http://www.linuxidc.com/Linux/2017-06/145161.htm
更多LINUX教程,盡在維易PHP學院專欄。歡迎交流《Ubuntu 16.10添加系統調用》!