Где исходный код system call open()? Доброй ночи. Я хочу посмотреть реализацию системного вызова open(), который делает fopen() из glibc. В fs/open.c нет функции open(). Есть только что-то похожее на неё, но там все в макросах, а макросы сами определены через макросы, в итоге 5 этажные макросы и ничего не понятно. Там ли я ищю? Как понимать код ядра? Я бы не сказал, что это the pure code.

21 Авг 2019 в 06:51
359 +3
0
Ответы
1

Код ядра Linux может быть довольно сложным и запутанным из-за использования макросов и оптимизаций для повышения производительности.

В случае системного вызова open(), его реализация находится в файле fs/file.c в ядре Linux. Однако, для просмотра кода одного конкретного системного вызова может потребоваться несколько следовать по цепочке вызовов и макросов.

Для того чтобы понять код ядра, может быть полезно изучить документацию по ядру Linux, официальные ресурсы и форумы. Также, поиск по коду может быть упрощен с помощью специализированных инструментов, таких как ctags или IDE с функцией перехода к определению функции.

Если вам все еще сложно разобраться в коде ядра, возможно имеет смысл обратиться к сообществу разработчиков ядра для помощи или рассмотреть альтернативные источники информации, такие как книги и онлайн-курсы по ядру Linux.

20 Апр в 13:12
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир