Unix Legendry (und auch andere * nix)


12

Dies ist der Zwilling zu dieser Frage .

Die dunkelste / positivste Antwort erhält die Antwortvoting!

Die meisten Unix- und Unix-ähnlichen Systeme haben eine "traditionelle Geschichte", die von Generation zu Generation weitergegeben wird, damit Neulinge einige der esoterischeren Teile des Systems sehen und verstehen können. Welche langjährigen * nix-Administratoren leisten einen Beitrag zur "Legendry" von "UNIX", soweit esoterische Kenntnisse vorliegen, denen neue Administratoren ausgesetzt sein sollten?


2
Sollte dies wiki, denke
squillman

Ich werde es rechtzeitig tun. ;) Um ehrlich zu sein, ich habe mehrere reine Wikis gemacht, und wenn es nicht einmal einen Hinweis auf Stimmen gibt, wird niemand kommen . Im Ernst, es funktioniert jedes Mal so, ohne Fehler. Die Leute werden keine Einträge für ein Wiki eingeben, es sei denn, es ist absurderweise nicht arbeitsbezogen (dh Lieblings-Sysadmin-Cartoon usw.)
Avery Payne

2
Mir ist aufgefallen, dass niemand etwas in Wikis kommentiert. Das ist so bizarr. Die Leute spielen Serverfault, als wäre es ein Videospiel. Dumm.
Matt Simmons

1
Ich habe es auch bemerkt, aber (IMHO) bedeutet nicht, dass wir das Rep-Huren fördern sollten ... Lass es mich wissen, wenn du es zu Meta übernimmst, sie kommen mit ein paar ziemlich guten Flammen da drüben (vertrau mir) , Sie werden es bekommen) :)
squillman

1
Ich hasse es, es zu sagen ... aber ich denke, es sollte eine Art Kompromiss geben. Meine allgemeine Beobachtung war, dass wenn Sie eine bestimmte "kritische Masse" erreichen, Sie in ein Wiki wechseln können und die Frage weiterhin Antworten sammeln wird. Ich frage mich also, ob Sie das Wiki-Flag gesetzt haben. Vielleicht sollte es auf genügend Antworten warten, um die Frage anzukurbeln, und nach einer voreingestellten Zeit - sagen wir 3 Stunden - wird es automatisch in das Wiki geschaltet. Dies ist ein guter Kompromiss, ein Gleichgewicht zwischen der Belohnung der Menschen, die bereit sind, den Prozess zu beginnen, und der Schaffung einer auf Beiträgen basierenden gemeinschaftlichen Anstrengung. Ideen? Bemerkungen?
Avery Payne

Antworten:


20

Ein persönlicher Favorit war schon immer "The Case of the 500-Mile Email"

http://www.ibiblio.org/harris/500milemail.html

Spoiler

$ units
2411 units, 71 prefixes, 33 nonlinear units

You have: 3 millilightseconds
You want: miles
    * 558.84719
    / 0.0017893979

1
Wow, ich habe drei Antworten gepostet, aber diese muss der Gewinner sein!
HTTP500,

+1 Ja, ich liebe dieses. Außer du hast den Favoriten falsch geschrieben (haha, jk)
squillman

@squillman All das Tolkien aufwächst
;-)

@squilman - nein, hat er nicht. Das ist die richtige englische Schreibweise.
Alnitak,

@squilman Kommt darauf an, ob du Kanadier bist. (Farbe, Favorit, Scheck, etc.) ;-)
KPWINC

11

Für mich ist das Erstaunlichste an der UNIX-Tradition, dass UNIX im Grunde genommen von einem Mann geschrieben wurde - Ken Thompson, als er bei Bell Labs war. Es gibt einen faszinierenden Bericht darüber, der hier zu finden ist: http://www.bell-labs.com/history/unix/

Einige der Zitate sind einfach unbezahlbar:

"Ich habe dem Betriebssystem, der Shell, dem Editor und dem Assembler jeweils eine Woche zugewiesen, damit sie sich selbst reproduzieren können ...", erklärte Thompson.

Rohre:

Eine weitere Innovation von UNIX war die Entwicklung von Pipes, mit denen Programmierer eine Reihe von Prozessen für eine bestimmte Ausgabe aneinanderreihen konnten.

Es war nicht einfach "Es ist sehr einfach zu sagen, 'cat in grep in ...' oder 'who in cat in grep'", erklärte McIlroy. "Aber es gibt all diese Seitenparameter, die diese Befehle haben; sie haben nur keine Eingabe- und Ausgabeargumente, aber sie haben all diese Optionen."

