Unix Legendry (e outros * nix também)

12

Este é o gêmeo desta questão .

A resposta mais obscura / votada receberá o voto de resposta!

A maioria dos sistemas Unix e Unix-like tem uma "história tradicional" que é passada a cada geração, para que os recém-chegados possam ver e entender algumas das partes mais esotéricas do sistema. Para quais administradores de longa data * nix por aí contribuem com o "Legendry" do "UNIX", no que diz respeito ao conhecimento esotérico ao qual novos administradores devem ser expostos?

Avery Payne
fonte
2
Deve wiki isso, methinks
squillman
Eu irei, em tempo útil. ;) Verdade seja dita, eu fiz várias wikis de jogo puro, e a menos que haja uma pitada de votos a serem ganhos, ninguém virá . Sério, funciona dessa maneira todas as vezes, sem falhas. As pessoas não vão colocar em entradas para um wiki a menos que seja absurdamente não-relacionado ao trabalho (ou seja, desenho animado favorito sysadmin, etc.)
Avery Payne
2
Percebi a coisa "ninguém comenta nas wikis". Isso é tão bizarro. As pessoas jogam serverfault como se fosse um videogame. Idiota.
22630 Matt Simmons
1
Eu notei isso também, mas (IMHO) não significa que devemos encorajar a rep-prostituição ... Deixe-me saber quando você passar para a meta, eles aparecerão com algumas chamas muito boas por lá (confie em mim , você obtê-lo) :)
squillman 13/08/09
1
Detesto dizer ... mas acho que deve haver algum tipo de compromisso. Minha observação geral foi que, se você atingir uma certa "massa crítica", poderá mudar para um wiki e a pergunta continuará a reunir respostas. Então, eu estou me perguntando, se você definir o sinalizador do wiki, talvez ele deva esperar respostas suficientes para iniciar a pergunta, e talvez após um tempo predefinido - digamos 3 horas - ele seja ativado automaticamente no wiki. Esse é um bom compromisso, um equilíbrio entre recompensar as pessoas que estão dispostas a iniciar o processo e torná-lo um esforço da comunidade com base na contribuição. Ideias? Comentários?
Avery Payne

Respostas:

20

Um favorito pessoal sempre foi "O caso do e-mail de 500 milhas"

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
servidor defeituoso
fonte
1
Uau, eu postei três respostas, mas essa deve ser a vencedora!
HTTP500
+1 Sim, eu amo esse. Exceto que você digitado errado favorito (haha, jk)
squillman
squillman @ Tudo o que Tolkien crescendo ;-)
faultyserver
@ Squilman - não, ele não fez. Essa é a ortografia correta em inglês.
Alnitak
@squilman Depende se você é canadense. (cor, favorito, cheque, etc.) ;-)
KPWINC
11

Para mim, a coisa mais surpreendente sobre a tradição UNIX é que o UNIX foi basicamente escrito por um cara - Ken Thompson enquanto estava no Bell Labs. Há um relato fascinante disso que pode ser encontrado aqui: http://www.bell-labs.com/history/unix/

Algumas citações não têm preço:

"Aloquei uma semana cada para o sistema operacional, o shell, o editor e o montador para se reproduzir ...", explicou Thompson.

Tubos:

Outra inovação do UNIX foi o desenvolvimento de pipes, que deu aos programadores a capacidade de encadear vários processos para uma saída específica.

Não foi fácil. "É muito fácil dizer 'gato em grep em ...' ou 'quem em gato em grep'", explicou McIlroy. "Mas existem todos esses parâmetros secundários que esses comandos possuem; eles simplesmente não têm argumentos de entrada e saída, mas eles têm todas essas opções".

Embora frustrado, McIlroy não abandonou a idéia. "E durante um período de 1970 a 1972, eu dizia de vez em quando: 'Que tal fazer algo assim?', E eu apresentava outra proposta, outra proposta, outra proposta. E um dia eu vim com uma sintaxe para o shell que acompanha a tubulação e Ken disse: 'Eu vou fazer isso!' "

