Uma breve história do Unix
Apesar de alimentar mais de 90% das cargas de trabalho em nuvem hoje, o Unix (e o Linux com ele) teve um começo humilde. Jim Hall discute como o Unix da Bell Labs na década de 1970 se tornou a espinha dorsal de muitos sistemas operacionais modernos.
As origens do Unix
No início da computação, os usuários interagiam com o computador por diversos meios bizantinos. O ENIAC original nem apresentava uma “ interface de programação ” como pensamos nessas coisas hoje; em vez disso, os programadores conectaram “ unidades funcionais ” separadas; juntos usando plugues e fios. À medida que os computadores se tornaram mais práticos, eles se tornaram uma plataforma para operações em lote, como por meio de pilhas de cartões de dados perfurados.
Posteriormente, mais “ moderno ” sistemas como o mainframe, o gerenciamento de sistema permaneceu complexo. Para criar um arquivo, é necessário especificar a quantidade de espaço em disco a ser alocada, além de outros atributos. Os operadores normalmente interagiam com o sistema usando dispositivos terminais de papel semelhantes a uma máquina de escrever. E, naqueles primeiros dias, era assim que as pessoas esperavam trabalhar com computadores.
Em meados da década de 1960, MIT, Bell Labs e GE colaboraram em um novo sistema denominado MULTICS, Multiplexed Information and Computing Service. MULTICS era para ser uma revolução na computação. Mas com o seu desenvolvimento, o MULTICS também se tornou cada vez mais complexo. Frustrado com o projeto, o Bell Labs desistiu, deixando outros para levar o projeto adiante, embora muito tarde.
Nesse ínterim, Ken Thompson voltou do MULTICS para o Bell Labs para trabalhar em outros projetos. Um esforço envolveu uma unidade de disco particularmente rápida conectada a um minicomputador DEC PDP-7. Thompson queria otimizar o rendimento nesta unidade — e, por extensão, em qualquer dispositivo de armazenamento. Então, ele começou a trabalhar em um agendador de disco.
Ao lidar com este projeto, Thompson percebeu que seu projeto de teste estava entrando em “ Sistema operacional ” território. Durante as três semanas seguintes, enquanto sua esposa estava de férias para visitar seus pais, Thompson preencheu as peças que faltavam e adicionou uma interface de chamada executiva, um montador, um editor e um shell. E desse pequeno começo, o Unix nasceu.
Desenvolvimento Unix
Ao longo de seu desenvolvimento na Bell Labs, não houve “ design principal ” que definiu o que o Unix deveria fazer ou se tornar. Em vez disso, o Unix cresceu organicamente à medida que diferentes usuários exigiam novos recursos.
Uma das minhas histórias favoritas do início do Unix é como os pesquisadores do Unix conseguiram comprar um novo sistema de computador para continuar seu trabalho e criaram um novo comando padrão do Unix ao mesmo tempo. O departamento de patentes planejava comprar um novo sistema de computador dedicado para escrever pedidos de patentes em nome da Bell Labs. A equipe Unix sugeriu que o departamento de Patentes comprasse um novo minicomputador DEC PDP-11, e a equipe Unix colocaria o Unix nele e escreveria um software personalizado para ajudar o departamento de Patentes a escrever pedidos de patentes. Esse novo software para escrever patentes? Uma nova implementação do sistema de formatação de documentos Roff, ele próprio uma derivação de um programa CTSS anterior denominado RUNOFF. Hoje, “ New Roff ” ou nroff, é uma parte central do Unix.
Os próprios comandos Unix receberam nomes muito curtos. Os comandos ls, rm, mv e outros comandos padrão do Unix eram tão curtos porque os primeiros terminais do modelo 33 de teletipo usados no Bell Labs exigiam um esforço significativo para digitar cada letra. Era mais fácil digitar rm do que um nome de comando mais descritivo como remove ou cp do que copiar.
Um dos recursos que definem o Unix, o “ pipe, ” que permitiu a um comando enviar sua saída para outro comando para processamento adicional, também foi adicionado a pedido de outro pesquisador da Bell Labs, Douglas McIlroy. Até então, os comandos atuavam em arquivos únicos por vez. Mas com tubos, você pode encadear vários comandos para criar resultados mais interessantes. Por exemplo, o comando ls lista os arquivos em um diretório e o comando wc conta as linhas de sua entrada. Se você conectar os dois comandos juntos como ls | wc, obterá o número de arquivos em um diretório.
Outros comandos foram adicionados de forma semelhante porque alguém os pediu. Thompson escreveu o comando grep com base em uma sugestão de McIlroy de que o Unix deveria ter um utilitário para localizar texto em arquivos. Thompson reutilizou o código do editor Unix ed para criar um utilitário para realizar uma “ impressão de expressão regular global ” de qualquer texto que corresponda à expressão regular do usuário. Esta “ impressão de expressão regular global ” comando foi nomeado simplesmente grep, agora um comando Unix padrão.
Unix em todos os lugares
O Unix continuou a crescer, principalmente como pesquisa e plataforma para projetos dentro da Bell Labs até meados da década de 1980. Naquela época, vários fornecedores diferentes começaram a vender suas próprias versões do Unix, incluindo Hewlett Packard &’ s HP-UX, IBM &’ s AIX, Microsoft &’ s Xenix, Sun &’ s SunOS (mais tarde rebranded Solaris), entre outros. Em 1983, Richard Stallman iniciou um novo projeto para criar uma versão de Software Livre do Unix, chamado GNU (uma sigla recursiva, que significa “ GNU &’ s Not Unix ”).
Cada distribuição do Unix era ligeiramente diferente e incompatível entre si. Alguns foram derivados do Unix original da AT & T Bell Lab &’ s, como HP-UX e AIX. Outras versões do Unix foram derivadas de uma variante universitária popular da Universidade da Califórnia em Berkeley, chamada BSD for “ Berkeley Software Distribution. ” Muitos dos comandos eram iguais ou semelhantes entre as diferentes versões do Unix, mas os detalhes de como você gerenciava o sistema geralmente eram muito diferentes. Uma diferença importante era como o Unix inicializava a si mesmo: AT & T “ System V ” O Unix usa níveis de execução controlados por um arquivo / etc / inittab central, enquanto o BSD Unix inicia tudo usando scripts de controle de execução começando com o script / etc / rc.
Outros sistemas Unix surgiram e desapareceram nas décadas de 1980 e 1990. Steve Jobs, após ser destituído do cargo de CEO da Apple em 1985, fundou a NeXT, que produziu sua própria variante do Unix, derivada do BSD. A NeXT trouxe várias inovações para o Unix, incluindo um microkernel baseado em Mach. A área de trabalho gráfica da NeXT, NeXTSTEP, adicionou outras novas idéias, como Display PostScript para criar gráficos na tela, um “ dock ” de aplicativos disponíveis e em execução e uma camada de aplicativo orientada a objetos com kits de ferramentas.
Em 1991, um estudante finlandês chamado Linus Torvalds começou a trabalhar em um projeto que mais tarde se tornou o kernel Linux. Em 25 de agosto de 1991, Torvalds postou um breve anúncio a um grupo de discussão da Usenet sobre seu projeto de passatempo e convidou outras pessoas a contribuir com ele. Torvalds lançou o Linux sob a GNU General Public License, o que significa que qualquer um pode modificar o Linux para corrigir bugs ou adicionar novos recursos. Este “ código aberto ” ou “ Software livre ” modelo impulsionou rapidamente o desenvolvimento de novo Linux.
Comunidades surgiram em torno do Linux, portando ferramentas GNU e outros comandos Unix para rodar no Linux. Em 1992, os desenvolvedores portaram o X Window System, dando ao Linux sua primeira interface gráfica de usuário. O resultado é o que a maioria das pessoas pensa quando dizemos “ Linux, ” embora o Linux seja na verdade apenas o kernel que executa tudo.
Unix moderno
Embora ainda existam sistemas Unix proprietários, a maioria dos sistemas Unix são Linux. Pelo menos em servidores web, o Linux domina. O Linux também é comum para muitas cargas de trabalho corporativas, incluindo servidores de aplicativos e servidores de banco de dados. É difícil descobrir exatamente quantos servidores Linux executam as coisas, mas muitas estimativas sugerem que o Linux executa mais de dois terços dos servidores web e outras infra-estruturas de Internet. Até a Microsoft oferece suporte ao Linux; sua plataforma Azure executa Linux, assim como o subsistema Windows para Linux em desktops Windows.
No desktop, o Linux nunca ganhou um ponto de apoio significativo. Uma gag em execução na comunidade Linux é “ O próximo ano será o Ano do Linux Desktop. ” Mas o Windows reina supremo no desktop. Se você estiver procurando pelo Unix na área de trabalho, no entanto, considere o macOS da Apple. Em 1996, como parte do retorno de Steve Jobs à Apple como CEO, a Apple comprou a NeXT e usou a NeXT como base para o sistema operacional de próxima geração em novos Macs. MacOS é realmente Unix sob o capô; abra uma janela de terminal e você encontrará um shell Unix com os utilitários Unix padrão. Na verdade, o macOS é um Unix oficial, reconhecido pelo Open Group.
Para onde vai o Unix a seguir? Não tenho certeza se “ Unix ” é o rótulo certo mais. Em uma época em que os sistemas Linux superam amplamente os servidores Unix, podemos ter passado do ponto em que “ Unix ” tem muito significado. Não se trata mais de “ Unix como plataforma ” mas “ Linux como plataforma. ” E assim como o Unix cresceu além de seu design original, adicionando novos recursos onde necessário, o Linux continua a evoluir para atender a novas necessidades. Pelo menos em um futuro próximo, é sobre o “ Linux ” não “ Unix. ”
Nenhum comentário