System calls: Difference between revisions
Mr. MacKenty (talk | contribs) No edit summary |
Mr. MacKenty (talk | contribs) No edit summary |
||
Line 8: | Line 8: | ||
[[File:System call.png|500px|frame|This diagram shows a simplified representation of a system call<ref>https://www.guru99.com/system-call-operating-system.html</ref>.|left]] | [[File:System call.png|500px|frame|This diagram shows a simplified representation of a system call<ref>https://www.guru99.com/system-call-operating-system.html</ref>.|left]] | ||
System calls can be grouped roughly into six major categories:[12] | |||
# Process control | |||
#* create process (for example, <code>[[fork (operating system)|fork]]</code> on Unix-like systems, or <code>NtCreateProcess</code> in the [[Windows NT]] [[Native API]]) | |||
#*[[Kill (command)|terminate process]] | |||
#*[[Loader (computing)|load]], [[Exec (operating system)|execute]] | |||
#* get/set process attributes | |||
#*[[Wait (operating system)|wait]] for time, wait event, [[Signal (computing)|signal]] event | |||
#*[[Dynamic memory allocation|allocate]] and [[Garbage collection (computer science)|free]] memory | |||
# File management | |||
#* create file, delete file | |||
#* open, close | |||
#* read, write, reposition | |||
#* get/set file attributes | |||
# Device management | |||
#* request device, release device | |||
#* read, write, reposition | |||
#* get/set device attributes | |||
#* logically attach or detach devices | |||
# Information maintenance | |||
#* get/set time or date | |||
#* get/set system data | |||
#* get/set process, file, or device attributes | |||
# Communication | |||
#* create, delete communication connection | |||
#* send, receive messages | |||
#* transfer status information | |||
#* attach or detach remote devices | |||
#Protection | |||
#*get/set file permissions | |||
Revision as of 09:42, 24 November 2020
In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the kernel of the operating system on which it is executed. This may include hardware-related services (for example, accessing a hard disk drive), creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.[2]
System calls can be grouped roughly into six major categories:[12]
- Process control
- create process (for example,
fork
on Unix-like systems, orNtCreateProcess
in the Windows NT Native API) - terminate process
- load, execute
- get/set process attributes
- wait for time, wait event, signal event
- allocate and free memory
- create process (for example,
- File management
- create file, delete file
- open, close
- read, write, reposition
- get/set file attributes
- Device management
- request device, release device
- read, write, reposition
- get/set device attributes
- logically attach or detach devices
- Information maintenance
- get/set time or date
- get/set system data
- get/set process, file, or device attributes
- Communication
- create, delete communication connection
- send, receive messages
- transfer status information
- attach or detach remote devices
- Protection
- get/set file permissions
Please click here for a list of system calls in Linux