原创 CMU 15213:attack實驗

attack實驗主要講了攻擊程序的兩種方法:一種是利用程序可能導致棧溢出的地方注入代碼;另一種是利用棧溢出,利用程序中原有的指令來達到同代碼注入一樣的效果,比如“mov pop”等。 part I: code injection

原创 程序員的ubuntu軟件配置

系統問題和配置 運行32位的軟件 sudo apt install ia32-libs 安裝32位的依賴庫。 sudo apt-get install lib32stdc++6 armv8開發配置 參看sel4寫的配置清單 下

原创 sel4源碼解析(四) - ipc

sel4提供了基於endpoints實現的進程間通信,用於進程之間發送少量的信息和cap。 ipc相關數據結構 ipc是通過內核endpoints實現的,相應的有endpoints的結構體和endpoints cap的結構體。en

原创 sel4源碼解析(三) - sel4系統調用處理流程

Armv8架構的系統調用指令是svc,通過x0-x7通用寄存器傳遞相關參數。在sel4中,x0寄存器保存capability或者badge參數、x1寄存器保存message的信息、x2-x5寄存器保存傳遞的message實體、x7

原创 sel4源碼解析(五) - Notification

Sel4的通知機制類似於記錄型信號量。比如:進程1在等待通知,但進程2還未發送該通知,則會導致進程1暫時被掛載在該notification隊列上。一旦進程2發送該通知,則將進程1從該notification隊列上取出,並重新加入調

原创 sel4源碼解析(七) - vspace

sel4 vspace指的是進程的虛擬地址空間。armv8 64位版本的sel4 對應的頁表劃分分爲四級,分別是:pgd(page global directory)、pud(page upper directory)、pd(pa

原创 linux異步IO:io_uring

爲了改善posix aio目前存在的問題,新的異步IO驅動:io_uring如何解決了posix aio的問題。圍繞這個問題,本文首先介紹了異步IO的概念,然後介紹了posix aio存在的問題,最後根據io_uring的源碼分析

原创 Unexporting kallsyms_lookup_name

kallsyms_lookup_name函數可以通過函數名字獲取對應的地址。unexporting kallsyms_lookup_name意味着out-of-tree的驅動不能夠利用kallsyms_lookup_name函數調

原创 linux high memory機制引發的問題

linux high memory 32bit操作系統: linux將邏輯地址空間分爲兩部分:0-3G是用戶地址空間,3-4G是內核地址空間。所以linux內核只能夠訪問物理地址空間大小爲1G,也就是物理地址0-1G。爲了能夠訪問

原创 CMU 15213:malloc筆記和malloc實驗

1. malloc筆記 1.1 基礎概念 1.dynamic memory allocators:應用程序運行期間申請的內存(malloc)。 2.堆:dynamic memory allocator管理的進程內存區域 3.t

原创 CMU 15213:cache memories筆記和cache實驗

1. 筆記 cache基本概念 1.cache:S、E、B S:sets E:the number of lines per set B:the number of bytes per block 2.地址格式: 一般:ta

原创 CMU 15213:machine-level programming課程筆記和bomb實驗

文章目錄1. 筆記1.1 basics1.2 control1.3 Procedures2. bomb lab2.1 phase 12.2 phase 22.3 phase 31.4 phase 41.5 phase 51.6 p

原创 sel4源碼解析(六) - 進程

本文主要介紹了sel4進程基本概念和進程調度。 進程 sel4進程的概念同一般的操作系統一致,除了多了一個cap概念。下面是tcb(thread control block)結構體: struct tcb { /* arc

原创 sel4源碼解析(二) - CSpace

文章目錄CNodecapability用戶程序APICapability查找流程Capability derive tree相關閱讀 Sel4採用基於capability的訪問控制模型,進程對系統資源的訪問控制權限組成一個capa

原创 sel4源碼解析(一) - sel4內核對象

文章目錄sel4內核對象untypeduntyped cap結構體創建內核對象TCB相關閱讀 sel4是微內核,它只提供了少數供用戶程序使用的機制。不像linux內核提供了大量的服務。本文主要介紹sel4提供的七個內核對象,着重講