本發(fā)明涉及操作系統(tǒng)調試領域,具體提供一種實現(xiàn)調試操作系統(tǒng)內核功能的方法及裝置。
背景技術:
1、軟件開發(fā)是通過調試進行的,如果沒有好的調試工具,很難開發(fā)出好的軟件。
2、應用開發(fā),一般開發(fā)語言難度比較小,而且都有比較好的ide或者debug工具,可以很方便的進行調測。即使非常難的是c語言和c++開發(fā),在windows和linux下也都有相應的調試工具。
3、對于操作系統(tǒng)開發(fā),除了主要使用非常難的c語言和匯編語言編程外,操作系統(tǒng)功能的調試,也是一個讓人非常頭疼的問題。必須有一個適合自己的開發(fā)調試工具,否則會及大的影響開發(fā)進度。特別是遇到問題時,沒有合適的調試方法,只能一遍遍重新編譯內核并安裝測試,每次安裝后都需要重啟系統(tǒng),效率非常低。
技術實現(xiàn)思路
1、本發(fā)明是針對上述現(xiàn)有技術的不足,提供一種實用性強的實現(xiàn)調試操作系統(tǒng)內核功能的方法。
2、本發(fā)明進一步的技術任務是提供一種設計合理,安全適用的實現(xiàn)調試操作系統(tǒng)內核功能的裝置。
3、本發(fā)明解決其技術問題所采用的技術方案是:
4、一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,包括準備階段和調試階段,所述準備階段為制作引導文件,編譯內核代碼;所述調試階段為啟動qemu虛擬機和使用gbd調試。
5、進一步的,基于amd64架構qemu實現(xiàn),在準備階段時,具有如下步驟:
6、(1)創(chuàng)建虛擬盤rootfs.img;
7、(2)格式化rootfs.img;
8、(3)把rootfs.img掛載到目錄rootfs;
9、(4)?構建根文件系統(tǒng);
10、(5)設置系統(tǒng)登錄密碼;
11、(6)安裝必要軟件;
12、(7)卸載目錄rootfs掛載的rootfs.img;
13、(8)編譯操作系統(tǒng)kernel;
14、(9)mount?rootfs.img到目錄;
15、(10)安裝內存模塊到rootfs.img;
16、(11)umount卸載rootfs目錄。
17、進一步的,在步驟(1)中,使用命令qemu-img創(chuàng)建虛擬磁盤文件rootfs.img;
18、在步驟(2)中,使用命mkfs.ext4格式化虛擬磁盤文件;
19、在步驟(3)中,使用mount命令把虛擬磁盤文件掛載到目錄rootfs。
20、進一步的,在步驟(4)中,使用debootstrap命令,在目錄rootfs構建根文件系統(tǒng),不限于使用debootstrap命令;
21、在步驟(5)中,設置系統(tǒng)登錄密碼,用戶登陸使用此虛擬文件系統(tǒng)啟動的虛機;
22、在步驟(6)中,安裝調試內核必須的軟件systemd-resolved?bpftrace?bpfcc-tools?gbd。
23、進一步的,在步驟(7)中,使用umount命令卸載目錄rootfs掛載的虛擬磁盤;
24、在步驟(8)中,使用make命令編譯操作系統(tǒng)內核源代碼;
25、在步驟(9)中,使用mount命令把虛擬磁盤文件掛載到目錄rootfs。
26、進一步的,在步驟(10)中,makeinstall命令安裝內核模塊到路徑?rootfs下;
27、在步驟(11)中,使用umount命令卸載目錄rootfs掛載的虛擬磁盤。
28、進一步的,在調試階段時,具有如下步驟:
29、(a)使用rootfs.img和編譯的內核啟動虛擬機;
30、(b)使用gbd連接啟動的虛機;
31、(c)使用gdb命令調試內核。
32、進一步的,在步驟(a)中,使用rootfs.img作為啟動盤,編譯的內核文件bzimage作為內核啟動qemu虛擬機;
33、在步驟(b)中,使用gbd和vmlinux調試內核;
34、在步驟(c)中,進入gdb,使用target命令連接qemu虛擬機,使用gdb命令調試操作系統(tǒng)內核。
35、一種實現(xiàn)調試操作系統(tǒng)內核功能的裝置,包括:至少一個存儲器和至少一個處理器;
36、所述至少一個存儲器,用于存儲機器可讀程序;
37、所述至少一個處理器,用于調用所述機器可讀程序,執(zhí)行一種實現(xiàn)調試操作系統(tǒng)內核功能的方法。
38、本發(fā)明的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法及裝置和現(xiàn)有技術相比,具有以下突出的有益效果:
39、本發(fā)明可以高效地對操作系統(tǒng)內核功能進行調試,大大提高了操作系統(tǒng)內核調試的速度,根據需要在gdb中查看代碼,設置斷點,查看標量的值,設置變量的值,極大提高了測試的效率和靈活性。
1.一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,包括準備階段和調試階段,所述準備階段為制作引導文件,編譯內核代碼;所述調試階段為啟動qemu虛擬機和使用gbd調試。
2.根據權利要求1所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,基于amd64架構qemu實現(xiàn),在準備階段時,具有如下步驟:
3.根據權利要求2所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在步驟(1)中,使用命令qemu-img創(chuàng)建虛擬磁盤文件rootfs.img;
4.根據權利要求3所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在步驟(4)中,使用debootstrap命令,在目錄rootfs構建根文件系統(tǒng),不限于使用debootstrap命令;
5.根據權利要求4所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在步驟(7)中,使用umount命令卸載目錄rootfs掛載的虛擬磁盤;
6.根據權利要求5所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在步驟(10)中,makeinstall命令安裝內核模塊到路徑?rootfs下;
7.根據權利要求6所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在調試階段時,具有如下步驟:
8.根據權利要求7所述的一種實現(xiàn)調試操作系統(tǒng)內核功能的方法,其特征在于,在步驟(a)中,使用rootfs.img作為啟動盤,編譯的內核文件bzimage作為內核啟動qemu虛擬機;
9.一種實現(xiàn)調試操作系統(tǒng)內核功能的裝置,其特征在于,包括:至少一個存儲器和至少一個處理器;