linux-kernel- все статьи тега
Что означает понятие "холодный кэш" и "теплый кэш"?
Я читал статью, и в ней использовались термины "холодный кэш" и "теплый кэш". Я искал, но не нашел ничего полезного. Что означает понятие" холодный кэш "и" теплый кэш "? Я также посещаю эту ссылку, но мне нужно что-то еще. ...
как использовать программное обеспечение Linux watchdog
Привет, кто-нибудь может сказать мне, как обращаться с программным обеспечением watchdog в linux .У меня есть программа "SampleApplication", которая работает непрерывно, и мне нужно перезапустить ее, если она зависает или неожиданно закрывается. Я погуглил об этом и обнаружил, что linux имеет watchdog в /dev/watchdog, но не знаю, как его использовать.Не мог бы кто-нибудь помочь мне с примером. Мой вопрос заключается в том, где я могу указать свое имя приложения и интервал задержки для перезапу ...
Ошибка перечисления USB-устройств: "дескриптор устройства считан/64, ошибка -32"
Я разрабатываю устройство ttyACM с микроконтроллером ST, и с тем же кодом мой хост иногда может успешно перечислить его (ниже), но иногда он просто сбрасывает сообщение ниже. Что означает ошибка -32? [НЕ УДАЕТСЯ ПЕРЕЧИСЛИТЬ] usb 1-2.1: new full speed USB device number 62 using ehci_hcd usb 1-2.1: device descriptor read/64, error -32 usb 1-2.1: device descriptor read/64, error -32 usb 1-2.1: new full speed USB device number 63 using ehci_hcd usb 1-2.1: device descriptor read/64, error -32 usb ...
эмулятор: ошибка при подключении к сокету '127.0.0.1: 1970': 111 - > отказано в подключении
Эмулятор перестал работать на Fedora 21, начиная с ядер 3.18 и 3.19. Эмуляторы API 21 не загружаются, они застряли с черным экраном. Любые указатели для решения этой проблемы были бы очень признательны. emulator: Error while connecting to socket '127.0.0.1:1970': 111 -> Connection refused emulator: ASC 127.0.0.1:1970: Retrying connection. Connector FD = 26 emulator: Error while connecting to socket '127.0.0.1:1970': 111 -> Connection refused emulator: ASC 127.0.0.1:1970: Retrying connecti ...
Создание пакета ICMP внутри модуля ядра Linux
Я пытаюсь экспериментировать с протоколом ICMP и создал ядро-модуль для linux, который анализирует пакет ICMP (обрабатывает пакет только в том случае, если поле кода ICMP является магическим числом ) . Теперь, чтобы протестировать этот модуль, я должен создать пакет ICMP и отправить его на Хост, где работает этот анализирующий модуль . На самом деле было бы неплохо, если бы я мог реализовать его само ядро (как модуль ) . Я ищу что-то вроде packetcrafter в kernel, я погуглил его нашел много стате ...
Почему вызов ioctl не передается в sys ioctl?
У меня есть модуль ядра (4.4.32 kernel), который реализует вызов ioctl, назначая его обработчик ioctl указателю struct file_operations S unlocked_ioctl. Все работает нормально, но мне дали программу (только двоичную), скомпилированную для ядра 2.6 или, возможно, 2.4, которая не делает ядро регистрирующим вызов ioctl для моего модуля, если я запускаю эту программу на моем 4.4.32. Поскольку эта программа была скомпилирована на более старом ядре, она использует более старый интерфейс ioctl, то есть ...
Привилегированные контейнеры и возможности
Если я запускаю контейнер в привилегированном режиме, имеет ли он все возможности ядра или мне нужно добавить их отдельно? ...
Как перенести данные через DMA из оперативной памяти в оперативную память?
Я хочу написать модуль ядра, который может передавать данные через DMA из ОЗУ в ОЗУ. Есть несколько постов, которые обсуждают это,но я действительно не понимаю. Некоторые говорят, что это возможно, другие говорят, что это не так. Если я правильно понял ldd3, копирование RAM в RAM невозможно с помощью DMA API linux, но драйвер /dma/dmaengine.c предоставляет флаг DMA_MEMCPY для "типа передачи DMA", поэтому должен быть способ. Правильно ли это, могу ли я использовать движок dma для передачи дан ...
Какие опции мы имеем для связи между пользовательской программой и модулем ядра Linux?
Я новичок в программировании модулей ядра Linux. Из материала, который я прочитал до сих пор, я обнаружил, что существует 3 способа для пользовательской программы запрашивать услуги или взаимодействовать с модулем ядра Linux файл устройства в /dev файл в файловой системе /proc вызов ioctl () Вопрос: Какие еще варианты у нас есть для связи между пользовательской программой и модулем ядра linux? ...
VmSize = физическая память + подкачка?
У меня есть небольшой вопрос относительно VmSize, в документации предполагается, что это использование памяти приложением. Однако в моей системе: VmSize = физическая память + подкачка VmHWM больше похоже на то, что приложение на самом деле будет использовать. [root@sun ~]# free -m total used free shared buffers cached Mem: 12012 9223 2788 0 613 1175 -/+ buffers/cache: 7434 4577 Swap: 3967 ...
Что такое ":-!!- на языке Си?
я наткнулся на этот странный макрокод в / usr / include / linux / kernel.h: /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); })) Что значит :-!! сделать? ...
Как работают вероятные/маловероятные макросы в ядре Linux и в чем их преимущество?
я копался в некоторых частях ядра Linux и нашел такие вызовы: if (unlikely(fd < 0)) { /* Do something */ } или if (likely(!err)) { /* Do something */ } Я нашел их определение: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Я знаю, что они для оптимизации, но как они работают? И насколько снижение производительности / размера можно ожидать от их использования? И стоит ли хлопот (и, вероятно, потерять переносимость), по крайней м ...
Время измерения в Linux - время против часов, против вызов getrusage против часовой методов gettime против gettimeofday против timespec сделать?
среди функций времени, time,clockgetrusage,clock_gettime,gettimeofday и timespec_get, Я хочу четко понять, как они реализуются и каковы их возвращаемые значения, чтобы знать, в какой ситуации я должен их использовать. Сначала нам нужно классифицировать функции, возвращающие значения настенных часов сравнить с возвращением функций значения процессов или потоков. gettimeofday возвращает значение настенных часов,clock_gettime возвращает значение настенных часов или значения процесса или потоков ...
Какой смысл делать while (0), когда мы определяем макрос? [дубликат]
Возможные Дубликаты:операторы Do-While и if-else в макросах C / C++ Я читаю ядро linux, и я нашел много макросов, как это: #define INIT_LIST_HEAD(ptr) do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0) почему они используют это, а не просто определить его в {}? ...
Драйвер устройства ioctl Linux
может кто-нибудь объяснить мне, что это IOCTL? для чего он используется? как я могу его использовать? почему я не могу определить новую функцию, которая выполняет ту же работу, что и IOCTL? ...
Выбор планировщика ввода-вывода Linux
Я прочитал, что предположительно можно изменить планировщик ввода-вывода для конкретного устройства на работающем ядре, записав в/sys /block/[disk]/queue/scheduler. Например, я могу видеть на моей системе: anon@anon:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] что по умолчанию используется полностью честный планировщик очередей. Мне интересно, есть ли какая-либо польза в том числе всех четырех планировщиков в моем пользовательском ядре. Казалось бы, нет большого ...
Что такое vdso и vsyscall?
Я sudo cat /proc/1/maps -vv Я пытаюсь разобраться в выводе.Я вижу, что многие общие библиотеки сопоставляются с сегментом сопоставления памяти, как и ожидалось. 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 ---p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r--p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3 ...
Какой приоритет в реальном времени является самым высоким приоритетом в Linux
в диапазоне приоритетов процесса реального времени Linux от 1 до 99 мне неясно, какой из них является самым высоким приоритетом, 1 или 99. В разделе 7.2.2 "понимание ядра Linux "(O'Reilly) говорится, что 1 является самым высоким приоритетом, что имеет смысл, учитывая, что обычные процессы имеют статические приоритеты от 100 до 139, причем 100 является самым высоким приоритетом: " каждый процесс в реальном времени связан с приоритетом в реальном времени, который представляет собой значен ...
Понимание контейнера макросов в ядре Linux
когда я просматривал ядро Linux, я нашел container_of макрос, который определяется следующим образом: #define container_of(ptr, type, member) ({ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type *)( (char *)__mptr - offsetof(type,member) );}) Я понимаю, что делает container_of, но то, что я не понимаю, это последнее предложение, которое (type *)( (char *)__mptr - offsetof(type,member) );}) если мы используем макрос следующим образом: ...