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

Этот тег предназначен для вопросов о внутренних компонентах ядра Linux - особенно о написании кода, который выполняется в контексте ядра (например, модулей ядра или драйверов). Вопросы о написании кода пользовательского пространства в Linux обычно должны быть помечены как [linux]. Поскольку внутренности ядра Linux постоянно меняются, полезно включить точные версии ядра, которые вас интересуют.
6

Что ":-!!" в коде C?

Я столкнулся с этим странным макрокодом в /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...
10 февр. '12 в 14:50
10

Как работают вероятные/маловероятные макросы в ядре Linux и в чем их выгода?

Я копал некоторые части ядра Linux и нашел такие вызовы: if (unlikely(fd < 0)) { /* Do something */ } или if (likely(!err)) { /* Do something */ } Я нашел определение их: #define likely(x) __builtin_expect((x),1) #define unlik...
20 сент. '08 в 23:04
13

Как тестируется ядро ​​Linux?

Как разработчики ядра Linux тестируют свой код локально и после его совершения? Используют ли они какое-то модульное тестирование, автоматизацию сборки? планы испытаний?
05 июл. '10 в 5:15
10

Является ли bool родным C-типом?

Я заметил, что в коде ядра Linux используется bool, но я думал, что bool - это тип С++. Является ли bool стандартным расширением C (например, ISO C90) или расширением GCC?
22 окт. '09 в 16:11
3

Каково теоретическое максимальное количество открытых TCP-соединений, которые может иметь современный ящик Linux

Предполагая бесконечную производительность от аппаратного обеспечения, может ли Linux-сервер поддерживать > 65536 открыть TCP-соединения? Я понимаю, что число эфемерных портов (< 65536) ограничивает количество соединений с одного локального IP...
25 февр. '10 в 8:57
7

Почему Linux называется монолитным ядром?

Я читал, что Linux - монолитное ядро. Монолитическое ядро ​​означает компиляцию и привязку полного кода ядра в исполняемый файл? Если Linux может поддерживать модули, почему бы не разбить все подсистемы на модули и не загружать их при необходимости?...
27 нояб. '09 в 3:16
4

Увеличение максимального количества подключений tcp/ip в Linux

Я программирую сервер, и кажется, что мой номер подключений ограничен, так как моя пропускная способность не насыщена, даже когда я установил количество подключений к "неограниченному". Как я могу увеличить или исключить максимальное количество подк...
04 янв. '09 в 7:35
16

В чем разница между пространством ядра и пользовательским пространством?

В чем разница между пространством ядра и пользовательским пространством? Имеют ли место ядра, потоки ядра, процессы ядра и стек ядра то же самое? Кроме того, зачем нам эта дифференциация?
10 мая '11 в 23:18
2

Что делать во время (0), когда мы определяем макрос?

Возможный дубликат: Операторы Do-While и if-else в макросах C/С++ Я читаю ядро ​​linux, и я нашел много таких макросов: #define INIT_LIST_HEAD(ptr) do { \ (ptr)->next = (ptr); (ptr)->prev = (ptr); \ } while (0) Почему они использу...
29 мая '09 в 0:05
2

Время измерения в Linux - время против часов против getrusage vs clock_gettime vs gettimeofday vs timespec_get?

Среди функций синхронизации time, clock getrusage, clock_gettime, gettimeofday и timespec_get я хочу четко понимать, как они реализованы и каковы их возвращаемые значения, чтобы знать в какой ситуации я должен их использовать. Сначала нам нужно кла...
12 сент. '12 в 16:05
4

Поиск того, какой процесс был убит убийцей Linux OOM

Когда у Linux заканчивается память (OOM), убийца OOM выбирает процесс для убийства на основе некоторых эвристик (это интересно читать: http://lwn.net/Articles/317814/). Как можно программно определить, какие процессы были недавно убиты убийцей OOM?
09 мар. '09 в 2:47
2

Драйвер устройства IOCTL Linux

Может ли кто-нибудь объяснить мне, Что такое IOCTL? Для чего он используется? Как я могу использовать его? Почему я не могу определить новую функцию, которая выполняет ту же работу, что и IOCTL?
04 апр. '13 в 9:48
7

Что происходит с дескриптором открытого файла в Linux, если указанный файл перемещается или удаляется

Что происходит с дескриптором открытого файла в Linux, если указанный файл тем временем получает: Удалено → Дескриптор файла остается действительным? Удалено → Приводит ли это к EBADF, указывая неверный дескриптор файла? Заменяется новым файлом → Об...
08 янв. '10 в 16:09
3

Контекст переключается гораздо медленнее в новых ядрах Linux

Мы хотим обновить ОС на наших серверах от Ubuntu 10.04 LTS до Ubuntu 12.04 LTS. К сожалению, кажется, что латентность для запуска потока, который стал runnable, значительно увеличился с ядра 2.6 до ядра 3.2. На самом деле количество времени ожидания,...
24 авг. '12 в 15:03
6

Как избежать прозрачного предупреждения_очистки/дефрагментации от mongodb?

Я получаю следующее предупреждение от mongodb о THP 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** We sugg...
07 мар. '15 в 5:09