"Ele estava cansado de ouvir essas coisas", explicou McIlroy. "Ele não fez exatamente o que eu havia proposto para a chamada do sistema de tubulação. Ele inventou uma ligeiramente melhor que finalmente mudou mais uma vez para o que temos hoje. Ele usou minha sintaxe desajeitada".

"Thompson viu que os argumentos dos arquivos não se encaixariam nesse esquema de coisas e ele entrou e mudou todos esses programas na mesma noite. Não sei como ... e na manhã seguinte tivemos essa orgia de um forros. "

" Ele colocou tubos no UNIX, colocou essa notação em concha, tudo em uma noite ", disse McElroy, maravilhado.

Por mais técnico que tenha sido a conquista, quando Thompson criou pipes, ele também colocou outra coisa no UNIX - uma filosofia.

Como McIlroy descreveu, "a filosofia que todos começaram a apresentar era 'Escreva programas que façam uma coisa e façam bem. Escreva programas para trabalhar juntos. Escreva programas que lidem com fluxos de texto, porque essa é uma interface universal'".

HTTP500
fonte
7
Melhor. Noitada. Sempre.
Matt Simmons
8

O tar nunca sai com um erro. NUNCA. Cuidado.

Fonte: Manual do UNIX-HATERS, página 31 ( http://simson.net/ref/ugh.pdf ) Desculpe, não há versão HTML.

Este livro está repleto de outras lendas, e ainda é aplicável. Nos meus anos de uso do Linux, eu encontrei muitas dessas dicas ... apenas nenhuma das que envolvem o gerenciamento de toda a minha unidade, graças a Deus. É impressionante para mim que grande parte deste livro ainda seja precisa, mesmo que tenha sido escrita há mais de 15 anos.

E agora minha própria história de horror de alcatrão, quase uma réplica exata da história de UNIX-HATERS. Mesmo bug, 14 anos depois!

Quero que minha rede sem fio funcione no meu eeepc, para o qual devo baixar um driver, compilá-lo e instalá-lo. Faço o download de tudo o que preciso e vou para a biblioteca para trabalhar. No meio, percebo que sim, preciso da Internet para alguma coisa, então vou instalar.

tar -cvf somewirelessdriver.tar ./importantcompilerfiles

Oh droga. Acabei de digitar -cvf em vez de -xvf?

Sim.

O tar criou silenciosamente um arquivo tar de lixo aleatório, substituindo o meu arquivo utilizável?

Sim. Ótimo. Acho que vou ficar sem acesso à internet. Ainda bem que não era um arquivo com vários gigabytes ... Oh, espere, isso aconteceu uma semana antes.

Honestamente, o que diabos há com argumentos enigmáticos da linha de comando e programas linux? Eles não podem simplesmente executar a operação básica automaticamente quando invocados em um arquivo com a extensão apropriada. Por que, nas chamas, preciso dizer ao tar o que fazer com um ARQUIVO? Será que eu gostaria de arquivá-lo novamente?

Acho que finalmente entendi o que é um 'poço de alcatrão' agora. É UM LUGAR QUE OS ARQUIVOS VÃO MORRER.

SilentW
fonte
1
Uau. Apenas Uau. Alguma chance de você reeditar com um link?
Avery Payne
4
Vamos lá, um erro significaria que o tar falhou. Você deve apenas afirmar a verdade ... tar nunca falha ;-)
Matt Simmons
Link adicionado, além de mais comentários. Como observação, comprei meu MSI Wind, gastando 350 dólares adicionais, simplesmente para não precisar usar o Linux se não quisesse. Esta história é uma das MUITAS razões para isso.
SilentW
Existe alguma coisa que você faz hoje em dia para evitar esse tipo de erro de alcatrão? Em caso afirmativo, você tem alguma resposta para stackoverflow.com/questions/1122977/…
Andrew Grimm
7

Fazendo login com todas as maiúsculas

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

hrm. Receio ter entendido mal a pergunta :-)

