Unix Legendry (i inne * nix również)

12

To jest bliźniak tego pytania .

Najbardziej niejasna / uprzywilejowana odpowiedź otrzyma odpowiedź na głos!

Większość systemów uniksowych i uniksopodobnych ma „tradycyjną historię” przekazywaną z każdym pokoleniem, dzięki czemu nowi użytkownicy mogą zobaczyć i zrozumieć niektóre bardziej ezoteryczne części systemu. Jaki długoletni * nix administratorzy przyczyniają się do „Legendry” „UNIX”, jeśli chodzi o ezoteryczną wiedzę, na którą nowi administratorzy powinni być narażeni?

Avery Payne
źródło
2
Powinien wiki, Metinks
Squillman
Zrobię to w odpowiednim czasie. ;) Prawdę mówiąc, stworzyłem kilka wiki typu „czysta gra” i jeśli nie będzie choć odrobiny głosów, nikt nie przyjdzie . Poważnie, działa to w ten sposób za każdym razem, bezbłędnie. Ludzie nie będą umieszczać wpisów na wiki, chyba że jest to absurdalnie niezwiązane z pracą (tj. Ulubiona kreskówka sysadmin, itp.)
Avery Payne
2
Zauważyłem „nikt nie komentuje na wiki”. To takie dziwne. Ludzie grają w błąd serwera, jakby to była gra wideo. Głupi.
Matt Simmons,
1
Zauważyłem to również, ale (IMHO) nie oznacza, że ​​powinniśmy zachęcać do robienia dziwek ... Daj mi znać, kiedy przejmiesz to na meta, oni tam mają całkiem niezłe płomienie (zaufaj mi) , dostaniesz) :)
squillman
1
Nie chcę tego mówić ... ale myślę, że powinien istnieć jakiś kompromis. Moja ogólna obserwacja była taka, że ​​jeśli osiągniesz pewną „masę krytyczną”, możesz przejść na wiki, a pytanie będzie nadal zbierać odpowiedzi. Zastanawiam się więc, czy jeśli ustawisz flagę wiki, może powinien poczekać na wystarczającą liczbę odpowiedzi, aby rozpocząć pytanie, a może po ustalonym czasie - powiedzmy 3 godziny - automatycznie włączy się w wiki. Jest to dobry kompromis, równowaga między nagradzaniem ludzi, którzy są gotowi rozpocząć proces, a uczynieniem go wysiłkiem społeczności opartym na wkładzie. Pomysły? Komentarze?
Avery Payne

Odpowiedzi:

20

Osobistym faworytem zawsze był „Przypadek 500-milowego maila”

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

Spojler

$ units
2411 units, 71 prefixes, 33 nonlinear units

You have: 3 millilightseconds
You want: miles
    * 558.84719
    / 0.0017893979
uszkodzony serwer
źródło
1
Wow, opublikowałem trzy odpowiedzi, ale ta musi być zwycięzcą!
HTTP500
+1 Tak, uwielbiam ten. Tylko że źle przeliterowałeś (haha, jk)
squillman
@squillman Całe dorastanie Tolkiena ;-)
wadliwy serwer
@squilman - nie, nie zrobił tego. To jest poprawna pisownia angielska.
Alnitak,
@squilman Zależy, jeśli jesteś Kanadyjczykiem. (kolor, ulubiony, czek itp.) ;-)
KPWINC
11

Dla mnie najbardziej niesamowitą rzeczą w tradycji UNIX jest to, że UNIX został napisany w zasadzie przez jednego faceta - Kena Thompsona podczas pracy w Bell Labs. Istnieje fascynujące konto na ten temat, które można znaleźć tutaj: http://www.bell-labs.com/history/unix/

Niektóre cytaty są po prostu bezcenne:

„Każdemu tygodniu przeznaczyłem system operacyjny, powłokę, edytor i asembler, aby się odtworzyć ...”, wyjaśnił Thompson.

Rury:

Kolejną innowacją UNIXa było opracowanie potoków, które dały programistom możliwość łączenia szeregu procesów dla określonego wyniku.

To nie było łatwe. „Bardzo łatwo jest powiedzieć„ kot w grep w ... ”lub„ kto w kot w grep ”- wyjaśnił McIlroy. „Ale są te wszystkie parametry boczne, które mają te polecenia; po prostu nie mają argumentów wejściowych i wyjściowych, ale mają wszystkie te opcje”.

Chociaż przeszkadzał, McIlroy nie porzucił tego pomysłu. „I przez okres od 1970 do 1972 roku od czasu do czasu mówiłem:„ Co powiesz na zrobienie czegoś takiego? ”, I przedstawiałem inną propozycję, inną propozycję, inną propozycję. I pewnego dnia wpadłem na pomysł ze składnią powłoki, która była zgodna z potokowaniem, a Ken powiedział: „Zrobię to!”.

