Zalecane lektury, aby lepiej zrozumieć elementy wewnętrzne Unix / Linux [zamknięte]

54

Przez ostatnie cztery lata pracowałem w środowiskach * nix jako programista aplikacji (głównie w C).

Proszę zasugerować kilka książek / blogów itp. W celu poprawy mojej wiedzy na temat * nix wewnętrznych.

Hemant
źródło
1
z twoim doświadczeniem pomogłoby tylko czytanie źródła jądra.)
Eimantas
3
RTFS jest zawsze najlepszy, ale czasem lite czytanie sprawia, że ​​źródło jest nieco łatwiejsze do zrozumienia.
Stephen Jazdzewski,
Ktoś, kto ma uprawnienia do edycji, naprawdę powinien edytować ten tytuł.
jjclarkson
1
Obecnie postępuję zgodnie z radą Matta Mighta w jego artykule, co powinien wiedzieć każdy informatyk . Polecił środowisko programowania Unix Kernighana i Pike'a, Linux Server Hacks, UNIX i Linux System Administration Handbook autorstwa Nemeth, Synder, Hein i Whaley, Linux Kernel Development by Love oraz Unix Network Programming autorstwa Stevensa, Fennera i Rudoffa.
Anthony
1
@Anthony, są to doskonałe zasoby, ale bardziej zorientowane na obszar użytkownika / linię poleceń. Ponadto, szczególnie Linux zmienia się teraz bardzo szybko, musisz być na bieżąco. Ładne zasoby to LWN i kernelnewbies .
vonbrand,

Odpowiedzi:

36

Oto kilka sugestii, jak zrozumieć „ducha” Uniksa, oprócz świetnych zaleceń, które zostały zrobione w poprzednich postach:

  • „The Unix Programming Environment” Kernighana i Pike'a: stara książka, ale pokazuje istotę środowiska Unixa. Pomoże ci również stać się efektywnym użytkownikiem powłoki.

  • „Unix dla niecierpliwych” jest przydatnym zasobem do nauki nawigacji w środowisku Unix. Jeden z moich ulubionych.

Jeśli chcesz zostać zaawansowanym użytkownikiem, nie ma nic lepszego niż „Unix Power Tools” O'Reilly'ego, na który składają się zbiorowe porady i wskazówki od specjalistów Unix.

Inną książką, o której nie wspomniałem, która jest zabawnym światłem i lekturą edukacyjną, jest „Systemy operacyjne, projektowanie i implementacja”, książka Andy'ego Tanenbauma, która zawierała kod źródłowy kompletnego systemu operacyjnego Unix w 12 000 liniach kodu.

miguel.de.icaza
źródło
9
dlaczego książka z 864 stronami nazywa się „niecierpliwym”?
amfibia
12
@amphibient Rozumiem, że nie widziałeś wydania „dla pacjenta”.
Christopher Poile
3
To nie jest „wewnętrzne” ....
user997112
14
zvolkov
źródło
2
+1 za książkę Lwy. Xv6 MIT to nowoczesna wersja Lions v6, która działa na maszynach x86 i wykorzystuje ANSI C. Można pobrać zarówno kod źródłowy, jak i powiązany podręcznik.
Daniel Näslund
8

Książki / witryny / podręczniki, których często używam:

  • Jądro Linux : Ta książka jest opublikowana online jako część TLDP (The Linux Documentation Project). Nie jest aktualny i nie jest wewnętrznym podręcznikiem, ale dostarcza użytecznych informacji i materiałów wprowadzających na temat zasad i mechanizmów jądra.

  • Zrozumienie jądra Linux: IMHO, jest to najlepsza książka dla początkujących, która ma doświadczenie w projektowaniu i koncepcji systemów operacyjnych. Jest akceptowany jako aktualny, obejmuje wersję 2.6 jądra. Książka ma wersję HTML książki, ale myślę, że najprawdopodobniej jest to warez.

  • Niektóre książki na temat zarządzania pamięcią wirtualną

Studiując wewnętrzne elementy jądra Linuksa, zwykle musisz nauczyć się, jak działa sprzęt i co zapewnia w abstrakcyjny sposób. Intel ma do tego świetne instrukcje.

Jeśli chcesz przestudiować projekt i koncepcję systemu operacyjnego , sugeruję następującą książkę: Koncepcje systemu operacyjnego .

brudny
źródło
1
Jest jeszcze jedna książka o wirtualnym menedżerze pamięci dla systemu Linux. Zawiera objaśnienia do kodu źródłowego. URL: ptgmedia.pearsoncmg.com/images/0131453483/downloads/… (Legalne do pobrania)
dirtybit
+1. książka o „menedżerze pamięci wirtualnej”? wydaje się bardzo interesujące. dzięki :-).
Hemant,
6

Jądro O'REILLY Linux w pigułce
i sterowniki urządzeń O'REILLY Linux

Stephen Jazdzewski
źródło
1
Jądro Linuksa w pigułce mówi o tym, jak zbudować i zainstalować jądro, a nie o wewnętrznych elementach systemu Linux / Unix. Nie mówię, że to nie jest dobra książka, ale jestem trochę stronniczy. Och, obie te książki są bezpłatne online, jeśli chcesz je tam zobaczyć.
Greg KH,
2

Zgadzam się ze wszystkimi pozostałymi i muszę powiedzieć, że APUE Stevensa (mam drugie wydanie) to klasyk. Chciałbym również dodać, że Eric Art Raymond The Art of UNIX Programming zajmuje miejsce tuż obok Stevensa na mojej liście.

λ Jonas Gorauskas
źródło
2

Linux Device Drivers to kolejny dobry zasób. To dałoby ci inny sposób na wejście w wewnętrzne funkcjonowanie. Ze wstępu:

Na pierwszy rzut oka jest to książka o pisaniu sterowników urządzeń dla systemu Linux. To oczywiście godny cel; przepływ nowych produktów sprzętowych prawdopodobnie nie zwolni w najbliższym czasie, a ktoś będzie musiał sprawić, by wszystkie te nowe gadżety działały w systemie Linux. Ale ta książka jest również o tym, jak działa jądro Linux i jak dostosować jego działanie do twoich potrzeb lub zainteresowań. Linux jest systemem otwartym; dzięki tej książce mamy nadzieję, że będzie ona bardziej otwarta i dostępna dla większej społeczności programistów.

Larry Smithmier
źródło
1

Aby dowiedzieć się, dlaczego i co ma obsługiwać jądro, zobacz The Art of Unix Programming autorstwa Erica Raymonda. Zajmuje wszystko na dość wysokim, filozoficznym poziomie, ale pasowałoby do drobiazgowych szczegółów innych książek.

Phil Miller
źródło
1

Czy mogę zasugerować następujące dwie książki (oprócz innych):

Pierwszą obszernie wspomniałem (gdybym miał lepszą pamięć i więcej czasu, wiedziałbym o wiele więcej niż teraz; ale to już inna historia). Obecnie czytam drugi.

Amit
źródło