Вопросы с тегом '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
13 отв.

Как тестируется ядро ​​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
16 отв.

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

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

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

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