#include
#include
#include
#include
#include
#include
#include
這個檔案中包含了絕大部分系統呼叫函式的實現,
如果系統呼叫在該核心版本中沒實現,就直接返回enosys
int sys_ftime()
int sys_break()
int sys_ptrace()
int sys_stty()
int sys_gtty()
int sys_rename()
int sys_prof()
int sys_acct()
int sys_phys()
int sys_lock()
int sys_mpx()
int sys_ulimit()
設定實際、有效使用者組id
int sys_setregid(int rgid, int egid)
if (egid>0)
return 0;
}設定組id,將實際組id和有效組id設定為相同的值
int sys_setgid(int gid)
取當前的系統時間
int sys_time(long * tloc)
return i;
}設定實際和有效使用者id
int sys_setreuid(int ruid, int euid)
if (euid>0)
}return 0;
}設定使用者id,將程序的使用者id和有效使用者id設定成相同的值
int sys_setuid(int uid)
超級使用者設定系統開機時間
int sys_stime(long * tptr)
設定tms資料結構的值
int sys_times(struct tms * tbuf)
返回滴答數
return jiffies;
}設定brk值
int sys_brk(unsigned long end_data_seg)
設定程序組id
int sys_setpgid(int pid, int pgid)
沒找到合適的程序
return -esrch;
}返回當前程序的程序組id
int sys_getpgrp(void)
設定程序的會話期
int sys_setsid(void)
int sys_uname(struct utsname * name)
;int i;
if (!name) return -error;
驗證使用者資料區的有效性
verify_area(name,sizeof *name);
將內和資料段中的資料存入使用者資料段
for(i=0;i設定umask值
int sys_umask(int mask)
linux核心分析之fork c
include include include include include 申明外部呼叫函式,驗證位址所指向的頁面是否可寫 extern void write verify unsigned long address 全域性變數,用於產生可用的程序id long last pid 0 對指定起始...
Linux核心分析之課程總結
linux 核心分析 mooc課程 簡單總結每個章節掌握到的一些知識點 儲存程式計算機 所有計算機基礎性的邏輯框架 堆疊 高階語言的起點,函式呼叫需要堆疊機制 中斷機制 多道系統的基礎,計算機效率提高的關鍵 system call是linux中所有系統呼叫的入口點,每個系統呼叫都至少需要有乙個引數,...
Linux核心分析
從根本上看,核心是為了管理好程序來設計的,需要建立各種結構體來描述程序管理過程中需要用到的一切。首先,為什麼要劃分核心空間與使用者空間,出於安全的考慮,需要把使用者程式與核心隔離,這就帶來各種複雜性的東西,當然這是值得的。對於模組與模組的互動,使用者通過系統呼叫進入核心,這裡又包含中斷管理,異常管理...