Se o Linux é apenas um kernel, como foram usadas as primeiras versões (sem distribuição)?

112

O Linux é apenas um kernel e, se os usuários quiserem usá-lo, eles precisam de uma distribuição completa. Dito isto, como foram usadas as primeiras versões do Linux quando não havia distribuições Linux?

noop
fonte
66
A premissa da sua pergunta é falha. Você não precisa de uma distribuição para usar o Linux. Você precisa do kernel do Linux e de algum código da terra do usuário. É isso aí. Uma "distribuição" é simplesmente o que chamamos de quando alguém os reúne para você, em vez de você mesmo fazer isso.
Jörg W Mittag
9
Na realidade, no início, havia mais um problema de galinha e ovo, pela falta de ferramentas terrestres específicas decentes para os usuários. Depois que o cara por trás do MCC Interim Linux quebrou esse ovo e escreveu várias ferramentas, pelo menos fdisk, a porta estava aberta para que outros apresentassem sua própria configuração do Linux com mais facilidade.
Rui F Ribeiro

Respostas:

162

Nos estágios iniciais do Linux, Linus Torvalds lançou a fonte do kernel do Linux em um estado alfa para sinalizar para outras pessoas que trabalhavam em direção a um novo kernel do tipo Unix que estava em desenvolvimento. Naquela época, como @RalfFriedi afirmou, o kernel do Linux foi compilado em cruz no Minix.

Quanto ao software utilizável, Linus Torvalds também portou utilitários para distribuir junto com o kernel Linux, para que outros o testassem. Esses programas foram principalmente bashe gcc, conforme descrito pela História do LINUX de Linus Torvalds . De acordo com a postagem da Usenet :

De: [email protected] (Linus Benedict Torvalds)  
Grupos de notícias: comp.os.minix
Assunto: O que você mais gostaria de ver no minix?
Resumo: pequena pesquisa para meu novo sistema operacional  
ID da mensagem: <[email protected]>
Data: 25 de agosto de 91 20:57:08 GMT
Organização: Universidade de Helsinque

Olá pessoal, usando o minix -

Estou fazendo um sistema operacional (gratuito) (apenas um hobby, não será grande e profissional como o GNU) para 386 (486) clones AT. Isso está em produção desde abril e está começando a ficar pronto. Gostaria de receber algum feedback sobre coisas que as pessoas gostam / não gostam no minix, pois meu sistema operacional se assemelha um pouco
(mesmo layout físico do sistema de arquivos (devido a razões práticas) entre outras coisas).

Atualmente, eu portado bash (1.08) e gcc (1.40), e as coisas parecem funcionar. Isso implica que vou conseguir algo prático dentro de alguns meses e gostaria de saber quais recursos a maioria das pessoas gostaria. Todas as sugestões são bem-vindas, mas não prometo que as implementarei :-)

A Linus distribuiu o kernel e os principais programas utilitários em um formato de disquete para os usuários experimentarem e possivelmente contribuírem para ele.

Depois, havia os disquetes de raiz de inicialização do HJ Lu . Se isso pudesse ser chamado de distribuição, ganharia a fama de ser a primeira distribuição capaz de ser instalada no disco rígido.

Essas eram duas imagens de disquete de 5¼ "contendo o kernel do Linux e as ferramentas mínimas necessárias para iniciar. Tão mínimas eram essas ferramentas que para poder inicializar a partir de um disco rígido exigiam a edição de seu registro mestre de inicialização com um editor hexadecimal.

inicialização

Eventualmente, o número de utilitários cresceu mais que o tamanho máximo de um disquete.

O MCC Interim Linux foi a primeira distribuição Linux a ser usada por pessoas com habilidades um pouco menos técnicas, introduzindo uma instalação automatizada e novos utilitários, como fdisk.

O MCC Interim Linux foi uma distribuição Linux lançada pela primeira vez em fevereiro de 1992 por Owen Le Blanc do Manchester Computing Center (MCC), parte da Universidade de Manchester.

A primeira versão do MCC Interim Linux foi baseada no Linux 0.12 e fez uso do código ramdisk de Theodore Ts'o para copiar uma pequena imagem raiz na memória, liberando a unidade de disquete para disquetes de utilitários adicionais. [2]

