MINIX

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes confiáveis e independentes (desde dezembro de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
Minix
MINIX screenshot.png
MINIX 3.1.2a
Produção Andrew Stuart Tanenbaum
Família do SO UNIX
Modelo Software livre
Estado Corrente
Lançamento 1987 (26–27 anos)
Versão estável 3.3.0 / 16 de setembro de 2014; há 13 semanas e 5 dias
Arquitetura(s) PC, PC/AT, PS/2, Motorola 68000, SPARC, Atari ST, Commodore Amiga, Macintosh, SPARCstation, Intel 386, PC compativeis, NS32532, ARM e INMOS transputer
Núcleo Micronúcleo
Interface Linha de comandos (ash)
Licença BSD
Página oficial www.minix3.org (em inglês).

O Minix é um sistema operacional Unix-like (semelhante ao UNIX), escrito em linguagem C e assembly. Ele é gratuito e com o código fonte disponível.

Características[editar | editar código-fonte]

  • Multitarefa (múltiplos programas podem correr ao mesmo tempo ).
  • Roda em 286, 386, 486, Pentium.
  • Suporta memória estendida (16MB no 286 e 4GB no 386, 486 e Pentium ou superior).
  • RS-232 serial line suporte com terminal emulation, kermit, zmodem, etc.
  • Máximo de três usuários simultaneamente na mesma máquina.
  • Chamadas de sistemas compatíveis com POSIX.
  • Escrito em C(11.800 linhas) e em Assembly (800 linhas) (versão 1.0 de 1987) (SO, utilitários, bibliotecas etc.).
  • Compilador ANSI C.
  • Shell funcionalmente idêntico ao Bourne shell.
  • Rede TCP/IP.
  • 5 editores (emacs subset, vi clone, ex, ed, and simple screen editor).
  • Mais de 200 utilitários (cat, cp, ed, grep, kermit, ls, make, sort, etc.).
  • Mais de 300 bibliotecas (atoi, fork, malloc, clock, read, stdio, etc.).
  • O sistema roda apenas em modo texto.

Foi organizado em camadas, onde as duas primeiras formam o núcleo:

  • Captura interrupções e traps, salvar e restaurar registradores, agendar as demais funções
  • Processos de entrada/saída.
  • As tarefas de entrada/saída são chamadas drivers de dispositivos;
  • Contém processos que fornecem serviços úteis ao usuário;
  • Existem em um nível menos privilegiado que o núcleo;
  • Shell, editores, compiladores, etc.

História[editar | editar código-fonte]

Andrew S. Tanenbaum criou na Vrije Universiteit em Amsterdam para explicar os princípios dos seu livro-texto, "Operating Systems Design and Implementation" de (1987). Um abreviado das 12.000 linhas de código do Kernel, gerenciador de memória, e sistema de arquivo do MINIX 1.0 estão no livro. Prentice-Hall também liberou o código fonte MINIX em disquetes com um manual de referência. MINIX 1 possuia um sistema de chamada compatível com a Sétima edição do UNIX.

Hardware requerido[editar | editar código-fonte]

O MINIX pode funcionar com quantidades baixas de memória e disco rígido. O MINIX 3 pode ser usado com apenas 16 MB de memória RAM e 50 MB de disco rígido, mas para instalação de outros software o recomendável é 600 MB de HD. É possível testar pelo Live CD, funcionando sem necessidade de instalação no HD.

Funcionamento[editar | editar código-fonte]

Processos são entidades independentes, cada um com suas permissões de acesso, e têm atribuídos propriedades como o id do usuário que o criou (UID) e do grupo (GID). Grande parte de sua execução se processa em user-mode, quando o processador não admite a execução de instruções privilegiadas, mas em certos instantes (durante uma chamada de sistema), ele executa em modo núcleo para conseguir o acesso a partes do hardware que de outra forma seriam inacessíveis. Cada processo é identificado pelo seu process id (PID), que é simplesmente um número inteiro.

Mais especificamente, do ponto de vista do sistema operacional, é uma coleção de instruções (programa) mais os dados necessários à sua execução. Armazenados juntamente com o processo estão o seu contexto, ou seja, o contador de instruções, e o conjunto de todos os registradores da CPU. É responsabilidade do sistema operacional gerenciar os processos do sistema, de forma que, se um processo tenta ler ou escrever em um disco, por exemplo, este processo ficará em estado waiting (suspenso) até que a operação seja completada.

Nesse ínterim, outro processo será habilitado a correr, desperdiçando assim o mínimo do tempo da CPU, memória e demais periféricos. O Minix suporta inclusive um procedimento de "escrita retardada", quando escrevemos em algum arquivo. No momento da escrita, o buffer que contém estes dados é simplesmente marcado como "sujo" (dirty), e o sistema operacional escolhe o instante mais apropriado para descarregar esse buffer no disco físico. Isso explica a necessidade que temos de executar um procedimento de parada (shutdown ) antes de desligar a máquina, para evitar que fiquem dados a serem descarregados (escritos) no disco rígido.

Referências


Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.