„Był zmęczony słyszeniem tego” - wyjaśnił McIlroy. „Nie zrobił dokładnie tego, co zaproponowałem dla wywołania systemu rur. Wynalazł nieco lepszy, który ostatecznie zmienił się ponownie na to, co mamy dzisiaj. Użył mojej niezdarnej składni.”

„Thompson zauważył, że argumenty dotyczące plików nie będą pasować do tego schematu rzeczy, i wszedł i zmienił wszystkie te programy tej samej nocy. Nie wiem jak… i następnego ranka mieliśmy orgię jednej -linery. ”

Włożył rury do systemu UNIX, umieścił ten zapis w skorupie, w ciągu jednej nocy ”, powiedział zdziwiony McElroy.

Choć technicznie rzecz biorąc fajne było to osiągnięcie, Thompson stworzył fajki, ale włożył także coś innego do UNIX - filozofię.

Jak to opisał McIlroy, „filozofia, którą wszyscy zaczęli przedstawiać, brzmiała:„ Pisz programy, które robią jedną rzecz i robią to dobrze. Pisz programy do współpracy. Pisz programy obsługujące strumienie tekstowe, ponieważ jest to interfejs uniwersalny ””.

HTTP500
źródło
7
Najlepsza. Wszystko co noc. Zawsze.
Matt Simmons,
8

tar nigdy nie wychodzi z błędem. NIGDY. Strzec się.

Źródło: Podręcznik UNIX-HATERS, strona 31 ( http://simson.net/ref/ugh.pdf ) Przepraszamy, brak wersji HTML.

Ta książka jest wypełniona innymi legendami i w większości wciąż ma zastosowanie. Przez lata korzystania z Linuksa natknąłem się na wiele z tych problemów ... po prostu nie na te, które wymagają rmowania całego mojego dysku, na szczęście. To dla mnie zadziwiające, że tak duża część tej książki jest wciąż dokładna, mimo że została napisana ponad 15 lat temu.

A teraz moja własna horror tar, prawie dokładna replika UNIX-HATERS. Ten sam błąd, 14 lat później!

Chcę, aby moja sieć bezprzewodowa działała na moim eeepc, dla którego muszę pobrać sterownik, skompilować go i zainstalować. Pobieram wszystko, czego potrzebuję i wyruszam do biblioteki do pracy. W połowie zdaję sobie sprawę, że tak, potrzebuję do czegoś Internetu, więc idę zainstalować.

tar -cvf somewirelessdriver.tar ./importantcompilerfiles

O kurcze. Czy właśnie wpisałem -cvf zamiast -xvf?

Tak.

Czy tar po prostu cicho utworzył plik tar losowego śmiecia, nadpisując mój plik użyteczny?

Tak. Świetny. Myślę, że zrobię to bez dostępu do Internetu. Dobrze, że to nie był plik wielogigabajtowy ... Och, czekaj, to zdarzyło się tydzień wcześniej.

Szczerze mówiąc, o co chodzi z tajemniczymi argumentami wiersza poleceń i programami dla systemu Linux? Czy nie mogą po prostu automatycznie wykonać podstawowej operacji po wywołaniu pliku z odpowiednim rozszerzeniem. Dlaczego w ogniu muszę powiedzieć tarowi, co zrobić z ARCHIWUM? Czy wydaje się, że mógłbym chcieć ponownie Zarchiwizować?

Myślę, że wreszcie rozumiem, co to jest „smoła”. TO MIEJSCE, KTÓRE PLIKI MOGĄ UMIERAĆ.

SilentW
źródło
1
Łał. Po prostu ... wow. Czy jest jakaś szansa na ponowne edytowanie z linkiem do tego?
Avery Payne,
4
Daj spokój, błąd oznaczałby, że smoła nie działa. Powinieneś tylko powiedzieć prawdę ... smoła nigdy nie zawodzi ;-)
Matt Simmons,
Dodano link, a także więcej komentarzy. Na marginesie, faktycznie kupiłem mój MSI Wind, wydając dodatkowe 350 $, po prostu po to, żeby nie musiałem używać Linuksa, jeśli nie miałem na to ochoty. Ta historia jest jednym z WIELU powodów.
SilentW,
Czy jest coś, co obecnie robisz, aby uniknąć tego rodzaju błędów tar? Jeśli tak, czy masz jakieś odpowiedzi na stackoverflow.com/questions/1122977/…
Andrew Grimm,
7

Logowanie za pomocą wszystkich wielkich liter

http://utcc.utoronto.ca/~cks/space/blog/unix/UnixFossilizationExample

