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

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

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


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

4
Почему именования системных вызовов UNIX / POSIX так неразборчивы?
В чем причина использования таких неописуемых имен системных вызовов, как timeи creatвместо getCurrentTimeSecsи, createFileили, возможно, более подходящих для Unix get_current_time_secsи create_file. Что подводит меня к следующему пункту: почему кто-то хочет что-то вроде cfsetospeedбез верблюжьего футляра или, по крайней мере, подчеркивает, чтобы сделать его читабельным? Конечно, в вызовах будет больше символов, …

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

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

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

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

1
Системный вызов getrusage: что такое «максимальный размер резидентного набора»
man getrusage 2 говорит ru_maxrss (since Linux 2.6.32) This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest child, not the maximum resident set size of the process tree. Так что же конкретно означает это число?

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

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

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

5
Что подразумевается под «системным вызовом», если не за реализацией на языке программирования?
Я хотел бы понять термин «системный вызов». Мне знакомо, что системные вызовы используются для получения служб ядра из приложения пользовательского пространства. Часть, с которой мне нужно уточнить, - это разница между «системным вызовом» и «реализацией системного вызова на C». Вот цитата, которая смущает меня: В Unix-подобных системах этот API обычно …
14 kernel  c  posix  system-calls 

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.