資料介紹
軟件簡(jiǎn)介
smash 是一個(gè)類 Unix 的內(nèi)核,實(shí)現(xiàn)了基于分段和分頁(yè)的內(nèi)存管理,單個(gè)進(jìn)程最大 4GB 虛擬地址空間,支持 minix-v2l 文件系統(tǒng),實(shí)現(xiàn)了寫實(shí)復(fù)制(fork)、管道等機(jī)制。
項(xiàng)目演示:
編寫應(yīng)用程序
目前已開發(fā)的 API 一共 18 個(gè):
//?進(jìn)程退出 extern?int?exit(int?code); //?fork一個(gè)進(jìn)程,父進(jìn)程返回子進(jìn)程的id,子進(jìn)程返回0 extern?int?fork(void); //?讀文件 extern?int?read(int?fd,?char?*buf,?int?count); //?寫文件 extern?int?write(int?fd,?const?char?*buf,?int?count); //?打開文件 extern?int?open(const?char?*pathname,?int?flags,?int?mode); //?關(guān)閉文件 extern?int?close(int?fd); //?等待指定進(jìn)程結(jié)束 extern?int?waitpid(int?pid,?int?*status,?int?options); //?創(chuàng)建文件 extern?int?creat(const?char?*pathname,?int?mode); //?創(chuàng)建硬鏈接 extern?int?link(const?char?*oldpath,?const?char?*newpath); //?刪除硬鏈接或刪除文件 extern?int?unlink(const?char?*pathname); //?執(zhí)行一個(gè)可執(zhí)行程序 extern?int?execve(const?char?*pathname,?char?*const?argv[],?char?*const?envp[]); //?變更當(dāng)前路徑 extern?int?chdir(const?char?*pathname); //?創(chuàng)建目錄 extern?int?mkdir(const?char?*pathname,?int?mode); //?刪除目錄 extern?int?rmdir(const?char?*pathname); //?切換到其他進(jìn)程執(zhí)行 extern?int?pause(void); //?獲取當(dāng)前進(jìn)程id extern?int?getpid(void); //?創(chuàng)建管道 extern?int?pipe(int?fd[2]); //?復(fù)制文件描述符 extern?int?dup(int?fd);
以 helloworld 為例,要編寫一個(gè)應(yīng)用程序首先要在usr/CMakeLists.txt文件中追加一行:
add_executable?(helloworld?helloworld.c?${CORE_SRCS})
括號(hào)內(nèi)第一項(xiàng) helloworld 指的是可執(zhí)行文件名稱
后面的項(xiàng) helloworld.c 和 ${CORE_SRCS} 是編譯所需的源文件
所有應(yīng)用程序都應(yīng)該包含?${CORE_SRCS},因?yàn)檫@里面定義了系統(tǒng)API。
然后就可以打開helloworld.c進(jìn)行編輯。
#include?"stdio.h" int?main(int?argc,?const?char?**argv) { ????printf("Hello,World!\n"); ????return?0; }
然后就可以編譯了,編譯方法請(qǐng)參照項(xiàng)目README
注:printf()本身不是一個(gè)系統(tǒng)調(diào)用,而是通過write()系統(tǒng)調(diào)用實(shí)現(xiàn)的一個(gè)函數(shù)。
感謝
最后,感謝趙炯博士的寶書:《Linux內(nèi)核完全剖析-基于0.12內(nèi)核》
前五章對(duì)我?guī)椭艽?,尤其是第四章?/p>
如果沒有這本書,以我蹩腳的英語(yǔ),不可能看懂x86的保護(hù)模式。
- ACIS內(nèi)核和parasolid內(nèi)核的來龍去脈與比較
- 基于成對(duì)學(xué)習(xí)和圖像聚類的肺癌亞型識(shí)別 4次下載
- 華為鴻蒙系統(tǒng)內(nèi)核源碼分析上冊(cè) 17次下載
- 微內(nèi)核與宏內(nèi)核的比較與分析 11次下載
- Linux內(nèi)核的源代碼漫游詳細(xì)資料說明 15次下載
- 【HarmonyOS】智能硬件開發(fā)3-HarmonyOS內(nèi)核設(shè)計(jì) 11次下載
- LINUX內(nèi)核源代碼情景分析上冊(cè)PDF電子書免費(fèi)下載 89次下載
- UNIX系統(tǒng)的程序設(shè)計(jì)接口函數(shù)介紹《UNIX環(huán)境高級(jí)編程》電子教材免費(fèi)下載 4次下載
- 如何在UNIX中構(gòu)建DSPBIOS程序的詳細(xì)資料概述 13次下載
- DSPBIOS內(nèi)核的介紹和如何啟動(dòng)DSPBIOS內(nèi)核的詳細(xì)概述 13次下載
- UNIX安全構(gòu)架經(jīng)驗(yàn) 0次下載
- Unix_Linux編程實(shí)踐教程代碼 0次下載
- UNIX高級(jí)編程(中文版)下載 0次下載
- UNIX教程網(wǎng)絡(luò)篇 0次下載
- UNIX操作系統(tǒng)使用手冊(cè)
- 一個(gè)用rust制造的新的現(xiàn)代操作系統(tǒng)Aero 1476次閱讀
- 總結(jié)20個(gè)超好用的 Unix/Linux 命令指令集 2847次閱讀
- Linux與UNIX到底有關(guān)系和區(qū)別 3302次閱讀
- 米爾科技內(nèi)核芯片概述 2535次閱讀
- 嵌入式Linux輕量級(jí)圖形應(yīng)用庫(kù)應(yīng)該如何設(shè)計(jì) 604次閱讀
- 什么是微內(nèi)核_微內(nèi)核的發(fā)展歷史 1.1w次閱讀
- 微內(nèi)核的優(yōu)缺點(diǎn) 2.9w次閱讀
- 那些常用的 Unix 命令,你不知道的功能! 2180次閱讀
- Linux內(nèi)核與Android的關(guān)系 4504次閱讀
- Unix是什么呢?比較Unix和Linux 5017次閱讀
- 10 個(gè)增加 UNIX/Linux Shell 腳本趣味的工具 4785次閱讀
- Linux 與 Unix 的對(duì)比分析 4043次閱讀
- 關(guān)于 fork 和 exec 是如何在 Unix 上工作的 4895次閱讀
- 內(nèi)核模塊的原理以及其模塊編寫 4347次閱讀
- linux最常用的20個(gè)命令介紹 7964次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多