7
ответов

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

Я пытаюсь понять как функция, скажем mkdir, работы путем рассмотрения источника ядра. Это - попытка понять внутренности ядра и перейти между различными функциями. Я знаю mkdir...
23.08.2016
6
ответов

Каково различие между вызовом Библиотеки и Системным вызовом в Linux?

Я хотел бы знать то, что является различием между вызовом Библиотеки и Системным вызовом в Linux. Любые указатели для хорошего понимания понятий позади обоих будут значительно цениться.
05.02.2011
5
ответов

Что предназначено “системным вызовом” если не реализация на языке программирования?

Я хотел бы понять термин "системный вызов". Я знаком, что системные вызовы используются для получения сервисов ядра от приложения пространства пользователя. Разъяснение потребности первой части с является различием...
18.04.2014
4
ответа

Как работает графический интерфейс Linux на самом низком уровне?

В основном я пытаюсь выяснить, как можно создать графический интерфейс с нуля, используя только ядро ​​Linux и программирование на C. Я не собираюсь создавать рабочий стол с графическим интерфейсом...
20.02.2020
4
ответа

Поймите коды ошибок в Linux

Я работаю над Linux (Версия 2.6.32.28 Ядра) ноутбук. После того, как я вставил / файл io/removed комбинированная плата SD, я получил следующие ошибки: mmcblk0: ошибка-123 передающих команды mmcblk0 состояния: ошибка-...
11.02.2012
4
ответа

Почему должен, ребенок vfork или ветвления называет _exit () вместо выхода ()?

Из страницы справочника vfork (): vfork () отличается от ветвления (), в котором приостановлен родитель, пока ребенок не звонит execve (2) или _exit (2). Ребенок совместно использует всю память с ее родителем...
12.06.2011
4
ответа

Мнемоника для функций Unix?

У кого-либо есть какая-либо полезная мнемоника для запоминания порядка параметров функции или возвращаемых значений системных вызовов Unix? Я страдаю от "утечек памяти".
14.03.2011
3
ответа

Какая связь между SIGCHLD и `waitpid ()`или `wait ()`?

Если я прав, процесс ожидает завершения или остановки своих дочерних процессов, вызывая функцию waitpid ()или wait (). Какова связь между сигналом SIGCHLD и функциями ожидания ()или ожидания ()?...
27.10.2020
3
ответа

Создание процесса считать другой файл для того же имени файла

У меня есть приложение, которое читает файл. Давайте назовем это processname и файлом ~/.configuration. Когда processname работает, он всегда читает ~/.configuration и не может быть настроен по-другому. Существуют...
27.11.2019
3
ответа

Требуется сценарий оболочки для чтения строки с соответствующим содержимым

У меня есть файл abc.txt, который имеет 100 строк. Я хотел прочитать конкретное содержимое из этих 100 строк и напечатать эту соответствующую строку. Ниже приведен текстовый файл. 2018-09-12 11:00: 02.290 [главная] ИНФОРМАЦИЯ...
17.09.2018
3
ответа

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

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

Действительно ли системный вызов является единственным способом, которым пользовательская программа может намеренно влиять на состояние ядра Linux?

Я думаю, что существует несколько способов, которыми пользовательская программа может намеренно влиять на состояние ядра Linux. Путем вызова системного вызова; Путем вызова mmap () и записи памяти, которая была отображена на...
16.12.2014
2
ответа

Как вы получаете системные вызовы из приложения и совпадают ли они с функциями, используемыми в исходном коде?

Я пытаюсь извлечь SysCalls из исходного кода, но немного запутался. Я нашел источник, например https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.mdи https ://filippo....
02.03.2021
2
ответа

Почему rmdir (системный вызов )работает только с пустым каталогом?

Нельзя ли атомарно разорвать связь каталога с индексным узлом его родителя? Есть ли за этим какая-то историческая причина?
10.12.2020
2
ответа

Копирует ли fork ()дескриптор файла для исполняемого двоичного файла, который в данный момент выполняется вызывающим процессом?

Я читал справочные страницы по fork (), и они говорят что-то вроде «все файловые дескрипторы, открытые в вызывающем процессе, копируются». Мне не на 100% ясно, если дескриптор файла...
07.11.2020
2
ответа

Как ведет себя карта памяти, поддерживаемая файлом -, при чтении или записи по адресу, превышающему длину файла?

Я пытаюсь выяснить, будет ли неопределенным поведение открывать карту памяти для файла очень большой длины. Мой случай использования -заключается в том, что я хочу иметь возможность видеть новые данные, когда файл...
28.10.2020
2
ответа

Может ли библиотечный вызов вызывать более одного системного вызова?

Я понимаю, что, например, библиотечный вызов printf вызывает системный вызов write (2 ). Мой вопрос: :Существует ли библиотечный вызов, который может вызывать более одного системного вызова? Другими словами :Делать систему...
22.10.2020
2
ответа

Почему функции ядра, которые повторно реализованы в пространстве пользователя -, могут работать быстрее, чем в пространстве ядра -?

Я читал сообщение в блоге и заметил следующее предложение :Затем он сказал что-то действительно удивительное :о том, что в HTTP-фреймворке Seastar они написали свой собственный стек TCP, и это сделало все...
03.10.2020
2
ответа

