Kategori:Linuxmanual grupp 2: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== Systemanrop i Unix/Linux == Ett '''systemanrop''' är den mekanism som användarprogram använder för att be kärnan utföra en tjänst. Eftersom användarprocesser körs i ''user space'' och kärnan i ''kernel space'', krävs ett kontrollerat gränssnitt för att komma åt hårdvara och resurser. Systemanropen utgör detta gränssnitt. Exempel: * När du öppnar en fil med ''open()'' * När du ändrar filrättigheter med ''chmod()'' * När du ändrar processens st...')
 
Ingen redigeringssammanfattning
Rad 692: Rad 692:
| 328 || pwritev2 || Variant av pwritev med flags
| 328 || pwritev2 || Variant av pwritev med flags
|}
|}
= Sidslut =
Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]

Versionen från 31 augusti 2025 kl. 15.28

Systemanrop i Unix/Linux

Ett systemanrop är den mekanism som användarprogram använder för att be kärnan utföra en tjänst. Eftersom användarprocesser körs i user space och kärnan i kernel space, krävs ett kontrollerat gränssnitt för att komma åt hårdvara och resurser. Systemanropen utgör detta gränssnitt.

Exempel:

  • När du öppnar en fil med open()
  • När du ändrar filrättigheter med chmod()
  • När du ändrar processens standardmask med umask()

sker det via systemanrop.

Viktiga kategorier av systemanrop

Fil- och kataloghantering
open(), close(), read(), write(), lseek()
stat(), fstat(), chmod(), chown(), umask()
mkdir(), rmdir(), link(), unlink(), rename()
Processhantering
fork() – skapa ny process
exec() – starta ett nytt program
wait() – vänta på barnprocess
exit() – avsluta process
getpid(), getppid(), kill()
Minneshantering
brk(), sbrk() – hantera heap
mmap(), munmap() – minnesmappning
mprotect() – skyddsattribut
Signalhantering
signal(), sigaction()
kill() – skicka signal till process
pause(), alarm()
Tids- och klockanrop
time(), gettimeofday()
nanosleep(), clock_gettime()
Kommunikation mellan processer (IPC)
Rör (pipes): pipe(), dup()
Delat minne: shmget(), shmat(), shmdt()
Meddelandeköer: msgget(), msgsnd(), msgrcv()
Semaforer: semget(), semop(), semctl()
Sockets: socket(), bind(), connect(), accept(), send(), recv()
Användar- och grupp-ID
getuid(), geteuid(), setuid()
getgid(), setgid()
Övriga systemanrop
umask() – ställ in filskapandemask
uname() – systeminformation
ioctl() – styra enheter
mount(), umount() – hantera filsystem

Exempel: umask(2)

Systemanropet umask() sätter processens filrättighetsmask, vilket avgör vilka rättigheter som inte ges när nya filer eller kataloger skapas.

#include <sys/types.h>
#include <sys/stat.h>

int main() {
    umask(022); // nya filer får inte skriv-rättighet för grupp/andra
    return 0;
}

Sammanfattning

Systemanrop är kärnans API mot användarprogram. De utgör den grundläggande mekanismen för filhantering, processkontroll, minnesanvändning, signaler, tid, kommunikation mellan processer och mycket mer.

Komplett tabell över Linux-systemanrop (x86_64)

