Znajdziesz kilka darmowych przewodników na stronie Linux Documentation Project, strona przewodników . Oto krótka lista, którą wybrałem stamtąd, ale powinieneś przewinąć stronę, aby znaleźć to, czego potrzebujesz.
- Wprowadzenie do Linuksa - praktyczny przewodnik; Czerwiec 2008
- Linux w drodze; Listopad 2005
- Przewodnik administratora systemu Linux; Lipiec 2005 r
- Advanced Bash-Scripting Guide; Marzec 2009 (tak, jest to również dobre dla zrozumienia linux)
Powinieneś poszukać konkretnych HOWTO dla interesujących Cię tematów. Kolejna lista posortowała HOWTO .
Jest kilka przystawek na stronie dla początkujących recenzujących Linux .
Wreszcie, jest to mała książka dostępna online - jądro Linux w pigułce . Jest to wersja PDF wydania 2007.
Powinieneś używać tych referencji tylko jako wyczucia, aby rozpocząć własne wyszukiwanie rzeczy, których potrzebujesz.
Najlepszym sposobem na zrozumienie Linuksa jest zepsuć go źle, a następnie naprawić.
źródło
Nie jestem pewien, kiedy mówisz „głębszy poziom”, jeśli mówisz o dostaniu się więcej do wiersza poleceń (niektórzy ludzie nigdy nie opuszczają GUI dostarczanego wraz z ich dystrybucją, jeśli możesz to sobie wyobrazić), lub naprawdę szorstkie rzeczy niskiego poziomu, takie jak pisanie sterowników jądra. Zakładam więcej tego pierwszego niż drugiego.
Radzę ci wytyczyć rozsądne cele dla rzeczy, które chciałbyś robić przy użyciu Linuksa i aplikacji działających w systemie Linux (uruchom serwer WWW, serwuj pliki na hostach Windows, obsługuj DHCP, uruchamiaj pulpit graficzny itp.). Jestem głęboko przekonany, że uczysz się tylko wtedy, gdy „robisz”. Gdy masz już na myśli cel, realizuj go. Oznacza to czytanie stron podręcznika (wiele stron podręcznika), dokumentację „HOWTO”, archiwa list mailingowych, losowe posty na blogach oraz, oczywiście, dokumentację dostarczaną z różnymi programami, które instalujesz lub kompilujesz, aby uruchomić je na twoim pudła.
Od kilku lat prowadząc klasowe kursy certyfikacji IT, mogę powiedzieć z pewnym autorytetem, że uczniowie, których widziałem, robili największy postęp, to ci, którzy robili szalone projekty według własnego projektu i uczą się przy siedzeniach ich spodni.
Jak powiedziałem wcześniej, strony man, dokumentacja „HOWTO” ( http://tldp.org/docs.html oraz w wielu innych miejscach w sieci) i archiwa list mailingowych są twoimi przyjaciółmi. Unikam wszelkich książek, które mówią o wewnętrznych elementach jądra, przynajmniej na tym etapie. Na początek nie potrzebujesz takiej głębokiej wiedzy.
Rozmawiaj z innymi ludźmi. Awaria serwera wygląda, jakby okazało się, że jest to świetne miejsce na uzyskanie dobrych porad. Zadawaj pytania tutaj i nie myśl, że będziesz wyglądał głupio. Jeśli masz trochę czasu na rozmowę z ludźmi znającymi Linuksa, skorzystaj z niego. (Chociaż zalecam, abyś spróbował oddzielić opinię od faktów. W społeczności Linuksa jest tyle „świętych wojen” w porównaniu do różnych opinii na temat robienia rzeczy, jak w każdej innej społeczności - być może więcej, biorąc pod uwagę charakter społeczności .)
Aby naprawdę „pogłębić” wiedzę o uniksowym dziedzictwie Linuksa, możesz skorzystać ze starszych, specyficznych dla Uniksa instrukcji administracyjnych lub podręczników. Chciałbym omijać je wcześnie (przynajmniej dopóki nie docenisz historycznej natury „ścieżek, które nie zostały podjęte” w Linuksie w porównaniu z niektórymi systemami operacyjnymi pochodzącymi z Uniksa).
Nie wiedząc, jaki jest twój ogólny poziom umiejętności, rzucę okrzyk na książkę, która jest dla mnie lub może nie być pomocna. Bardzo polecam „TCP / IP Illustrated” ( http://www.amazon.com/Illustrated-Volumes-Addison-Wesley-Professional-Computing/dp/0201776316 ). To w ogóle nie jest specyficzne dla Linuksa, ale będziesz robił tak wiele rzeczy, które zajmują się TCP / IP, że znajomość tego „zimnego” nie jest żadnym problemem.
Krótko mówiąc, mówię, że nie ma magicznej książki ani książek, żadnych super tajnych filmów, od których uczyli się „mistrzowie”, ale absolutnie nie ma ograniczeń co do tego, czego możesz się nauczyć, jeśli będziesz się jej trzymać i nie boisz się ubrudzić sobie ręce.
źródło
Tylko wieloletnie doświadczenie w grze z poszczególnymi komponentami zapewni Ci głębokie zrozumienie. To powiedziawszy, ogromna większość książek Oreilly Press jest naprawdę dobrze napisana i idealna, jeśli nie jesteś manekinem i masz więcej niż 24 godziny. :)
Istnieje projekt o nazwie Linux From Scratch , który pokazuje, jak zbudować dystrybucję linux z niczego. Może się to okazać jednorazowe. To będzie czasochłonne, ponieważ musisz skompilować wszystko ze źródła, a wszystko to wyrzucisz na końcu.
Uważam, że strona jądra LWN.net jest nieoceniona, aby nadążyć za tym, jak rzeczy działają w jądrze na wysokim poziomie.
źródło
Oprócz codziennego korzystania (co myślę, że to świetna rzecz!), Polecam zacząć myśleć o usługach, które mogłyby być zaimplementowane dla twojej sieci na Linuksie. Rozpocznij projektowanie w oparciu o usługi Linux, badaj i wdrażaj, gdy będziesz gotowy. Mam nadzieję, że wystąpią błędy w tym procesie, a to doświadczenie pomoże ci zrozumieć system operacyjny na głębszym poziomie.
źródło
Ogólną filozofię Uniksa i doskonałe wprowadzenie do wiersza poleceń można znaleźć w klasycznym środowisku programistycznym Briana Kernighana i Roba Pike'a .
Ponadto w witrynie IBM DeveloperWorks w sekcji dotyczącej systemu Linux znajduje się ponad 900 artykułów. Możesz przeglądać listę artykułów w poszukiwaniu interesujących Cię tematów.
Wreszcie, gdy będziesz gotowy, aby dostać się do drobiazgów, idź do źródła. Chwyć kod źródłowy wersji jądra, której używasz na kernel.org (twoja dystrybucja będzie również zawierała pakiety źródłowe jądra, które możesz zainstalować) i sprawdź katalog Documentation. Znajdziesz wiele materiałów referencyjnych na temat wewnętrznych elementów jądra i ustawień konfiguracji.
źródło
Szkoła. Aby naprawdę zrozumieć system Linux, potrzebujesz szerokiej gamy środowisk informatycznych. Kompilatory, architektura komputera i systemy operacyjne. Potrzebujesz przewodnika, który pokaże ci, co jest ważne, i skoryguje wszelkie nieporozumienia, które masz lub które formujesz.
Kiedy zrozumiesz, jak działają współczesne procesory i jak je wykorzystują kompilatory C, możesz zanurzyć się w książkach takich jak Minix 3:
Jest to najnowsza wersja książki, na której Torvalds, autor jądra Linuksa (luźno) oparł swoją pracę. Dowiesz się o podstawowych składnikach i algorytmach systemu operacyjnego oraz o tym, jak dokładnie je zaimplementować: tekst zawiera prawie całkowity wydruk kodu źródłowego do Minix w celach informacyjnych i instruktażowych. Sprawdź moduł obsługi przerwań, aby uzyskać pełne zrozumienie, jak działa system i gdzie przepływa kontrola.
I zanim zaczniesz drwić ze szkoły i informatyki, ważne jest, aby pamiętać, że zadania, o które proszone są systemy operacyjne, są na ogół NP-ukończone. Dlatego zrozumienie szerokiej gamy dostępnych algorytmów ma kluczowe znaczenie dla dostrajania wydajności, ponieważ nie będzie możliwego do udowodnienia optymalnego algorytmu.
Oprócz jądra istnieje wiele innych obszarów. Ponieważ Linux jest open source, jest to akademicka kopalnia złota. Systemy takie jak Debian i Ubuntu udostępniają swoje źródło, a to jest bardzo proste:
apt-get source package-name
Wiele osób upstreams hostuje również swój kod w kontroli wersji, dzięki czemu możesz przeczytać najbardziej aktualną wersję źródła programu, a nawet zobaczyć, jak został zbudowany lata temu.
źródło
Źródło .
Oczywiście jeśli chodzi o jądro .
Jeśli próbujesz nauczyć się systemu nad jądrem i interfejsem API, zacznę od nauki starej szkoły
Unix
. Może wypróbuj FreeBSD / OpenBSD / NetBSD / DragonflyBSD . Trochę Minix też może pomóc. Następnie przejdź do Slackware , Arch , Debian i Gentoo . Są one różne ( i przychodzą z wielkiego dokumentacji ), w tych diferencies, twoja ciekawość sprawi, że będziesz szukać dlaczego tak jest, można zdobyć dużo wiedzy technicznej, komercyjne, politycznym i historycznym.Innym sposobem byłoby zagłębienie się w
/etc
stare podręczniki Unixa i oczywiście Google .Linux od podstaw to świetny sposób na
learning
GNU / Linux.źródło
Po prostu zacznij budować własną dystrybucję. Zrobiłem to dla siebie i wiesz co? Po 4 miesiącach spędziłem na tym, że wiem o wewnętrznych elementach Linuksa bardziej niż ludzie wokół mnie, którzy używają Linuksa od ponad 10 lat.
źródło
Uczenie się w dowolnym środowisku * nix jest podejściem całościowym . Obejmuje serię objawień i doświadczeń . To nie jest przypadek. Jest to celowy produkt uboczny jego projektu, ponieważ oryginalne środowisko zostało zaprojektowane wokół i dla programistów komputerowych. Jest to również jego największa wada, ponieważ nacisk kładziony jest na aspekty techniczne, a nie wrażenia użytkownika. Jest to „dom o solidnej ramie, który przetrwa 100 lat bez serwisu, ale jego bocznica jest przypadkowa, a farba wyraźnie zaniedbana”.
Porównaj to z Windows, który jest lustrzanym odbiciem tej filozofii - zrób coś, co daje użytkownikowi namacalne wrażenia, ale chroń go przed wewnętrznym działaniem rzeczy. Jest to „dom z pięknymi wykończeniami i farbą, ale fundamentem, który został kilkakrotnie zbudowany, z wieloma obejściami”.
Aby naprawdę rozpocząć naukę, sugeruję zbudowanie niestandardowych obrazów jądra, które mają opcje specyficzne dla twojego sprzętu, i zainstalowanie ich z wybranymi opcjami. Powinieneś w pełni spodziewać się, że coś w tym stanie się gdzieś złamie i możesz, ale nie musi, cofnąć wszystko do „normalności”. Jest to normalna część tego procesu uczenia się i powinieneś podejść do tego tak, jakby coś się zepsuło (tj. Nie rób z tego podstawowej instalacji, użyj osobnego dysku lub maszyny wirtualnej albo czegoś ...)
Odpowiedziałem na podobne pytanie , więc aby ograniczyć pisanie, odsyłam go tutaj . Będziesz także chciał przeczytać kilka pierwszych akapitów na tej stronie , które dadzą Ci lepsze wyczucie tego, w czym jesteś.
źródło
Rozpocznij czytanie / cat'ing plików
/proc
i/etc
- nie zrobisz żadnych szkód po prostu czytając pliki (zapisz może zepsucie połączenia terminala / ssh, jeśli cat plik, który produkuje informacje binarne), a większość z nich to ludzie czytelny. „sysctl -a
” Wyjście jest także kopalnia złota. Gdy znajdziesz coś interesującego, wejdź na google lubman
po więcej informacji na ten temat.Możesz znaleźć prawdziwe klejnoty na temat tego, jak działa jądro i system operacyjny.
Kilka szybkich wskazówek:
Szybka wskazówka - niektóre dane wyjściowe w / proc są oddzielone NUL, a zatem są trudne do odczytania. Użyj „tr”, aby przekonwertować wartości NUL na znaki nowej linii, np .:
źródło
Jest wiele do nauczenia się na temat Linuksa lub dowolnego systemu operacyjnego. Jednym z rodzajów uczenia się jest to , co nazywam uczeniem „dogłębnym”, czyli dowiadywanie się, jak działa jądro, jakie przyjmuje założenia, jak różne bity rozmawiają ze sobą i jak radzi sobie ze sprzętem. To jest jądro. Takie rzeczy są bardzo przydatne w ustaleniu, dlaczego system operacyjny właśnie się zepsuł. W rzeczywistości nauczyłem się tego w ten sam sposób, co Karl Katzke . Zniszczyłem rzeczy i ulepszyłem.
Dla tego rodzaju wiedzy Linux jest dość łatwy. Wszystko jest udokumentowane w wielu miejscach. Tego samego nie można raczej powiedzieć o Windows, chociaż nadal istnieje wiele doc tam dla niego.
Potem jest nauka „poruszania się po systemie operacyjnym”, w której przydatna jest znajomość bash / sed / awk / regex i wszystkich innych rzeczy. Ponieważ faktem jest, że obecnie system operacyjny to znacznie więcej niż jądro. Dostarczyłeś obiekty BLOB sterowników. Masz sposób, w jaki ta konkretna dystrybucja pakuje swoje skrypty startowe. Masz różne mechanizmy łatek / aktualizacji. Masz demony systemowe, których wszyscy potrzebują, ale nie są jądrem.
Jest to znacznie szersze spektrum wiedzy niż proste jądro-fu. Różni się w zależności od dystrybutora, więc sposób działania w Red Hat może nie działać tak samo w Slackware. Miejsce przechowywania plików może się różnić. Jak to, co wybrali, zastąpili „vi”.
„Nauka Linuksa” polega bardziej na nauce całego ekosystemu niż na zwykłym systemie operacyjnym.
źródło
Miałem książkę zatytułowaną „Programowanie Linux”, która nauczyła mnie więcej o systemie operacyjnym niż jakakolwiek książka „Learn Linux”. Chciałbym mieć numer ISBN, ale to było niesamowite ... częściowo dlatego, że weszło w programowanie „dlaczego”, a nie tylko „jak”.
Ogólnie rzecz biorąc, większość mojej nauki polegała na szczerym łamaniu i naprawianiu. Stało się to powoli, a ja wciąż uczę się nowych rzeczy po 12 latach.
To zdecydowanie proces. Kluczem jest być bardzo, bardzo ciekawym. Kiedy napotkasz coś, czego nie znasz, zapoznaj się z tym. Poszukaj wiedzy o tym, jak i dlaczego tyka, a także poznaj podstawowe technologie.
źródło
Uznałem, że dryfowanie po Linuksie, FreeBSD, OpenBSD, Solarisie, a nawet różnych innych dystrybucjach Linuksa to dobry sposób na nauczenie się dużo o Linuksie. O tym, jak wyglądało inaczej. Dowiesz się tyle samo o swoim rodzinnym mieście, odwiedzając inne miejsca, niż dowiesz się, gdzie jesteś.
źródło
Jeśli chodzi o książki, lubię O'Reilly's, więc „Essential System Administration Pocket Reference” i „Linux System Administration” są możliwymi punktami wyjścia.
Moja kopia Administracji sieci TCP / IP jest starsza i od dłuższego czasu jej nie używałem, ale uważam, że bardzo przydatne jest lepsze zrozumienie tego, co się dzieje.
źródło
Już robisz pierwszy krok, używając Linuksa jako zwykłego pulpitu.
Jeśli chcesz zrozumieć, w jaki sposób wszystkie części łączą się i są skonfigurowane, sugeruję uruchomienie Gentoo . Od zwykłej instalacji stage3 musisz skompilować własne jądro, zainstalować wszystkie swoje usługi (oprócz SSH, który jest dostępny po wyjęciu z pudełka), zbudować i skonfigurować X samodzielnie, itp. Kiedy to robisz, otrzymujesz znacznie lepsze zrozumienie wszystkich bitów wchodzących w binarną instalację linuksową. Nie szkodzi również, że Gentoo ma najlepszą dokumentację ze wszystkich Distro, jakie znalazłem, lub że portage jest fantastycznie potężnym i elastycznym menedżerem pakietów.
źródło
Zdecydowanie poleciłbym to jako „wymaganą lekturę”:
Środowisko programowania w Uniksie - Brian W. Kernighan / Rob Pike
ISBN 0-13-937681-X
http://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X
źródło
Ktoś inny wspomniał o tym i myślę, że to właśnie pomogło mi najbardziej przy użyciu różnych smaków linuksowych. Jeśli czujesz, że masz rozsądne podejście do systemu Linux, zacznij korzystać z open / net / freebsd.
Z tego powodu większość ludzi z Linuksem, z którymi pracowałem, może używać jednej lub dwóch dystrybucji Linuksa, które nie różnią się tak bardzo od innych. Jasne, większość z nich znała takie zakłócenia jak grzbiet dłoni, ale wciąż mogły być zaskakująco zaskoczone niektórymi rzeczami. Myślę (nie rozpętać wojny z płomieniami), że sposób, w jaki gromadzone są BSD, trochę łatwiej jest odkryć „dlaczego” sposobu, w jaki się to robi (plus czają się na listach dyskusyjnych bsd, wyjaśniają, że „dlaczego” na śmierć ). Sprowadza się to do zmiany twojego punktu widzenia, może nigdy nie przyszło ci do głowy zapytać, dlaczego pewne rzeczy są takie, jakie są, dopóki ktoś nie zrobi tego w zupełnie inny sposób.
źródło
Ten post na Stackoverflow zawiera dużą listę zasobów Unix / Linux, w tym większość kanonicznych prac na ten temat.
Innym sposobem, aby dowiedzieć się, co sprawia, że Linux tyka za kulisami, jest praca z Linux From Scratch ( http://www.linuxfromscratch.org/ ). Zasadniczo jest to zestaw ćwiczeń z ręczną instalacją i konfiguracją różnych komponentów systemu Linux i jest to bardzo dobre wprowadzenie do nauki nakrętek i śrub.
źródło