Как передать данные в канал, пока он не заполнится, ни больше, ни меньше?

Я хочу использовать каналы в Linux в качестве примитива синхронизации между главным и подчиненным процессами. Классический способ — создать два канала, но я считаю, что вместо этого можно использовать один fd....
14.08.2020
2
ответа

Системные вызовы :Как пользователь обрабатывает передачу/получение данных в/из ядра?

Связь между виртуальными адресами пользователя и ядра обсуждалась в нескольких вопросах до (ссылок ниже ), но, насколько я понимаю, пользовательский процесс не может ни читать, ни писать в...
07.07.2020
2
ответа

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

Недавно я обнаружил, что многие процессы/демоны любят запускать ненужные системные вызовы fsync(), немного повышая свою стабильность ценой значительного снижения общей производительности всего...
05.05.2020
2
ответа

execlp ()системный вызов

Я хочу вызвать команду оболочки ulimit через программу на C. прямо сейчас у меня есть :execlp ("ulimit", "ulimit", "-u", "%d", ulimit _a ); Компилируется нормально, но фактически не редактирует пользовательский -id max...
05.05.2020
2
ответа

система понимания проблем ("/bin/sh")

У меня проблемы с пониманием того, почему эта программа #включает #включить int main (){ интервал iRetval = 0; беззнаковое целое число uiNum; printf ("Введите число :" );...
23.01.2020
2
ответа

Криптография и ядро, Системные вызовы

Криптография реализована в пространстве пользователя или в пространстве ядра? Генерируются ли пары открытый/закрытый ключ в пространстве ядра? Как насчет шифрования или дешифрования с использованием данного открытого ключа или данного частного...
20.12.2019
2
ответа

Почему strace показывает, что системный вызов =?

Я сделал системный вызов и перекомпилировал ядро, однако после запуска системного вызова он вернул Killed. Итак, чтобы отследить его, я использовал strace, который показывает следующее сообщение: syscall_0x224(0x7ffda7199738,...
01.07.2019
2
ответа

Почему я не могу сбросить привилегии CORD Sudo?

Я отладки программы и не совсем уверен, почему я не могу бросить привилегии. У меня есть корневые разрешения через sudo, и я могу назвать setgid / setuid, но операция [IS] не поддерживается. Базовый код для ...
22.06.2019
2
ответа

передать stdout fd для системного вызова «чтение», но он все еще работает нормально

Я передаю 1(stdout)/2(stderr) для чтения системного вызова, но он все еще работает нормально. Затем я передаю 0 (stdin), чтобы написать системный вызов, и узнаю, что он тоже работает! int main(int argc, char** argv){ char buf[1024] = "...
20.12.2018
2
ответа

, Почему мог вызов к 'getaddrinfo ()' сбой с 'EAI_SYSTEM' и набором errno к 'EBUSY' (“Устройство или ресурс, занятый”)?

я вижу эту ошибку при выполнении способного обновления в контейнерах, если это - полезная информация. способная слюна: разрешение Системной ошибки 'архив ubuntu.com:80' - getaddrinfo (16: Устройство или занятый ресурс)...
11.11.2018
2
ответа

Использовать waitpid для дочернего элемента с идентификатором группы 1

Я много искал, но не нашел решения. Так что это может быть глупый вопрос. Формат waitpid: pid _t waitpid (pid _t pid, int *status, int options )Параметр pid указывает, какой именно...
07.10.2018
2
ответа

Где ветвление () на fork-бомбе :() {:|: и};:?

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

Еще нет никакого руководства использования этим тегом …!

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

Еще нет никакого тега Wiki для этого тега …!

Справка wikis тега представляет вновь прибывших тегу. Они содержат обзор темы, определенной тегом, наряду с инструкциями по его использованию.

Все зарегистрированные пользователи могут предложить новый тег wikis.

(Обратите внимание, что, если у Вас есть меньше чем 20 000 репутаций, Ваш тег, Wiki будет одноранговым узлом, рассмотренным, прежде чем это будет опубликовано.)

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

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

Системный вызов - то, как программа запрашивает сервис от ядра операционной системы.

Системные вызовы могут быть примерно сгруппированы в пять главных категорий:

  1. Управление процессом

    • загрузка
    • выполниться
    • конец, аварийное прекращение работы
    • создайте процесс (например, ветвление в подобных Unix системах или NtCreateProcess во Встроенном API Windows NT)
    • оконечный процесс
    • получите/установите атрибуты процесса
    • ожидайте в течение времени, ожидайте событие, событие сигнала
    • выделите, свободная память
  2. Управление файлами

    • создайте файл, удалите файл
    • открытый, близко
    • читайте, запишите, репозиция
    • получите/установите атрибуты файла
  3. Управление устройствами

    • устройство запроса, устройство выпуска
    • читайте, запишите, репозиция
    • получите/установите атрибуты устройств
    • логически присоедините или отсоедините устройства
  4. Информационное обслуживание

    • получите/установите время или дату
    • получите/установите системные данные
    • получите/установите процесс, файл или атрибуты устройств
  5. Коммуникация

    • создайте, удалите коммуникационное соединение
    • отправьте, получите сообщения
    • информация о состоянии переадресации
    • присоедините или отсоедините удаленные устройства

Системный вызов полезных ссылок Wiki