História da distribuição de software de Berkeley - History of the Berkeley Software Distribution

A história da distribuição de software de Berkeley começa na década de 1970.

1BSD (PDP-11)

As primeiras distribuições de Unix da Bell Labs na década de 1970 incluíam o código-fonte para o sistema operacional, permitindo que pesquisadores em universidades modificassem e estendessem o Unix. O sistema operacional chegou a Berkeley em 1974, a pedido do professor de ciência da computação Bob Fabry, que havia participado do comitê de programa do Simpósio sobre Princípios de Sistemas Operacionais, onde o Unix foi apresentado pela primeira vez. Um PDP-11/45 foi comprado para rodar o sistema, mas por razões orçamentárias, esta máquina foi compartilhada com os grupos de matemática e estatística em Berkeley, que usavam RSTS , de forma que o Unix só rodava na máquina oito horas por dia (às vezes durante dia, às vezes durante a noite). Um PDP-11/70 maior foi instalado em Berkeley no ano seguinte, usando dinheiro do projeto de banco de dados Ingres .

Também em 1975, Ken Thompson tirou um ano sabático do Bell Labs e veio para Berkeley como professor visitante. Ele ajudou a instalar a versão 6 do Unix e começou a trabalhar em uma implementação Pascal para o sistema. Os alunos de pós-graduação Chuck Haley e Bill Joy aprimoraram o Pascal de Thompson e implementaram um editor de texto aprimorado, ex . Outras universidades ficaram interessadas no software em Berkeley, e então em 1977 Joy começou a compilar o primeiro Berkeley Software Distribution (1BSD), que foi lançado em 9 de março de 1978. 1BSD era um add-on para a Versão 6 do Unix, em vez de um sistema operacional completo sistema em seu próprio direito. Cerca de trinta cópias foram enviadas.

2BSD (PDP-11)

The Second Berkeley Software Distribution (2BSD), lançado em maio de 1979, incluiu versões atualizadas do software 1BSD, bem como dois novos programas de Joy que persistem em sistemas Unix até hoje: o editor de texto vi (uma versão visual de ex ) e a concha C . Cerca de 75 cópias de 2BSD foram enviadas por Bill Joy. Outra característica foi um pacote de rede chamado Berknet , desenvolvido por Eric Schmidt como parte de sua dissertação de mestrado , que podia conectar até 26 computadores e fornecer e-mail e transferência de arquivos.

Após o 3BSD (veja abaixo) ter saído para a linha de computadores VAX , novos lançamentos de 2BSD para o PDP-11 ainda eram emitidos e distribuídos através do USENIX ; por exemplo, o 2.8.1BSD de 1982 incluiu uma coleção de correções para problemas de desempenho na versão 7 do Unix , e versões posteriores continham portas de mudanças das versões baseadas em VAX do BSD de volta para a arquitetura PDP-11. 2.9BSD de 1983 incluiu código de 4.1cBSD, e foi a primeira versão a ser um sistema operacional completo (um Unix V7 modificado) em vez de um conjunto de aplicativos e patches.

A versão mais recente, 2.11BSD , foi lançada pela primeira vez em 1991. No século 21, as atualizações de manutenção de voluntários continuaram: o patch # 471 foi lançado em 1 de setembro de 2021.

3BSD

Um terminal DEC muito antigo com teclado e tela integral em preto e branco
O terminal DEC VT100 , amplamente utilizado para compartilhamento de tempo Unix
O VAX-11/780 , um minicomputador típico usado para os primeiros sistemas de compartilhamento de tempo BSD
VAX-11/780 internos

Um computador VAX foi instalado em Berkeley em 1978, mas a porta do Unix para a arquitetura VAX, UNIX / 32V , não aproveitou os recursos de memória virtual do VAX . O kernel de 32V foi amplamente reescrito por estudantes de Berkeley para incluir uma implementação de memória virtual e um sistema operacional completo incluindo o novo kernel, portas dos utilitários 2BSD para o VAX e os utilitários de 32V foram lançados como 3BSD no final de 1979 O 3BSD também era chamado alternativamente de Virtual VAX / UNIX ou VMUNIX (para Virtual Memory Unix), e as imagens de kernel BSD eram normalmente chamadas /vmunixaté 4.4BSD.

