linux核心分析之sys c

2021-04-20 09:27:59 字數 1489 閱讀 3483

#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核心分析

從根本上看,核心是為了管理好程序來設計的,需要建立各種結構體來描述程序管理過程中需要用到的一切。首先,為什麼要劃分核心空間與使用者空間,出於安全的考慮,需要把使用者程式與核心隔離,這就帶來各種複雜性的東西,當然這是值得的。對於模組與模組的互動,使用者通過系統呼叫進入核心,這裡又包含中斷管理,異常管理...