Unix
Tudo começou neste ano (1965), quando um grupo de programadores (Ken Thompson, Dennis Ritchie, Douglas McIlroy e Peter Weiner) reuniram-se para desenvolver um Sistema Operacional chamado Multics. Entretanto, o esforço revelou-se insuficiente para as pretensões do projeto diante da falta de recursos disponíveis na época. As empresas envolvidas no projeto (AT&T, GE e MIT) possuíam opiniões diferentes e estavam longe de chegar a uma solução satisfatória. Foi então que, em 1969, Ken Thompson resolveu reescrever o Multics com um conceito menos ambicioso, chamado Unics, utilizando linguagem de montagem (assembly).
Mais tarde, Brian Kernighan daria um novo nome ao sistema: Unix. E, 4 anos depois, Dennis Ritchie e Ken Thompson reescreveriam o Unix, usando a linguagem C, e assim difundido-o na comunidade.
Nos anos 70 e 80 foram desenvolvidas as primeiras distribuições (BSD, System III e V). Atualmente, Unix (ou *nix) é o nome dado a uma grande família de Sistemas, os quais compartilham muito dos conceitos dos Sistemas Unix originais.
Alguns dos Sistemas derivados do Unix são:
BSD (FreeBSD, OpenBSD e NetBSD)
Solaris
Linux
Mac OS X (Darwin)
Entendendo o UNIX
O sistema Unix consiste de duas partes:
Núcleo Operacional (Kernel)
Programas do Sistema (Shell & Utilities)
Núcleo Operacional
O núcleo operacional está relacionado diretamente com o hardware e é executado na memória. É a parte responsável pelo agendamento de processos, gerenciamento da memória e controle ao acesso de arquivos e dispositivos de hardware. O acesso ao núcleo é feito por chamadas de sistema com o uso de funções que são disponibilizadas para as aplicações através de bibliotecas C (libc).
Programas do Sistema
Esta parte envolve aplicações que consistem em bibliotecas C (libc), o Shell, diversos utilitários e a GUI (interface gráfica). Entenda que os utilitários são responsáveis pelo controle de processos, operações I/O em arquivos, entre outros. Quanto ao Shell, trata-se de uma interface que