Публикации по теме 'linux-kernel'


Как вызывать нереентерабельные функции с помощью сигналов Linux?
Функция называется реентерабельной, если ее можно безопасно (и без побочных эффектов) вызвать в процессе выполнения. Некоторые однопоточные приложения могут работать с нереентерабельными функциями. Потому что большинство приложений вообще не обрабатывают сигналы и не имеют рекурсивных функций обратного вызова. Будет сложно отладить код, если вы загрузите его в ядро ​​​​Linux в виде модуля или во встроенной системе. В этом коде функция calculate не является реентерабельной...

Вышел первый релиз-кандидат ядра Linux 6.1
После того как двухнедельный период слияния, начавшийся 2 октября с выпуском ядра Linux 6.0, официально закрылся, пришло время взглянуть на грядущий основной выпуск – ядро ​​Linux 6.1. Первый релиз-кандидат (RC) ядра Linux 6.1 теперь доступен для загрузки для тестировщиков, первых пользователей и передовых пользователей, которые хотят заглянуть в окончательный выпуск, который ожидается в начале или середине декабрь 2022. Интеграция кода инфраструктуры Rust — самая важная новая..

Исправление плохого управления памятью в любом дистрибутиве Linux
Короче говоря, у меня есть ноутбук с приличными характеристиками IMO (серия i7 Gen 11, 16 ГБ ОЗУ, 32 ГБ SWAP, с сжатием lzo и 512 ГБ NVME), но почему-то его зависание, как у старого компьютера, меня расстраивает, особенно когда я пытаюсь создать или скомпилировать Android-проект, поэтому я обратился к Google и даже к ChatGPT, но это не решает мою проблему, моя ОС продолжает падать, изменение среды рабочего стола тоже не помогает. Итак, я обнаружил в своей сути свои старые настройки,..

Пример: узкие места в сети на сервере Linux: часть 2 - ядро
Пример: узкие места в сети на сервере Linux: часть 2 - ядро В предыдущей статье я рассмотрел некоторые потенциальные узкие места, связанные с самой сетевой картой. В этой статье мы рассмотрим некоторые полезные настройки ядра и их влияние на сетевой трафик. Сериал разделен (скорее всего) на эти четыре части: Часть 1: NIC Часть 2: Ядро (эта статья) Часть 3. Прерывания Часть 4. Дальнейшие шаги В первой части мы увидели, что такое кольцевой буфер сетевого адаптера и как..

Вопросы по теме 'linux-kernel'

получить _complete_ имя процесса из pid
Я нахожусь в модуле ядра и хочу получить полное имя процесса из данного pid. точно: мне нужна строка, которая хранится в /proc/PID/cmdline. Проблема в том, что task_struct->comm[] имеет длину всего 15 байт и не обрабатывается, если программа...
6907 просмотров
schedule 23.02.2024

Чтение с блочного устройства в пространстве ядра
Я пишу модуль ядра, и мне нужно выполнить чтение с существующего блочного устройства. (/dev/что-то). Кто-нибудь знает какие-либо другие модули, которые делают это, которые я могу использовать в качестве ссылки? Любые указатели приветствуются...
2592 просмотров

Ядро Linux - программно получать номера блоков по мере их записи.
Я хочу вести список номеров блоков, поскольку они физически записываются с использованием исходного кода ядра Linux. Я планирую изменить исходный код ядра, чтобы сделать это. Мне просто нужно найти структуру и функции в исходном коде ядра, которые...
303 просмотров
schedule 13.11.2022

Драйвер Linux phys_mem_access_prot не определен
У меня есть загружаемый модуль, который выдает предупреждение о phys_mem_access_prot при сборке под Ubuntu 9.10 (Linux 2.6.31-22-сервер). [664] make -C /lib/modules/`uname -r`/build M=`pwd` make: Entering directory...
634 просмотров
schedule 17.10.2022

Существуют ли какие-либо ограничения памяти для модулей ядра Linux?
Существуют ли какие-либо ограничения на использование памяти модулем ядра Linux, т. е. размер сегмента кода или объем глобальной памяти или что-то еще.
901 просмотров
schedule 09.08.2022

Насколько тесно связаны Mac OS X и BSD?
Я читал, что Mac OS X и bsd связаны. Насколько тесно они связаны. Можно ли настроить программное обеспечение Mac OS X и установить его на BSD?
65653 просмотров

