seL4之hello 2旅途 2016/11/19 13:15:38 回顧上周 seL4運行環境搭建. 完成 的運行. 補充上周 1.微內核與巨集內核有什麼不同? 微內核——用戶態提供OS服務,一般採用server client架構。代表:L4系列微內核 巨集內核——內核態提供OS服務,通過syscal ...
seL4之hello-2旅途
2016/11/19 13:15:38
回顧上周
- seL4運行環境搭建.
- 完成
hell0-1
的運行.
補充上周
1.微內核與巨集內核有什麼不同?
微內核——用戶態提供OS服務,一般採用server-client架構。代表:L4系列微內核
巨集內核——內核態提供OS服務,通過syscall結構向用戶態提供服務。
出於對seL4的學習,我們比較關註微內核的評價:
- 優勢:安全性好、可移植性好、靈活性高、容易debug
- 劣勢:性能低
2.介紹微內核
第一代微內核:
目標是用於解決Unix的可維護性等問題;
代表是CMU的Mach——以失敗告終,主要原因是性能不足.
第二代微內核:
目標是解決第一代微內核的性能問題;
代表是Liedtke的L3和L4;
主要貢獻是通過改進IPC機制,大幅提高了性能,並支持運行Linux,即L4 Linux(虛擬化).
第三代微內核:
目標是解決第二代微內核的安全性問題;
代表是OKL4、seL4
主要貢獻是提出enndpoint的IPC機制、基於capability的許可權管理機制,提高了安全性.
L4家族簡史
圖片來源:L4_family_tree
介紹本周
- 瞭解seL4的啟動流程和初始化線程
- 瞭解seL4的幾種內核對象和權能機制
來自伊甸一點的溫馨提醒:註意本周內容較多,建議分多次練習,並記錄下實驗結果
1.提供本次必要的實驗手冊
- 下載PDF文檔以及實驗截圖鏈接:http://pan.baidu.com/s/1pL51h5h
文件信息
File: C:\Users\PengFei_Zheng\Desktop\歡迎訪問伊甸一點.zip
Size: 4260011 bytes
Modified: 2016年11月19日, 14:42:42
MD5: 374FBCC1782185B358BE3DD7D58FFE88
SHA1: 5261FA4259D9976A227EC7EC86B108E86EF5C1EE
CRC32: 21F07023
來自伊甸一點的溫馨提醒:請原諒為文件加了密碼,需要密碼請在下方留言
2.詳細介紹實驗步驟
0. 查看手冊明確實驗內容
1. 初始化hello-2狀態
執行命令 make ia32_hello-2_defconfig
運行結果截圖:
2. 進入hello-2目錄下
- 執行命令如下圖所示:
註意到有一個名字叫做cscope.out
的文件.
來自伊甸一點的溫馨提醒:這裡先不解釋它是怎麼來的,我們先往下走,之後會和它打交道的
- 進入文件main.c:
gedit main.c
hello-2 的部分main
函數代碼:
需要做的就是完成當中對TODO1 ~ TODO15的修改.
對於小白的我來說還是有點難度的,開發者很貼心地為我們配上了solution
文檔.
來自小白的我的溫馨提醒:不過還是建議大家先自己嘗試完成對代碼的閱讀和修改,然後通過solution
進行對比以及修改.
solution
的路徑如下所示:
相信大家通過自己的閱讀和嘗試已經將上述的TODO1~TODO15都修改完成了.
希望大家能夠在上述的練習中明白其中調用的函數,以及函數的作用,對於某一個函數來說.我們要做的是明白函數名,函數返回值,函數參數,函數作用,函數處理邏輯.
如果沒有按照上面的來學習函數的話,還是重新回到TODO1~TODO15重新看上幾遍.
3. 生成hello-2
生成hello-2
的指令: make
註意需要在項目的Makefile目錄下進行make操作
剛開始執行時的截圖:
之行結束的截圖:
如果大家在執行上面的時候出現了錯誤,首先查看報出的錯誤,根據錯誤信息進行修改我們的mian.c,一般當main.c中的TODO都按照solution
提示完成之後,程式是不會出現錯誤的。
如果確定main.c沒有錯誤,但是程式依舊報錯的話,可以嘗試下麵操作.
首先執行指令:
make ia32_hello-2_defconfig
執行指令:
make
伊甸一點給的對比截圖:
完成上述操作之後,程式應該就可以成功跑起來了,但是現在我們只是生成了hello-2
,還沒有運行hello-2
4. 運行hello-2
運行指令如下所示:
qemu-system-i386 -nographic -m 512 -kernel images/kernel-ia32-pc99 -initrd images/hello-2-image-ia32-pc99
來自伊甸一點的溫馨提醒:指令有點長,註意不要copy錯了
小白的我給的運行部分截圖1:
小白的我給的運行部分截圖2:
退出模擬器的指令: Ctrl+a
鬆開之後再按 x
當前時間:2016/11/19 16:15:32
(今天第一次使用markdown,寫得好累啊)
如果你喜歡我的博客,please buy me a cup of coffee.
右側選擇打賞.
3.強大的vim+cscope
未完待續額...
轉載註意
轉載請註明原作者:伊甸一點
轉載請以鏈接形式註明文章地址
特別說明
博客園對markdown的支持不是很好
已經將本地的html文件上傳到博客園
有需要的可以下載來看 http://files.cnblogs.com/files/zpfbuaa/seL4%E4%B9%8Bhello-2.zip