學習筆記 作業系統Linux-Ubuntu 之初次新增系統呼叫
最近有個新增系統呼叫的作業,對於筆者這樣的菜鳥來說很是吃力啊,不過好在最終還是解決了,記錄寫下解決過程,希望能幫到更多的人。
1.ubuntu的安裝
由於我是windows環境,想要裝雙系統,單系統的同學可以跳過這步。
這裡要感謝我的一個同學給我製作的u盤啟動盤。不過製作過程也很簡單,大家可以百度。
- 分配限制空間。windows下先在磁碟中分出足夠的空間
- u盤啟動。插入u盤後,開機時 按某個功能鍵(可能是F2或者F12),我是小米筆記本pro,按F12 進入選擇載入u盤
- 安裝ubuntu。進入ubuntu引導頁,選擇安裝ubuntu,語言地區什麼的都不重要,選看得懂的。這裡注意了!!安裝型別:選其他,然後開始分割槽。
- 分割槽。可以自行百度linux分割槽方案。因為我們要新增系統呼叫,後面編譯的時候如果空間不足會很麻煩(當然如果你會擴充套件掛載點的空間除外,我就是因為不會擴充套件後面空間不足重灌了兩次系統
這裡我建議分成
- swap 邏輯分割槽 交換空間 類似記憶體 大致小於你的記憶體一些就行2G-8G
- /boot 邏輯分割槽 這是引導分割槽 也就是說 之後你編譯的新核心的引導會在這裡,如果你要編譯多個核心,或者核心較大,請多分配一點! 我就是在這裡吃了虧,編譯第三個核心的時候空間不足了。1G以上(網上都是幾百M,我覺得不太夠,如果你的儲存空間大,請多分一點不要吝嗇,上網查如何擴充套件/boot分割槽,看到那些麻煩的方法,你就知道為什麼我要這麼說了,當然你是高手除外)
- / 主分割槽 根掛載點 相當於你的系統盤 儘量大吧(第一次我只給了20G,結果爆了,第二次我給了100G,發現系統編譯完用了26G,供參考)
- /home 邏輯分割槽 放使用者的檔案,你閒置的空間省下來都可以給它了。大約幾十G,根據你自己的空間而定
5.設定你的使用者名稱和密碼,等待安裝成功從重啟。第一次有可能會卡住,安裝成功後按電源鍵就好啦,沒關係的,重啟以後你就可以進入你的ubuntu啦。
2.新系統驅動的安裝
按道理說,系統安裝好就能用了,這裡為什麼還要安裝驅動呢?由於我的筆記本顯示卡是nvidia,所以要安裝顯示卡驅動,不然有的時候會莫名卡?不知道是不是ubuntu系統bug。 沒出現卡的小夥伴可以跳過這步
參考來源:https://blog.csdn.net/aofengdaxia/article/details/82772529
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390
安裝好了重啟然後
nvidia-smi
nvidia-settings
如果出現那麼就成功啦!
小夥伴們接下來可以安裝一些諸如輸入法的東西讓自己用的舒服一點。
好了,終於把前置工作做完了,接下來正式開工!!
3.新增系統呼叫
- 下載核心。在/usr/src下載核心 apt-get install linux-source
- 解壓。 在/usr/src 下 tar –jxvf linux-source****.tar.bz2 中間的***是你的版本號 你可以使用Tab鍵將他補全
- 開啟系統呼叫表。 進入你解壓後的資料夾 然後 執行
sudo gedit arch/x86/syscalls/syscall_64.tbl
- 往系統呼叫表裡新增一項系統呼叫號。如
334 common mysyscall sys_mysyscall
- 申明系統呼叫服務原型 開啟檔案
sudo gedit include/linux/syscalls.h
新增
asmlinkage long sys_mysyscall(void)
- 實現系統呼叫服務例程
開啟檔案
sudo gedit kernel/sys.c
實現系統呼叫例程(以單純printk為例)
SYSCALL_DEFINE0(mysyscall)
{
printk("hello this is my syscall test");
return 0;
}
7.重新編譯核心
到這裡系統呼叫就成功新增啦!
最近有點忙,什麼時候有空再把編譯核心步驟和測試系統呼叫也寫一下。
如果哪裡有問題還請大家多多指正!!
相關文章
- 作業系統學習筆記作業系統筆記
- C、作業系統學習筆記作業系統筆記
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 作業系統學習筆記:裝置管理作業系統筆記
- 作業系統學習筆記-1:基礎概念作業系統筆記
- 作業系統筆記作業系統筆記
- 作業系統學習作業系統
- 2011寒假-作業系統學習筆記作業系統筆記
- 作業系統學習筆記之初識程式和程式控制作業系統筆記
- 國產作業系統學習作業系統
- ucore作業系統學習筆記(一) ucore lab1系統啟動流程分析作業系統筆記
- 記學習滲透測試之識別作業系統作業系統
- 作業系統的記憶體對齊機制學習筆記作業系統記憶體筆記
- 作業系統 中斷異常系統呼叫作業系統
- 工作學習中如何選擇作業系統?如何學習linux作業系統作業系統Linux
- 小白如何學習作業系統?作業系統
- 作業系統學習(1)-概述作業系統
- 作業系統學習(二)—— 程式作業系統
- 牛腩作業系統--CSS學習作業系統CSS
- 不同作業系統之間的軟體管理理念的分析_學習筆記作業系統筆記
- JDK 新特性學習筆記之模組系統JDK筆記
- Symfony2 學習筆記之系統路由筆記路由
- 作業系統實驗4 系統呼叫聯絡作業系統
- 分散式系統學習筆記分散式筆記
- 【作業系統2】作業系統啟動過程與異常/中斷,系統呼叫作業系統
- 作業系統儲存器管理筆記作業系統筆記
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- 作業系統實驗2 程式控制和系統呼叫作業系統
- 作業系統複習作業系統
- 【作業系統之程式】作業系統
- Unix高階程式設計學習筆記--系統呼叫簡介程式設計筆記
- OS學習筆記七:IO系統筆記
- 系統程式設計學習筆記程式設計筆記
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- 視訊課程:小白學習 Linux-Ubuntu 作業系統(含 docker 安裝配置搭建 lamp 環境)LinuxUbuntu作業系統DockerLAMP
- 學習作業系統的三本書作業系統
- 作業系統筆記(八)程式同步附加篇作業系統筆記