Liste der Linux-Systemaufrufe

Liste der Systemaufrufe des Linux-Kernels:[1]

Name x86_64Funktion[2]Nummer in x86 64 (%RAX)Nummer in i386
(%EAX)
Abweichender Name in i386
readLiest Datei von Dateideskriptor fd03
writeSchreibt Datei nach Dateideskriptor fd14
openÖffnet Datei oder Gerät25
closeSchließt Datei oder Gerät36
statStatus einer Datei418oldstat
fstatStatus einer Datei528oldfstat
lstatStatus einer Datei684oldlstat
pollWartet auf Ereignis7168
lseekRepositioniert den Offset eines Schreib-/Lesezeigers auf Dateien819
mmapMappt Datei in den Arbeitsspeicher[3]990
mprotectSchützt Speicherbereich10125
munmapEntfernt gemappte Datei aus dem Arbeitsspeicher1191
brkÄndert die Größe eines Datensegments1245
rt_sigactionÄndert die Funktion eines Signals (außer SIGKILL und SIGSTOP)1367sigaction
rt_sigprocmaskBlockiert Signale14126sigprocmask
rt_sigreturnSetzt alle Signale zurück15119sigreturn
ioctlinput/output control (Kommunikation mit Geräten)1654
pread64Liest Datei an einer bestimmten Stelle17180
pwrite64Schreibt Datei an einer bestimmten Stelle18181
readvSchreibt Datei in mehrere Puffer19145
writevLiest Datei in mehrere Puffer20146
accessPrüft Berechtigung eines Benutzers für eine Datei2133
pipeErstellt eine Pipe2242
selectsynchronous I/O multiplexing (mehrere Dateien überwachen, bis sie z. B. beschreibbar werden)2382
sched_yieldWeist den Prozess-Scheduler an, zum nächsten Prozess überzugehen24158
mremapVerschiebt eine Adresse des Virtuellen Speichers25163
msyncSynchronisiert eine Datei mit deren memory-mapped Kopie im Arbeitsspeicher26144
mincoreStellt fest, ob eine Speicherseite nicht ausgelagert ist27218
madviseGibt dem Kernel einen Hinweis, ob ein Speicherbereich bald abgerufen wird und ob eher zufällig oder sequentiell auf ihn zugegriffen wird28219
shmgetLegt den gemeinsamen Speicher (Shared Memory) an29/
shmatBindet XSI shared memory ein30/
shmctlVerwaltet Eigenschaften des gemeinsamen Speichers31/
dupErzeugt zweites Dateihandle für dieselbe Datei3241
dup2Erzeugt zweites Dateihandle für dieselbe Datei mit bestimmter Nummer3363
pauseBlockiert Prozess und wartet auf beliebiges Signal3429
nanosleepBlockiert Prozess und wartet auf beliebiges Signal mit hoher Auflösung35162
getitimerFragt den interval timer ab36
alarmSendet SIGALARM nach Ablauf eines Zeitraums37
setitimerSetzt den interval timer38
getpidGibt die Prozesskennung (PID) zurück39
sendfileKopiert Daten zwischen zwei Dateideskriptoren40
socketÖffnet einen Socket41
connectNimmt Verbindung mit einem Server(–prozess) auf42
acceptWartet auf Anfragen von Clients43
sendtoSendet eine Nachricht an einen Socket44
recvfromErhält eine Nachricht von einem Socket45
sendmsgSendet eine Nachricht an einen Socket, ggf. mit Kontrollinformation46
recvmsgErhält eine Nachricht von einem Socket, ggf. mit Kontrollinformation47
shutdownSchließt eine Socketverbindung ein- oder beidseitig48
bindBindet ein bereits geöffnetes Socket an eine Adresse49
listenMarkiert ein Socket als passiv-horchend50
getsocknameGibt die Adresse eines gebundenen Sockets zurück51
getpeernameGibt die Adresse eines an einem Socket verbundenen Peers zurück52
socketpairErstellt ein Paar verbundener Sockets gewünschten Protokolls und Typs53
setsockoptSetzt oder verändert die Einstellungen eines Sockets54
getsockoptGibt die Einstellungen eines Sockets zurück55
cloneErstellt einen Kindprozess mit der Möglichkeit, Ressourcen des Elternprozesses zu teilen56
forkErstellt einen Kindprozess (Fork)57
vforkErstellt einen Kindprozess und blockiert den Elternprozess58
execveLädt den Inhalt einer ausführbaren Datei und startet sie59
exitTerminiert laufenden Prozess601
wait4Wartet, bis ein Kindprozess terminiert und gibt Angaben zu dessen Ressourcenverbrauch zurück61
killSendet ein Signal an einen Prozess62
unameGibt Informationen über den laufenden Kernel zurück63
semgetErzeugt einen Paar Semaphore64
semopGewährleistet, dass die Semaphoren-Operationen nur durchgeführt werden, wenn alle Operationen gelingen65
semctlSteuert Semaphore66
shmdtLöst Speicher aus dem gemeinsamen Speicher67
msggetErhält einen message queue identifier68
msgsndSendet eine Nachricht über eine Message Queue69
msgrcvEmpfängt eine Nachricht über eine Message Queue70
msgctlÄndert oder löscht eine Message Queue71
fcntlManipuliert einen Dateideskriptor72
flockSetzt oder entfernt ein Advisory Lock an oder von einer geöffneten Datei73
fsyncSynchronisiert eine referenzierte Datei mit ihrer Repräsentation im Massenspeicher74
fdatasyncWie fsync unter Auslassung best. nicht obligatorischer Metadaten75
truncateKürzt eine Datei auf gewünschte Länge oder verlängert sie mit Nullbytes76
ftruncateWie truncate über Referenzierung mit einem Deskriptor77
getdentsGibt dirent-Strukturen eines Verzeichnisses in einen Puffer zurück78
getcwdGibt das gegenwärtige Arbeitsverzeichnis (Current Working Directory) zurück79
chdirSetzt bzw. ändert das gegenwärtige Arbeitsverzeichnis qua Pfad80
fchdirWie chdir, aber Zielverzeichnis über Deskriptor81
renameBenennt eine Datei um und verschiebt, wenn nötig82
mkdirErstellt ein Verzeichnis83
rmdirEntfernt ein Verzeichnis84
creatÖffnet und wenn nötig erstellt oder überschreibt eine Datei zum Schreiben85
linkErstellt Hardlink einer Datei86
unlinkLöscht einen Hardlink und so ggf. eine Datei87
symlinkErstellt einen Softlink einer Datei88
readlinkGibt den Inhalt eines Softlinks zurück89
chmodÄndert Dateiattribute90
fchmodÄndert Dateiattribute qua Deskriptor91
chownÄndert den Besitzer einer Datei92
fchownÄndert den Besitzer einer Datei qua Deskriptor93
lchownWie chown aber dereferenziert dabei keine Softlinks94
umaskSetzt Rechtemaske (umask) des aufrufenden Prozesses95
gettimeofdayGibt Uhrzeit oder Zeitzone zurück96
getrlimitGibt Angaben über bestehende Ressourcenlimits zurück97
getrusageGibt Angaben über den Ressourcenverbrauch des rufenden Prozesses, Threads oder seiner Kinder zurück98
sysinfoRuft Systemstatistiken ab99
timesGibt Informationen zur Laufzeit des aufrufenden Prozesses zurück100
ptraceVerfolgt (trace) einen anderen Prozess101
getuidGibt die tatsächliche Benutzerkennung zurück102
syslogKontrolliert den Kernel-Message-Ringbuffer und setzt den console_loglevel103
getgidGibt die tatsächliche Gruppenkennung zurück104
setuidSetzt die effektive Benutzerkennung105
setgidSetzt die effektive Gruppenkennung106
geteuidGibt die effektive Benutzerkennung zurück107
getegidGibt die effektive Gruppenkennung zurück108
setpgidSetzt die Prozessgruppenkennung (PGID)109
getppidGibt die Prozesskennung des Elternprozesses (PPID) zurück110
getpgrpGibt die Prozessgruppenkennung (PGID) zurück111
setsidErstellt eine neue Sitzung mit dem aufrufenden Prozess als Leader und gibt die Sitzungs-ID (SID) zurück112
setreuidSetzt die effektive und tatsächliche Benutzerkennung113
setregidSetzt die effektive und tatsächliche Gruppenkennung114
getgroupsGibt eine Liste zusätzlicher Gruppenkennungen (supplementary group IDs) zurück115
setgroupsErwartet eine Liste zusätzlicher Gruppenkennungen116
setresuidSetzt tatsächliche, effektive und Set User ID117
getresuidGibt die tatsächliche, effektive und Set User ID zurück118
setresgidSetzt tatsächliche, effektive und Gruppen-Setuid119
getresgidGibt die tatsächliche, effektive und Gruppen-Setuid zurück120
getpgidGibt die Prozessgruppenkennung eines Prozesses zurück121
setfsuidÄndert die Benutzerkennung für Zugriffe auf das Dateisystem122
setfsgidÄndert die Gruppenkennung für Zugriffe auf das Dateisystem123
getsidGibt die Sitzungskennung zurück124
capgetGibt die Capabilities eines Threads zurück125
capsetBestimmt die Capabilities eines Threads126
rt_sigpendingGibt eine Maske ausstehender Signale zurück127
rt_sigtimedwaitUnterbricht die Ausführung eines Threads bis zur Ankunft bestimmter Signale, mit Zeitbegrenzung128
rt_sigqueueinfoSendet Signal und optional Daten an eine Threadgruppe; implementiert sigqueue und pthread_sigqueue129
rt_sigsuspendErsetzt die Signalmaske des aufrufenden Prozesses und unterbricht diesen130
sigaltstackGibt einen Signalstack zurück oder legt einen neuen an131
utimeÄndert den Zeitstempel einer Datei132
mknodErstellt neuen Eintrag im Dateisystem133
uselibLädt eine dynamische Bibliothek134
personalityÄndert die Ausführungsdomäne135
ustatGibt Informationen über ein gemountetes Dateisystem in einer ustat-Struktur zurück136
statfsGibt Statistiken zu einem über Pfad referenzierten Dateisystem zurück137
fstatfsWie statfs, aber Referenzierung über Deskriptor138
sysfsGibt Angaben über die dem Kernel bekannten Dateisysteme zurück139
getpriorityGibt die Prozesspriorität zurück140
setpriorityÄndert die Prozesspriorität141
sched_setparamÄndert Scheduling-Parameter eines Prozesses142
sched_getparamGibt Scheduling-Parameter eines Prozesses zurück143
sched_setschedulerÄndert Scheduling-Parameter und -Policy eines Threads144
sched_getschedulerGibt die Scheduling-Policy eines Threads zurück145
sched_get_priority_maxGibt die unter einer angegebenen Policy max. mögliche Priorität zurück146
sched_get_priority_minGibt die unter einer angegebenen Policy min. mögliche Priorität zurück147
sched_rr_get_intervalGibt den derzeitigen SCHED_RR-Intervall eines Prozesses zurück148
mlockVerriegelt einen Teil des virtuellen Adressraums des aufrufenden Prozesses, um Auslagerung in den Swap-Bereich zu verhindern149
munlockEntriegelt mit mlock geschützte Seiten150
mlockallWie mlock, aber schützt den gesamten virtuellen Adressraum des Prozesses151
munlockallEntriegelt alle mit mlock geschützten Seiten152
vhangupSimuliert ein Auflegen (hangup) des aktuellen Terminals153
modify_ldtLiest aus dem oder schreibt in den Local descriptor table (LDT)154
pivot_rootVerschiebt die Dateisystemwurzel des aktuellen Prozesses155
_sysctlLiest oder setzt Kernel-Parameter156
prctlBietet unterschiedliche Funktionen der Prozesskontrolle157
arch_prctlÄndert architekturspezifische Prozessparameter158
adjtimexLiest und setzt Einstellungen der Kernel-Uhr159
setrlimitSetzt Ressourcenlimits160
chrootÄndert das Wurzelverzeichnis des aufrufenden Prozesses entspr. übergebenem Pfad161
syncBewirkt, dass alle gepufferten Änderungen an Metadaten und Dateien auf die vorgesehenen Datenträger geschrieben werden (flushing)162
acctAktiviert oder deaktiviert die Prozess-Abrechnung163
settimeofdayÄndert Zeit oder Zeitzone164
mountHängt ein angegebenes Dateisystem in ein Zielverzeichnis165
umount2Hängt ein gemountetes Dateisystem aus, erlaubt Angabe von Optionen166
swaponWeist eine festgelegte Datei oder ein blockorientiertes Gerät als Auslagerungsbereich für den Hauptspeicher aus167
swapoffBeendet das Auslagern von Hauptspeicherbereichen in eine festgelegte Datei oder ein blockorientiertes Gerät168
rebootStartet das System neu, oder aktiviert/deaktiviert den Tastendruck für den Neustart (z. B. Strg-Alt-Entf)169
sethostnameÄndert den Hostnamen170
setdomainnameÄndert die NIS-Domäne171
ioplSetzt die E/A-Rechte eines Prozesses172
iopermsetzt die Zugangsrechte für Ports173
create_moduleErstellt einen Kernel-Modul-Eintrag und reserviert für ein Modul benötigten Speicher174
init_moduleLädt ein Kernel-Modul[4]175
delete_moduleEntfernt einen nicht mehr benötigten Kernel-Modul-Eintrag176
get_kernel_symsGibt eine Tabelle exportierter Kernel-Symbole zurück177
query_moduleGestattet Kernelabfragen über Module178
quotactlVerwaltet Disk Quota179
nfsservctlKontrolle des NFS-Demons180
getpmsgUnimplementierter Systemaufruf181
putpmsgUnimplementierter Systemaufruf182
afs_syscallUnimplementierter Systemaufruf183
tuxcallUnimplementierter Systemaufruf, gibt immer −1 zurück184
securityUnimplementierter Systemaufruf, gibt immer −1 zurück185
gettidGibt die ID eines Threads zurück. Wenn ein Prozess nur einen Thread besitzt, wird die Prozesskennung (PID) zurückgegeben.186
readaheadLiest Datei im Voraus in den Page cache187
setxattrSetzt erweiterte Dateiattribute, Datei wird durch Pfad identifiziert188
lsetxattrSetzt erweiterte Dateiattribute eines symbolischen Links189
fsetxattrSetzt erweiterte Dateiattribute, Datei wird durch Dateideskriptor identifiziert190
getxattrLiest erweiterte Dateiattribute191
lgetxattr192
fgetxattr193
listxattrListet erweiterte Dateiattribute194
llistxattr195
flistxattr196
removexattrEntfernt ein erweitertes Dateiattribut197
lremovexattr198
fremovexattr199
tkillSendet ein Signal an einen Thread200
timeUhrzeit201
futexFutex, ein Lockingmechanismus202
sched_setaffinityLegt fest, ob und/oder welche CPU-Kerne von einem Thread bevorzugt werden (Affinitätsmaske)203
sched_getaffinityFragt Affinitätsmaske ab204
set_thread_areaErstellt einen Thread-local storage (TLS)-Bereich205
io_setupErstellt einen Kontext für asynchrone Kommunikation (asynchronous I/O)206
io_destroyZerstört einen Kontext für asynchrone Kommunikation207
io_geteventsLiest asynchrone I/O-Ereignisse von der Fertigstellungswarteschlange aus208
io_submitReicht einen asynchronen I/O-Block zur Bearbeitung ein209
io_cancelBricht eine ausstehende asynchrone I/O-Operation ab210
get_thread_areaGibt den Einstiegspunkt eines TLS-Bereichs aus211
lookup_dcookie212
epoll_createErstellt einen epoll-Dateideskriptor213
epoll_ctl_old214
epoll_wait_old215
remap_file_pages216
getdents64217
set_tid_address218
restart_syscall219
semtimedop220
fadvise64221
timer_create222
timer_settime223
timer_gettime224
timer_getoverrun225
timer_delete226
clock_settime227
clock_gettime228
clock_getres229
clock_nanosleep230
exit_group231
epoll_wait232
epoll_ctl233
tgkillSendet ein Signal an einen Thread234
utimesÄndert Dateizugriffs- und Änderungsstempel235
vserverUnimplementierter Systemaufruf236
mbindSetzt NUMA-Policy für einen Speicherbereich237
set_mempolicySetzt NUMA-Default für einen Thread und dessen Kinder238
get_mempolicyGibt NUMA-Policy eines Threads zurück239
mq_openEröffnet eine Message-Queue240
mq_unlinkVerwirft eine Message-Queue241
mq_timedsendVersendet eine Nachricht an eine Message-Queue242
mq_timedreceiveRuft eine Nachricht von einer Message-Queue ab243
mq_notifyAktiviert Benachrichtigung bei vorhandener Nachricht an einer Message-Queue244
mq_getsetattrGibt die Attribute einer Message-Queue zurück oder ändert diese245
kexec_loadLädt einen neuen Kernel für spätere Ausführung246
waitidWartet solange, bis ein Kindprozess terminiert247
add_keyFügt der Schlüsselverwaltung des Kernels einen Schlüssel hinzu248
request_keyRuft einen Schlüssel von der Schlüsselverwaltung des Kernels ab249
keyctlKontrollfunktionen für die Kernel-Schlüsselverwaltung250
ioprio_setRuft I/O-Scheduling-Klasse und Priorität ab, bzw. ändert sie251
ioprio_get252
inotify_initInitialisiert eine Inotify-Instanz253
inotify_add_watchFügt einer Inotify-Instanz eine Watch hinzu, bzw. verwirft eine254
inotify_rm_watch255
migrate_pagesVerschiebt Speicherseiten z. B. zu einem anderen Prozess256
openatÖffnet Datei relativ zu einem Verzeichnisdeskriptor257
mkdiratErstellt Verzeichnis relativ zu einem Verzeichnisdeskriptor258
mknodatWie mknod, aber interpretiert Pfadangaben anders259
fchownatWie chown, aber interpretiert Pfadangaben anders260
futimesatÄndert Zeitstempel von Dateien relativ zu Verzeichnisdeskriptoren (obsolet, utimesat bev.)261
newfstatat262
unlinkatWie unlink oder rmdir, aber interpretiert Pfadangaben anders263
renameatWie rename, aber interpretiert Pfadangaben anders264
linkatWie link, aber interpretiert Pfadangaben anders265
symlinkatWie symlink, aber interpretiert Pfadangaben anders266
readlinkatWie readlink, aber interpretiert Pfadangaben anders267
fchmodatÄndert Dateiberechtigungen anhand eines Dateideskriptors268
faccessatWie access, aber interpretiert Pfadangaben anders269
pselectWeist Dateideskriptoren eine Überwachungsroutine zu, die über I/O-Ereignisse informiert270
ppollWie poll, aber wartet auf Verfügbarkeiten oder Signale271
unshareTrennt mit einem anderen Prozess geteilte Ausführungskontexte nach einem clone() und erzeugt echte Kopien272
set_robust_listFügt einen robusten Futex hinzu[5]273
get_robust_listFragt eine Liste robuster Futexe ab274
spliceVerschiebt Daten zwischen einem Dateideskriptor und einer Pipe ohne Umweg über den Userspace275
teeVerdoppelt eine Pipe276
sync_file_rangeSynchronisiert offene Datei mit deren physischer Kopie277
vmspliceVerschiebt eine Speicherseite zu einer Pipe278
move_pagesVerschiebt Speicherseiten (NUMA)279
utimensatAktualisiert Zeitstempel einer Datei mit Hochpräzision280
epoll_pwaitWie epoll_wait, aber wartet auf Verfügbarkeiten oder Signale281
signalfdErstellt einen Dateideskriptor, der Signale empfängt282
timerfd_createErstellt einen Dateideskriptor, der auf einen Timer referenziert283
eventfdErstellt einen Dateideskriptor, der über Ereignisse informiert284
fallocateManipuliert Speicherbereiche anhand eines Deskriptors direkt285
timerfd_settimeSteuert Timer via Dateideskriptor286
timerfd_gettimeGibt Zeitparameter eines Timers via Dateideskriptor zurück287
accept4Wie accept, aber akzeptiert Flags288
signalfd4289
eventfd2290
epoll_create1291
dup3292
pipe2293
inotify_init1294
preadvWie readv, aber erlaubt die Angabe eines Offsets295
pwritevWie writev, aber erlaubt die Angabe eines Offsets296
rt_tgsigqueueinfo297
perf_event_open298
recvmmsgWie recvmsg, aber erlaubt es, mehrere Nachrichten mit einem Aufruf zu empfangen299
fanotify_initErstellt eine fanotify-Benachrichtigungsgruppe300
fanotify_markFügt Dateien und Ordner einer Benachrichtigungsgruppe hinzu oder entfernt sie301
prlimit64Setzt Ressourcengrenzen für Prozesse302
name_to_handle_atZusammen wie openat303
open_by_handle_at304
clock_adjtime305
syncfsSchreibt Inhalt des Dateisystempuffers auf den Datenträger306
sendmmsgWie sendmsg, aber erlaubt das Versenden mehrere Nachrichten per Aufruf307
setnsReassoziiert einen Thread mit einem Namensraum308
getcpuGibt zurück, auf welchem Prozessor ein Prozess (bzw. Thread) gerade läuft309
process_vm_readvVerschiebt Daten zwischen Prozess-Adressräumen310
process_vm_writev311
kcmpStellt fest, ob die Ressourcen zweier Prozesse gleich sind[6]312
finit_moduleLädt ein Kernel-Modul von einem Dateideskriptor fd[7][4]313
sched_setattrLegt ein Scheduling-Verfahren fest (z. B. Round Robin)[8]314
sched_getattrErmittelt das genutzte Scheduling-Verfahren[8]315
renameat2Atomare Umbenennung einer Datei[9]316
seccompSandboxing-Mechanismus (secure computing mode)[10]317
getrandomFüllt einen Puffer mit hochwertiger Entropie[11]318
memfd_createErstellt einen Dateideskriptor für einen anonymen Speicherbereich (ohne die Notwendigkeit eines tmpfs-Mountpoints)[12][13]319
kexec_file_loadLädt ein signiertes Kernelabbild[14]320
bpfBerkeley Packet Filter[15]321
execveatLädt den Inhalt einer ausführbaren Datei relativ zu einem Verzeichnisdeskriptor und startet sie[16][17]322
userfaultfd323
membarrierSpeicherbarrieren[18]324
mlock2wie mlock, aber mit Flags[19]325
copy_file_rangeErlaubt schnelles Kopieren von Dateien[20]326
preadv2wie preadv, aber mit Flags[21]327
pwritev2wie pwritev, aber mit Flags[21]328

