понимание кода ext3

struct inode_operations ext3_dir_inode_operations = { .create = ext3_create, .lookup = ext3_lookup, } Эта структура присваивается структуре inode и далее структуре работы файловой системы. Мой вопрос в том, что это з ...

Что такое символ экспорта GPL в коде ядра Linux?

Что такое EXPORT_SYMBOL_GPL в коде ядра Linux? Ниже приведен фрагмент кода, который содержит EXPORT_SYMBOL_GPL 62 struct resource *platform_get_resource(struct platform_device *dev, 63 unsigned int type, uns ...

Как я могу "монтировать" в своем пространстве процессов, не будучи корнем?

Я пытаюсь смонтировать overlayfs , не будучи root в моем коде C++; я бы хотел, чтобы это mount произошло и было видно только для моего собственного процесса и его потомков: if(-1 == mount("overlay", "./mnt", "overlay", MS_MGC_VAL, "lowerdir=/,upper ...

Поддержка Systemtap PPC32

Имеет ли Systemtap поддержку PPC32 ? Я вижу, что он упоминается, что он поддерживается в платформах Intel и PPC64, но о PPC32 не так много информации. Кроме того, следствие может использовать для отладки индивидуальные загружаемые модули ядра ? Спа ...

Как сохранить исполняемый код в памяти даже под давлением памяти? в Linux

Цель здесь состоит в том, чтобы сохранить исполняемый код каждого запущенного процесса в памяти во время сжатия памяти, в Linux. В Linux, я могу мгновенно (1 сек) вызвать высокое давление памяти и вызвать OOM-killer с помощью stress --vm-bytes $(awk ...

В чем разница B / W TCB (блок управления потоком) и PCB (процесс)

Блок управления процессом (PCB)и блок управления потоком (TCB) используются в ядрах linux для того, чтобы иметь время на процессоре, делегированном им. В чем разница между ними? Какая информация обычно хранится в блоке управления технологическим пр ...

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

Рассмотрим драйвер Linux, который использует get_user_pages (или get_page) для отображения страниц из вызывающего процесса. Физический адрес страниц затем передается аппаратному устройству. И процесс, и устройство могут читать и записывать на страниц ...

Как вычислить SHA1 массива в ядре Linux

Я пытаюсь вычислить SHA1 целого массива в ядре Linux. Я прошел через это.crypto.c/crypto.h и security/integrity/ima/ima_crypto.c но я не могу понять, как init, а затем update компьютер SHA1. Может ли кто-нибудь указать мне учебник или руководство о т ...

инструкция MWAIT x86 не ждет DMA

Я пытаюсь использовать monitor/mwait Инструкции по мониторингу DMA записываются с устройства в ячейку памяти. В модуле ядра (char device) у меня есть следующий код (очень похожий на этот кусок кода ядра), который выполняется в потоке ядра: static i ...

доступная память в ядре

Существует ли функция ядра, которая возвращает объем доступной памяти ядра (не связанной с vmalloc). ...

Ограничения во время выполнения ядром процедуры ISR

Каковы некоторые из важных do и dont внутри режима ядра и процедуры ISR ? Например - отключено ли переключение контекста при запуске обработчика прерываний ? может ли произойти переключение контекста, когда процесс находится внутри критического с ...

Системный вызов использует регистры или стек для передачи параметров ядру?

У меня есть путаница с системным вызовом. В X86 системный вызов использует eax для передачи номера системного вызова ядру. Но что он использует для передачи параметров ядру, в каком-то месте я вижу, что он использует стек, и в нескольких местах он г ...

Примеры Linux aio (не posix)?

Есть ли у кого-нибудь опыт работы с функциями Linux aio (io_*, а не posix aio)? Было бы здорово, если бы кто-то мог предоставить ссылку на некоторые примеры (или привести некоторые примеры здесь). Кроме того, каковы ваши общие замечания/комментарии п ...

Является ли mov %esi, %esi no-op или нет на x86-64?

Меня немного смущает комментарий в одном из заголовочных файлов ядра Linux, arch/x86/include/asm/nops.h . В нем говорится, что следующие инструкции не являются nops в 64-разрядном режиме, для 64-разрядного режима используйте K8 или P6 nops вме ...

Отправка необработанного пакета ethernet из модуля ядра

Я обнаружил, что мне нужно построить новую структуру sk_buff в модуле ядра и передать ее на мое сетевое устройство, но я не могу понять, как установить переменные структуры для простого необработанного пакета ethernet. Это должно быть легко, но я бы ...

Как ядро linux управляет менее чем 1 ГБ физической памяти?

Я изучаю внутренние компоненты ядра linux, и когда я читал "понимание ядра Linux", меня поразило довольно много вопросов, связанных с памятью. Один из них заключается в том, как ядро Linux обрабатывает отображение памяти, если в моей системе установл ...

Как определить зависимость между модулями ядра?

Как можно определить зависимость для модулей в ядре, Пример: got module1 and module2. Как сказать, что ядро module2 должно быть загружено после module1 или module2 зависит от module1? Примечание: module2 не использует какой-либо символ из modu ...

Изменение таблицы страниц процесса Linux для доступа к физической памяти без системного вызова

Я разрабатываю приложение реального времени для Linux 3.5.7. Приложение должно управлять устройством PCI-E. Для доступа к пространствам карт PCI-E я использую mmap в сочетании с /dev / mem. Однако (пожалуйста, поправьте меня, если я ошибаюсь) кажды ...

поведение модуля разблокировки и запроса мьютекса ()

Я наблюдал следующий шаблон кода в ядре Linux, например net/sched/act_api.c или во многих других местах : rtnl_lock(); rtnetlink_rcv_msg(skb, ...); replay: ret = process_msg(skb); ... /* try to obtain symbol which is in module. */ /* ...

Чистят только некоторые модули перед сборкой ядра Linux

Здесь у меня есть ситуация, когда мне нужно построить одно и то же ядро против разных конфигураций. Теперь я пытался построить ядро, не делая make clean, но это дает мне проблему. Существует вероятность, что один конфиг имеет несколько встроенных дра ...