Вопросы с тегом «system-calls»

Вопросы, касающиеся деталей того, как программа использует системные вызовы для взаимодействия с API ядра, какие вызовы доступны, как они работают и т. Д.

375
Как я могу найти реализации системных вызовов ядра Linux?

Я пытаюсь понять, как работает, скажем mkdir, функция, посмотрев на исходный код ядра. Это попытка понять внутреннее ядро ​​и перемещаться между различными функциями. Я знаю mkdir, определяется в sys/stat.h. Я нашел прототип: /* Create a new directory named PATH, with permission bits MODE. */...

48
Что сделал системный вызов tuxcall?

В include/x86_64-linux-gnu/asm/unistd_64.h, я вижу системный вызов с именем tuxcall, #define __NR_tuxcall 184 В этом нет ничего, man tuxcallкроме как сказать, что это нереализованные системные вызовы . Что это сделало? Он никогда не был реализован или что-то делал в...

43
Почему именования системных вызовов UNIX / POSIX так неразборчивы?

В чем причина использования таких неописуемых имен системных вызовов, как timeи creatвместо getCurrentTimeSecsи, createFileили, возможно, более подходящих для Unix get_current_time_secsи create_file. Что подводит меня к следующему пункту: почему кто-то хочет что-то вроде cfsetospeedбез верблюжьего...

35
Почему номера системных вызовов Linux в x86 и x86_64 отличаются?

Я знаю, что интерфейс системных вызовов реализован на низком уровне и, следовательно, зависит от архитектуры / платформы, а не от «общего» кода. Тем не менее, я не могу ясно увидеть причину, по которой системные вызовы в 32-битных ядрах Linux x86 имеют числа, которые не сохраняются одинаковыми в...

29
Прерывание системных вызовов при перехвате сигнала

Из чтения страниц справочника по вызовам read()и write()вызовам выясняется, что эти вызовы прерываются сигналами независимо от того, должны они блокировать или нет. В частности, предположим процесс устанавливает обработчик для некоторого сигнала. устройство открыто (скажем, терминал) с O_NONBLOCK...

25
Где вилка () на бомбе: () {: |: &};:?

Предупреждение: выполнение этой команды в большинстве оболочек приведет к поломке системы, для исправления которой потребуется принудительное отключение Я понимаю рекурсивную функцию :(){ :|: & };:и что она делает. Но я не знаю, где находится системный вызов fork. Я не уверен, но я подозреваю в...

25
Какова цель первого аргумента для выбора системного вызова?

От man select int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); nfds - дескриптор файла с наибольшим номером в любом из трех наборов плюс 1. Какова цель nfds, когда у нас уже есть readfds, writefdsи exceptfdsиз которого могут быть определены...

21
Как понимать трубы

Когда я просто использовал pipe в bash, я больше не думал об этом. Но когда я читаю некоторый пример кода на языке C, используя системный вызов pipe () вместе с fork (), я удивляюсь, как понимать каналы, включая как анонимные каналы, так и именованные каналы. Часто говорят, что «все в Linux / Unix...

19
flock (2) против fcntl (2) по NFS

В документации Perl 5.x говорится, что при реализации flock (..) будет использоваться один из следующих собственных вызовов, начиная с 1 и работая до 3, если он недоступен: стадо (2) Fcntl (2) lockf (3) Все в порядке. Тем не менее, вы, возможно, заметили их заявление об отказе от использования...

15
Какова связь между системными вызовами, передачей сообщений и прерываниями?

Я читаю статью в Википедии по управлению процессами . Я сосредоточен на Linux. Я не могу понять отношения и различия между системным вызовом, передачей сообщений и прерыванием, в их понятиях и целях. Они все для процессов, чтобы сделать запросы к ядру для ресурсов и услуг? Некоторые цитаты из...

14
Что подразумевается под «системным вызовом», если не за реализацией на языке программирования?

Я хотел бы понять термин «системный вызов». Мне знакомо, что системные вызовы используются для получения служб ядра из приложения пользовательского пространства. Часть, с которой мне нужно уточнить, - это разница между «системным вызовом» и «реализацией системного вызова на C». Вот цитата, которая...

13
Как долго адрес локального сокета TCP, который был привязан, недоступен после закрытия?

В Linux (мои живые серверы на RHEL 5.5 - ссылки LXR ниже на версию ядра в этом), man 7 ipговорит: Связанный локальный адрес сокета TCP недоступен в течение некоторого времени после закрытия, если только не был установлен флаг SO_REUSEADDR. Я не использую SO_REUSEADDR. Как долго это "некоторое...

13
Разница между медленными системными вызовами и быстрыми системными вызовами

В чем разница между медленными системными вызовами и быстрыми системными вызовами? Я узнал, что медленный системный вызов может блокировать, если процесс ловит некоторые сигналы, потому что перехваченные сигналы могут пробудить заблокированный системный вызов, но я не могу точно понять этот...

13
В чем разница между fork () и vfork ()?

Я хотел бы подробно понять разницу между fork () и vfork (). Я не смог полностью переварить справочную страницу. Я также хотел бы пояснить комментарий одного из моих коллег: « В текущем Linux нет vfork (), даже если вы его вызываете, он будет внутренне вызывать fork () »....

12
Эквивалент «truss -T» и «truss -U» в Linux?

Есть ли эквивалент того, что делает -Tи -Uвариант trussутилиты Solaris в Linux. Они должны указывать системный вызов ( -T) или библиотечную функцию ( -U), которая при вызове отслеживаемым приложением приведет к его остановке. Или, в противном случае, я бы хотел, чтобы любой процесс, запущенный...

12
Почему дочерний элемент vfork или fork должен вызывать _exit () вместо exit ()?

Со страницы руководства vfork(): vfork () отличается от fork () тем, что родительский элемент приостанавливается до тех пор, пока дочерний элемент не вызовет execve (2) или _exit (2). Дочерний узел совместно использует всю память со своим родителем, включая стек, до тех пор, пока дочерний объект не...

11
Добавление нового системного вызова в Linux 3.2.x с загружаемым модулем ядра [закрыто]

Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он подходил для Unix и Linux Stack Exchange. Закрыто 7 лет назад . Я хочу добавить новый системный вызов в ядро ​​Linux 3.2.x, но в качестве загружаемого модуля ядра...