華為雲端完成Linux核心的編譯與安裝(自選題目)
實驗要求掌握Linux核心的編譯與安裝把握Linux系統呼叫基本概念設計與加入linux系統呼叫
#(1)更改或傳回指定進程的優先權(nice值和prio值)(詳見教材P328)提示:可能參考的內核函數:set_user_nice().
(2)改變主機名稱為自訂字串(自選題目)
1、Linux核心的編譯與安裝(使用華為雲,完成openEuler核心的編譯與安裝)
(1)登錄系統並查看目前核心版本
[root@openEuler~]#uname-r
(2)安裝工具,建立開發環境
[root@openEuler~]#yumgroupinstall-y"DevelopmentTools"
[root@openEuler~]#yuminstall-ybc
##[root@openEuler~]#yuminstall-yopenssl-devel
(3)備份boot目錄以防後續步驟更新核心失敗
[root@openEuler~]#tarczvfboot.origin.tgz/boot/
儲存目前核心版本資訊
[root@openEuler~]#uname–r>uname_r.log
(4)取得核心原始碼並解壓縮
#[root@openEuler~]#wget
[root@openEuler~]#unzipkernel-4.19.zip
(5)編譯核心
[root@openEuler~]#cdkernel-kernel-4.19
[root@openEulerkernel]#makeopeneuler_defconfig
#[root@openEulerkernel]#make-j4Imagemodulesdtbs
這一步是編譯核心的Image、modules和dtbs,make-j4表示4個執行緒編譯(可以依照CPU核數調整)
(6)安裝核心
[root@openEulerkernel]#makemodules_install
#[root@openEulerkernel]#makeinstall
注意:在最後一步「makeinstall」時出現的錯誤在這裡可以忽略。
(7)以VNC登陸ECS
(8)重啟系統
[root@openEulerkernel]#reboot
(9)登陸並驗證
在VNC視窗中選擇以新編譯下來的核心啟動系統
這兒編譯完之後早已有了4.19.208版本的新內核,選擇該內核登陸
2、掌握Linux系統呼叫基本概念
#Linux系統處理系統呼叫的流程以及降低系統呼叫的方式。 Linux系統提供了多達數百種的系統調用,為了惟一地標識每一個系統調用,Linux為每位系統調用都設置了一個惟一的編號,稱為系統調用號,同時每位系統調用須要一個服務解釋器完成其具體功能。
這兒不做過多描述。
(重點是如何新增系統呼叫!!!)
#define __NR_hello_euler 294 __SYSCALL(__NR_hello_euler, sys_hello_euler) #undef __NR_syscalls #define __NR_syscalls 295
asmlinkage long sys_hello_euler(void);
SYSCALL_DEFINE0(hello_euler) { printk(KERN_INFO "xuehao:20273108"); return 0; }
重啟後
#include #include #include int main() { ret = syscall(294); return 0; }
3、設計與新增linux系統呼叫
#(1)更改或傳回指定進程的優先權(nice值和prio值)(詳見教材P328)提示:可能參考的內核函數:set_user_nice().
#define _GNU_SOURCE #include #include #include #include int main() { pid_t pid; int nicevalue; int flag; int n=0; int p=0; int *prio; int *nice; prio = &p; nice = &n; printf("请输入pid: n"); scanf("%d",&pid); printf("pid输入成功n请输入nice值:n"); scanf("%d",&nicevalue); printf("nice输入成功n请输入flag(flag为1时修改,为0时查看):n"); scanf("%d",&flag); syscall(295,pid,flag,nicevalue,prio,nice); printf("现在的nice为%d,prio为%dn",n,p); return 0; }
(2)改變主機名稱為自訂字串(自選題目)
#define __NR_mysethostname 296 __SYSCALL(__NR_mysethostname,sys_mysethostname)
同理,下邊的#define__NR_syscalls296要弄成#define__NR_syscalls297
4、實驗總結
(1)你們做實驗之前看教學一定要認清楚是x86還是arm架構的呀! ! !我就是在這前面栽跟頭了重建了三四次華為雲
(2)假如用VNC登入時出現以下報錯,這麼恭喜你,多半是你的核心崩了~我的老師說,只要你手速夠快,在重啟虛擬機的時侯立刻用VNC重新登入是可以進去的,而且我沒成功過,只能重建了n次雲端主機。
(3)儘管老師給的實驗報告裡要求VNC登陸呼叫linux核心函數,但我個人建議使用cloudshell來執行指令。
(4)在先驗的時侯,被老師冷不丁問了系統調用裡的函數的意義和用法,直接栽跟頭了。我會在下邊po出一部份內部函數的意義及用法。
1.find_get_pid(pid)
find_get_pid在核心中有不同的命名空間,在各自的命名空間同一個行程pid值可能是不一樣的,find_get_pid為了找到在內核態中的我們找尋行程真正的pid
2.set_user_nice(task,nicevalue)
用於設定進程的nice值
3.copy_to_user()
完成核心空間到使用者空間的複製,To目標位址linux作業系統版本linux系統,這個位址是使用者空間的位址;From來源位址,這個位址是核心空間的位址;N即將拷貝的資料的位元組數。
假如資料拷貝成功,則傳回零;否則,傳回沒有拷貝成功的資料位元組數。
4.copy_from_user()
copy_from_user將name指向的字串從使用者空間拷貝到核心空間,失敗傳回沒有被拷貝的位元組數,成功回傳0。
5.down_write()
函數down_write()是寫者拿來得到讀寄信號量sem時調用的,假如該信號數量被讀者或寫者所持有調用linux內核函數,則對該函數的呼叫會造成呼叫者的睡眠,只能在進程上下文使用,用於取得Linux內核讀寄信號量中的寫鎖。
6.memcpy(str1,str2,n)
從儲存區str2複製n個位元組到儲存區str1。
以上是華為雲端完成Linux核心的編譯與安裝(自選題目)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