O sucesso do 3BSD foi um fator importante na decisão da Defense Advanced Research Projects Agency (DARPA) de financiar o Computer Systems Research Group (CSRG) de Berkeley , que desenvolveria uma plataforma Unix padrão para futuras pesquisas DARPA no Projeto VLSI .

4BSD

4BSD (novembro de 1980) ofereceu uma série de melhorias em relação ao 3BSD, notavelmente controle de trabalho no csh lançado anteriormente , deliverymail (o antecedente do sendmail ), sinais "confiáveis" e a biblioteca de programação Curses . Em uma revisão de 1985 dos lançamentos do BSD, John Quarterman et al. , escreveu:

O 4BSD foi o sistema operacional escolhido pelos VAXs desde o início até o lançamento do System III (1979–1982) [...] A maioria das organizações compraria uma licença de 32V e encomendaria o 4BSD de Berkeley sem nunca se preocupar em obter uma fita de 32V. Muitas instalações dentro do Bell System rodavam 4.1BSD (muitas ainda rodam, e muitas outras rodam 4.2BSD).

4.1BSD

4.1BSD (junho de 1981) foi uma resposta às críticas ao desempenho do BSD em relação ao sistema operacional VAX dominante, o VMS . O kernel 4.1BSD foi sistematicamente ajustado por Bill Joy até que pudesse funcionar tão bem quanto VMS em vários benchmarks. O lançamento teria se chamado 5BSD , mas após objeções da AT&T o nome foi alterado; A AT&T temia confusão com o UNIX System V da AT&T .

4.2BSD

4.2BSD (agosto de 1983) levaria mais de dois anos para ser implementado e continha várias revisões importantes. Antes de seu lançamento oficial, vieram três versões intermediárias: 4.1a incorporou uma versão modificada da implementação preliminar de TCP / IP da BBN ; 4.1b incluiu o novo Berkeley Fast File System , implementado por Marshall Kirk McKusick ; e 4.1c foi uma versão provisória durante os últimos meses de desenvolvimento do 4.2BSD. De volta ao Bell Labs, o 4.1cBSD se tornou a base da 8ª edição do Research Unix , e uma versão com suporte comercial estava disponível no mtXinu .

Para orientar o projeto do 4.2BSD, Duane Adams da DARPA formou um "comitê de direção" composto por Bob Fabry , Bill Joy e Sam Leffler da UCB , Alan Nemeth e Rob Gurwitz da BBN, Dennis Ritchie da Bell Labs , Keith Lantz de Stanford , Rick Rashid da Carnegie-Mellon , Bert Halstead do MIT , Dan Lynch do ISI e Gerald J. Popek da UCLA . O comitê se reuniu de abril de 1981 a junho de 1983.

Além do Fast File System, vários recursos de colaboradores externos foram aceitos, incluindo cotas de disco e controle de trabalho. A Sun Microsystems forneceu testes em suas máquinas Motorola 68000 antes do lançamento, garantindo a portabilidade do sistema.

O lançamento oficial do 4.2BSD veio em agosto de 1983. Foi notável como a primeira versão lançada após a saída de Bill Joy em 1982 para co-fundar a Sun Microsystems; Mike Karels e Marshall Kirk McKusick assumiram funções de liderança dentro do projeto daquele ponto em diante. Em uma nota mais leve, também marcou a estreia do daemon mascote do BSD em um desenho de John Lasseter que apareceu na capa dos manuais impressos distribuídos pela USENIX .

4.3BSD

Preto e branco 4.3 Captura de tela de login da emulação BSD UWisc VAX
"4.3 BSD UNIX" da Universidade de Wisconsin por volta de 1987. Inicialização do sistema e login.
Preto e branco 4.3 BSD UWisc VAX Emulation LS screenshot
4.3 BSD da University of Wisconsin . Navegando em "/ usr / ucb" e "/ usr / games"

O 4.3BSD foi lançado em junho de 1986. Suas principais mudanças foram para melhorar o desempenho de muitas das novas contribuições do 4.2BSD que não tinham sido tão afinadas quanto o código do 4.1BSD. Antes do lançamento, a implementação do TCP / IP pela BSD divergia consideravelmente da implementação oficial da BBN. Após vários meses de testes, o DARPA determinou que a versão 4.2BSD era superior e permaneceria no 4.3BSD. (Veja também História da Internet .)

