Загальне ознайомлення iз системними викликами операцiйної системи Linux

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інші
Група:
ІБ – 44

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет Львівська політехніка  Звіт до лабораторної роботи № 5 на тему: “ Загальне ознайомлення iз системними викликами операцiйної системи Linux ” Мета роботи Познайомитися iз повним набором системних викликiв операцiйної системи Linux та призначенням i синопсисом найвживанiших системних викликiв. Повний список системних викликів 1 exit terminate the current process kernel/exit.c 2 fork create a child process arch/i386/kernel/process.c 3 read read from a file descriptor fs/read_write.c 4 write write to a file descriptor fs/read_write.c 5 open open a file or device fs/open.c 6 close close a file descriptor fs/open.c 7 waitpid wait for process termination kernel/exit.c 8 creat create a file or device ("man 2 open" for information) fs/open.c 9 link make a new name for a file fs/namei.c 10 unlink delete a name and possibly the file it refers to fs/namei.c 11 execve execute program arch/i386/kernel/process.c 12 chdir change working directory fs/open.c 13 time get time in seconds kernel/time.c 14 mknod create a special or ordinary file fs/namei.c 15 chmod change permissions of a file fs/open.c 16 lchown change ownership of a file fs/open.c 18 stat get file status fs/stat.c 19 lseek reposition read/write file offset fs/read_write.c 20 getpid get process identification kernel/sched.c 21 mount mount filesystems fs/super.c 22 umount unmount filesystems fs/super.c 23 setuid set real user ID kernel/sys.c 24 getuid get real user ID kernel/sched.c 25 stime set system time and date kernel/time.c 26 ptrace allows a parent process to control the execution of a child process arch/i386/kernel/ptrace.c 27 alarm set an alarm clock for delivery of a signal kernel/sched.c 28 fstat get file status fs/stat.c 29 pause suspend process until signal arch/i386/kernel/sys_i386.c 30 utime set file access and modification times fs/open.c 33 access check user's permissions for a file fs/open.c 34 nice change process priority kernel/sched.c 36 sync update the super block fs/buffer.c 37 kill send signal to a process kernel/signal.c 38 rename change the name or location of a file fs/namei.c 39 mkdir create a directory fs/namei.c 40 rmdir remove a directory fs/namei.c 41 dup duplicate an open file descriptor fs/fcntl.c 42 pipe create an interprocess channel arch/i386/kernel/sys_i386.c 43 times get process times kernel/sys.c 45 brk change the amount of space allocated for the calling process's data segment mm/mmap.c 46 setgid set real group ID kernel/sys.c 47 getgid get real group ID kernel/sched.c 48 sys_signal ANSI C signal handling kernel/signal.c 49 geteuid get effective user ID kernel/sched.c 50 getegid get effective group ID kernel/sched.c 51 acct enable or disable process accounting kernel/acct.c 52 umount2 unmount a file system fs/super.c 54 ioctl control device fs/ioctl.c 55 fcntl file control fs/fcntl.c 56 mpx (unimplemented) 57 setpgid set process group ID kernel/sys.c 58 ulimit (unimplemented) 59 olduname obsolete uname system call arch/i386/kernel/sys_i386.c 60 umask set file creation mask kernel/sys.c 61 chroot change root directory fs/open.c 62 ustat get file system statistics fs/super.c 63 dup2 duplicate a file descriptor fs/fcntl.c 64 getppid get parent process ID kernel/sched.c 65 getpgrp get the process group ID kernel/sys.c 66 setsid creates a session and sets the process group ID kernel/sys.c 67 sigaction POSIX signal handling functions arch/i386/kernel/signal.c 68 sgetmask ANSI C signal handling kernel/signal.c 69 ssetmask ANSI C signal handling kernel/signal.c 70 setreuid set real and effective user IDs kernel/sys.c 71 setregid set real and effective group IDs kernel/sys.c 72 sigsuspend install a signal mask and suspend caller until signal arch/i386/kernel/signal.c 73 sigpending examine signals that are blocked and pending kernel/signal.c 74 sethostname set hostname kernel/sys.c 75 setrlimit set maximum system resource con sumption kernel/sys.c 76 getrlimit get maximum system resource con sumption kernel/sys.c 77 getrusage get maximum system resource con sumption kernel/sys.c 78 gettimeofday get the date and time kernel/time.c 79 settimeofday set the date and time kernel/time.c 80 getgroups get list of supplementary group IDs kernel/sys.c 81 setgroups set list of supplementary group IDs kernel/sys.c 82 old_select sync. I/O multiplexing arch/i386/kernel/sys_i386.c 83 symlink make a symbolic link to a file fs/namei.c 84 lstat get file status fs/stat.c 85 readlink read the contents of a symbolic link fs/stat.c 86 uselib select shared library fs/exec.c 87 swapon start swapping to file/device mm/swapfile.c 88 reboot reboot or enable/disable Ctrl-Alt -Del kernel/sys.c 89 old_readdir read directory entry fs/readdir.c 90 old_mmap map pages of memory arch/i386/kernel/sys_i386.c 91 munmap unmap pages of memory mm/mmap.c 92 truncate set a file to a specified length fs/open.c 93 ftruncate set a file to a specified length fs/open.c 94 fchmod change access permission mode of file fs/open.c 95 fchown change owner and group of a file fs/open.c 96 getpriority get program scheduling priority kernel/sys.c 97 setpriority set program scheduling priority kernel/sys.c 98 profil execut ion time profile 99 statfs get file system statistics fs/open.c 100 fstatfs get file system statistics fs/open.c 101 ioperm set port input/output permissions arch/i386/kernel/ioport.c 102 socketcall socket system calls net/so cket.c 103 syslog read and/or clear kernel message ring buffer kernel/printk.c 104 setitimer set value of interval timer kernel/itimer.c 105 getitimer get value of interval timer kernel/itimer.c 106 sys_newstat get file status fs/stat.c 107 sys_newlstat get file status fs/stat.c 108 sys_newfstat get file status fs/stat.c 109 olduname get name and information about current kernel arch/i386/kernel/sys_i386.c 110 iopl change I/O privilege level arch/i386/kernel/ioport.c 111 vhangup virtually hangup the current tty fs/open.c 112 idle make process 0 idle arch/i386/kernel/process.c 113 vm86old enter virtual 8086 mode arch/i386/kernel/vm86.c 114 wait4 wait for process termination, BSD style kernel/exit.c 115 swapoff stop swapping to file/device mm/swapfile.c 116 sysinfo returns information on overall system statistics kernel/info.c 117 ipc System V IPC system calls arch/i386/kernel/sys_i386.c 118 fsync synchronize a file's complete in-core state with that on disk fs/buffer.c 119 sigreturn return from signal handler and cleanup stack frame arch/i386/kernel/signal.c 120 clone create a child process arch/i386/kernel/process.c 121 setdomainname set domain name kernel/sys.c 122 uname get name and information about current kernel kernel/sys.c 123 modify_ldt get or set ldt arch/i386/kernel/ldt.c 124 adjtimex tune kernel clock kernel/time.c 125 mprotect set protection of memory mapping mm/mprotect.c 126 sigprocmask POSIX signal handling functions kernel/signal.c 127 create_module create a loadable module entry kernel/module.c 128 init_module initialize a loadable module entry kernel/module.c 129 delete_module delete a loadable module entry kernel/module.c 130 get_kernel_syms retrieve exported kernel and module symbols kernel/module.c 131 quotactl manipulate disk quotas fs/dquot.c 132 getpgid get process group ID kernel/sys.c 133 fchdir change working directory fs/open.c 134 bdflush start, flush, or tune buffer-dirty-flush daemon fs/buffer.c 135 sysfs get file system type information fs/super.c 136 personality set the process execution domain kernel/exec_domain.c 137 afs_syscall (unimplemented) 138 setfsuid set user identity used for file system checks kernel/sys.c 139 setfsgid set group identity used for file system checks kernel/sys.c 140 sys_llseek move extended read/write file pointer fs/read_write.c 141 getdents read directory entries fs/readdir.c 142 select sync. I/O multiplexing fs/select.c 143 flock apply or remove an advisory lock on an open file fs/locks.c 144 msync synchronize a file with a memory map mm/filemap.c 145 readv read data into multiple buffers fs/read_write.c 146 writev write data into multiple buffers fs/read_write.c 147 sys_getsid get process group ID of session leader kernel/sys.c 148 fdatasync synchronize a file's in-core data with that on disk fs/buffer.c 149 sysctl read/write system parameters kernel/sysctl.c 150 mlock lock pages in memory mm/mlock.c 151 munlock unlock pages in memory mm/mlock.c 152 mlockall disable paging for calling process mm/mlock.c 153 munlockall reenable paging for calling process mm/mlock.c 154 sched_setparam set scheduling parameters kernel/sched.c 155 sched_getparam get scheduling parameters kernel/sched.c 156 sched_setscheduler set scheduling algorithm parameters kernel/sched.c 157 sched_getscheduler get scheduling algorithm parameters kernel/sched.c 158 sched_yield yield the processor kernel/sched.c 159 sched_get_priority_max get max static priority range kernel/sched.c 160 sched_get_priority_min get min static priority range kernel/sched.c 161 sched_rr_get_interval get the SCHED_RR interval for the named process kernel/sched.c 162 nanosleep pause execution for a specified time (nano seconds) kernel/sched.c 163 mremap re-map a virtual memory address mm/mremap.c 164 setresuid set real, effective and saved user or group ID kernel/sys.c 165 getresuid get real, effective and saved user or group ID kernel/sys.c 166 vm86 enter virtual 8086 mode arch/i386/kernel/vm86.c 167 query_module query the kernel for various bits pertain ing to modules kernel/module.c 168 poll wait for some event on a file descriptor fs/select.c 169 nfsservctl syscall interface to kernel nfs daemon fs/filesystems.c 170 setresgid set real, effective and saved user or group ID kernel/sys.c 171 getresgid get real, effective and saved user or group ID kernel/sys.c 172 prctl operations on a process kernel/sys.c 173 rt_sigreturn arch/i386/kernel/signal.c 174 rt_sigaction kernel/signal.c 175 rt_sigprocmask kernel/signal.c 176 rt_sigpending kernel/signal.c 177 rt_sigtimedwait kernel/signal.c 178 rt_sigqueueinfo kernel/signal.c 179 rt_sigsuspend arch/i386/kernel/signal.c 180 pread read from a file descriptor at a given offset fs/read_write.c 181 sys_pwrite write to a file descriptor at a given offset fs/read_write.c 182 chown change ownership of a file fs/open.c 183 getcwd Get current working directory fs/dcache.c 184 capget get process capabilities kernel/capability.c 185 capset set process capabilities kernel/capability.c 186 sigaltstack set/get signal stack context arch/i386/kernel/signal.c 187 sendfile transfer data between file descriptors mm/filemap.c 188 getpmsg (unimplemented) 189 putpmsg (unimplemented) 190 vfork create a child process and block parent arch/i386/kernel/process.c Системні виклики можна умовно розділити на п'ять основних категорій: Управління виробничим процесом. Кінець, переривання Навантаження, виконати Створити процес, припинити процес Отримати процесу атрибутів, набір атрибутів процесу Чекати часу Чекати події, знаковою подією Виділення і звільнення пам'яті Управління файлами. Створити файл, видалити файл Відкриття, закриття Читати, писати, репозиція Отримати атрибути файлів, набір атрибутів файлу Device Management. Запит пристрої, реліз пристрою Читати, писати, репозиція Отримати пристрій атрибути, набір атрибутів пристрої Логічно підключення або від'єднання пристрою Інформаційна підтримка. Отримати час і дату, встановити час і дату Отримати системи даних, встановлювати дані системи Отримати процесу, файл або пристрій атрибути Комплект процес, файл або пристрій атрибути Зв'язок. Створювати, видаляти зв'язку зв'язку Відправляти, отримувати повідомлення Передача інформації про стан Підключення або від'єднання віддаленого пристрою Системний виклик STAT SYNOPSIS #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name, struct stat *buf); int fstat(int filedes, struct stat *buf); int lstat(const char *file_name, struct stat *buf);   DESCRIPTION Ці функції повертають інформацію про вказаний файлі. Вам не потрібні права доступу до файлу, отримати цю інформацію, але потрібно шукати права на всі каталоги, зазначені в шлях, що веде до файлу. STAT статистичний файл, на який вказує ім'я_файлу і заповнює BUF. LSTAT ідентичний стат, за винятком випадків, символічної посилання, де сама посилання стат-ред, а не файл, який вона посилається. FSTAT ідентичний статистики, лише відкрити файл, на який вказує filedes (який повертається з відкритих (2)) є стат-ред на місці ім'я_файлу. Вони всі повертаються стат структуру, яка містить такі поля: struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last change */ }; Значення st_size дає розмір файлу (якщо це звичайний файл або символічне посилання) в байтах. Розмір символічна посилання довжини шлях він містить, без задньої NUL. Значення st_blocks видає розмір файлу в 512-байтних блоків. (Це може бути менше, ніж st_size/512 наприклад, якщо файл має отвори.) Вартість st_blksize дає "бажаний" розмір блоку для ефективного файлової системи вводу / виводу (Запис у файл у дрібні шматки може призвести до неефективного читати-зміна-перезапису. Не всі файлові системи Linux виконувати всі поля часу. Деякі типи файлів системи дозволяють монтувати таким чином, щоб файл доступу не викликають оновлення st_atime області. (Див. `noatime в гори (8). St_atime області змінюється файл доступ, наприклад, по execve (2), mknod (2), труби (2), utime (2) і читати (2) (більше нуля байт). Інші процедури, як відобразити в пам'яті (2), може чи не може оновлювати st_atime. St_mtime області змінюється зміна файлів, наприклад, по mknod (2), усікання (2), utime (2) і писати (2) (більше нуля байт). Крім того, st_mtime довідника змінюється створення або видалення файлів у цьому каталозі. St_mtime області не буде змінено для зміни власника, групи жорстких оцінок посилання або режимі. St_ctime області змінюється у письмовій формі або шляхом встановлення Інода інформацію (наприклад, власник, група, кількість посилань, спосіб і т.д.). Системний виклик READDIR SYNOPSIS #include <sys/types.h> #include <dirent.h> struct dirent *readdir(DIR *dir); DESCRIPTION Readdir () повертає покажчик на несподіваний структуру як наступного запису каталозі в каталозі потік, на який вказує реж. Вона повертає NULL по досягненні кінця файлу або якщо сталася помилка. Відповідно до POSIX, несподіваний структура містить поле символ d_name [] невизначеного розміру, з більш символів NAME_MAX попередньої нульовий символ. Використання інших полів зашкодить переносимість ваших програм. POSIX-2001 також документи d_ino області ino_t як розширення XSI. Дані, що повертаються readdir () можуть бути замінені наступними викликами readdir () за той же потік каталогу. RETURN VALUE Readdir () повертає покажчик на несподіваний структури, або NULL, якщо відбувається помилка чи настає кінець файлу буде досягнутий. Висновок: в даній лабораторній роботі я ознайомився з системними викликами ОС LINUX. Також я грунтовно ознайомився з декількома основними системними викликами. Як виявилось, в ОС LINUX є з десяток зарезервованим системних викликів, які поки що не реалізовані.
Антиботан аватар за замовчуванням

19.02.2012 18:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!