Запитання з тегом «linux-kernel»

Цей тег стосується питань щодо внутрішнього простору ядра Linux, зокрема щодо написання коду, який працює в контексті ядра (наприклад, модулів ядра або драйверів). Питання щодо написання коду простору користувача в Linux, як правило, замість цього позначаються [linux]. Оскільки внутрішня частина ядра Linux постійно змінюється, корисно включити точні версії ядер, які вас цікавлять.

5
Що ":-!!" в коді С?
Я наткнувся на цей дивний код макросу в /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 …
1665 c  linux  macros  linux-kernel 

10
Як працюють імовірні / малоймовірні макроси в ядрі 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) Я знаю, що вони для оптимізації, але як вони …

11
Чи є bool рідним типом С?
Я помітив, що код ядра Linux використовує bool, але подумав, що bool - це тип C ++. Чи є стандарт bool розширенням C (наприклад, ISO C90) або розширенням GCC?
265 c  gcc  linux-kernel  boolean 

13
Як тестується ядро ​​Linux?
Як розробники Linux ядра випробовують свій код локально та після того, як вони це вчинили? Чи використовують вони якусь модульну перевірку, будують автоматизацію? тестові плани?

3
Яка теоретична максимальна кількість відкритих TCP-з'єднань, яку може мати сучасна скринька Linux
Якщо припускати нескінченну продуктивність апаратного забезпечення, чи може підтримка вікна Linux> 65536 відкрити TCP-з'єднання? Я розумію, що кількість ефемерних портів (<65536) обмежує кількість з'єднань від одного локального IP до одного порту на одному віддаленому IP. Кортеж (локальний ip, локальний порт, віддалений ip, віддалений порт) - це те, що однозначно визначає …

4
Збільшення максимальної кількості з'єднань TCP / IP в Linux
Я програмую сервер, і, схоже, кількість моїх з'єднань обмежена, оскільки пропускна здатність не насичується, навіть коли я встановив кількість підключень на "необмежену". Як я можу збільшити або усунути максимальну кількість підключень, які може відкрити мій ящик Ubuntu Linux за раз? Операційна система це обмежує, чи це маршрутизатор чи провайдер? Або …

6
Чому Linux називають монолітним ядром?
Я читав, що Linux - це монолітне ядро. Чи означає монолітне ядро ​​компіляцію та зв’язування повного коду ядра у виконуваний файл? Якщо Linux здатний підтримувати модулі, чому б не розбити всі підсистеми на модулі та завантажити їх при необхідності? У цьому випадку ядро ​​не повинно завантажувати всі модулі спочатку і …


2
Виміряйте час в Linux - час проти годинника проти getrusage проти clock_gettime vs gettimeofday vs timespec_get?
Серед тимчасових функцій, time, clock getrusage, clock_gettime, gettimeofdayі timespec_getя хочу , щоб чітко зрозуміти , як вони реалізуються , і які їхні повернені значення для того , щоб знати , в якій ситуації я повинен використовувати їх. Спочатку нам потрібно класифікувати функції, що повертають значення настінного годинника, порівняти з функціями, …
148 c  linux  time  linux-kernel 


5
Написання програм для вирішення помилок вводу / виводу, що спричиняють втрачені записи в Linux
TL; DR: Якщо ядро ​​Linux втрачає захищене записування вводу / виводу , чи є програма, як це дізнатись? Я знаю, що ви повинні мати fsync()файл (і його батьківський каталог) для довговічності . Питання полягає в тому, якщо ядро ​​втрачає брудні буфери, які очікують на запит через помилку вводу / виводу, …
138 c  linux  linux-kernel  posix 

2
Драйвер пристрою IOCTL Linux [закрито]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб він зосередив увагу на одній проблемі лише редагуючи цю публікацію . Закритий минулого року . Удосконаліть це питання Хтось може мені пояснити, Що таке IOCTL? Для чого він використовується? Як …

7
Яка різниця між vmalloc та kmalloc?
Я гуляв навколо і виявив, що більшість людей виступає за використання kmalloc, оскільки ви гарантовано отримуєте суміжні фізичні блоки пам'яті. Однак це, здається, kmallocможе не вдатися, якщо не вдасться знайти суміжний фізичний блок, який ви хочете. Які переваги мати суміжний блок пам'яті? Зокрема, навіщо мені потрібно мати системний фізичний блок …

3
стек ядра та стек простору користувача
Яка різниця між стеком ядра та стеком користувача? Для чого використовується стек ядра? Якщо локальна змінна оголошена в ISR, де вона буде зберігатися? Чи кожен процес має свій стек ядра? Тоді як процес координує обидва ці стеки?

7
Що відбувається з відкритою файловою ручкою в Linux, якщо загострений файл буде переміщений або видалений
Що станеться з відкритою файловою ручкою в Linux, якщо вказаний файл тим часом отримує: Відсунуто -> Чи залишається обробка файлу дійсною? Видалено -> Чи це призводить до EBADF, що вказує на недійсну обробку файлу? Замінений новим файлом -> Чи обробляє файл вказівку на цей новий файл? Замінено жорстким посиланням на …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.