資料介紹
軟件簡介
smash 是一個類 Unix 的內(nèi)核,實現(xiàn)了基于分段和分頁的內(nèi)存管理,單個進程最大 4GB 虛擬地址空間,支持 minix-v2l 文件系統(tǒng),實現(xiàn)了寫實復制(fork)、管道等機制。
項目演示:
編寫應(yīng)用程序
目前已開發(fā)的 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); //?關(guān)閉文件 extern?int?close(int?fd); //?等待指定進程結(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í)行一個可執(zhí)行程序 extern?int?execve(const?char?*pathname,?char?*const?argv[],?char?*const?envp[]); //?變更當前路徑 extern?int?chdir(const?char?*pathname); //?創(chuàng)建目錄 extern?int?mkdir(const?char?*pathname,?int?mode); //?刪除目錄 extern?int?rmdir(const?char?*pathname); //?切換到其他進程執(zhí)行 extern?int?pause(void); //?獲取當前進程id extern?int?getpid(void); //?創(chuàng)建管道 extern?int?pipe(int?fd[2]); //?復制文件描述符 extern?int?dup(int?fd);
以 helloworld 為例,要編寫一個應(yīng)用程序首先要在usr/CMakeLists.txt文件中追加一行:
add_executable?(helloworld?helloworld.c?${CORE_SRCS})
括號內(nèi)第一項 helloworld 指的是可執(zhí)行文件名稱
后面的項 helloworld.c 和 ${CORE_SRCS} 是編譯所需的源文件
所有應(yīng)用程序都應(yīng)該包含?${CORE_SRCS},因為這里面定義了系統(tǒng)API。
然后就可以打開helloworld.c進行編輯。
#include?"stdio.h"
int?main(int?argc,?const?char?**argv)
{
????printf("Hello,World!\n");
????return?0;
}
然后就可以編譯了,編譯方法請參照項目README
注:printf()本身不是一個系統(tǒng)調(diào)用,而是通過write()系統(tǒng)調(diào)用實現(xiàn)的一個函數(shù)。
感謝
最后,感謝趙炯博士的寶書:《Linux內(nèi)核完全剖析-基于0.12內(nèi)核》
前五章對我?guī)椭艽?,尤其是第四章?/p>
如果沒有這本書,以我蹩腳的英語,不可能看懂x86的保護模式。
- ACIS內(nèi)核和parasolid內(nèi)核的來龍去脈與比較
- 基于成對學習和圖像聚類的肺癌亞型識別 4次下載
- 微內(nèi)核與宏內(nèi)核的比較與分析 11次下載
- Linux內(nèi)核的源代碼漫游詳細資料說明 15次下載
- 【HarmonyOS】智能硬件開發(fā)3-HarmonyOS內(nèi)核設(shè)計 11次下載
- LINUX內(nèi)核源代碼情景分析上冊PDF電子書免費下載 97次下載
- UNIX系統(tǒng)的程序設(shè)計接口函數(shù)介紹《UNIX環(huán)境高級編程》電子教材免費下載 4次下載
- 如何在UNIX中構(gòu)建DSPBIOS程序的詳細資料概述 13次下載
- DSPBIOS內(nèi)核的介紹和如何啟動DSPBIOS內(nèi)核的詳細概述 13次下載
- UNIX安全構(gòu)架經(jīng)驗 0次下載
- 收集Unix/Linux/BSD命令和任務(wù)的文檔 8次下載
- Unix_Linux編程實踐教程代碼 0次下載
- UNIX高級編程(中文版)下載 0次下載
- UNIX教程網(wǎng)絡(luò)篇 0次下載
- UNIX操作系統(tǒng)使用手冊
- 一個用rust制造的新的現(xiàn)代操作系統(tǒng)Aero 2k次閱讀
- 總結(jié)20個超好用的 Unix/Linux 命令指令集 3.4k次閱讀
- Linux與UNIX到底有關(guān)系和區(qū)別 3.8k次閱讀
- 嵌入式Linux輕量級圖形應(yīng)用庫應(yīng)該如何設(shè)計 820次閱讀
- 什么是微內(nèi)核_微內(nèi)核的發(fā)展歷史 1.3w次閱讀
- 微內(nèi)核的優(yōu)缺點 3.1w次閱讀
- 那些常用的 Unix 命令,你不知道的功能! 2.7k次閱讀
- Linux內(nèi)核與Android的關(guān)系 4.9k次閱讀
- Unix是什么呢?比較Unix和Linux 5.7k次閱讀
- 10 個增加 UNIX/Linux Shell 腳本趣味的工具 5.7k次閱讀
- Linux 與 Unix 的對比分析 4.6k次閱讀
- 關(guān)于 fork 和 exec 是如何在 Unix 上工作的 5.5k次閱讀
- 內(nèi)核模塊的原理以及其模塊編寫 5.4k次閱讀
- linux最常用的20個命令介紹 8.5k次閱讀
- shell編程基礎(chǔ)知識入門 5.4k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數(shù)據(jù)手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術(shù)手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論