Após o 4.3BSD, foi determinado que o BSD se afastaria da plataforma VAX antiga. A plataforma Power 6/32 (codinome "Tahoe") desenvolvida pela Computer Consoles Inc. parecia promissora na época, mas foi abandonada por seus desenvolvedores logo depois. No entanto, a porta 4.3BSD-Tahoe (junho de 1988) provou ser valiosa, pois levou a uma separação do código dependente e independente da máquina no BSD, o que melhoraria a portabilidade futura do sistema.

Além da portabilidade, o CSRG trabalhou em uma implementação da pilha de protocolo de rede OSI , melhorias no sistema de memória virtual do kernel e (com Van Jacobson da LBL ) novos algoritmos TCP / IP para acomodar o crescimento da Internet.

Até então, todas as versões do BSD incorporavam código AT&T Unix proprietário e estavam, portanto, sujeitas a uma licença de software da AT&T. Licenças de código-fonte tornaram-se muito caras e várias partes externas expressaram interesse em um lançamento separado do código de rede, que havia sido desenvolvido inteiramente fora da AT&T e não estaria sujeito à exigência de licenciamento. Isso levou ao Networking Release 1 ( Net / 1 ), que foi disponibilizado para não licenciados do código AT&T e foi redistribuído gratuitamente sob os termos da licença BSD . Foi lançado em junho de 1989.

O 4.3BSD-Reno surgiu no início de 1990. Foi um lançamento provisório durante o desenvolvimento inicial do 4.4BSD, e seu uso foi considerado uma "aposta", daí o nome do centro de jogos de azar de Reno, Nevada . Esta versão estava se movendo explicitamente em direção à conformidade com POSIX e, de acordo com alguns, longe da filosofia BSD (como POSIX é muito baseado no System V, e Reno estava bastante inchado em comparação com versões anteriores). Entre os novos recursos estava uma implementação de NFS da University of Guelph e suporte para a gama de computadores HP 9000 , originada na porta "HPBSD" da University of Utah .

Em agosto de 2006, a revista InformationWeek classificou o 4.3BSD como o "Melhor Software Já Escrito". Eles comentaram: "O BSD 4.3 representa o maior sustentáculo teórico da Internet."

Net / 2 e problemas legais

Captura de tela do instalador 386BSD em preto e branco
Instalação do 386BSD . 386BSD foi uma primeira porta do BSD para a arquitetura Intel 80386 .

Depois do Net / 1, o desenvolvedor do BSD Keith Bostic propôs que mais seções não AT&T do sistema BSD fossem lançadas sob a mesma licença do Net / 1. Para isso, ele iniciou um projeto para reimplementar a maioria dos utilitários Unix padrão sem usar o código AT&T. Por exemplo, vi , que foi baseado na versão original do Unix do ed , foi reescrito como nvi (novo vi). Em dezoito meses, todos os utilitários da AT&T foram substituídos e foi determinado que apenas alguns arquivos da AT&T permaneceram no kernel. Esses arquivos foram removidos e o resultado foi o lançamento em junho de 1991 do Networking Release 2 (Net / 2) , um sistema operacional quase completo que pode ser distribuído gratuitamente.

O Net / 2 foi a base para duas portas separadas do BSD para a arquitetura Intel 80386 : o 386BSD gratuito de William Jolitz e o BSD / 386 proprietário (posteriormente renomeado para BSD / OS) da Berkeley Software Design (BSDi). O 386BSD em si teve vida curta, mas se tornou a base de código inicial dos projetos NetBSD e FreeBSD que foram iniciados logo em seguida.

A BSDi logo se viu em apuros jurídicos com a subsidiária da AT&T Unix System Laboratories (USL), então detentora dos direitos autorais do System V e da marca comercial do Unix. O processo USL v. BSDi foi aberto em abril de 1992 e levou a uma liminar sobre a distribuição do Net / 2 até que a validade das reivindicações de direitos autorais da USL sobre a fonte pudesse ser determinada.

O processo retardou o desenvolvimento dos descendentes do software livre do BSD por quase dois anos enquanto seu status legal estava em questão e, como resultado, os sistemas baseados no kernel do Linux , que não tinham essa ambigüidade legal, ganharam maior apoio. Embora não tenha sido lançado até 1992, o desenvolvimento do 386BSD foi anterior ao do Linux. Linus Torvalds disse que se o 386BSD ou o kernel GNU estivessem disponíveis na época, ele provavelmente não teria criado o Linux.