Literatur

  • Michael Kerrisk: The Linux Programming Interface. No Starch Press, San Francisco 2010, ISBN 978-1-59327-220-3.

Einzelnachweise

  1. Immer aktuelle Liste von Marcin Juszkiewicz
  2. Wie werde ich UNIX-Guru? von Arnold Willemer
  3. Memory Mapped Files. 10. Juni 2018, archiviert vom Original am 10. Juni 2018; abgerufen am 30. April 2021.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.kompf.de
  4. a b http://man7.org/linux/man-pages/man2/init_module.2.html
  5. https://www.kernel.org/doc/Documentation/robust-futexes.txt
  6. Preparing for user-space checkpoint/restore, LWN
  7. Loading modules from file descriptors, LWN
  8. a b http://man7.org/linux/man-pages/man2/sched_setattr.2.html
  9. Exchanging two files, LWN
  10. seccomp: add "seccomp" syscall
  11. [PATCH, RFC] random: introduce getrandom(2) system call (Memento desOriginals vom 1. September 2017 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/thread.gmane.org
  12. David Herrmann: memfd_create(2), 10. Juni 2014
  13. Linux 3.17 Lands Memfd, A KDBUS Prerequisite, 19. August 2014
  14. kexec: A new system call to allow in kernel loading (V4), 26. Juni 2014
  15. The BPF system call API, version 14, LWN, 24. September 2014
  16. syscalls,x86,sparc: Add execveat() system call, LWN, 14. November 2014
  17. syscalls,x86: Add execveat() system call (v3), 12. September 2012
  18. http://man7.org/linux/man-pages/man2/membarrier.2.html
  19. Deferred memory locking, LWN, 8. Juli 2015
  20. copy_file_range(), LWN, 7. Oktober 2015
  21. a b The return of preadv2()/pwritev2(), LWN, 6. Januar 2016