Jestem studentem zainteresowanym pracą nad zarządzaniem pamięcią, w szczególności elementem zastępującym strony w jądrze linuksa.
Jakie są różne przewodniki, które mogą pomóc mi w zrozumieniu źródła jądra?
Próbowałem przeczytać książkę Understanding the Linux Virtual Memory Manager autorstwa Mel Gormana i Understanding the Linux Kernel autorstwa Cesati i Bovet, ale nie wyjaśniają one przepływu kontroli przez kod. Wyjaśniają tylko różne stosowane struktury danych i pracę, jaką wykonują różne funkcje. To sprawia, że kod jest bardziej mylący.
Mój projekt dotyczy ulepszenia algorytmu zastępowania stron w jądrze głównego nurtu i analizy jego wydajności pod kątem zestawu obciążeń. Czy jest jakiś smak jądra Linuksa, który byłby łatwiejszy do zrozumienia (gdyby nie jądro linux-2.6.xx)?
źródło
Odpowiedzi:
Koncentruj się na strukturach danych . Zrozumienie struktur danych jest zwykle ważniejsze niż kod.
Jeśli wyświetlane są tylko struktury danych, ale nie ma kodu, nadal masz duży obraz systemu.
Odwrotnie, jeśli pokazano tylko kod, ale nie struktury danych, bardzo trudno jest zrozumieć system.
źródło
Kernel Newbies jest całkiem niezły
Jest wiele osób zainteresowanych nauką działania jądra. Myślę, że możesz się tam czegoś nauczyć
źródło
Przydałaby się opcja debuggera.
Kilka innych rzeczy, które można zrobić po zbudowaniu jądra z opcją debuggera, to napisanie przykładowych aplikacji testowych wywołujących różne wywołania systemowe, które będą wywoływały jądro i możesz przechodzić przez jeden kawałek kodu jądra i rozumieć jego implementację.
źródło
W części dotyczącej systemów operacyjnych tego artykułu, co powinien wiedzieć każdy informatyk , Matt Might polecił Love Kernel Development Linux . Chociaż jest to zaawansowany temat, książka jest bardzo dobrze napisana.
źródło
Jednym ze sposobów nauczenia się złożonej bazy kodu jest uruchomienie go w debuggerze i sprawdzenie, dokąd cię zaprowadzą. W systemie Linux dostępny jest debugger jądra systemu Linux .
źródło