4.4 BSD e descendentes

Em junho de 1993, o 4.4BSD-Encumbered foi lançado apenas para licenciados da USL.

O processo foi encerrado em janeiro de 1994, em grande parte a favor de Berkeley. Dos 18.000 arquivos na distribuição de Berkeley, apenas três tiveram que ser removidos e 70 modificados para mostrar avisos de direitos autorais da USL. Uma outra condição do acordo era que a USL não iria abrir novos processos contra usuários e distribuidores do código de propriedade de Berkeley no próximo lançamento do 4.4BSD. Marshall Kirk McKusick resume o processo e seu resultado:

A cópia do código e o roubo de segredos comerciais foram alegados. O código infrator real não foi identificado por quase dois anos. O processo poderia ter se arrastado por muito mais tempo, não fosse o fato de a Novell ter comprado a USL da AT&T e buscado um acordo. No final, três arquivos foram removidos dos 18.000 que compunham a distribuição, e uma série de pequenas alterações foram feitas em outros arquivos. Além disso, a Universidade concordou em adicionar direitos autorais da USL a cerca de 70 arquivos, com a estipulação de que esses arquivos continuassem a ser redistribuídos livremente.

Em março de 1994, o 4.4BSD-Lite foi lançado que não requer mais uma licença de origem USL e também continha muitas outras mudanças em relação ao lançamento original do 4.4BSD-Encumbered.

O lançamento final de Berkeley foi o 4.4BSD-Lite Release 2 de 1995 , após o qual o CSRG foi dissolvido e o desenvolvimento do BSD em Berkeley cessado. Desde então, várias variantes baseadas direta ou indiretamente no 4.4BSD-Lite (como FreeBSD , NetBSD , OpenBSD e DragonFly BSD ) foram mantidas.

Além disso, a natureza permissiva da licença BSD permitiu que muitos outros sistemas operacionais, tanto gratuitos quanto proprietários, incorporassem o código BSD. Por exemplo, o Microsoft Windows tem usado código derivado de BSD em sua implementação de TCP / IP e agrupa versões recompiladas de ferramentas de rede de linha de comando do BSD desde o Windows 2000 . Também o Darwin , o sistema no qual o macOS da Apple é construído, é um derivado do 4.4BSD-Lite2 e do FreeBSD. Vários sistemas operacionais Unix comerciais, como Solaris , também contêm quantidades variáveis ​​de código BSD.

Um fluxograma simples que mostra a história e a linha do tempo do desenvolvimento do Unix, começando com uma bolha no topo e 13 tributários na parte inferior do fluxo
Evolução simplificada de sistemas Unix . Não são mostrados Junos , software de sistema PlayStation 3 e outros garfos proprietários.

Descendentes significativos do BSD

Gráfico de barras coloridas de uso de distribuições BSD
Gráfico de barras mostrando a proporção de usuários de cada variante do BSD de uma pesquisa de uso do BSD em 2005. Cada participante tinha permissão para indicar várias variantes do BSD

O BSD tem sido a base de um grande número de sistemas operacionais. Os mais notáveis ​​entre estes hoje são talvez os principais BSDs de código aberto : FreeBSD, NetBSD e OpenBSD, que são todos derivados do 386BSD e do 4.4BSD -Lite por várias rotas. Tanto o NetBSD quanto o FreeBSD começaram a vida em 1993, inicialmente derivados do 386BSD, mas em 1994 migrando para uma base de código 4.4BSD-Lite. O OpenBSD foi bifurcado em 1995 do NetBSD. Um número de sistemas operacionais comerciais também estão parcial ou totalmente baseado em BSD ou de seus descendentes, incluindo da Sun SunOS e Apple Inc. 's MacOS .

A maioria dos sistemas operacionais BSD atuais são de código aberto e estão disponíveis para download, gratuitamente, sob a licença BSD , a exceção mais notável é o macOS . Eles também geralmente usam uma arquitetura de kernel monolítica , além do macOS e do DragonFly BSD, que apresentam kernels híbridos . Os vários projetos BSD de código aberto geralmente desenvolvem o kernel e os programas e bibliotecas do userland juntos, o código-fonte sendo gerenciado usando um único repositório de código-fonte central.

