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


Алгоритм сортировки кучи ядра
Ядро Linux использует алгоритм HeapSort по умолчанию или, скорее, единственный алгоритм для сортировки элементов любых типов, включая определяемые пользователем составные типы данных. Кучевая сортировка в целом сейчас популярна, так как в библиотеке golang timer реализован алгоритм поддержания срока действия таймера. Внутри ядра Linux библиотека сортировки эволюционировала, исправив несколько ошибок и добавив больше читабельности, а также функциональности по сравнению с той, что была..

Как отладить ядро ​​Linux
В предыдущей статье Как выжить встраиваемым Linux - Как отладить ваш Linux BSP - мы рассмотрели некоторые проблемы, с которыми вы могли столкнуться при первой загрузке Linux BSP. Это коснулось некоторой отладки ядра. В этой части серии мы собираемся развить эти навыки немного дальше. Отладка с помощью printk Самым простым и наиболее часто используемым методом отладки является простой оператор печати. Ядро Linux предлагает это в виде printk. Стиль формата printk эквивалентен его..

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

Взаимодействие между потоками ядра в Linux
Я переношу драйвер приложения/PCI с vxWorks на Linux и хотел бы сохранить ту же архитектуру, если это возможно. Текущий драйвер имеет 2 задачи (потока), которые взаимодействуют друг с другом с помощью очередей сообщений. Есть ли механизм для связи...
1773 просмотров