hrm. Obawiam się, że mogłem źle zrozumieć pytanie :-)

Ale zostawiam link, ponieważ uważam to za interesujące!

Matt Simmons
źródło
Właściwie odpowiedź jest natychmiastowa; celem tego pytania było zebranie ezoteryki (podobnie jak w przypadku rodzeństwa) z doświadczeń różnych ludzi.
Avery Payne,
6

Oryginalny symbol rura była ^

Pierwotny klucz usuwania to #

Pierwotny klucz „zabicia” (usuń wszystko w linii) to @

Jeśli kiedykolwiek zalogujesz się do starszego systemu i nie możesz wpisać komentarza lub adresu e-mail, stty zostanie twoim przyjacielem.

Jest to przykładowa sesja logowania siódmej edycji, w której osoba wykonująca dziennik była wystarczająco łaskawa, aby uruchomić stty. Ponadto, jak wspomniano tutaj , napisano: „Jak zidentyfikować tradycyjną powłokę Bourne'a? 1 Proste sprawdzenie często nieudokumentowanej, ale charakterystycznej cechy: Możesz użyć circumflex ^ (daszek) jako zamiennika | (potoku). "

Chris
źródło
1
Ciekawy. Jakieś źródło tego, do dalszego czytania?
sleske,
2

Jednym z tych, których prawdopodobnie wielu początkujących w Linuksie nie wie, jest to, że twórca Linuksa (Linus Torvalds) pożyczył dużo od systemu operacyjnego MINIX (narzędzie edukacyjne) stworzonego przez profesora Andrew Tanenbauma: http://en.wikipedia.org /wiki/Andrew_S._Tanenbaum#MINIX .

Linus i prof. Tanenbaum dyskutowali także szczegółowo o zaletach / pragmatyzmie monolitycznego jądra (Linux) w porównaniu do mikrojądra (MINIX, Solaris). Debata była publiczna i można ją znaleźć tutaj: http://oreilly.com/catalog/opensources/book/appa.html

Twoje zdrowie

HTTP500
źródło
1
Debata Torvalds-Tanenbaum to prawdziwy klasyk :-).
sleske
2

Programowanie w Art of Unix jest dobrą lekturą dla wszystkich zainteresowanych komputerami, nie tylko zainteresowanych Unixem. Tak, niektóre z nich są przestarzałe, ale nadal są niezbędną lekturą.

maź
źródło
2

Wszystko jest plikiem lub może być traktowane jako takie ... z wyjątkiem cholernego użytkownika.

Błąd magistrali oznacza, że ​​próbujesz wykonać dane, które zostały zapisane po stronie danych podzielonej magistrali danych / programu PDP / 11.

Unix jest jedynym systemem operacyjnym, który od samego początku ma kalendarze i zegary, tylko dlatego, że astronom był jednym z twórców. (Dodatkowy kredyt na komentarz: nazwij tego pisarza. Dodatkowy kredyt: wymień zwycięzcę medalu olimpijskiego w zespole UNIX.)

Pole GCOS w / etc / passwd zostało nazwane na cześć systemu operacyjnego GECOS i zostało tam umieszczone tylko dlatego, że używali komputera mainframe GECOS jako serwera druku do oryginalnego systemu Unix mini i potrzebowało danych do zaakceptowania zadania drukowania.

kmarsh
źródło
1
i tworzenie sieci. Kto wie, co palili, tworząc model BSD sieci w unixie, ale na pewno nie jest unixy.
Chris
AT&T zaimplementowało Strumienie, aby być bardziej UNIXowym interfejsem sieciowym API i nałożyło na niego warstwę Socket API, aby zapewnić zgodność. Następnie BSD (chyba 4.4) dodał Strumienie jako API warstwy zgodności, które nazywało się Gniazdami.
kmarsh
1

Niezbyt zabawna rzecz, którą zrobiłem ze smołą, i smoła, której uruchomienie zajęło tydzień:

  1. tar zcf foo.tar.gz ...
    • Jakiś czas w ciągu następnego dnia sesja ekranu była na moim ekranie: <UP>
    • Około dzień później: <enter>
    • Tar zakończony, zgadnij, co klucze trzymał w buforze i wszedł do powłoki sekundę po zakończeniu tarowania ...

Głosowanie na ich komentarz dla pierwszej osoby, która wyjaśni, co się stało :-) Morał tej historii, umieszczaj rzeczy w tle sesji ekranowej.

Mimo to nadal kocham * NIX. Nie mam nic przeciwko, kiedy wszystko się popsuło, bo to była moja wina.

Kyle Brandt
źródło
Więcej odpowiedzi na odpowiedź SilentW niż samo pytanie :-)
Kyle Brandt,