Linux0 12 檔案系統 系統呼叫介面

2022-10-11 08:30:07 字數 750 閱讀 2914

do_execve() ----- 系統呼叫(int 0x80)功能號_nr_execve()呼叫的c處理函式

1.確定原cs值是使用者**段。因為核心**段不能被替換的

2.初始化128kb的引數和環境空間

3.取出執行檔案的i結點

4.計算命令列引數和環境字串的個數:argc和ar**

5.計算當前程序的許可權,判斷當前程序是否有許可權執行這個檔案

6.取出執行檔案頭部,並分析

(1)取出解釋程式的程式名和引數

(2)把原命令列引數放入128kb空間中

(3)把新引數和環境放入128kb空間中

(4)獲取解釋程式的i結點,

(5)go to step 5

若執行檔案太大或不全,則:出錯

若要執行的不是指令碼程式的解釋程式,則:

(1)將引數與環境複製到128kb空間

(2)釋放當前程序所佔的資源

(3)修改當前程序的ldt

(4)重置**段與資料段的限長

(5)設定tss

(6)把執行本次系統呼叫程式的的返回位址eip指向執行檔案中**的起始位置處

問題:需要同時使用多個檔案描述符來訪問資料流會間歇傳輸的i/o裝置

解決方法:讓核心同時檢測使用者提供的多個檔案描述符,如果檔案描述符的狀態沒有發生變化,就讓呼叫程序進入睡眠狀態。如果有乙個描述符已準備好可被訪問,該函式就返回程序,並告訴程序哪個描述符已準備好

問題:系統呼叫最多隻帶3個引數,select()有5個引數

Linux0 12 檔案系統 系統呼叫介面

do execve 系統呼叫 int 0x80 功能號 nr execve 呼叫的c處理函式 1.確定原cs值是使用者 段。因為核心 段不能被替換的 2.初始化128kb的引數和環境空間 3.取出執行檔案的i結點 4.計算命令列引數和環境字串的個數 argc和argv 5.計算當前程序的許可權,判斷...

linux檔案系統 ext2檔案系統

如何快速高效的尋到在硬碟儲存的資料,於是檔案系統就誕生了。檔案系統是邏輯層面的,那麼檔案系統是如何管理 件層提供的磁碟空間的?現在,大部分檔案系統採用索引分配方案 優點 1.能夠保持好大部分檔案的區域性性 2.滿足檔案插入,刪除的高效 3.隨機讀寫不需要沿著指標前行 缺點1.會有較多的磁碟尋道次數 ...

6 檔案系統

root edaserver1 ls bin boot dev etc home lib lib64 lost found media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var bin所有賬號命令,二進位...