系統調用

       操作系統的主要功能是爲應用程序的運行創建良好的環境,爲了達到這個目的,內核提供一系列具備預定功能的多內核函數,通過一組稱爲系統調用(system call)的接口呈現給用戶。系統調用把應用程序的請求傳給內核,調用相應的的內核函數完成所需的處理,將處理結果返回給應用程序,如果沒有系統調用和內核函數,用戶將不能編寫大型應用程序。Linux系統調用,包含了大部分常用系統調用和由系統調用派生出的的函數。

進程控制

  fork 創建一個新進程

  clone 按指定條件創建子進程

  execve 運行可執行文件

  exit 中止進程

  _exit 立即中止當前進程

  getdtablesize 進程所能打開的最大文件數

  getpgid 獲取指定進程組標識號

  setpgid 設置指定進程組標誌號

  getpgrp 獲取當前進程組標識號

  setpgrp 設置當前進程組標誌號

  getpid 獲取進程標識號

  getppid 獲取父進程標識號

  getpriority 獲取調度優先級

  setpriority 設置調度優先級

  modify_ldt 讀寫進程的本地描述表 

  nanosleep 使進程睡眠指定的時間 

  nice 改變分時進程的優先級

  pause 掛起進程,等待信號

  personality 設置進程運行域 

  prctl 對進程進行特定操作

  ptrace 進程跟蹤

  sched_get_priority_max 取得靜態優先級的上限

  sched_get_priority_min 取得靜態優先級的下限

  sched_getparam 取得進程的調度參數

  sched_getscheduler 取得指定進程的調度策略

  sched_rr_get_interval 取得按RR算法調度的實時進程的時間片長度

  sched_setparam 設置進程的調度參數 

  sched_setscheduler 設置指定進程的調度策略和參數

  sched_yield 進程主動讓出處理器,並將自己等候調度隊列隊尾

  vfork 創建一個子進程,以供執行新程序,常與execve等同時使用

  wait 等待子進程終止 

  wait3 參見wait

  waitpid 等待指定子進程終止

  wait4 參見waitpid

  capget 獲取進程權限

  capset 設置進程權限

  getsid 獲取會晤標識號

  setsid 設置會晤標識號

文件系統控制

1、文件讀寫操作

  fcntl 文件控制

  open 打開文件

  creat 創建新文件

  close 關閉文件描述字

  read 讀文件

  write 寫文件

  readv 從文件讀入數據到緩衝數組中

  writev 將緩衝數組裏的數據寫入文件 

  pread 對文件隨機讀

  pwrite 對文件隨機寫 

  lseek 移動文件指針

  _llseek 在64位地址空間裏移動文件指針

  dup 複製已打開的文件描述字

  dup2 按指定條件複製文件描述字

  flock 文件加/解鎖

  poll I/O多路轉換

  truncate 截斷文件

  ftruncate 參見truncate

  umask 設置文件權限掩碼

  fsync 把文件在內存中的部分寫回磁盤

2、文件系統操作

  access 確定文件的可存取性

  chdir 改變當前工作目錄 

  fchdir 參見chdir

  chmod 改變文件方式

  fchmod 參見chmod

  chown 改變文件的屬主或用戶組

  fchown 參見chown

  lchown 參見chown

  chroot 改變根目錄

  stat 取文件狀態信息

  lstat 參見stat

  fstat 參見stat

  statfs 取文件系統信息

  fstatfs 參見statfs 

  readdir 讀取目錄項

  getdents 讀取目錄項

  mkdir 創建目錄

  mknod 創建索引節點

  rmdir 刪除目錄

  rename 文件改名

  link 創建鏈接

  symlink 創建符號鏈接 

  unlink 刪除鏈接

  readlink 讀符號鏈接的值

  mount 安裝文件系統 

  umount 卸下文件系統 

  ustat 取文件系統信息 

  utime 改變文件的訪問修改時間 

  utimes 參見utime

  quotactl 控制磁盤配額

系統控制

  ioctl I/O總控制函數

  _sysctl 讀/寫系統參數

  acct 啓用或禁止進程記賬

  getrlimit 獲取系統資源上限

  setrlimit 設置系統資源上限

  getrusage 獲取系統資源使用情況

  uselib 選擇要使用的二進制函數庫

  ioperm 設置端口I/O權限

  iopl 改變進程I/O權限級別

  outb 低級端口操作

  reboot 重新啓動

  swapon 打開交換文件和設備

  swapoff 關閉交換文件和設備

  bdflush 控制bdflush守護進程

  sysfs 取核心支持的文件系統類型

  sysinfo 取得系統信息

  adjtimex 調整系統時鐘

  alarm 設置進程的鬧鐘

  getitimer 獲取計時器值

  setitimer 設置計時器值

  gettimeofday 取時間和時區 

  settimeofday 設置時間和時區

  stime 設置系統日期和時間

  time 取得系統時間 

  times 取進程運行時間 

  uname 獲取當前UNIX系統的名稱、版本和主機等信息

  vhangup 掛起當前終端

  nfsservctl 對NFS守護進程進行控制

  vm86 進入模擬8086模式

  create_module 創建可裝載的模塊項

  delete_module 刪除可裝載的模塊項 

  init_module 初始化模塊

  query_module 查詢模塊信息

  *get_kernel_syms 取得核心符號,已被query_module代替