Ele também afirmou que suas distribuições eram "experimentos não oficiais", descrevendo os objetivos de seus lançamentos como sendo:

  • Para fornecer um procedimento de instalação simples.
  • Para fornecer um procedimento de instalação mais completo.
  • Para fornecer um serviço de backup / recuperação.
  • Para fazer backup de seu (então) sistema atual.
  • Para compilar, vincular e testar todos os arquivos binários nas versões atuais do kernel, gcc e bibliotecas.
  • Fornecer um sistema base estável, que possa ser instalado em pouco tempo e ao qual outro software possa ser adicionado com relativamente pouco esforço.

Após o precursor da MCC, o SLS foi a primeira distribuição a oferecer o X Window System em maio de 1992. Notavelmente, o concorrente do SLS, o mítico Yggdrasil , estreou em dezembro de 1992.

yggdrasil

Outros grandes distribuidores os seguiram como os conhecemos hoje, principalmente o Slackware em julho de 1993 (baseado no SLS) e o Debian em dezembro de 1993 até a primeira versão oficial da versão 1.1 em dezembro de 1995.

Créditos de imagem:
* Imagem de disquetes de inicialização / raiz de: https://www.maketecheasier.com/
* imagem de disquete de yggdrasil de: https://yggdrasilblog.wordpress.com/

Rui F Ribeiro
fonte
4
Seria bom vincular essas mensagens de email da fonte original mais básica, supondo que elas estejam arquivadas online em algum lugar.
Wildcard
2
@Wildcard Encontrou a mensagem de email em um site que afirma ser uma página de Linus Torvald.
Rui F Ribeiro
2
@slm Na verdade, desde tempos antigos, mudei para casa muitas vezes, e o armazenamento na casa dos meus pais é limitado. Eu costumava ter 386BSD / FreeBSD disquetes iniciais, e um CD PCworld de 93 a 95 (talvez 95) com todo o conjunto de disquetes do Linux (não me lembro da distribuição). Eu também costumava ter o conjunto completo de discos de instalação do SCO V com uma chave válida que eu executei no meu 486. Eu tinha especificações de hw muito avançadas para a época, trabalhei para um grande fornecedor de computadores.
Rui F Ribeiro
28
"(apenas um hobby, não será grande e profissional como o gnu)" Hah.
9683 George F.
9
just a hobby, won't be big and professional like gnuoh boy, você estava errado
Alvaro
17

No meu caso (c.1994), o Linux foi criado como imagens adequadas para disquetes de 3,5 "(1,44 MB), provavelmente o resultado das imagens de 5 1/4" mencionadas acima, e cada uma possui um conjunto específico de drivers compilados ( rede, VGA, etc.). Então você tinha que saber o que precisava e esperar que tivesse o hardware adequado.

Depois de inicializar e poder conectar-se à LAN ou dial-up via modem, você foi e encontrou o software que precisava (FTP, Gopher etc.) - isso foi no início da "web" e os mecanismos de pesquisa não realmente existe ainda, então você tinha que saber para onde ir ou a quem perguntar) e construiu você mesmo.

Fiquei em êxtase quando consegui inicializar meu 486DX e discar para minha rede universitária (56k!) E montar um compartilhamento AFS na máquina em casa ... esses eram os dias. ;)

Xavier
fonte
2
Supondo que você fez tudo isso em 1994, provavelmente foi mais como 28.8k ... bons tempos!
GuitarPicker 08/08/19
Em 1994, você não precisou fazer malabarismos com disquetes. Comecei com o Linux no mesmo ano, mas o Slackware já tinha distribuições completas em CD.
Gábor
Você teve que comprar um CD de uma revista. Na época, os gravadores de CD eram caros. Quanto RH, eu me lembro de baixar todos os arquivos via FTP ao longo de um fim de semana em uma conexão de 256 Kbps compartilhada fantástica, a construção de uma imagem de CD, e depois gravar o CD no trabalho, talvez em torno de 96.
Rui F Ribeiro
@GuitarPicker, isso pode ter sido otimista. Muitos de nós ainda estávamos com 1200.2400 e, em 1992, o Linux geralmente caiu no cano de uma instituição acadêmica. Como Linus, nosso acesso à Internet era discado para uma universidade. Tivemos Usenet e Gopher, mas não WWW gráfico (mosaico). Em 1992, nem todos tinham 386 também. Eu tinha uma caixa Olivetti M24 (AT&T) 8086 com uma tela monocromática que executava o Windows 1 (não muito bem). Minix era um hobby ou atividade acadêmica, e não livre. O Linux era considerado um porco da largura de banda, mas havia aumentos regulares de capacidade. O Linux era uma coisa importante no Campus para programadores.
Mckenzm
12

