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.
+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.
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.
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,
5
Linux Systems Programming lub jakakolwiek inna książka Roberta Love'a (wszystkie to książki O'Reilly):
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.
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.
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.
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.
Odpowiedzi:
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.
źródło
Na pewno chcesz przeczytać Advanced Programming in the Unix Environment autorstwa Stevens . Nie pozwól, aby tytuł Advanced Cię odstraszył, jest bardzo czytelny.
źródło
źródło
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.
Instrukcje programistyczne dla architektur Intel 64 i IA-32 : aktualne, szczegółowe informacje.
Podręcznik programisty Intel 80386 : Wiem, że jest trochę stary, ale nauczyłem się wielu rzeczy z tego podręcznika.
Jeśli chcesz przestudiować projekt i koncepcję systemu operacyjnego , sugeruję następującą książkę: Koncepcje systemu operacyjnego .
źródło
Jądro O'REILLY Linux w pigułce
i sterowniki urządzeń O'REILLY Linux
źródło
Linux Systems Programming lub jakakolwiek inna książka Roberta Love'a (wszystkie to książki O'Reilly):
http://oreilly.com/catalog/9780596009588
źródło
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.
źródło
Cóż, w przypadku BSD Unices istnieje Projekt i wdrożenie systemu operacyjnego 4.4BSD, którego części są teraz najwyraźniej dostępne za darmo na stronie http://www.freebsd.org/doc/en/books/design-44bsd/
źródło
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:
źródło
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.
źródło
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.
źródło