內存管理

  brk 改變數據段空間的分配

  sbrk 參見brk

  mlock 內存頁面加鎖 

  munlock 內存頁面解鎖

  mlockall 調用進程所有內存頁面加鎖 

  munlockall 調用進程所有內存頁面解鎖

  mmap 映射虛擬內存頁

  munmap 去除內存頁映射 

  mremap 重新映射虛擬內存地址

  msync 將映射內存中的數據寫回磁盤

  mprotect 設置內存映像保護 

  getpagesize 獲取頁面大小

  sync 將內存緩衝區數據寫回硬盤

  cacheflush 將指定緩衝區中的內容寫回磁盤

網絡管理

  getdomainname 取域名

  setdomainname 設置域名

  gethostid 獲取主機標識號

  sethostid 設置主機標識號

  gethostname 獲取本主機名稱

  sethostname 設置主機名稱

socket控制

  socketcall socket系統調用 

  socket 建立socket

  bind 綁定socket到端口

  connect 連接遠程主機

  accept 響應socket連接請求

  send 通過socket發送信息

  sendto 發送UDP信息 

  sendmsg 參見send

  recv 通過socket接收信息

  recvfrom 接收UDP信息

  recvmsg 參見recv

  listen 監聽socket端口

  select 對多路同步I/O進行輪詢

  shutdown 關閉socket上的連接

  getsockname 取得本地socket名字

  getpeername 獲取通信對方的socket名字 

  getsockopt 取端口設置 

  setsockopt 設置端口參數

  sendfile 在文件或端口間傳輸數據 

  socketpair 創建一對已聯接的無名socket

用戶管理

  getuid 獲取用戶標識號

  setuid 設置用戶標誌號

  getgid 獲取組標識號

  setgid 設置組標誌號

  getegid 獲取有效組標識號

  setegid 設置有效組標識號

  geteuid 獲取有效用戶標識號

  seteuid 設置有效用戶標識號

  setregid 分別設置真實和有效的的組標識號

  setreuid 分別設置真實和有效的用戶標識號

  getresgid 分別獲取真實的,有效的和保存過的組標識號

  setresgid 分別設置真實的,有效的和保存過的組標識號 

  getresuid 分別獲取真實的,有效的和保存過的用戶標識號

  setresuid 分別設置真實的,有效的和保存過的用戶標識號

  setfsgid 設置文件系統檢查時使用的組標識號 

  setfsuid 設置文件系統檢查時使用的用戶標識號

  getgroups 獲取後補組標誌清單 

  setgroups 設置後補組標誌清單

進程間通信

  ipc 進程間通信總控制調用

1、信號

  sigaction 設置對指定信號的處理方法

  sigprocmask 根據參數對信號集中的信號執行阻塞/解除阻塞等操作

  sigpending 爲指定的被阻塞信號設置隊列

  sigsuspend 掛起進程等待特定信號

  signal 參見signal

  kill 向進程或進程組發信號

  *sigblock 向被阻塞信號掩碼中添加信號,已被sigprocmask代替

  *siggetmask 取得現有阻塞信號掩碼,已被sigprocmask代替 

  *sigsetmask 用給定信號掩碼替換現有阻塞信號掩碼,已被sigprocmask代替

  *sigmask 將給定的信號轉化爲掩碼,已被sigprocmask代替 

  *sigpause 作用同sigsuspend,已被sigsuspend代替 

  sigvec 爲兼容BSD而設的信號處理函數,作用類似sigaction

  ssetmask ANSI C的信號處理函數,作用類似sigaction

2、消息

  msgctl 消息控制操作 

  msgget 獲取消息隊列

  msgsnd 發消息 

  msgrcv 取消息

3、管道

  pipe 創建管道

4、信號量

  semctl 信號量控制

  semget 獲取一組信號量 

  semop 信號量操作

5、共享內存

  shmctl 控制共享內存

  shmget 獲取共享內存 

  shmat 連接共享內存

  shmdt 拆卸共享內存



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章