A versão curta

No momento em que Linus iniciou seu kernel, o projeto Gnu tinha um sistema operacional em funcionamento, exceto um kernel em funcionamento. Então, quando as pessoas olharam em volta, encontraram todas as ferramentas necessárias: gcc (e amigo: binutils), bash (e amigos gnu-utils), emacs,…

Eles então construíram seu próprio sistema, a partir das partes.

É daí que vem a piada: "Se o MS-Windows fosse um avião, ele subiria a 10 mil pés e explodiria matando todos os lados, mas pelo menos você não precisa construir sua própria aeronave antes de partir".

ctrl-alt-delor
fonte
8
E é por isso que a maioria das distribuições é chamada de distribuição GNU / Linux , se você seguir o GNU e o FSF.
Nemo
Não. O GNU não tinha uma boa biblioteca libc. Nos velhos tempos, o Linux usava diferentes bibliotecas libc. Apenas relativamente tarde, tivemos uma boa biblioteca glibc. No início, as ferramentas minix eram usadas (parcialmente produzidas pelo GNU).
Giacomo Catenazzi 13/08/18
@GiacomoCatenazzi true sobre libc. Mas tinha a maioria das ferramentas terrestres do usuário. Lembro-me em 1992 de compilar ferramentas GNU para rodar no Sun Solaris. (Eu não comecei a usar o Linux até a transição para a glibc.) Essas ferramentas já existiam há algum tempo (antes do Linux).
Ctrl-alt-delor 14/08/19
Sim. Eu também comecei com o Solaris, preferindo as ferramentas GNU do que as Sun. A partir daí, eu queria mais, então fui para o Linux (e minha primeira distribuição não tinha nenhum sistema X. Os clientes Red Hat podiam usar um X comercial. Só mais tarde tivemos o XFree86. A transição para o verdadeiro sistema livre (e principalmente o GNU) levou muitos anos (kernel foi apenas um passo, mas o mais "democrático" passo [de computador + unix básica foram finalmente para todos (ou melhor, para os estudantes)).
Giacomo Catenazzi
12

Em seu livro " Just For Fun ", Linus Torvalds mencionou que o kernel do Linux era inicialmente um emulador de terminal simples para conectar-se à máquina remota Unix através de um modem:

Por fim, fui capaz de alterar os dois threads, o AAAAAAAA e o BBBBBBB, para que um lesse do modem e escrevesse na tela, e o outro lesse do teclado e escrevesse no modem. Eu tinha meu próprio programa de emulação de terminal.

Quando eu queria ler notícias, colocava meu disquete e reiniciava a máquina e lia as notícias do computador da universidade usando o meu programa. Se eu quisesse fazer alterações para melhorar o pacote de emulação de terminal, inicializaria no Minix e o usaria para programar ...

E porque eu queria salvar arquivos no meu sistema de arquivos Minix - e porque o sistema de arquivos Minix estava bem documentado de qualquer maneira - tornei meu sistema de arquivos compatível com o sistema de arquivos Minix ...

Quando eu fiz isso, estava claro que o projeto estava a caminho de se tornar um sistema operacional. Então, mudei o meu pensamento para ele como um emulador de terminal para o como um sistema operacional.

bodqhrohro
fonte
10

Editado: Removida a embaraçosa falta de entendimento de como os kernels funcionam e deixou a parte importante.

A área de usuário do GNU existia antes do kernel do Linux.

https://en.wikipedia.org/wiki/GNU

https://en.wikipedia.org/wiki/Linux_kernel

Peter MacDonald é amplamente reconhecido como tendo criado a primeira distribuição GNU / Linux 'utilizável'.

https://en.wikipedia.org/wiki/Peter_MacDonald_(computer_programmer)

https://en.wikipedia.org/wiki/Softlanding_Linux_System

Pela memória de algumas discussões que tive com ele: Peter estava trabalhando como administrador de sistemas Unix para o governo e indo para a Universidade de Victoria para um mestrado. Peter queria uma maneira de trabalhar em casa, mas os custos de licença de desktop Unix eram proibitivos. Ele já estava familiarizado com as ferramentas da terra do usuário GNU, então, quando viu a mensagem de Linus Torvalds na rede da Universidade, aproveitou ao máximo e conectou as ferramentas GNU ao novo kernel. Realmente, o problema inicial foi o inverso da sua pergunta: a terra do usuário já existia e tudo o que era necessário era um kernel.

Alguns outros petiscos históricos:

  • Peter não distribuiu o SLS Linux e não cobrou uma taxa pelo software. O SLS foi distribuído por sua esposa Colleen e a taxa era pelo processo caro e demorado de gravar CDs para serem enviados pelo correio.
  • Peter fez várias contribuições enormes ao kernel que nunca foram reconhecidas, incluindo carregamento dinâmico de módulos e gerenciamento aprimorado de memória.
  • O software era 'buggy' porque ele estava trabalhando, indo para a escola, criando dois filhos e tentando manter os usuários do Linux felizes. Todos sabemos como é fácil manter os usuários do Linux felizes ...
  • Peter não se lembra do 'argumento' / 'desacordo' sobre os scripts do instalador que outros alegaram ter causado uma falha que iniciou o Slackware e o Debian.
Dinsdale
fonte
2
Se você pode carregar um kernel na memória e executar a imagem, ele entrará em pânico porque não pode executar / sbin / init. O init já é uma ferramenta da terra do usuário. Qualquer programa em C para usar a API do kernel é um programa da terra do usuário.
precisa saber é o seguinte
D'oh! Bom ponto. Eu estava tentando dizer que as ferramentas com as quais os usuários geralmente interagem não são necessárias para a execução do kernel. Vou repensar e atualizar ...
Dinsdale
Embora esteja bastante bem documentado, Peter não foi o primeiro nem o segundo a distribuir os utilitários terrestres do kernel + usuário, nós, como a comunidade Linux, nos empenhamos muito em transformar as distribuições Linux em algo semelhante ao que conhecemos hoje.
Rui F Ribeiro
2

O Linux foi iniciado pela primeira vez como um substituto aprimorado para o Minix e para entender a programação em modo protegido em um i386. O Minix veio com o código-fonte e, na época, havia os utilitários GNU userland e BSD userland. Ambos estavam disponíveis com a fonte. O Linux tentou ser compatível com POSIX, portanto, portar não era tão difícil. Uma das primeiras etapas foi executar o bash no Linux. Você pode considerar os primeiros dias do Linux como compilação cruzada, o kernel teve que ser compilado em outro sistema.

RalfFriedl
fonte
2
O kernel estava sendo compilado de forma cruzada no Minix.
Rui F Ribeiro
17
Dizer que o Linux foi "iniciado como uma extensão do Minix" é enganador. Sim, é verdade que Linus estava usando o Minix naquela época, mas o Linux não compartilha uma única linha de código com o Minix e também segue uma filosofia de design diferente (microkernel vs. monolítico). O Minix também não estava disponível oficialmente para o 386 na época, enquanto o kernel Linux foi escrito para o 386 desde o início. O primeiro sistema de arquivos do Linux foi o Minix, devido à compatibilidade, mas essa também foi uma reimplementação completa.
Johan Myréen 08/08/19
10
Linus e o autor do Minix, ambos concordam que não é o Minix ou se baseia nele.
Ctrl-alt-delor 08/08/19
@ JohanMyréen É claro que qualquer texto breve não é toda a verdade. Até a Wikipedia contém apenas uma breve introdução. E eu sei que o Linux foi iniciado por causa das deficiências do Minix. Se houvesse um Minix para i386, talvez não houvesse Linux hoje. Por outro lado, o Linux foi inspirado pelo Minix, e o primeiro sistema de arquivos suportado foi o Minix. Mas concordo que a extensão não é o trabalho correto, mudei a frase.
RalfFriedl