No passado, BSD também foi utilizado como uma base para várias versões de propriedade de Unix, tais como Sun 's SunOS , sequentes ' s Dynix , NeXT 's NeXTSTEP , dezembro de Ultrix e OSF 1 AXP / (agora Tru64 ). Partes do software da NeXT se tornaram a base do macOS , uma das variantes do BSD de maior sucesso comercial no mercado geral.

Uma seleção de versões significativas do Unix e sistemas operacionais semelhantes ao Unix que descendem do BSD inclui:

  • FreeBSD , um sistema operacional de código aberto para fins gerais.
    • NeXT NEXTSTEP e OPENSTEP , baseado no kernel Mach e 4BSD ; o ancestral do macOS
    • Orbis OS , o fork do FreeBSD 9 da Sony, é o sistema operacional para o PS4. Acredita-se que o CellOS para o sistema PS3 também seja um fork do FreeBSD, e é conhecido por conter código do FreeBSD e do NetBSD
    • TrueOS , GhostBSD e DesktopBSD , distribuições de FreeBSD com ênfase na facilidade de uso e interfaces amigáveis ​​para o usuário de desktop / laptop.
    • MidnightBSD , outro fork do FreeBSD
    • DragonFly BSD , um fork do FreeBSD para seguir um design alternativo, particularmente relacionado ao SMP .
    • NextBSD , nova distribuição BSD derivada do FreeBSD 10.1 e vários componentes do macOS.
    • FreeNAS um servidor de armazenamento conectado à rede gratuito baseado em uma versão mínima do FreeBSD.
    • NAS4Free fork da versão 0.7 FreeNAS , servidor de armazenamento conectado à rede.
    • Nokia IPSO (variante IPSO SB), o sistema operacional baseado em FreeBSD usado nos dispositivos de firewall da Nokia .
    • O sistema operacional para o Netflix Open Connect Appliance .
    • Junos , o sistema operacional para roteadores Juniper , uma versão customizada do FreeBSD e uma variedade de outros sistemas operacionais embarcados
    • O OneFS da Isilon Systems , o sistema operacional usado nos sistemas de armazenamento em cluster da série Isilon IQ, é uma versão altamente customizada do FreeBSD.
    • NetApp 's Data ONTAP, o sistema operacional para servidores de dados da NetApp, é uma versão personalizada do FreeBSD com a arquitetura ONTAP construído em cima.
    • m0n0wall , uma distribuição do FreeBSD ajustada para uso como firewall.
    • firewall / roteador baseado em FreeBSD de código aberto gratuito pfSense .
    • OPNsense , firewall, um fork do pfSense
    • Coyote Point Systems EQ / OS , um tempo de execução de alto desempenho reforçado para balanceamento de carga de servidor .
  • NetBSD , um BSD de código aberto focado em design limpo e portabilidade.
    • OpenBSD , um fork de 1995 do NetBSD, focado em segurança.
    • Force10 FTOS , o sistema operacional para os switches de rede de datacenter Force 10 e Dell .
  • TrustedBSD
  • A F5 Networks , a F5 BIGIP Appliances usavam um SO BSD como SO de gerenciamento até o lançamento da versão 9.0, que é construída sobre o Linux.
  • Da DEC Ultrix , a versão oficial do Unix para seus PDP-11 , VAX e DECstation sistemas
  • Sony NEWS-OS , um sistema operacional baseado em BSD para suas estações de trabalho de engenharia de rede
  • OSF / 1 , um kernel híbrido baseado em Unix desenvolvido pela Open Software Foundation , incorporando um kernel Mach modificado e partes de 4BSD
  • Versões anteriores à 5.0 do Sun Microsystems SunOS , uma versão aprimorada do 4BSD para os sistemas Sun-2 e Sun-3 baseados em Sun Motorola 68k , sistemas baseados em SPARC e sistemas Sun386i baseados em x86 (SunOS 5.0 e versões posteriores são System V Com base na versão 4 )
  • 386BSD , o primeiro sistema operacional baseado em BSD de código aberto e o ancestral da maioria dos sistemas BSD atuais
  • DEMOS , um clone BSD soviético
  • BSD / OS , um (agora extinto) BSD proprietário para PCs
  • RetroBSD , um fork do BSD 2.11 projetado para rodar em microcontroladores como o PIC32
  • LiteBSD , uma variante do 4.4BSD Unix para microcontroladores PIC32MZ

Veja também

Referências

links externos