操作系统设计与实现第3版笔记与minix3心得(2)-minix3内核调用
minix3內(nèi)核調(diào)用簡介
一般來說,內(nèi)核調(diào)用允許系統(tǒng)進(jìn)程請求內(nèi)核服務(wù),例如執(zhí)行特權(quán)操作。
minix3內(nèi)核調(diào)用API
Kernel Call Purpose
PROCESS MANAGEMENT
SYS_FORK Fork a process; copy parent process
SYS_EXEC Execute a process; initialize registers
SYS_CLEAR Exit a user process; clear process slot
SYS_EXIT Exit a system process
SYS_UPDATE Update state of a system process
SYS_SCHEDULE Scheduler
SYS_SCHEDCTL Change scheduler control
SYS_PRIVCTL Change system process privileges
SYS_TRACE Trace or control process execution
SYS_SETGRANT Tell kernel about grant table
SYS_RUNCTL Set/clear stop flag of a process
SYS_GETMCONTEXT Get context of a process
SYS_SETMCONTEXT Get context of a process
SIGNAL HANDLING
SYS_KILL Send a signal to a process
SYS_GETKSIG Check for pending kernel signals
SYS_ENDKSIG Tell kernel signal has been processed
SYS_SIGSEND Start POSIX-style signal handler
SYS_SIGRETURN Return POSIX-style signal
MEMORY MANAGEMENT
SYS_NEWMAP Install new or updated memory map
SYS_MEMSET Fill a physical memory area with a constant pattern byte
SYS_VMCTL (to be documented)
SYS_PADCONF (to be documented)
COPYING DATA
SYS_UMAP Map virtual to physical address
SYS_UMAP_REMOTE Map virtual to physical address
SYS_VUMAP Batch map virtual to physical addresses
SYS_VIRCOPY Copy data using virtual addressing
SYS_PHYSCOPY Copy data using physical addressing
SYS_SAFECOPYFROM Copy from a grant into own address space
SYS_SAFECOPYTO Copy from own address space into a grant
SYS_VSAFECOPY Handle vector with safe copy requests
SYS_SAFEMEMSET Fill a grant with a constant pattern byte
DEVICE I/O
SYS_DEVIO Read or write a single device register
SYS_SDEVIO Input or output an entire data buffer
SYS_VDEVIO Process vector with multiple requests
SYS_IRQCTL Set or reset an interrupt policy
SYS_IOPENABLE Give process I/O privilege
SYS_READBIOS Copy from the BIOS area
SYSTEM CONTROL
SYS_ABORT Abort MINIX: shutdown the system
SYS_GETINFO Get a copy system info or kernel data
SYS_DIAGCTL (to be documented)
CLOCK FUNCTIONALITY
SYS_SETALARM Set or reset a synchronous alarm timer
SYS_TIMES Get process times, boot time and uptime
SYS_STIME Set boot time
SYS_SETTIME Update time
SYS_VTIMER Set or retrieve a process virtual timer
PROFILING
SYS_SPROF (to be documented)
SYS_CPROF (to be documented)
SYS_PROFBUF (to be documented)
內(nèi)核調(diào)用的組織
內(nèi)核調(diào)用意味著將請求發(fā)送到內(nèi)核,由內(nèi)核任務(wù)之一處理。組裝請求消息、將其發(fā)送到內(nèi)核和等待響應(yīng)的細(xì)節(jié)被方便地隱藏在系統(tǒng)庫中。這個(gè)庫的頭文件是src/include/minix/syslib.h,它的實(shí)現(xiàn)在src/lib/syslib中。
內(nèi)核調(diào)用的實(shí)際實(shí)現(xiàn)在系統(tǒng)內(nèi)核任務(wù)中定義。假設(shè)一個(gè)程序進(jìn)行sys_call()系統(tǒng)調(diào)用。按照慣例,這個(gè)調(diào)用被轉(zhuǎn)換成一個(gè)SYS_CALL類型的請求消息,該消息被發(fā)送到內(nèi)核任務(wù)系統(tǒng)。系統(tǒng)任務(wù)在一個(gè)名為do_call()的函數(shù)中處理請求并返回結(jié)果。
內(nèi)核調(diào)用號和處理器函數(shù)的映射是在系統(tǒng)任務(wù)的初始化響應(yīng)期間完成的。src /kernel/ system.c。處理函數(shù)的原型是在src/kernel/system.h中聲明的。它們的實(shí)現(xiàn)包含在src/kernel/system/目錄下的獨(dú)立文件中。這些文件被編譯到庫/src/kernel/system/system中。連接到內(nèi)核的。
內(nèi)核調(diào)用號及其請求和響應(yīng)參數(shù)在src/include/minix/com.h中定義。內(nèi)核調(diào)用都以SYS_開頭,并且屬于同一個(gè)內(nèi)核調(diào)用的所有參數(shù)共享一個(gè)公共前綴
總結(jié)
以上是生活随笔為你收集整理的操作系统设计与实现第3版笔记与minix3心得(2)-minix3内核调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL常见面试题与答案
- 下一篇: 操作系统设计与实现第3版笔记与minix