Uma breve história do Unix

Conteúdo

Bash Shell

Apesar de alimentar mais do que 90% das cargas de trabalho da nuvem hoje, Unix (e Linux com isso) teve um começo humilde. Jim Hall discute como o Unix da Bell Labs na década de 1990 1970 tornou-se a espinha dorsal de muitos sistemas operacionais modernos.

As origens do Unix

Nos primeiros dias da computação, os usuários interagiam com o computador por meio de diversos meios bizantinos. O ENIAC original nem apresentava uma "interface de programação" como agora acreditamos; em seu lugar, programadores conectados “unidades funcionais” separados através de plugues e cabos. Conforme os computadores se tornaram mais práticos, tornou-se uma plataforma para negociação em lote, como através de pilhas de cartões de dados perfurados.

Em sistemas posteriores, mais “moderno” como o mainframe, a administração do sistema ainda era complexa. A criação de um arquivo requer a especificação da quantidade de espaço em disco para alocar mais outros atributos. Os operadores interagiam regularmente 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 e final da década de 1990 1960, el MIT, Bell Labs e GE colaboraram em um novo sistema chamado MULTICS, o Serviço de Informação Informática e Multiplexada. MULTICS era para ser uma revolução na computação. Mas através de seu desenvolvimento, MULTICS também se tornou cada vez mais complexo. Frustrado com o projeto, Bell Labs aposentou-se, deixando outros para continuar o projeto mais tarde, mesmo quando muito tarde.

Entretanto, Ken Thompson voltou do MULTICS para a Bell Labs para trabalhar em outros projetos. Um esforço envolveu uma unidade de disco especificamente rápida conectada a um minicomputador DEC PDP-7.. Thompson queria obter o máximo do desempenho desta unidade e, por extensão, em qualquer dispositivo de armazenamento. Então, começou a trabalhar em um programador de disco.

Ao abordar este projeto, Thompson percebeu que seu projeto de teste estava entrando no território do “sistema operacional”. Pelas próximas três semanas, 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 havia “master design” que definiu o que a Unix deve fazer ou se tornar. Em vez de, O Unix cresceu organicamente à medida que diferentes usuários precisavam de novos recursos.

Uma das minhas primeiras histórias favoritas 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 planejou 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 instalaria o Unix e escreveria 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 formato de documento Roff, em si uma derivação de um programa CTSS anterior chamado RUNOFF. Hoje, “Novo Roff” o nroff, é uma parte fundamental do Unix.

Os próprios comandos Unix receberam nomes muito curtos. a ls, rm, mv, e outros comandos Unix padrão eram tão curtos porque os primeiros terminais de ticker do Model 33 usado no Bell Labs exigiu um esforço significativo para digitar cada letra. Era mais fácil escrever rm do que um nome de comando mais descritivo como remove, o cp naquela copy.

Uma das características definidoras do Unix, a “pipeline”, que permitia a um comando enviar sua saída para outro comando para processamento posterior, também foi adicionado a pedido de outro pesquisador da Bell Labs, Douglas McIlroy. Até então, comandos atuaram em arquivos individuais ao mesmo tempo. Mas com os canos, você pode encadear vários comandos para criar resultados mais interessantes. Como um exemplo, a ls comando lista arquivos em um diretório, e ele wc comando conta as linhas de sua entrada. Se você conectar os dois comandos juntos, como ls|wc , obtém o número de arquivos em um diretório.

Outros comandos foram adicionados de forma semelhante devido a alguém os ter solicitado. Thompson escreveu o grep comando baseado na sugestão de McIlroy de que o Unix deve ter um utilitário para pesquisar texto em arquivos. Thompson reutilizou código Unix ed editor para criar um utilitário para executar um “impressão de expressão regular global” de qualquer texto que corresponda ao do usuário frase regular. Este comando “impressão de expressão regular global” foi simplesmente chamado grep, agora um comando Unix padrão.

Unix em todos os lugares