Obwohl McIlroy gescheitert war, ließ er die Idee nicht fallen. "Und über einen Zeitraum von 1970 bis 1972 sagte ich von Zeit zu Zeit:" Wie wäre es, so etwas zu machen? ", Und machte einen anderen Vorschlag, einen anderen Vorschlag, einen anderen Vorschlag. Und eines Tages kam ich auf mit einer Syntax für die Shell, die mit dem Piping einherging, und Ken sagte: "Ich werde es tun!"

"Er war es leid, dieses Zeug zu hören", erklärte McIlroy. "Er hat nicht genau das getan, was ich für den Pipe-System-Aufruf vorgeschlagen hatte. Er hat einen etwas besseren erfunden, der endlich wieder auf das geändert wurde, was wir heute haben. Er hat meine unbeholfene Syntax verwendet."

"Thompson sah, dass Datei-Argumente nicht zu diesem Schema passen würden und er ging hinein und änderte all diese Programme in derselben Nacht. Ich weiß nicht wie ... und am nächsten Morgen hatten wir diese Orgie von einem -Liner. "

" Er hat Pipes in UNIX eingefügt und diese Notation in einer Nacht in Shell geschrieben ", sagte McElroy verwundert.

So technisch einwandfrei die Leistung war, als Thompson Pipes erstellte, steckte er noch etwas anderes in UNIX - eine Philosophie.

Wie McIlroy es beschrieb, "lautete die Philosophie, mit der sich alle auseinandersetzten," Programme schreiben, die eines können und es gut machen. Programme schreiben, um zusammenzuarbeiten. Programme schreiben, die Textströme verarbeiten, denn das ist eine universelle Schnittstelle. "


7
Beste. Nacht durchmacher. Je.
Matt Simmons

8

tar wird nie mit einem Fehler beendet. NOCH NIE. In acht nehmen.

Quelle: Das Handbuch zu UNIX-HATERS, Seite 31 ( http://simson.net/ref/ugh.pdf ) Leider keine HTML-Version.

Dieses Buch steckt voller anderer Legenden und ist größtenteils noch anwendbar. In den Jahren, in denen ich Linux verwendet habe, bin ich auf viele dieser Fallstricke gestoßen ... nur auf keinen, bei dem es darum ging, mein gesamtes Laufwerk zu rammen, Gott sei Dank. Es ist erstaunlich für mich, dass so viel von diesem Buch immer noch richtig ist, obwohl es vor über 15 Jahren geschrieben wurde.

Und jetzt meine eigene Teer-Horror-Geschichte, fast eine exakte Nachbildung der UNIX-HATERS-Geschichte. Gleicher Bug, 14 Jahre später!

Ich möchte, dass mein WLAN auf meinem eeepc funktioniert, für das ich einen Treiber herunterladen, kompilieren und installieren muss. Ich lade alles herunter, was ich brauche, und gehe in die Bibliothek, um zu arbeiten. In der Mitte stelle ich fest, dass ich das Internet für etwas brauche, also gehe ich zur Installation.

tar -cvf somewirelessdriver.tar ./importantcompilerfiles

Verdammt. Habe ich nur -cvf anstelle von -xvf eingegeben?

Jep.

Hat tar im Hintergrund eine Tar-Datei mit zufälligem Müll erstellt und dabei meine verwendbare Datei überschrieben?

Jep. Groß. Ich schätze, ich werde einfach auf den Internetzugang verzichten. Gut, dass es keine Multi-Gigabyte-Datei war ... Oh, warte, das ist eine Woche zuvor passiert.

Ehrlich gesagt, was zum Teufel ist mit kryptischen Befehlszeilenargumenten und Linux-Programmen los? Können sie nicht einfach automatisch die Grundoperation ausführen, wenn sie für eine Datei mit der entsprechenden Erweiterung aufgerufen werden? Warum muss ich Teer sagen, was er mit einem ARCHIV machen soll? Glaubt es, dass ich es vielleicht WIEDER archivieren möchte?

Ich glaube, ich verstehe jetzt endlich, was eine Teergrube ist. Es ist ein Ort, an dem Dateien sterben.


1
Beeindruckend. Einfach wow. Gibt es eine Möglichkeit, die du mit einem Link dazu erneut bearbeiten kannst?
Avery Payne

4
Komm schon, ein Fehler würde bedeuten, dass Teer versagt hat. Sie sollten nur die Wahrheit sagen ... Teer scheitert nie ;-)
Matt Simmons

Link hinzugefügt, sowie weitere Kommentare. Als Randnotiz habe ich tatsächlich mein MSI Wind gekauft und zusätzlich 350 US-Dollar ausgegeben, damit ich Linux nicht verwenden musste, wenn ich keine Lust dazu hatte. Diese Geschichte ist einer der vielen Gründe, warum.
SilentW