Удаленно отлаживать ядро ​​​​Linux из Windows?
Мне было интересно, знает ли кто-нибудь способ удаленной отладки ядра Linux, работающего под управлением VMWare (и если да, то есть ли способ сделать это в Windows, поскольку Linux меня пугает...). Оба х86. Я знаю, что VMWare поддерживает это (я...
1714 просмотров

Как программно определить размер физической оперативной памяти в Linux?
В командной строке это можно узнать с помощью «бесплатной» утилиты и «cat /proc/meminfo». Какими могут быть разные способы узнать размер физической оперативной памяти в Linux программно из: Приложение пользовательского пространства Модуль ядра...
5056 просмотров
schedule 08.06.2022

Использование структуры вызывает панику ядра?
Я делаю свою первую попытку написать код ядра Linux, и у меня возникает странная паника ядра. У меня есть связанный список, который я поддерживаю с помощью встроенных макросов ядра (include/linux/list.h). Если список пуст, я выделяю экземпляр...
1932 просмотров
schedule 13.02.2023

почему бы не использовать простые файлы вместо initramfs или initrd?
Ядро linux использует своего рода оперативный диск для доступа к модулям на ранней стадии загрузки. Из любопытства я хочу понять, что у меня есть вопрос: файл, содержащий initramfs / initrd, должен быть доступен для ядра на этом этапе. Это означает,...
625 просмотров
schedule 13.09.2022

драйвер символьного устройства
Функции обратного вызова read() и write() в нашем драйвере устройства cmosram.c передают только один байт данных при каждом вызове, поэтому для чтения всех мест хранения RTC требуется 128 системных вызовов! Можете ли вы повысить эффективность этого...
1006 просмотров

OProfile на андроиде
Кто-нибудь использовал инструмент OProfile на Android... Если вы можете профилировать, укажите основные шаги и любую другую конфигурацию или настройку, чтобы сделать это... С уважением, Бхарат Павар
5072 просмотров
schedule 28.10.2023

Использование gdb для одношагового ассемблерного кода за пределами указанного исполняемого файла приводит к тому, что ошибка не может найти границы текущей функции
У меня нет целевого исполняемого файла gdb, и у меня даже нет стека, соответствующего этой цели. В любом случае я хочу пошагово, чтобы я мог проверить, что происходит в моем коде сборки, потому что я не эксперт в сборке x86. К сожалению, GDB...
107843 просмотров
schedule 19.04.2022

Linux — программная запись в файл proc
Я нашел несколько примеров в Интернете, где мы можем создать файл proc, назначить методы чтения и записи, которые вызываются каждый раз, когда файл proc открывается для чтения или записи. Однако я не могу найти никакой документации о том, как...
1927 просмотров
schedule 26.06.2023

Доступ к хранилищу блочного уровня через ядро
Как получить доступ к хранилищу блочного уровня через ядро ​​(без использования библиотек scsi)? Мое намерение состоит в том, чтобы реализовать протокол хранения на уровне блоков по сети для целей обучения, почти так же, как работает SCSI....
1026 просмотров
schedule 02.02.2023

Как я могу зарегистрировать обратный вызов при приостановке в драйвере Linux?
Я пишу драйвер Linux, и я хотел бы зарегистрировать функцию обратного вызова, которая будет вызываться, когда система переходит в спящий режим. Какой апи для этого? Спасибо.
2668 просмотров
schedule 08.03.2024

Как поддерживать udev в модуле ядра?
Я портирую модуль ядра Linux. Раньше он создавал себе файл устройства (используя грязные хаки с системными вызовами из пространства ядра), но теперь я хочу сделать это в udev. Где я могу найти документацию по поддержке udev в модуле ядра?...
1621 просмотров
schedule 07.07.2022

file_operations Вопрос, как узнать, что процесс, открывший файл на запись, решил его закрыть?
В настоящее время я пишу простой модуль «мультикастер». Только один процесс может открыть файл файловой системы proc для записи, а остальные могут открыть его для чтения. Для этого я использую обратный вызов inode_operation .permission, я проверяю...
1215 просмотров
schedule 21.07.2023

Проблема с поведением .release в file_operations
Я столкнулся с проблемой в модуле ядра, который получает данные из пользовательского пространства с помощью записи / proc. Я устанавливаю записи open / write / release для моей собственной определенной записи / proc и хорошо умею использовать ее...
345 просмотров
schedule 04.05.2022

Какая последовательность действий выполняется ядром Linux для настройки устройства?
Как я понял после прочтения главы, относящейся к модели устройства Linux в драйверах устройств Linux 3-го издания, при настройке нового устройства ядро ​​(2.6) следует примерно такой последовательности: Устройство зарегистрировано в ядре драйвера...
1972 просмотров

какова вероятная причина того, что CMOS_WRITE не работает?
Уже несколько дней озадачен проблемой RTC: не могу записать в регистр RTC. Ниже приведен фрагмент кода, и значение, которое я прочитал из reg (последняя строка), всегда отличается от того, что я только что написал в reg. Кто-нибудь может помочь...
265 просмотров

Где вход гипервызовов в квм?
Я пытаюсь понять механизм virtio в Linux. Я читал, что функция удара будет уведомлять хост-сторону о недавно опубликованных буферах. Особенно я смотрю на virtio_net. Как только пакет готов к передаче, функция удара вызывается здесь . Отсюда я...
1618 просмотров
schedule 01.10.2022

Паника ядра при загрузке в RedHat Linux под VMWare Fusion: файловая система не найдена
Это должно быть просто. Тем не менее, это дает мне ад. Проблема Я скомпилировал последнее ядро, и когда я перезагружаю свой компьютер, возникает паника ядра, связанная с файловой системой. Вопрос Как заставить новое ядро ​​распознавать...
16118 просмотров

Какие у нас есть возможности для связи между пользовательской программой и модулем ядра Linux?
Я новичок в программировании модулей ядра Linux. Из материала, который я прочитал до сих пор, я обнаружил, что есть 3 способа, которыми пользовательская программа может запрашивать услуги или взаимодействовать с модулем ядра Linux. файл...
2190 просмотров

Зачем переходить от планировщика O (1) к CFS, который составляет O (log N)?
Возможно, я немного опоздал с этим, но недавно я изучал, как работают различные планировщики производства, и наткнулся на планировщик O(1) , который был заменен на полностью честный планировщик , или CFS, оба Инго Молнара. Как следует из...
3021 просмотров