seL4之hello-2旅途

来源:http://www.cnblogs.com/zpfbuaa/archive/2016/11/19/6080819.html
-Advertisement-
Play Games

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的學習,我們比較關註微內核的評價:

  1. 優勢:安全性好、可移植性好、靈活性高、容易debug
  2. 劣勢:性能低

2.介紹微內核

第一代微內核:

目標是用於解決Unix的可維護性等問題;

代表是CMU的Mach——以失敗告終,主要原因是性能不足.

第二代微內核:

目標是解決第一代微內核的性能問題;

代表是LiedtkeL3L4;

主要貢獻是通過改進IPC機制,大幅提高了性能,並支持運行Linux,即L4 Linux(虛擬化).

第三代微內核:

目標是解決第二代微內核的安全性問題;

代表是OKL4、seL4

主要貢獻是提出enndpoint的IPC機制、基於capability的許可權管理機制,提高了安全性.

L4家族簡史

圖片來源:L4_family_tree

介紹本周

  • 瞭解seL4的啟動流程和初始化線程
  • 瞭解seL4的幾種內核對象和權能機制

來自伊甸一點的溫馨提醒:註意本周內容較多,建議分多次練習,並記錄下實驗結果

1.提供本次必要的實驗手冊

文件信息


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.執行MR的命令: hadoop jar <jar在linux的路徑> <main方法所在的類的全類名> <參數> 例子: hadoop jar /root/wc1.jar cn.itcast.d3.hadoop.mr.WordCount hdfs://itcast:9000/words /out ...
  • 用Eclipse做一個後臺項目,但是資料庫不想放在本地電腦,於是買了一個騰訊雲伺服器(學生有優惠,挺便宜的),裝上MySQL資料庫,但是測試連接的時候,發現總是連接不是上,但是本地資料庫可以連接,於是上網搜索發現,mysql 資料庫預設的連接只能在本機連接,遠程連接必須授權。 遠程連接許可權配置: 進 ...
  • 1.HDFS shell 1.0查看幫助 hadoop fs -help <cmd> 1.1上傳 hadoop fs -put <linux上文件> <hdfs上的路徑> 1.2查看文件內容 hadoop fs -cat <hdfs上的路徑> 1.3查看文件列表 hadoop fs -ls / 1. ...
  • [1]字元函數 [2]數值運算符 [3]比較運算符 [4]日期時間 [5]信息函數 [6]聚合函數 [7]加密函數 [8]自定義函數 ...
  • [ctrl+q] 打開查詢視窗 [ctrl+/] 註釋sql語句 [ctrl+shift +/] 解除註釋 [ctrl+r] 運行查詢視窗的sql語句 [ctrl+shift+r] 只運行選中的sql語句 [F6] 打開一個mysql命令行視窗 [ctrl+l] 刪除一行 [ctrl+n] 打開一個 ...
  • 一、前言 現在越來越多的公司用git進行版本控制,不過git是預設是開源的,如果私有的話是需要付費的,如果不想付費自己可以搭建一個git伺服器用來版本控制。 二、伺服器端操作 1、安裝git 2、創建一個git用戶 3、創建登錄證書 在git用戶目錄下創建.ssh文件夾併在其下創建文件authori ...
  • 1. ASCII碼 1> ASCII碼不包括我們輸入法中的"特殊字元"和"數學字元"等,他們都屬於擴展ASCII 字元 2. GBK編碼 GBK實際上是ASCII的中文擴展編碼,其規則是: 1> 如果第一個位元組的大於127(0x7F, 0111 1111,即最高位為0),則表示從這個位元組開始的2個字... ...
  • 現在大家常用的桌面操作系統有:Windows、Mac OS、ubuntu,其中Mac OS 和 ubuntu上都會自帶python。這裡我們只介紹下Windows(我用的Win10)環境下的python2.x 和 python3.x 的安裝,以及python2.x 與 python3.x 共存時的配 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...