Ihrer Erfahrung nach würde nur das Lesen der Kernelquelle helfen.)
Eimantas
3
RTFS ist immer das Beste, aber manchmal ist die Quelle durch geringfügiges Lesen leichter zu verstehen.
Stephen Jazdzewski
Jemand, der Bearbeitungsrechte hat, sollte diesen Titel wirklich bearbeiten.
JJCLARKSON
1
Ich folge derzeit den Ratschlägen von Matt Might in seinem Artikel " Was jeder Major der Informatik wissen sollte" . Er empfahl die Unix-Programmierumgebung von Kernighan und Pike, Linux Server Hacks, das UNIX- und Linux-Systemverwaltungshandbuch von Nemeth, Synder, Hein und Whaley, die Linux-Kernel-Entwicklung von Love und die Unix-Netzwerkprogrammierung von Stevens, Fenner und Rudoff.
Anthony
1
@Anthony, das sind ausgezeichnete Ressourcen, die sich jedoch mehr an der Benutzer- / Befehlszeile orientieren. Außerdem ändert sich gerade Linux sehr schnell. Sie müssen auf dem Laufenden bleiben. Gute Ressourcen sind LWN und Kernelnewbies .
Vonbrand
Antworten:
36
Hier sind einige Vorschläge, wie Sie den "Geist" von Unix verstehen können, zusätzlich zu den feinen Empfehlungen, die in den vorherigen Beiträgen gemacht wurden:
"The Unix Programming Environment" von Kernighan und Pike: ein altes Buch, das jedoch die Essenz der Unix-Umgebung zeigt. Es wird Ihnen auch helfen, ein effektiver Shell-Benutzer zu werden.
"Unix für Ungeduldige" ist eine nützliche Ressource, um die Navigation in der Unix-Umgebung zu erlernen. Eines meiner liebsten.
Wenn Sie ein Power-User werden möchten, gibt es nichts Besseres als O'Reillys "Unix Power Tools", das aus den kollektiven Tipps und Tricks von Unix-Profis besteht.
Ein anderes Buch, das ich nicht erwähnt habe, ist das Buch "Operating Systems, Design and Implementation" (Betriebssysteme, Design und Implementierung) von Andy Tanenbaum, das den Quellcode für ein vollständiges Unix-Betriebssystem in 12-KB-Codezeilen enthielt.
+1 für das Lions-Buch. Das xv6 des MIT ist eine moderne Version von Lions v6, die auf x86-Computern ausgeführt wird und ANSI C verwendet. Sowohl der Quellcode als auch das zugehörige Lehrbuch können heruntergeladen werden.
Daniel Näslund
8
Bücher / Sites / Handbücher, die ich häufig benutze:
Der Linux-Kernel : Dieses Buch wird online als Teil von TLDP (The Linux Documentation Project) veröffentlicht. Es ist nicht aktuell und kein internes Handbuch, bietet jedoch nützliche Informationen und einführende Materialien zu Prinzipien und Mechanismen des Kernels.
Grundlegendes zum Linux-Kernel: Meiner Meinung nach ist es das beste Buch für Anfänger, die Hintergrundinformationen zum Design und Konzept des Betriebssystems haben. Es wird als aktuell akzeptiert und deckt die Version 2.6 des Kernels ab. Es gibt eine HTML-Version des Buches im Web, aber ich denke, es ist höchstwahrscheinlich Warez.
Während Sie Linux-Kernel-Interna studieren, müssen Sie in der Regel lernen, wie Hardware funktioniert und welche Hardware auf abstrakte Weise bereitgestellt wird. Intel hat großartige Handbücher dafür.
Kurz gesagt, im Linux-Kernel geht es darum, wie der Kernel erstellt und installiert wird, nicht wirklich um die Interna von Linux / Unix. Um nicht zu sagen, es ist kein gutes Buch, aber ich bin ein bisschen voreingenommen. Oh, beide Bücher sind kostenlos online, wenn Sie sie dort ansehen möchten.
Greg KH
5
Linux Systems Programming oder ein anderes Buch von Robert Love (das sind alles O'Reilly-Bücher):
Ich stimme allen anderen zu und ich muss sagen, dass Stevens 'APUE (ich habe die zweite Ausgabe) ein Klassiker ist. Ich möchte auch hinzufügen, dass Eric Raymonds The Art of UNIX Programming ganz oben auf meiner Liste mit Stevens steht.
Nun, für BSD Unices gibt es das Design und die Implementierung des 4.4BSD-Betriebssystems, von dem Teile anscheinend kostenlos unter http://www.freebsd.org/doc/en/books/design-44bsd/ verfügbar sind.
Linux-Gerätetreiber sind eine weitere gute Ressource. Es würde Ihnen einen anderen Weg geben, in das Innenleben einzusteigen. Aus dem Vorwort:
Dies ist offenbar ein Buch über das Schreiben von Gerätetreibern für das Linux-System. Das ist natürlich ein würdiges Ziel; Es ist unwahrscheinlich, dass sich der Fluss neuer Hardwareprodukte in absehbarer Zeit verlangsamt, und irgendjemand muss dafür sorgen, dass all diese neuen Gadgets mit Linux funktionieren. In diesem Buch geht es aber auch darum, wie der Linux-Kernel funktioniert und wie er an Ihre Bedürfnisse oder Interessen angepasst werden kann. Linux ist ein offenes System; Wir hoffen, dass dieses Buch für eine größere Community von Entwicklern offener und zugänglicher ist.
Um ein Gefühl dafür zu bekommen, warum und was der Kernel unterstützen soll, werfen Sie einen Blick auf The Art of Unix Programming von Eric Raymond. Es braucht Dinge auf einer ziemlich hohen, philosophischen Ebene, aber es würde gut zu den kleinsten Details anderer Bücher passen.
Ich habe die erste ausführlich besprochen (Wenn ich ein besseres Gedächtnis hätte und mehr Zeit hätte, würde ich viel mehr wissen als jetzt; aber das ist eine andere Geschichte). Ich lese gerade den zweiten.
Antworten:
Hier sind einige Vorschläge, wie Sie den "Geist" von Unix verstehen können, zusätzlich zu den feinen Empfehlungen, die in den vorherigen Beiträgen gemacht wurden:
"The Unix Programming Environment" von Kernighan und Pike: ein altes Buch, das jedoch die Essenz der Unix-Umgebung zeigt. Es wird Ihnen auch helfen, ein effektiver Shell-Benutzer zu werden.
"Unix für Ungeduldige" ist eine nützliche Ressource, um die Navigation in der Unix-Umgebung zu erlernen. Eines meiner liebsten.
Wenn Sie ein Power-User werden möchten, gibt es nichts Besseres als O'Reillys "Unix Power Tools", das aus den kollektiven Tipps und Tricks von Unix-Profis besteht.
Ein anderes Buch, das ich nicht erwähnt habe, ist das Buch "Operating Systems, Design and Implementation" (Betriebssysteme, Design und Implementierung) von Andy Tanenbaum, das den Quellcode für ein vollständiges Unix-Betriebssystem in 12-KB-Codezeilen enthielt.
quelle
Sie sollten unbedingt Advanced Programming in the Unix Environment von Stevens lesen . Lassen Sie sich vom Advanced-Titel nicht abschrecken, er ist sehr gut lesbar.
quelle
quelle
Bücher / Sites / Handbücher, die ich häufig benutze:
Der Linux-Kernel : Dieses Buch wird online als Teil von TLDP (The Linux Documentation Project) veröffentlicht. Es ist nicht aktuell und kein internes Handbuch, bietet jedoch nützliche Informationen und einführende Materialien zu Prinzipien und Mechanismen des Kernels.
Grundlegendes zum Linux-Kernel: Meiner Meinung nach ist es das beste Buch für Anfänger, die Hintergrundinformationen zum Design und Konzept des Betriebssystems haben. Es wird als aktuell akzeptiert und deckt die Version 2.6 des Kernels ab. Es gibt eine HTML-Version des Buches im Web, aber ich denke, es ist höchstwahrscheinlich Warez.
Ein Buch über die Verwaltung des virtuellen Speichers
Während Sie Linux-Kernel-Interna studieren, müssen Sie in der Regel lernen, wie Hardware funktioniert und welche Hardware auf abstrakte Weise bereitgestellt wird. Intel hat großartige Handbücher dafür.
Softwareentwicklerhandbücher für Intel 64- und IA-32-Architekturen : Aktuelle , detaillierte Informationen.
Intel 80386 Programmer's Reference Manual : Ich weiß, dass dies ein bisschen alt ist, aber ich habe so viele Dinge aus diesem Handbuch gelernt.
Wenn Sie sich mit dem Design und dem Konzept von Betriebssystemen befassen möchten, empfehle ich das folgende Buch: Betriebssystemkonzepte .
quelle
O'REILLY Linux-Kernel in
Kürze und O'REILLY Linux-Gerätetreiber
quelle
Linux Systems Programming oder ein anderes Buch von Robert Love (das sind alles O'Reilly-Bücher):
http://oreilly.com/catalog/9780596009588
quelle
Ich stimme allen anderen zu und ich muss sagen, dass Stevens 'APUE (ich habe die zweite Ausgabe) ein Klassiker ist. Ich möchte auch hinzufügen, dass Eric Raymonds The Art of UNIX Programming ganz oben auf meiner Liste mit Stevens steht.
quelle
Nun, für BSD Unices gibt es das Design und die Implementierung des 4.4BSD-Betriebssystems, von dem Teile anscheinend kostenlos unter http://www.freebsd.org/doc/en/books/design-44bsd/ verfügbar sind.
quelle
Linux-Gerätetreiber sind eine weitere gute Ressource. Es würde Ihnen einen anderen Weg geben, in das Innenleben einzusteigen. Aus dem Vorwort:
quelle
Um ein Gefühl dafür zu bekommen, warum und was der Kernel unterstützen soll, werfen Sie einen Blick auf The Art of Unix Programming von Eric Raymond. Es braucht Dinge auf einer ziemlich hohen, philosophischen Ebene, aber es würde gut zu den kleinsten Details anderer Bücher passen.
quelle
Darf ich auch die folgenden zwei Bücher vorschlagen (neben den anderen):
Ich habe die erste ausführlich besprochen (Wenn ich ein besseres Gedächtnis hätte und mehr Zeit hätte, würde ich viel mehr wissen als jetzt; aber das ist eine andere Geschichte). Ich lese gerade den zweiten.
quelle