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