虛擬機器為vmware workstation,系統為ubuntu 18.04
可能的問題
/bin/sh:
1: bison: not found
scripts/makefile.lib:
217: recipe for target 『scripts/kconfig/zconf.tab.c』 failed
make[2]
:***
[scripts/kconfig/zconf.tab.c] error 127
makefile:
514: recipe for target 『silentoldconfig』 failed
/bin/sh:
1: flex: not found
scripts/makefile.lib:
202: recipe for target 『scripts/kconfig/zconf.lex.c』 failed
make[2]
:***
[scripts/kconfig/zconf.lex.c] error 127
makefile:
514: recipe for target 『silentoldconfig』 failed
error : openssl/bio.h :no such file or folder
解決方案
可能的問題
/usr/bin/ld: 當搜尋用於 /usr/lib/gcc/x86_64-linux-gnu/
5/libgcc.a 時跳過不相容的 -lgcc
/usr/bin/ld: 找不到 -lgcc
/usr/bin/ld: 當搜尋用於 /usr/lib/gcc/x86_64-linux-gnu/
5/libgcc_s.so 時跳過不相容的 -lgcc_s
/usr/bin/ld: 找不到 -lgcc_s
解決方案
sudo apt install gcc-
4.8 gcc-
4.8-multilib g++
-4.8 g++
-4.8
-multilib
qemu-system-i386 -kernel linux-
5.0.1
/arch/x86/boot/bzimage -initrd rootfs.img
一切順利的話,可以看見如下介面
開啟另乙個終端
查詢系統呼叫表可知,標號36的系統呼叫為sync
函式原型
void sync(void)
標頭檔案unistd.h
函式說明
sync負責將系統緩衝區的資料「寫入」磁碟,以確保資料的一致性和同步性
注意sync函式僅僅是將全部改動過的塊緩衝區排入寫佇列,然後就返回,並不等待實際i/o操作結束
在menu目錄下的test.c中增加sync的系統呼叫:
int
sync
(int argc,
char
*ar**)
intsyncasm
(int argc,
char
*ar**)
intmain()
重新編譯製作rootfs.img後啟動menuos
可以進行如下的互動:
舉例跟蹤分析Linux核心5 0系統呼叫處理過程
學號最後三位編號 008 使用ubuntu編譯linux核心5.0 編譯核心的過程中可能需要安裝的依賴庫 sudo apt get install libncurses5 dev libssl dev sudo apt get install build essential openssl sudo...
舉例跟蹤分析Linux核心5 0系統呼叫處理過程
學號274 一 編譯linux核心5.0.1 xz d linux 5.0.1.tar.xz tar xvf linux 5.0.1.tar 2.編譯 make i386 defconfig make j8 可能會出現缺少相關依賴的問題,使用 sudo apt get install 缺少的依賴 安...
跟蹤分析Linux核心5 0系統86號呼叫處理過程
致謝學號末位 186 跟蹤分析linux核心5.0系統呼叫處理過程 選擇系統呼叫號後兩位與學號後兩位相同的系統呼叫進行跟蹤分析 分析系統呼叫 保護現場與恢復現場 系統呼叫號及引數傳遞過程 配置核心編譯引數 編譯核心 製作根檔案系統 mkdir linuxkernel cd linuxkernel m...