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.
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.
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.
Na pewno chcesz przeczytać Advanced Programming in the Unix Environment autorstwa Stevens . Nie pozwól, aby tytuł Advanced Cię odstraszył, jest bardzo czytelny.
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.
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 .
Jądro O'REILLY Linux w pigułce
i sterowniki urządzeń O'REILLY Linux
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.
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/
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.
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.