Unix continuou a crescer, principalmente como pesquisa e como plataforma para projetos dentro da Bell Labs até meados da década de 1990. 1980. Mais ou menos nessa época, um grupo de diferentes fornecedores começou a comercializar suas próprias versões do Unix, incluidos HP-UX de Hewlett Packard, IBM AIX, Xenix de Microsoft, SunOS da Sun. (mais tarde renomeado Solaris), entre outros. Sobre 1983, Richard Stallman iniciou um novo projeto para criar uma versão de software livre do Unix, chamado GNU (uma recursivo acrônimo, Como visualizar e monitorar o uso do espaço em disco na linha de comando do Linux “GNU não é Unix”).

Cada distribuição Unix era ligeiramente diferente e incompatível entre si. Alguns foram derivados do AT Unix original&T Bell Lab, como HP-UX e AIX. Outras versões do Unix foram derivadas de uma variante popular da Universidade da Califórnia em Berkeley, Chamada BSD para “Distribuição de Software de Berkeley”. Muitos dos comandos eram iguais ou semelhantes entre as diferentes versões do Unix, mas os detalhes sobre como ele gerenciava o sistema em geral eram muito diferentes. Uma diferença fundamental foi como o Unix foi iniciado: NO&T “Sistema V” Usos unix níveis de corrida controlado por uma central /etc/inittab Arquivo, enquanto o BSD Unix começa tudo usando controle de execução hífens começando com /etc/rc texto.

Outros sistemas Unix vieram e se foram durante as décadas de 1980 e 1990. Steve Jobs, depois de ser destituído do cargo de CEO da Apple em 1985, fundó NeXT, que produziu sua própria variante do Unix, derivado de BSD. NeXT trouxe várias inovações para Unix, incluindo um microkernel baseado em Mach. O desktop gráfico NeXT, Próxima Etapa, adicionou outras novas ideias, como PostScript Display para criar gráficos na tela, uma “cais” de aplicativos disponíveis e em execução, e uma camada de aplicativo orientada a objetos com kits de ferramentas.

Sobre 1991, um estudante finlandês chamado Linus Torvalds começou a trabalhar em um projeto que mais tarde se tornou o kernel do Linux. o 25 agosto 1991, Torvalds postou um breve anúncio em um grupo de discussão da Usenet sobre seu projeto hobby e convidou outras pessoas a contribuir.. 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 modelo de “código aberto” o “software livre” rapidamente impulsionou o desenvolvimento de novos sistemas Linux.

Comunidades surgiram em torno do Linux, carregando ferramentas GNU e outros comandos Unix para rodar no Linux. Sobre 1992, desenvolvedores portaram o X Window System, o que deu ao Linux sua primeira interface gráfica de usuário. O resultado é o que a maioria das pessoas pensa quando dizemos “Linux”, ainda quando Linux 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, Linux domina. Linux também é comum para muitas cargas de trabalho de negócios, incluindo servidores de aplicativos e servidores de banco de dados. É difícil saber exatamente quantos servidores Linux estão executando as coisas, Mas muitas estimativas sugerem que o Linux executa mais de dois terços dos servidores da web e outras infraestruturas da Internet.. Até a Microsoft é compatível com Linux; sua plataforma Azure executa Linux, da mesma forma que o subsistema Windows para Linux em desktops Windows.

No escritório, Linux nunca ganhou uma posição significativa. Uma piada comum na comunidade Linux é “No próximo ano será o Ano desktop Linux. ” Mas o Windows reina supremo na área de trabalho. Apesar disto, se você está procurando Unix na área de trabalho, Considere apple macOS. Sobre 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 nos novos Macs. MacOS é verdadeiramente Unix sob o capô; abre uma janela de terminal e você pode encontrar um shell Unix com utilitários Unix padrão. Na realidade, macOS é um Unix Oficial, reconhecido pelo Grupo Aberto.

Para onde está indo o Unix agora? Eu não tenho certeza se “Unix” é o rótulo correto. Em uma época em que os sistemas Linux superam em muito Unix servidores, é viável que tenhamos passado o ponto em que “Unix” tem muito significado. Não se trata mais de “Unix como plataforma”, mas de “Linux como plataforma”. E assim como o Unix cresceu além de seu design original, adicionar novos recursos onde eles eram necessários, O Linux continua a evoluir para atender a novas necessidades. Pelo menos no futuro previsível, é sobre “Linux”, não de “Unix”.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.