Mas estou deixando o link, porque acho interessante!

Matt Simmons
fonte
Na verdade, a resposta é imediata; a intenção da pergunta era reunir esotérica (bem como a pergunta dos irmãos) das experiências de várias pessoas.
Avery Payne
6

O símbolo do tubo original era ^

A chave de exclusão original era #

A tecla "matar" original (apagar tudo na linha) era @

Se você entrar em um sistema antigo e não conseguir digitar um comentário ou endereço de e-mail, stty se tornará seu amigo.

Este é um exemplo de sessão de login da 7ª edição, em que a pessoa que fez o log foi gentil o suficiente para executar stty. Além disso, como mencionado aqui, ele diz "Como identificar um shell Bourne tradicional? 1 Uma verificação simples para um recurso geralmente não documentado, mas característico: Você pode usar o circunflexo ^ (circunflexo) como substituto de | (tubo). "

chris
fonte
1
Interessante. Alguma fonte para isso, para leitura adicional?
sleske
2

Um que provavelmente muitos recém-chegados ao Linux não sabem é que o criador do Linux (Linus Torvalds) emprestou pesadamente o MINIX Operating System (uma ferramenta educacional) criada pelo professor Andrew Tanenbaum: http://en.wikipedia.org /wiki/Andrew_S._Tanenbaum#MINIX .

Linus e o Prof. Tanenbaum também debateram longamente os méritos / pragmatismo de um núcleo monolítico (Linux) versus um microkernel (MINIX, Solaris). O debate foi público e pode ser encontrado aqui: http://oreilly.com/catalog/opensources/book/appa.html

Felicidades

HTTP500
fonte
1
O debate Torvalds-Tanenbaum é um verdadeiro clássico :-).
sleske
2

A Arte da Programação Unix é uma boa leitura para qualquer pessoa interessada em computação, não apenas para os interessados ​​em Unix. Sim, parte disso é datada, mas ainda é uma leitura essencial.

goo
fonte
2

Tudo é um arquivo ou pode ser tratado como tal ... exceto o maldito usuário.

Erro de barramento significa que você está tentando executar dados armazenados no lado dos dados do barramento de dados / programa dividido do PDP / 11.

O Unix é o único sistema operacional que recebeu calendários e relógios desde o início, apenas porque um astrônomo foi um dos criadores. (Crédito extra para comentários: nomeie esse escritor. Crédito extra extra: nomeie o vencedor da medalha olímpica na equipe UNIX.)

O campo GCOS em / etc / passwd recebeu o nome do sistema operacional GECOS e foi colocado lá apenas porque eles estavam usando um mainframe GECOS como servidor de impressão para o mini Unix original e precisavam dos dados para aceitar um trabalho de impressão.

kmarsh
fonte
1
e networking. Quem sabe o que eles estavam fumando ao criar o modelo BSD de rede em unix, mas com certeza não é unixy.
chris
A AT&T implementou o Streams para ser uma API de rede mais UNIXy e colocou uma camada de API Socket sobre ela para compatibilidade. Então o BSD (4.4 eu acho) adicionou o Streams como uma API da camada de compatibilidade que chamava Sockets.
kmarsh
1

Uma coisa não tão engraçada que fiz com o alcatrão uma vez e que levou uma semana para ser executada:

  1. tar zcf foo.tar.gz ...
    • Em algum momento do dia seguinte, a sessão de tela apareceu na minha tela: <UP>
    • Um dia depois: <enter>
    • O alcatrão terminou, adivinhe quais chaves foram mantidas no buffer e entrou no shell no segundo depois que o alcatrão terminou ...

Um voto positivo em seu comentário para a primeira pessoa a explicar o que aconteceu :-) A moral da história, publique coisas no fundo da sessão da tela.

Dito isto, eu ainda amo * NIX. Não me importo quando as coisas estão bagunçadas porque foi minha culpa.

Kyle Brandt
fonte
Mais uma resposta a resposta de SilentW do que a própria questão :-)
Kyle Brandt