Системні виклики
Під терміном «системний виклик» в програмуванні та обчислювальній техніці розуміють звернення прикладної програми до ядра операційної системи (ОС) для виконання будь-якої операції.
Сучасні операційні системи (ОС) передбачають поділ часу між обчислювальними процесами, що виконуються (багатозадачність) і розділення повноважень, що перешкоджає виконуваним програмам звертатися до даних інших програм і обладнання. Ядро ОС виконується в привілейованому режимі роботи процесора. Для виконання міжпроцесної операції або операції, що вимагає доступу до обладнання, програма звертається до ядра, яке, в залежності від повноважень викликає процес, виконує або відмовляє у виконанні такого виклику.
З точки зору програміста, системний виклик зазвичай виглядає як виклик підпрограми або функції з системної бібліотеки. Однак системний виклик, як окремий випадок виклику такої функції або підпрограми, слід відрізняти від більш загального звернення до системної бібліотеки, оскільки останнє може і не вимагати виконання привілейованих операцій.
А тепер наведемо присутні в Linux-системах системні виклики.
accept - прийняти з'єднання на сокеті
access - перевірка прав користувача для доступу до файлу
acct - включення / вимикання режиму збору статистичної інформації про процеси
adjtimex - функція коригування системного годинника
alarm - функція, настроює таймер на подачу сигналу
bdflush - запуск, скидання або настройка демона, що записує інформацію з буфера пам'яті на диск
bind - функція створення імені сокета
brk, sbrk - функції, що змінюють розмір сегменту даних
cacheflush - функція, яка скидає вміст інструкцій та / або дані кешу
capget, capset - функції, що встановлюють / одержують можливості процесу
chdir, fchdir - функції зміни робочого каталогу
chmod, fchmod - функції, змінюють права доступу до файлу
chown, fchown, lchown - функції, що змінюють власника файлу
chroot - функція установки нового кореневого каталогу
clone - функція, що створює дочірній процес
close - функція, що закриває описувач файлу
connect - функція, що встановлює з'єднання з сокетом
dup, dup2 - функції, що створюють копію описувача файлу
execve - функція, що здійснює виконання програми
_exit, _Exit - функція, що завершує роботу програми
fcntl - функція для роботи з файловими описувачами
fdatasync - синхронізує вміст файлу в пам'яті з вмістом на диску
flock - встановлює або знімає "м'яке" блокування (advisory lock) відкритого файлу
fork – створює дочірній процес
fsync, fdatasync - синхронізує стан файлу в пам'яті зі станом на диску
getcontext, setcontext - зчитує або встановлює контекст користувача
getdents - отримує записи з каталогу
getdomainname, setdomainname - визначає / встановлює ім'я домену
getdtablesize - визначає розмір таблиці описувачів
getgid, getegid - зчитує ідентифікатор групи процесу
getgroups, setgroups - отримує / встановлює список додаткових (supplementary) ідентифікаторів груп
gethostid, sethostid - визначає чи встановлює унікальний ідентифікатор вузла
gethostname, sethostname - визначає / встановлює ім'я вузла
getitimer, setitimer - зчитує або встановлює значення таймера інтервалів (interval timer)
dgetpagesize - визначає розмір сторінки пам'яті
getpeername - зчитує ім'я користувача (машини), що тільки що під’єднався
getpid, getppid - зчитує ідентифікатор процесу
getpriority, setpriority - отримати / встановити пріоритети процесів
getresuid, getresgid - зчитує ідентифікатори дійсного (real), ефективного (effective) або збереженого (saved) користувача або групи
getrlimit, getrusage, setrlimit - зчитує / встановлює обмеження використання ресурсів
getsid - визначає ідентифікатор сесії
getsockname - зчитує адресу сокета
getsockopt, setsockopt - зчитує і встановлює параметри, пов'язані з сокетом
gettimeofday, settimeofday - визначає / встановлює час
getuid, geteuid - зчитує ідентифікатор користувача процесу
idle - змушує нульовий процес працювати "вхолосту"
intro - введення в системні виклики
ioctl - управляє пристроями
ioctl_list - список викликів ioctl в ядрі Linux / i386
ioperm - встановлює права на роботу з портами вводу / виводу
iopl - змінює рівень привілеїв введення-виведення
ipc - системні виклики IPC
kill - функція, за допомогою якої посилається сигнал процесу
killpg - функція, за допомогою якої відсилається сигнал групі процесів
link - створює нове ім'я файлу
listen - прослуховує з'єднання на сокеті
_llseek - встановлює позицію читання / запису інформації у файлі
lseek - встановлює позицію читання / запису інформації у файлі
madvise - видає пропозиції про використання пам'яті
mincore - зчитує інформацію про частини файлу, що знаходяться в пам'яті
mkdir - створює каталог
mknod - створює спеціальний або звичайний файл
mlock - забороняє сторінковий обмін в деяких областях пам'яті
mlockall - забороняє сторінковий обмін всьому процесу
mmap, munmap - відображає файли або пристрої в пам'яті або знімає їх відображення
modify_ldt - отримує або встановлює ldt
mount, umount - підключає і відключає файлові системи
mprotect - контролює доступ до області пам'яті
mremap - змінює відображення адреси віртуальної пам'яті
msgctl - виконує контрольні операції над повідомленнями
msgget - отримує ідентифікатор черги повідомлень
msgop - працює з повідомленнями
msync - синхронізує вміст файлу з його відображенням у пам'яті
munlock - дозволяє сторінковий обмін в пам'яті
munlockall - дозволяє сторінковий обмін в пам'яті викликає процесу
nanosleep - зупиняє роботу процесу на заданий час
nfsservctl - інтерфейсна функція системного демона nfs
nice - змінює пріоритет процесу
oldfstat, oldlstat, oldstat, oldolduname, olduname - застарілі системні виклики
open, creat - відкривають і, по можливості, створюють файл або пристрій
outb, outw, outl, outsb, outsw, outsl - функції виведення даних в порт
pause - очікує сигнал
personality - встановлює домен виконання процесу
pipe - створює канал
pivot_root - змінює кореневу файлову систему
poll - очікує деяку подію у файловому описувачі
prctl - оперує процесами
pread, pwrite - читання або запис інформації з описувача файлу згідно заданому зміщенню
ptrace - трасує процес
quotactl - працює з дисковими квотами
read - зчитує дані файлового описувача
readdir - зчитує дані каталогу
readlink - зчитує значення символьного посилання
readv, writev - зчитує або записує вектор
reboot - перезавантажує систему і дозволяє / забороняє використання клавіш Ctrl-Alt-Del для перезавантаження
rename - змінює ім'я або розташування файлу
rmdir - видаляє каталог
sched_get_priority_max, sched_get_priority_min - визначає діапазон статичних пріоритетів
sched_rr_get_interval - визначає часовий інтервал SCHED_RR для заданого процесу
sched_setparam, sched_getparam - отримує і встановлює параметри планувальника
sched_setscheduler, sched_getscheduler - встановлює або отримує алгоритм планувальника (і його параметри)
sched_yield - звільнити процесор
select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - багатопоточне синхронне введення-виведення
select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I / O multiplexing
semctl - виробляє операції керування семафорами
semget - зчитує ідентифікатор набору семафорів
semop - операції над семафорами
send, sendto, sendmsg - відправляє повідомлення в сокет
sendfile - проводить обмін даними між описувачем файлів
seteuid, setegid - встановлює чинний ідентифікатор користувача або групи
setfsgid - встановлює ідентифікатор групи для доступу до файлової системи
setfsuid - встановлює ідентифікатор користувача файлової системи
setgid - встановлює ідентифікатор групи процесу
setpgid, getpgid, setpgrp, getpgrp - встановлює / отримує групу процесів
setresuid, setresgid - встановлює ідентифікатор реальної, ефективної та збереженої груп користувачів
setreuid-setregid - встановлює дійсний і / або діючий ідентифікатор користувача або групи
setsid - створює сеанс і встановлює ідентифікатор групи
setuid - встановлює ідентифікатор користувача
setup - налаштовує пристрої, файлові системи, встановлює кореневу файлову систему
shmctl - виробляє операції з управління сегментами пам'яті, що розділяються
shmget - присвоює ідентифікатор сегменту пам'яті, що розділяється
shmop - працює з пам'яттю
shutdown - закриває частину дуплексного з'єднання
sigaction, sigprocmask, sigpending, sigsuspend - POSIX-функції обробки сигналів
sigaltstack - зчитує або встановлює вміст додаткового стека сигналу
sigblock, siggetmask, sigsetmask, sigmask - працюють з маскою сигналів
signal - робота з сигналами ANSI C
sigpause - автоматично розблокує сигнали і чекає переривання своєї роботи
sigreturn - повертається з обробника сигналу і очищає тимчасовий стек
sigvec - BSD-Інтерфейс роботи з сигналами
socket - створює кінцеву точку з'єднання
socketcall - системні виклики сокетів
socketpair - створює пару об'єднаних сокетів
stat, fstat, lstat - зчитує статус файлу
statfs, fstatfs - отримують статистичні дані про файлову систему
stime - встановлює системний час
swapon, swapoff - дозволяє / забороняє підкачування даних у файл / пристрій
symlink - створює нове ім'я файлу
sync - записує буфер кешу на диск
sysctl - читає / записує параметри системи
sysfs - отримує інформацію про файлову систему
sysinfo - повертає загальносистемну статистику
syslog, klogctl - читає і / або очищує кільцевий буфер повідомлень ядра, встановлює console_loglevel
time - повертає час у секундах
times - веде запис часу процесу
truncate, ftruncate - вкорочує файл до вказаної довжини
umask - встановлює маску створення файлів
uname - отримує назву ядра та інформацію про нього
unlink - видаляє ім'я і файл, на який вона посилається
uselib - вибирає розподілену бібліотеку
ustat - надає статистику файлової системи
utime, utimes - змінює час доступу і час зміни inode
vfork - створює дочірній процес і блокує батьківський
vhangup - імітує припинення роботи на поточному терміналі
vm86old, vm86 - здійснює перехід у віртуальний режим 8086
wait, waitpid - очікує завершення процесу
wait3, wait4 - очікує завершення роботи процесу (стиль BSD)
write - проводить запис в файловий описувач
Для детальної інформації по кожному системному виклику можна звернутись до документації по системних викликах (http://www.linuxdoc.ru/sys-doc.html)
Дата добавления: 2015-04-03; просмотров: 1327;