Nr Namn Beskrivning
0 read Läser från filbeskrivare
1 write Skriver till filbeskrivare
2 open Öppnar fil eller enhet
3 close Stänger filbeskrivare
4 stat Filstatus
5 fstat Filstatus via beskrivare
6 lstat Filstatus för symlänk
7 poll Väntar på händelse
8 lseek Ändrar offset i fil
9 mmap Minneskartläggning
10 mprotect Skyddar minnesområde
11 munmap Avkartläggning av minne
12 brk Ändrar heap-storlek
13 rt_sigaction Hanterar signalaktion
14 rt_sigprocmask Blockerar signaler
15 rt_sigreturn Återställ signaler
16 ioctl Enhetsstyrning
17 pread64 Läs vid specifikt offset
18 pwrite64 Skriv vid specifikt offset
19 readv Läs till flera buffertar
20 writev Skriv från flera buffertar
21 access Kontroll av filrättigheter
22 pipe Skapar en pipe
23 select Synkron I/O-multiplex
24 sched_yield Ger schemaläggning
25 mremap Flyttar virtuellt minnesområde
26 msync Synkroniserar memory-mapped fil
27 mincore Kontrollerar sidans närvaro i minne
28 madvise Råd om åtkomstmönster
29 shmget Initierar delat minne
30 shmat Monterar delat minne
31 shmctl Hanterar delat minne
32 dup Kopierar filbeskrivare
33 dup2 Kopierar till specifik beskrivare
34 pause Väntar signal
35 nanosleep Väntar med högupplöst timer
36 getitimer Läser timer
37 alarm Sätter alarm-signal
38 setitimer Sätter timer
39 getpid Hämtar process-ID
40 sendfile Kopierar data mellan deskriptorer
41 socket Skapar socket
42 connect Ansluter socket
43 accept Accepterar anslutning
44 sendto Skickar data till socket
45 recvfrom Tar emot data från socket
46 sendmsg Skickar med kontrollinfo via socket
47 recvmsg Tar emot med kontrollinfo via socket
48 shutdown Avslutar socket-anslutning
49 bind Binder socket till adress
50 listen Lyssnar på socket
51 getsockname Hämtar sockeradress
52 getpeername Hämtar peers adress
53 socketpair Skapar par av sockets
54 setsockopt Sätter socket-option
55 getsockopt Hämtar socket-option
56 clone Skapar ny process/ett nytt tråd
57 fork Skapar barnprocess
58 vfork Snabbare barnprocess
59 execve Startar nytt program
60 exit Terminera process
61 wait4 Väntar på barnprocess och resurser
62 kill Skickar signal till process
63 uname Systeminformation
64 semget Initierar semafor
65 semop Semaforoperation
66 semctl Hanterar semafor
67 shmdt Kopplar bort delat minne
68 msgget Initierar meddelandekö
69 msgsnd Skickar meddelande i kö
70 msgrcv Tar emot meddelande från kö
71 msgctl Hanterar meddelandekö
72 fcntl Filbeskrivarhantering
73 flock Rådande fil-lås
74 fsync Synkroniserar fil till disk
75 fdatasync Partiskt fsync
76 truncate Förkortar fil
77 ftruncate Förkortar fil via deskriptor
78 getdents Läser kataloginnehåll
79 getcwd Hämta nuvarande katalog
80 chdir Ändrar aktuell katalog
81 fchdir Ändrar katalog via deskriptor
82 rename Byter namn på fil
83 mkdir Skapar katalog
84 rmdir Tar bort katalog
85 creat Skapar/öppnar fil till skrivning
86 link Skapar hård länk
87 unlink Tar bort länk
88 symlink Skapar symbolisk länk
89 readlink Läser symbolisk länk
90 chmod Ändrar filrättigheter
91 fchmod Ändrar rättigheter via deskriptor
92 chown Ändrar ägare
93 fchown Ändrar ägare via deskriptor
94 lchown Ändrar ägare utan att följa symlink
95 umask Sätter filskapandemask
96 gettimeofday Hämtar tidzon och tid
97 getrlimit Hämtar resursgränser
98 getrusage Hämtar resurserapport
99 sysinfo Systemstatistik
100 times Processkörtidsinfo
101 ptrace Spårar annan process
102 getuid Hämtar användar-ID
103 syslog Kernel-loggstyrning
104 getgid Hämtar grupp-ID
105 setuid Sätter användar-ID
106 setgid Sätter grupp-ID
107 geteuid Hämtar effektivt användar-ID
108 getegid Hämtar effektivt grupp-ID
109 setpgid Sätter processgruppen-ID
110 getppid Hämtar föräldraprocess-ID
111 getpgrp Hämtar processgrupps-ID
112 setsid Initierar ny session
113 setreuid Sätter verkligt och effektivt UID
114 setregid Sätter verkligt och effektivt GID
115 getgroups Hämtar extra grupper
116 setgroups Sätter extra grupper
117 setresuid Sätter UID-set, effektiv och verklig
118 getresuid Hämtar UID-set, effektiv och verklig
119 setresgid Sätter GID-set, effektiv och verklig
120 getresgid Hämtar GID-set, effektiv och verklig
121 getpgid Hämtar processgrupp för process
122 setfsuid Sätter UID för filsystemåtkomst
123 setfsgid Sätter GID för filsystemåtkomst
124 getsid Hämtar session-ID
125 capget Hämtar capabilities
126 capset Sätter capabilities
127 rt_sigpending Utestående signaler
128 rt_sigtimedwait Väntar signal med timeout
129 rt_sigqueueinfo Skickar signal med data
130 rt_sigsuspend Byter signalmask och väntar
131 sigaltstack Hanterar signalstack
132 utime Ändrar tidsstämplar
133 mknod Skapar filsystemobjekt
134 uselib Laddar dynamiskt bibliotek
135 personality Ändrar exekveringsdomän
136 ustat Filsysteminfo
137 statfs Filsystemstatistik
138 fstatfs Filsystemstatistik via deskriptor
139 sysfs Kända filsystem
140 getpriority Hämtar processprioritet
141 setpriority Sätter processprioritet
142 sched_setparam Ändrar schemaläggningsparametrar
143 sched_getparam Hämtar schemaläggningsparametrar
144 sched_setscheduler Ändrar schemaläggningspolicy
145 sched_getscheduler Hämtar schemaläggningspolicy
146 sched_get_priority_max Max prioritet under policy
147 sched_get_priority_min Min prioritet under policy
148 sched_rr_get_interval Round-Robin-interval
149 mlock Låser minne i RAM
150 munlock Frigör låst minne
151 mlockall Låser all process-minne
152 munlockall Frigör allt låst minne
153 vhangup Simulerar hängup
154 modify_ldt Lokal beskrivartabell
155 pivot_root Ändrar rot-filsystem
156 _sysctl Hämtar/sätter kernelparametrar
157 prctl Processkontroll
158 arch_prctl Arkitektur-specifika processparametrar
159 adjtimex Styr klockinställningar
160 setrlimit Sätter resursgränser
161 chroot Ändrar rotkatalog
162 sync Skriver buffrat till disk
185 security Oimplementerat memset-syscall
186 gettid Hämtar thread-ID
187 readahead Förladdar fil
188 setxattr Sätter utökad filattribut
189 lsetxattr Filattribut på symlink
190 fsetxattr Filattribut via deskriptor
191 getxattr Läser utökad filattribut
192 lgetxattr Symlink-utökad attribut
193 fgetxattr Deskriptor-utökad attribut
194 listxattr Lista utökad attribut
195 llistxattr Symlink-lista attribut
196 flistxattr Deskriptor-lista attribut
197 removexattr Tar bort utökad attribut
198 lremovexattr Symlink-ta bort attribut
199 fremovexattr Deskriptor-ta bort attribut
200 tkill Skickar signal till tråd
201 time Hämtar tid
202 futex Futex-låsningsmekanism
203 sched_setaffinity Sätt CPU-affinitet
204 sched_getaffinity Hämta CPU-affinitet
205 set_thread_area Skapar TLS-område
206 io_setup Initierar asynkron I/O
207 io_destroy Avslutar asynkron I/O
208 io_getevents Läser I/O-händelser
209 io_submit Skicka I/O-block
210 io_cancel Avbryta I/O-operation
211 get_thread_area Hämtar TLS-område
212 lookup_dcookie --
213 epoll_create Skapar epoll-filbeskrivare
214 epoll_ctl_old --
215 epoll_wait_old --
216 remap_file_pages --
217 getdents64 Kataloginnehåll i 64-bitars format
218 set_tid_address --
219 restart_syscall --
220 semtimedop --
221 fadvise64 --
222 timer_create --
223 timer_settime --
224 timer_gettime --
225 timer_getoverrun --
226 timer_delete --
227 clock_settime --
228 clock_gettime --
229 clock_getres --
230 clock_nanosleep --
231 exit_group --
232 epoll_wait --
233 epoll_ctl --
234 tgkill Skickar signal till tråd i grupp
235 utimes Sätter tidstämpel
236 vserver Oimplementerat
237 mbind NUMA-policy för minne
238 set_mempolicy NUMA-policy för tråd
239 get_mempolicy Hämtar NUMA-policy
240 mq_open Öppnar message queue
241 mq_unlink Tar bort message queue
242 mq_timedsend Skickar meddelande med timeout
243 mq_timedreceive Tar emot meddelande med timeout
244 mq_notify Notifiering för message queue
245 mq_getsetattr Hämtar/ändrar message queue-attribut
246 kexec_load Förbereder nytt kärna för laddning
247 waitid Väntar på barnprocess
248 add_key Lägg till nyckel i kernel-hantering
249 request_key Hämtar nyckel från hantering
250 keyctl Nyckelhantering
251 ioprio_set Sätter I/O-prioritet
252 ioprio_get Hämtar I/O-prioritet
253 inotify_init Initierar inotify
254 inotify_add_watch Lägger till övervakning
255 inotify_rm_watch Tar bort övervakning
256 migrate_pages Flyttar minnessidor
257 openat Öppna relativt en katalog
258 mkdirat Skapa katalog relativt
259 mknodat Skapa specialfil relativt
260 fchownat Ägare-ändring relativt
261 futimesat Ändra tidstämpel relativt
262 newfstatat Filstatus relativt
263 unlinkat Ta bort relativt
264 renameat Byt namn relativt
265 linkat Skapa länk relativt
266 symlinkat Skapa symlink relativt
267 readlinkat Läs symlink relativt
268 fchmodat Ändra rättigheter relativt
269 faccessat Kontrollera åtkomst relativt
270 pselect Variant av select
271 ppoll Variant av poll
272 unshare Separera delade kontexter
273 set_robust_list Lägg till robust futex
274 get_robust_list Hämta robust futex-lista
275 splice Flytta data pipe↔file utan userspace
276 tee Duplikera pipe utan data-flytt
277 sync_file_range Synkroniseringsintervall fil
278 vmsplice Flytta sida till pipe
279 move_pages Flytta minnesidor (NUMA)
280 utimensat Uppdatera tidstämpel med hög precision
281 epoll_pwait Variant av epoll_wait
282 signalfd Skapa fd för signaler
283 timerfd_create Skapa timer via fd
284 eventfd Skapa eventfd
285 fallocate Allokera filutrymme via fd
286 timerfd_settime Sätt timerfd-tid
287 timerfd_gettime Läs timerfd-tid
288 accept4 accept med flags
289 signalfd4 --
290 eventfd2 --
291 epoll_create1 --
292 dup3 Variant av dup
293 pipe2 Pipe med flags
294 inotify_init1 --
295 preadv Läsv med offset multipel buffert
296 pwritev Skriv med offset multipel buffert
297 rt_tgsigqueueinfo --
298 perf_event_open Öppna prestanda-event
299 recvmmsg Mottag multipla meddelanden
300 fanotify_init Initiera fanotify-grupp
301 fanotify_mark Markera filer/folders för notifiering
302 prlimit64 Resursgränser per process
303 name_to_handle_at Öppna via handle
304 open_by_handle_at --
305 clock_adjtime Justera tid
306 syncfs Synkronisera filsystem
307 sendmmsg Skicka multipla meddelanden
308 setns Skift namns rum
309 getcpu Vilken CPU kör?
310 process_vm_readv Läs minne från annan process
311 process_vm_writev Skriv minne till annan process
312 kcmp Jämför resurser mellan processer
313 finit_module Ladda kernel-modul via fd
314 sched_setattr Sätt schemaläggnings-attribut
315 sched_getattr Hämta schemaläggnings-attribut
316 renameat2 Atomisk filbyte
317 seccomp Sandbox-läge
318 getrandom Slumpdata
319 memfd_create Skapa anonymous fd-minne
320 kexec_file_load Ladda signerat kernelbild
321 bpf Packet-filter API
322 execveat Exec relativt katalogdeskriptor
323 userfaultfd userfault-hantering
324 membarrier Min-barriär
325 mlock2 mlock med flags
326 copy_file_range Effektivt filkopiering
327 preadv2 Variant av preadv med flags
328 pwritev2 Variant av pwritev med flags

Sidslut

Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.

Underkategorier

Denna kategori har endast följande underkategori.

L

Sidor i kategorin "Linuxmanual grupp 2"

Denna kategori innehåller endast följande sida.