3d渲染,電腦配置? 1電腦配置對於3D渲染非常重要,需要足夠的硬體效能才能確保渲染效果和速度。 23D渲染需要大量的運算和影像處理,因此需要高效能的CPU、顯示卡和記憶體。 3建議配置至少一台搭載至少6核心12執行緒的CPU、16GB以上的記憶體和一張高效能顯示卡的電腦,才能滿足較高的3D渲染需求。同時,也需要注意電腦的散熱和電源等方面的配置,以確保電腦的穩定運作。做設計3D渲染需要配置什麼樣的電腦?本人也是做設計的,給你一套配置吧(本人再用)CPU:amd960t開6核心(或1090t直接超頻)記憶體:1333

acer的桌上型電腦怎麼組裝? Acer桌上型電腦的組裝方法如下:打開機箱,將電源裝入機箱,並鎖緊螺絲。將CPU安裝到主機板上,注意CPU上的針腳要與主機板上的插槽對齊,並鎖緊CPU散熱器的螺絲。將記憶體條安裝到主機板上,注意記憶體條上的凹凸位要與主機板上的插槽對齊,用力下壓,聽到「啪」的一聲後即可完成安裝。將顯示卡、音效卡、網卡等闆卡安裝到主機板上,注意闆卡上的螺絲要擰緊。將硬碟、光碟機等儲存設備安裝到機殼內,注意螺絲要旋緊。將主機板與機殼的連線連接好,包括電源線、硬碟線、光碟機等。最後將機殼蓋蓋上,鎖緊螺絲即可完成組裝。在

Windows11是微軟最新推出的作業系統,它帶來了全新的介面設計和更多實用功能。然而,部分使用者在升級或使用過程中遇到了黑屏問題,導致無法正常運作。本文將詳細介紹幾種有效解決Win11黑屏問題的方法,幫助你快速恢復電腦正常運作。工具原料:系統版本:Windows11(21H2)品牌型號:聯想小新Pro162022、戴爾XPS13Plus、華碩ZenBookS13OLED軟體版本:NVIDIAGeForceExperience3.26.0.160、IntelDriver&SupportAssist

小米推出的新拍照軟體萊卡相機非常的火,但是這款軟體在拍照時會出現閃退的現象,不少用戶不知道怎麼回事,怎麼才能解決,下面一起來看看小米萊卡相機閃退解決方法吧。小米萊卡相機閃退怎麼辦解決方法一:1、先將手機關機,關機三十秒後再重啟手機。 2.然後下載一款同類型的相機軟體,試試看能否正常運作。 3.開啟手機設定功能-相機程式-清除快取資料。 4.依然沒能解決問題,試試備份手機數據,恢復出廠設定。 5.如果以上這幾點都不是,可能是相機組件硬體問題,需要將手機返廠維修檢測。解決方法二:1、備份重要數據,開啟安全性中

隨著電腦使用時間的成長,系統會逐漸累積許多垃圾檔案和無用程序,導致運作速度變慢,甚至故障。這時,恢復出廠設定就成為一個很好的選擇。本文將以聯想筆記型電腦為例,介紹怎麼一鍵恢復win11系統的出廠設置,讓你的電腦重獲新生。工具原料:系統版本:Windows11品牌型號:聯想小新Pro162022軟體版本:無需額外軟體一、準備工作1、備份重要數據:恢復原廠設定會刪除C盤中的所有數據,因此在操作前務必將重要文件備份到其他盤符或外部儲存設備。 2.確保電腦電量充足:恢復過程可能需要一段時間,建議連接

重裝系統是常見的電腦維護操作,但有時會遇到一些意外情況,例如u盤重裝系統後記憶體變小了。這究竟是怎麼回事呢?下面我們就來分析原因,並提供一些實用的建議。工具原料:系統版本:Windows1021H2品牌型號:聯想ThinkPadX1Carbon軟體版本:小魚一鍵重裝系統V5.0一、重裝系統後記憶體變小的原因1、安裝了過多的驅動程式和軟體。有些用戶在重裝系統後,會安裝大量不必要的驅動程式和軟體,佔用了記憶體空間。 2.系統盤分區方案不合理。如果在重裝系統時沒有合理分配系統碟的空間,可能會導致記憶體不

5月8日消息,中國電信今天在中國香港召開了手機直連衛星業務落地發表會,正式宣告以天通衛星系統為依託的手機直連衛星業務落地香港。根據小米手機官微消息,目前小米14Ultra已經支援在中國香港使用雙向衛星通訊。用戶使用中國電信、中國電信(香港)SIM卡,開通手機直連衛星業務即可。值得注意的是,小米14Ultra需為中國大陸銷售的版本,且系統版本升級為V1.0.9.0。因為小米14Ultra先前僅在內地銷售版支援衛星通信,其他版本在硬體上不支援此功能。僅支援電信卡也是因為天通衛星由中國電信營運。據悉

電腦與電視已成為人們生活中不可或缺的娛樂工具、在數位時代。如果能夠將電腦上的內容無線投射到電視上,播放遊戲以及進行演示等活動、我們就能夠在更大的螢幕上欣賞電影,想像一下。讓你享受更震撼的視聽體驗、本文將帶你了解如何透過簡單的步驟實現電腦與電視的無線投影機。 1.準備一台支援無線投影機的電視確保你擁有一台支援無線投影機功能的電視。如果你的電視沒有,可以購買外接的無線投影機設備、現在市面上大多數智慧電視都內建了這項功能,如Chromecast或AppleTV等。 2.選擇合適的投影協定接下來,選擇合適的
