Вопросы с тегом '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 в 17:50
10
ответов

Как работают макросы с вероятными() и маловероятными() в ядре Linux и какова их польза?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В чем разница между vmalloc и kmalloc?

Я googled вокруг и нашел большинство людей, выступающих за использование kmalloc, так как вы гарантированно получите смежные физические блоки памяти. Однако также кажется, что kmalloc может выйти из строя, если не удается найти непрерывный физическ...
задан 22 сент. '08 в 20:46
3
ответов

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

Мы хотим обновить ОС на наших серверах от Ubuntu 10.04 LTS до Ubuntu 12.04 LTS. К сожалению, кажется, что латентность для запуска потока, который стал runnable, значительно увеличился с ядра 2.6 до ядра 3.2. На самом деле количество времени ожидания,...
задан 24 авг. '12 в 18: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 в 8:09
2
ответов

Как определить очередь запросов для устройства блока Linux

Я работаю над этим драйвером, который подключает жесткий диск по сети. Есть ошибка, что если я включу два или более жестких диска на компьютере, только первый получит просмотренные разделы и идентифицирует их. В результате, если у меня есть 1 раздел ...
задан 22 июля '11 в 7:24