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

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

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

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

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

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

Міністерство освіти і науки України Національний університет «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  Лабораторна робота №5 Загальне ознайомлення iз системними викликами операцiйної системи Linux Мета роботи: познайомитися iз повним набором системних викликiв операцiйної системи Linux та призначенням i синопсисом найвживанiших системних викликiв. Завдання: Використовуючи програму Telnet i ввiвши login i password, пiд'єднатися до Linux-сервера. Використовуючи команду man syscalls, познайомитися iз повним списком системних викликiв операцiйної системи Linux. Використовуючи команду man, провести аналiз призначень системних викликiв, розбиваючи їх на наступнi групи: ввiд-вивiд файлiв; робота з каталогами; керування пам'яттю; робота з процесами (створення, завершення, тощо); диспетчерування процесiв; засоби мiжпроцесних комунiкацiй; робота з мережею; засоби роботи iз сигналами; служба часу; засоби видачi iнформацiї про операцiйну систему; забезпечення роботи iз модулями. Використовуючи команду man, познайомитися iз синопсисом, призначення, а також i вiповiдними структурами (struct) наступних системних викликiв: open(2), create(2), read(2), write(2), close(2), umask(2), stat(2), fstat(2), lstat(2), lseek(2), readdir(2), getdents(2), fork(2), execve(2), wait(2), exit(2), kill(2). Використовуючи команду man, познайомитися iз призначення наступних системних викликiв: access(2), chmod(2), fchmod(2), chown(2), setuid(2), getuid(2), link(2), unlink(2), symlink(2), mknode(2), socket(2), fcntl(2), rename(2), chdir(2), fchdir(2), mkdir(2), rmdir(2), ioctl(2), pause(2), nice(2), uname(2), getpid(2), setpid(2), geteuid(2), setreuid(2), alarm(2), time(2), stime(2), gettimeofday(2), settimeofday(2), times(2), create_module(2), init_module(2), delete_module(2), get_kernel_syms(2) Результат виконання завдання: Системні виклики операційної системи Linux syscalls - перелік усіх системних викликів Системний виклик - це основний інтерфейс між додатком і ядром Лінукса. Перелік системних викликів Linux складався з 1100 функцій, визначених в /usr/src/linux/include/asm-*/unistd.h. _llseek(2), _newselect(2), _sysctl(2), accept(2), access(2), acct(2), adjtimex(2), afs_syscall, alarm(2), bdflush(2), bind(2), break, brk(2), cacheflush(2), capget(2), capset(2), chdir(2), chmod(2), chown(2), chown32, chroot(2), clone(2), close(2), connect(2), creat(2), create_module(2), delete_module(2), dup(2), dup2(2), execve(2), exit(2), fchdir(2), fchmod(2), fchown(2), fchown32, fcntl(2), fcntl64, fdatasync(2), flock(2), fork(2), fstat(2), fstat64, fstatfs(2),fsync(2), ftime, ftruncate(2), ftruncate64, get_ker-nel_syms(2), getcwd(2), getdents(2), getdents64, gete-gid(2), getegid32, geteuid(2), geteuid32, getgid(2), get- gid32, getgroups(2), getgroups32, getitimer(2), getpage-size(2), getpeername(2), getpmsg, getpgid(2), getpgrp(2), getpid(2), getppid(2), getpriority(2), getresgid(2),getresgid32, getresuid(2), getresuid32, getrlimit(2), getrusage(2), getsid(2), getsockname(2), getsockopt(2), gettid, gettimeofday(2), getuid(2), getuid32, gtty, idle,init_module(2), ioctl(2), ioperm(2), iopl(2), ipc(2), kill(2), lchown(2), lchown32, link(2), listen(2), lock,lseek(2), lstat(2), lstat64, madvise(2), mincore(2), mkdir(2), mknod(2), mlock(2), mlockall(2), mmap(2), mod- ify_ldt(2), mount(2), mprotect(2), mpx, mremap(2), msync(2), munlock(2), munlockall(2), munmap(2), nanosleep(2), nfsservctl(2), nice(2), oldfstat, oldlstat, oldolduname, oldstat, oldumount, olduname, open(2), pause(2), personality(2), phys, pipe(2), pivot_root(2), poll(2), prctl(2), pread(2), prof, profil, ptrace(2), putpmsg, pwrite(2), query_module(2), quotactl(2), read(2), readahead, readdir(2), readlink(2), readv(2), reboot(2), recv(2), recvfrom(2), recvmsg(2), rename(2), rmdir(2),rt_sigaction, rt_sigpending, rt_sigprocmask, rt_sigqueue- info, rt_sigreturn, rt_sigsuspend, rt_sigtimedwait, sched_get_priority_max(2), sched_get_priority_min(2), sched_getparam(2), sched_getscheduler(2), sched_rr_get_interval(2), sched_setparam(2), sched_setscheduler(2), sched_yield(2), security,select(2), sendfile(2), send(2), sendmsg(2), sendto(2), setdomainname(2), setfsgid(2), setfsgid32, setfsuid(2), setfsuid32, setgid(2), setgid32, setgroups(2), set- groups32, sethostname(2), setitimer(2), setpgid(2), set- priority(2), setregid(2), setregid32, setresgid(2), setresgid32, setresuid(2), setresuid32, setreuid(2),setreuid32, setrlimit(2), setsid(2), setsockopt(2), set- timeofday(2), setuid(2), setuid32, setup(2), sgetmask(2), shutdown(2), sigaction(2), sigaltstack(2), signal(2), sig- pending(2), sigprocmask(2), sigreturn(2), sigsuspend(2) socket(2), socketcall(2), socketpair(2), ssetmask(2), stat(2), stat64, statfs(2), stime(2), stty, swapoff(2),swapon(2), symlink(2), sync(2), sysfs(2), sysinfo(2), sys- log(2), time(2), times(2), truncate(2), truncate64,ulimit, umask(2), umount(2), uname(2), unlink(2),uselib(2), ustat(2), utime(2), vfork(2), vhangup(2), vm86(2), vm86old, wait4(2), waitpid(2), write(2), writev(2). З наведеного переліку, 9 є застарілими, а саме getrlimit,oldfstat, oldlstat, oldolduname, oldstat, olduname, read- dir, select та vm86old (дивіться сторінку obsolete(2)), і 15 ще не втілено в стандартному ядрі; ними являються afs_syscall, break, ftime, getpmsg, gtty, idle, lock, mpx, phys, prof, profil, putpmsg, security, stty та ulimit (дивіться unimplemented(2)). Однак, ftime(3), profil(3) та ulimit(3) існують як функції Стандартної бібліотеки. Місце phys зайнято, починаючи з 2.1.116, системним викликом umount, тож phys ніколи не буде реалізовано.Виклики getpmsg та putpmsg призначено для ядер з латкою для підтримки потоків, і можуть ніколи не попасти до стандартного ядра. Виклик security зарезервовано на майбутнє. Ввід-вивід файлів _llseek(2), close(2), creat(2), dup(2), link(2), lseek(2) Робота з каталогами chdir(2), chroot(2), fchdir(2), mkdir(2) Керування пам'яттю brk(2), fdatasync(2), fsync(2), ftruncate(2), rename(2), sync(2) Робота з процесами (створення, завершення, тощо) execve(2), exit(2), flock(2), fork(2), Диспетчерування процесiв acct(2), getpid(2), getppid(2), nice(2), vfork(2) Засоби мiжпроцесних комунiкацiй mount(2), pipe(2), umount(2), uselib(2), vfork(2) Робота з мережею accept(2), bind(2), connect(2), getpeername(2), getsockname(2), getsockopt(2), send(2) Засоби роботи iз сигналами kill(2), pause(2), poll(2), signal(2) sig- pending(2) Служба часу acct(2), alarm(2), time(2), times(2), utime(2) Засоби видачi iнформацiї про операцiйну систему sysctl(2), fstat(2), fstatfs(2), gete-gid(2), geteuid(2), statfs(2) Забезпечення роботи iз модулями ioctl(2), ioperm(2), vhangup(2) Призначення системних викликів, синопсис і структура деяких із них _llseek(2) - змінює відносне положення читання/запису у файлі close(2) -закриває дескриптор файла creat(2)- відкриває і, по можливості, створює файл або пристрій dup(2) - дублює дескриптор файла link(2) - створює нову назву для файла lseek(2) - переміщує позицію читання/запису файла chdir(2) - змінює робочий каталог chroot(2) - змінює кореневий каталог fchdir(2) - змінює робочий каталог mkdir(2) - створює каталог brk(2) - змінює розмір сегменту даних fdatasync(2) fsync(2)- синхронізують стан файла в пам'яті із тим, що на диску ftruncate(2) - стинає файл до вказаної довжини rename(2) - змінює назву і місцеположення файла sync(2) - фіксує буферний кеш на диску execve(2) - виконує програму exit(2) - завершує роботу програми flock(2) - застосовує дорадче замкнення відкритого файла fork(2) - створює процес-нащадок. acct(2) - вмикає та вимикає облік процесів getpid(2) getppid(2) - добуття ідентифікаційного номера процесу nice(2) - змінює пріоритет процесу vfork(2) - створює дочірній процес і блокує батьківський mount(2) umount(2)- монтаж та демонтаж файлових систем pipe(2) - створює конвеєр uselib(2) - призначає загальну бібліотеку vfork(2) створює дочірній процес і блокує батьківський accept(2) - приймає сполучення на сокеті bind(2) - функція надання назви сокету connect(2) - започатковує сполучення на сокеті getpeername(2) - одержує ім'я сполученого сонета рівноправного вузла getsockname(2) - добуває назву сокета getsockopt(2) - добуває та задає опції сокета send(2) - посилає повідомлення через сокет kill(2) - надсилає сигнал процесу pause(2) - очікування сигналу poll(2) - очікує якоїсь події, що відбудеться на дескрипторі файла signal(2) - обробка сигналів ANSI C acct(2) - вмикає та вимикає облік процесів alarm(2) - встановлює таймер для подачі сигналу тривоги time(2) - повертає час у секундах utime/s(2) - змінює час доступу і/або модифікаціїіндексного вузла fstat(2) fstatfs(2)- добуття статусу файла gete-gid(2) - добуває ідентифікатор групи geteuid(2) добуває ідентичність користувача statfs(2) - добуття статистики про файлову систему ioctl(2) - керує пристроями ioperm(2) - встановлює дозволи вводу-виводу портів vhangup(2) - імітує завершення роботи на поточному терміна NAME link - call the link function to create a link to a file SYNOPSIS link FILE1 FILE2 link OPTION DESCRIPTION Call the link function to create a link named FILE2 to an existing FILE1. --help display this help and exit --version output version information and exit NAME write — send a message to another user SYNOPSIS write user [ttyname] DESCRIPTION The write utility allows you to communicate with other users, by copying lines from your terminal to theirs. When you run the write command, the user you are writing to gets a mes‐ sage of the form: Message from yourname@yourhost on yourtty at hh:mm ... Any further lines you enter will be copied to the specified user's termi‐ nal. If the other user wants to reply, they must run write as well. When you are done, type an end-of-file or interrupt character. The other user will see the message ‘EOF’ indicating that the conversation is over. NAME stat - display file or file system status SYNOPSIS stat [OPTION]... FILE... DESCRIPTION Display file or file system status. -L, --dereference follow links -f, --file-system display file system status instead of file status -c --format=FORMAT use the specified FORMAT instead of the default; output a new‐ line after each use of FORMAT --printf=FORMAT like --format, but interpret backslash escapes, and do not out‐ put a mandatory trailing newline. If you want a newline, include \n in FORMAT. -t, --terse print the information in terse form --help display this help and exit --version output version information and exit NAME kill - send a signal to a process SYNOPSIS kill [ -signal | -s signal ] pid ... kill [ -L | -V, --version ] kill -l [ signal ] DESCRIPTION The default signal for kill is TERM. Use -l or -L to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: -9 -SIGKILL -KILL. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of -1 is special; it indicates all processes except the kill process itself and init. stat - добуття статусу файла struct stat { dev_t st_dev; /* прилад */ ino_t st_ino; /* індексний номер */ mode_t st_mode; /* захист */ nlink_t st_nlink; /* кількість твердих посилань */ uid_t st_uid; /* користувацький ID власника */ gid_t st_gid; /* ID групи власника */ dev_t st_rdev; /* тип приладу */ off_t st_size; /* загальний розмір, в байтах */ blksize_t st_blksize; /* розмір блоку для операцій вводу/виводу */ blkcnt_t st_blocks; /* кількість виділених блоків */ time_t st_atime; /* час останнього доступу */ time_t st_mtime; /* час останньої модифікації */ time_t st_ctime; /* час останньої зміни статусу */ }; readdir– зчитає дані каталога #include <unistd.h> #include <linux/dirent.h> #include <linux/unistd.h> _syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count); int readdir(unsigned int fd, struct dirent *dirp, unsigned int count); Ця функція записує одну структуру dirent із каталогу,заданого fd, в область пам’яті, на яку вказує dirp. Параметр count майже завжди ігнорується і зчитується одна структура dirent. Структура dirent визначена так: struct dirent { long d_ino; /* номер inode */ off_t d_off; /* зміщення на dirent */ unsigned short d_reclen; /* довжина d_name */ char d_name [NAME_MAX+1]; /* і’мя файла */ } d_ino - це номер inode. d_off - зміщення запису dirent від початку каталогу. d_reclen - довжина d_name (без кінцевого нуля). d_name – ім’я файла,яке закінчується нулем. Призначення системних викликiв перелiчених в пунктi 4 open(2) - відкриває і, по можливості, створює файл або пристрій create(2) - відкриває і, по можливості, створює файл або пристрій read(2) - читає з дескриптора файла write(2) - здійснює запис до дескриптора файла close(2) - закриває дескриптор файла umask(2) - встановлює маску створення файлів stat(2) - добуття статусу файла fstat(2) - добуття статусу файла lstat(2) - добуття статусу файла lseek(2) - переміщує позицію читання/запису файла readdir(2) – отримати елемент каталогу по його дескриптору getdents(2) – читання елементів із каталогу і перетворення в системно-незалежний формат. fork(2) - створює процес-нащадок. execve(2) - виконує програму wait(2) –очікування завершення породженого процесу. exit(2) - завершує роботу програми kill(2) - надсилає сигнал процесу Висновок: на даній лабораторній роботі я ознайомилася з системними викликами операційної системи Linux, а також призначенням і синопсисом найуживаніших із них.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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