Gibt es etwas, was Sie heutzutage tun, um solche Teerfehler zu vermeiden? Wenn ja, haben Sie Antworten für stackoverflow.com/questions/1122977/…
Andrew Grimm


6

Das ursprüngliche Pfeifensymbol war ^

Der ursprüngliche Löschschlüssel war #

Die ursprüngliche "Kill" -Taste (alles in der Zeile löschen) war @

Wenn Sie sich jemals auf einem älteren System anmelden und scheinbar keinen Kommentar oder keine E-Mail-Adresse eingeben können, wird stty zu Ihrem Freund.

Dies ist eine Beispiel-Anmeldesitzung, in der die Person, die das Protokoll erstellt hat, so freundlich war, dass sie stty ausführen konnte. Außerdem heißt es, wie hier erwähnt , "So identifizieren Sie eine traditionelle Bourne-Shell?" Sie können den Zirkumflex ^ (Caret) als Ersatz für | (Pipe) verwenden. "


1
Interessant. Gibt es eine Quelle dafür, um weiterzulesen?
sleske



2

Eine Tatsache, von der wahrscheinlich viele Linux-Neulinge nichts wissen, ist, dass der Schöpfer von Linux (Linus Torvalds) stark vom MINIX-Betriebssystem (einem Lehrmittel), das von Professor Andrew Tanenbaum entwickelt wurde, entlehnt wurde: http://en.wikipedia.org /wiki/Andrew_S._Tanenbaum#MINIX .

Linus und Prof. Tanenbaum diskutierten auch ausführlich die Vorzüge / den Pragmatismus eines monolithischen Kernels (Linux) gegenüber einem Mikrokernel (MINIX, Solaris). Die Debatte war öffentlich und kann hier eingesehen werden: http://oreilly.com/catalog/opensources/book/appa.html

Prost


1
Die Torvalds-Tanenbaum-Debatte ist ein echter Klassiker :-).
Sleske

2

Die Kunst der Unix-Programmierung ist eine gute Lektüre für alle, die sich für Computer interessieren, nicht nur für diejenigen, die sich für Unix interessieren. Ja, ein Teil davon ist veraltet, aber es ist immer noch eine wichtige Lektüre.


2

Alles ist eine Datei oder kann als solche behandelt werden ... mit Ausnahme des verdammten Benutzers.

Busfehler bedeutet, dass Sie versuchen, Daten auszuführen, die auf der Datenseite des aufgeteilten Daten- / Programmbusses des PDP / 11 gespeichert wurden.

Unix ist das einzige Betriebssystem, das von Anfang an Kalender und Uhren hatte, nur weil ein Astronom einer der Schöpfer war. (Extra-Kommentar-Gutschrift: Name des Autors. Extra-Extra-Gutschrift: Name des Olympiasiegers im UNIX-Team.)

Das GCOS-Feld in / etc / passwd wurde nach dem GECOS-Betriebssystem benannt und dort nur platziert, weil sie einen GECOS-Mainframe als Druckserver für das ursprüngliche Unix mini verwendeten und die Daten zum Akzeptieren eines Druckauftrags benötigten.


1
und Vernetzung. Wer weiß, was sie geraucht haben, als sie das BSD-Modell der Vernetzung unter Unix erstellt haben, aber es ist sicher nicht unix.
Chris

AT & T hat Streams als UNIXy-Netzwerk-API implementiert und aus Kompatibilitätsgründen eine Socket-API-Schicht darüber gelegt. Dann hat BSD (meiner Meinung nach 4.4) Streams als Kompatibilitätsschicht-API hinzugefügt, die Sockets heißt.
kmarsh

1

Eine nicht so lustige Sache, die ich einmal mit Teer gemacht habe, und ein Teer, der eine Woche brauchte, um zu rennen:

  1. tar zcf foo.tar.gz ...
    • Irgendwann am nächsten Tag war Bildschirmsitzung auf meinem Bildschirm: <UP>
    • Ein Tag oder so später: <enter>
    • Tar ist fertig, rate mal, was für Schlüssel sich im Zwischenspeicher befanden, und betrete die Shell in der Sekunde, nachdem der Teer fertig ist ...

Eine Aufwertung ihres Kommentars für die erste Person, die erklärt, was passiert ist :-) Die Moral der Geschichte, starte Sachen im Hintergrund der Screen Session.

Davon abgesehen liebe ich * NIX immer noch. Es macht mir nichts aus, wenn die Dinge durcheinander sind, weil es meine Schuld war.


Mehr eine Antwort auf die Antwort von SilentW als die Frage selbst :-)
Kyle Brandt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.