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

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

14
Як "перезимувати" процес у Linux, зберігаючи його пам'ять на диску та відновлюючи його згодом?
Чи можна «перезимувати» процес в Linux? Так само, як "сплячий" в ноутбуці, я б записав всю пам'ять, яку використовував процес, на диск, звільнивши оперативну пам'ять. А потім пізніше я можу "відновити процес", тобто прочитати всі дані з пам'яті і повернути їх в оперативну пам'ять, і я можу продовжувати процес?

3
Контекст перемикається набагато повільніше в нових Linux ядрах
Ми хочемо оновити ОС на наших серверах з Ubuntu 10.04 LTS до Ubuntu 12.04 LTS. На жаль, здається, що затримка запуску потоку, який став запущеним, значно збільшилася з ядра 2.6 до ядра 3.2. Справді, в затримку, яку ми отримуємо, важко повірити. Дозвольте детальніше розповісти про тест. У нас є програма, …

2
Читання / запис файлів у модулі ядра Linux
Я знаю всі дискусії про те, чому не слід читати / писати файли з ядра, а натомість того, як використовувати / proc або netlink для цього. Я все одно хочу читати / писати. Я також читав " Driving Me Nuts" - речі, яких ніколи не слід робити в ядрі . …

3
Якщо нитки мають однаковий PID, як їх можна ідентифікувати?
У мене є запит, пов'язаний з реалізацією потоків в Linux. Linux не має явної підтримки потоків. У просторі користувачів ми можемо використовувати бібліотеку потоків (як NPTL) для створення потоків. Тепер, якщо ми використовуємо NPTL, він підтримує відображення 1: 1. Ядро буде використовувати clone()функцію для реалізації потоків. Припустимо, я створив 4 …

6
Як уникнути застереження transparent_hugepage / defrag від 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 suggest setting it to 'never' Але мені вдалося вимкнути THP вручну frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] Я зробив трюк, додавши …

2
Що таке? = У Makefile
KDIR ?= $(shell uname -r) Яке значення ?= ? Я зрозумів різницю між :=, +=і =з іншого потоку , доступного в переповнення стека, але не в силах знайти пояснення ?=.

2
Що таке 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.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037b000-7f3c00383000 r-xp …
89 c  linux  linux-kernel  kernel  vdso 

3
Використання gdb для одноетапного коду збірки поза вказаним виконуваним файлом викликає помилку "не вдається знайти межі поточної функції"
Я перебуваю поза цільовим виконуваним файлом gdb, і у мене навіть немає стека, який відповідає цій цілі. Я все одно хочу зробити крок, щоб я міг перевірити, що відбувається в моєму коді збірки, оскільки я не фахівець у збірці x86. На жаль, gdb відмовляється виконувати цю просту налагодження на рівні …

7
Розуміння макросу container_of у ядрі 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 …

1
Зображення проти zImage проти uImage
Яка різниця між ними? Я знаю, що u-boot потребує ядра у форматі uImage. Система, яку я використовую, спочатку завантажується з завантажувача першої стадії, а потім викликає u-boot. Я хочу відкинути u-boot та безпосередньо завантажитись із завантажувача першої стадії. Який тип образу ядра я повинен використовувати?

2
Використання плаваючої крапки в ядрі Linux
Я читаю "Розробку ядра Linux" Роберта Лава і натрапив на такий уривок: Ні (просте) використання плаваючої крапки Коли в просторі користувача використовуються інструкції з плаваючою крапкою, ядро ​​управляє переходом від цілого числа до режиму з плаваючою точкою. Те, що має робити ядро ​​при використанні інструкцій з плаваючою крапкою, залежить від …


5
Вибір планувальника вводу-виводу Linux
Я прочитав, що нібито можливо змінити планувальник вводу-виводу для певного пристрою на запущеному ядрі, написавши в / sys / block / [диск] / черга / планувальник. Наприклад, я бачу в своїй системі: anon@anon:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] що за замовчуванням цілком справедливий планувальник черг. Мені цікаво, чи є …

2
Як я можу визначити чергу запитів для блочного пристрою Linux
Я працюю над цим драйвером, який підключає жорсткий диск через мережу. Існує помилка, що якщо я ввімкну два чи більше жорстких дисків на комп’ютері, лише перший переглядає та ідентифікує розділи. Результат полягає в тому, що якщо у мене є 1 розділ на hda і 1 розділ на hdb, як тільки …

4
Яка потреба порожніх дужок '{}' в кінці масиву структур?
Я потрапив на якийсь код c у ядрі Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = …

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