Як зрозуміти вихідний код ядра Linux для початківця? [зачинено]


12

Я студент, який цікавиться роботою над управлінням пам’яттю, зокрема компонентом заміни сторінки ядра Linux.

Які різні посібники можуть допомогти мені зрозуміти джерело ядра?

Я спробував прочитати книгу " Розуміння менеджера віртуальної пам'яті Linux " Мел Горман та " Розуміння ядра Linux" від Cesati та Bovet, але вони не пояснюють потік управління через код. Вони лише пояснюють різні використовувані структури даних та роботу, яку виконують різні функції. Це робить код більш заплутаним.

Мій проект займається налаштуванням алгоритму заміни сторінки в основному ядрі та аналізом його продуктивності для набору робочих навантажень. Чи є аромат ядра Linux, який було б простіше зрозуміти (якби не ядро ​​linux-2.6.xx)?


1
Чи можу я запитати, чому ви вирішили займатися програмуванням ядра, коли вам нелегко знайти шлях до складного коду?
LennyProgrammers

Відповіді:


13

Зосередьтеся на структурах даних . Розуміння структур даних зазвичай важливіше коду.

Якщо вам показані лише структури даних, але немає коду, ви все одно отримаєте велику картину системи.

І навпаки, якщо відображається лише код, але не структури даних, зрозуміти систему дуже важко.

"Насправді я стверджую, що різниця між поганим програмістом і хорошим - чи вважає він свій код або його структуру даних важливішими. Погані програмісти турбуються про код. Хороші програмісти турбуються про структури даних та їх взаємозв'язки". - Лінус Торвальдс

"Покажіть мені свої блок-схеми і прихойте свої таблиці, і я продовжую бути загадкованим. Покажіть мені свої таблиці, і я зазвичай не потребуватиму ваших блок-схем; вони будуть очевидними". - Фред Брукс.


4

Kernel Newbies досить гарно, я думаю

Є багато людей, які зацікавлені дізнатись про те, як працює ядро, я думаю, ви можете дізнатися щось або два там


3

Параметр налагодження може бути корисним.

Ще кілька речей, які можна зробити після побудови ядра з налагоджувальним параметром, - це написати кілька прикладних тестових додатків, що викликають різні системні виклики, які викликатимуть ядро, і ви зможете одночасно пройти по одному фрагменту коду ядра та зрозуміти його реалізацію.



0

Один із способів дізнатися про складну базу коду - це запустити її у відладчику і побачити, куди вас ведуть речі. Для Linux існує налагоджувач Linux Kernel .


Я не впевнений, що це спрацює для того, хто все ще намагається, що робити з цим гігантським фрагментом коду, і як це відбувається
Махмуд Хоссам

1
Я зробив такий підхід з величезними базами коду. Вам потрібна точка входу та ідея, на що звернути увагу.
LennyProgrammers

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