Запитання з тегом «system-calls»

Питання щодо деталей того, як програма використовує системні дзвінки для взаємодії з API ядра, які дзвінки доступні, як вони працюють і т.д.


2
Яка різниця між fork () та vfork ()?
Я хотів би детально розібратися в різниці між fork () та vfork (). Я не зміг повністю перетравити сторінку людини. Я також хотів би уточнити коментар одного з моїх колег: " У поточному Linux немає vfork (), навіть якщо ви його зателефонуєте, він буде внутрішньо викликати fork () ."

2
Еквівалент "truss -T" та "truss -U" в Linux?
Чи є еквівалент тому, що робить -Tі -Uопція trussутиліти Solaris в Linux. Вони повинні вказати системний виклик ( -T) або функцію бібліотеки ( -U), яка при виклику відстеженої програми спричинить його зупинку. Або, якщо говорити інакше, я хочу, щоб будь-який процес, розпочатий відстежуваною програмою, був зупинений (як би вбитий SIGSTOP), …

4
Чому дитина vfork або fork повинен викликати _exit () замість exit ()?
З чоловічої сторінки vfork(): vfork () відрізняється від fork () тим, що батько призупиняється, поки дитина не викличе виконувати (2) або _exit (2). Дитина ділиться всією пам’яттю зі своїм батьком, включаючи стек, доки дитина не видасть execve (). Дитина не повинна повертатися з поточної функції або виклику виходу (), але …
12 c  system-calls  fork  exit 

2
Чому немає системних дзвінків для вставки файлів
Наскільки я розумію, для управління файлами існує лише sys_write syscall в Linux, який перезаписує вміст файлу (або розширює його, якщо в кінці). Чому немає системних викликів для вставки або видалення вмісту у файли в Linux? Оскільки всі поточні файлові системи не вимагають збереження файлу в безперервному блоці пам'яті, ефективна реалізація …

2
Додавання нового системного виклику до Linux 3.2.x за допомогою завантажуваного модуля ядра [закрито]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для Unix & Linux Stack Exchange. Закрито 7 років тому . Я хочу додати певний новий системний виклик в Linux ядро ​​3.2.x, але як модуль ядра для завантаження (оскільки я …


3
Яку одиницю часу використовує страйк під час відображення часу, проведеного в системних дзвінках?
Використовуючи команду straceз прапором -T, я хотів би знати, яка одиниця часу використовується для відображення часу, проведеного в систематичних дзвінках? Я припускаю, що це повинно бути за лічені секунди, але я не зовсім впевнений, і це, здається, у керівництві опущено.

1
У чому полягає використання "магічних аргументів" у виклику перезавантаження системи Linux?
Коли я читав вихідний код Linux, а точніше код системних викликів, натрапив на sys_rebootреалізацію: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } У середині є цей специфічний фрагмент коду: 209 210 /* For safety, we …

1
Чому rmdir і від’єднання двох окремих системних викликів?
Ось щось мене змусило замислитися: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=245801, ...}) …

4
Коли самостійно викликати fork () та exec ()?
Я дізнаюся про команди fork () та exec (). Схоже, fork () і exec () зазвичай називаються разом. (fork () створює новий дочірній процес, а exec () замінює поточне зображення процесу новим.) Однак у яких сценаріях ви можете викликати кожну функцію самостійно? Чи є такі сценарії?


2
Який файл у ядрі визначає fork (), vfork ()… для використання системного виклику sys_clone ()
Коли ltrace використовується для відстеження системних викликів, я можу побачити, що fork () використовує sys_clone (), а не sys_fork (). Але я не міг знайти джерело Linux, де це визначено. Моя програма така #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } І ltrace …

3
Здійснення процесу зчитування іншого файлу для того ж імені файлу
У мене є програма, яка читає файл. Назвемо це ім'я процесу та файл ~ / .configuration . Коли ім'я процесу запущено, воно завжди зчитує ~ / .configuration і не може бути налаштовано інакше. Є й інші програми , які покладаються на «~ / .configuration», до і після, але не в …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.