Куда идет вывод печати в ядре?
Я отлаживаю драйвер для Linux (в частности, сервер Ubuntu 9.04), и в коде есть несколько операторов printf. Где я могу просмотреть вывод этих операторов? РЕДАКТИРОВАТЬ 1: я пытаюсь записать в ядро, используя файловую систему proc. Код печати...
45458 просмотров
schedule 23.02.2024

Будет ли произвольное чтение адресного пространства ядра потоком ядра вызывать панику?
Как мы знаем в пользовательском пространстве, если какое-то виртуальное адресное пространство еще не выделено, но к нему осуществляется доступ, произойдет ошибка страницы. Как насчет пространства ядра? Например, я хочу запустить поток ядра в...
268 просмотров
schedule 21.12.2023

Почему метод probe необходим в драйверах устройств Linux в дополнение к init?
Что делает в ядре Linux метод probe() , предоставляемый драйвером? Насколько она отличается от функции init водителя, т.е. почему действия функций probe() нельзя выполнять в функции init водителя?
67218 просмотров
schedule 09.10.2022

Как создать узел устройства из кода init_module модуля ядра Linux?
Я пишу модуль для ядра Linux и хочу создать некоторые узлы устройств в функции инициализации. int init_module(void) { Major = register_chrdev(0, DEVICE_NAME, &fops); // Now I want to create device nodes with the returned major number }...
55086 просмотров
schedule 27.06.2022

Кконфиг и ЛКМ
Я работаю с LKM вне дерева ядра и хочу использовать некоторые параметры компиляции для своего модуля, например MYLKM_CONFIG_{что-то}. Я знаю, что это можно сделать с помощью предварительной обработки C (#define // #ifdef // #endif). Но я хочу знать,...
800 просмотров

выделить большую (32 Мб) непрерывную область
Возможно ли вообще выделить большие (т.е. 32 Мб) физически непрерывные области памяти из кода ядра во время выполнения (т.е. без использования загрузочной памяти)? Из моих экспериментов кажется, что невозможно успешно получить что-то большее, чем 4...
2920 просмотров
schedule 14.03.2024

Действительно ли fsnotify нужно сканирование глобального списка?
Я изучаю код ядра Linux, в частности, уведомления файловой системы в fs/notify/fsnotify.c... Насколько я знаю, каждому индексному узлу теперь предоставляется список «меток», каждая из которых ссылается на «группу», которая слушает уведомление на этом...
573 просмотров

Добавление в очередь ожидания
Мне было интересно, как добавить task_struct в очередь ожидания в модуле ядра Linux? Например, если я хочу добавить задачу с именем task_struct к задаче WaitQueue , какую функцию я могу использовать для достижения этой цели? Я понимаю, как...
3057 просмотров
schedule 12.04.2024

Kmalloc работает некорректно
У меня проблемы с этим системным вызовом и, возможно, с kmalloc. Ну, в основном я строю системный вызов, и этот системный вызов и ядро ​​компилируются без проблем. Но когда я вызываю свой системный вызов, оболочка показывает много сообщений, а...
1104 просмотров
schedule 12.08.2022

Есть ли хорошие объяснения планировщиков ядра?
Недавно я начал задаваться вопросом о планировщиках ядра и многом другом. Есть ли какой-либо ресурс, который предоставляет обзор часто используемого алгоритма планирования ядра? Планировщик CFS имеет много литературы по его реализации, но я не могу...
237 просмотров
schedule 19.08.2022

Правила, разрешающие повторное использование локального порта приложением
Для TCP-сервера со следующей структурой: main(){ socket(); bind(); listen(); while(1){ accept(); fork(); if(child) Process; } } Он создает новый сокет для каждого клиента и взаимодействует со...
461 просмотров
schedule 11.11.2023

Как перекомпилировать только один модуль ядра?
Обычно исходники ядра хранятся в /usr/src/linux-2.6.x/ . Чтобы избежать перекомпиляции всего ядра при изменении исходного кода модуля, как я могу перекомпилировать только этот модуль?
47943 просмотров

Стек TCP/IP в ядре Linux
Я реализую собственный протокол TCP как LKM. Мне нужно отправить, помимо обычных пакетов, один пользовательский пакет каждый RTT, чтобы передать некоторую информацию получателю. Но я не могу понять, как определить начало/конец каждого RTT или раунда...
1149 просмотров
schedule 16.03.2024

Почему для вызова системных вызовов используется int80h вместо sysenter?
Все учебники и интернет-ресурсы говорят мне, что int 80h — это устаревший стиль для вызова системных вызовов, и на платформах x86 он был заменен на SYSENTER. Но я только что обнаружил, что моя система все еще использует int 80h. Я знаю такие...
2354 просмотров
schedule 23.04.2024