Minix 3.0
Por: juniorademir1993 • 8/12/2015 • Artigo • 11.628 Palavras (47 Páginas) • 504 Visualizações
Minix
Ademir Almeida da Costa Júnior, Alan Félix da Mota, Caio Vinicius Meneses Silva
1Departamento de Computação (DCOMP) – Universidade Federal de Sergipe (UFS)
CEP – 49.100-000 – São Cristóvão – SE – Brasil
{juniorademir1993,alanfelix20,kaio271289}@gmail.com
Abstract. This article aims to describe the Minix operating system and its peculiar features. Initially, a brief history is presented about the motivation in which the system was created, available versions, features of the current version (Minix 3.0) and its improvements. Then the main components of an operating system are described: Process, Memory Management and File System. These topics are described in general (for any OS), but focusing on aspects of Minix.
Resumo. Este artigo tem por objetivo descrever o Sistema Operacional Minix e suas características peculiares. Inicialmente, é apresentado um breve histórico sobre qual motivação o sistema foi criado, versões disponibilizadas, características da versão atual (Minix 3.0) e suas melhorias. Em seguida, são descritos os principais componentes de um Sistema Operacional: Processos, Gerência de Memória e Sistema de Arquivos. Esses tópicos são descritos de forma geral (para qualquer Sistema Operacional), mas com foco nos aspectos do Minix.
1. Introdução
Quando o sistema UNIX estava na versão seis, seu código fonte estava sob licença da AT & T (American Telephone and Telegraph) e era frequentemente estudado, pois o código estava disponível para todos, mas a AT & T percebeu que possuía um produto comercial valioso e então quando lançou a versão sete, esta possuía uma licença que proibia o código fonte de ser estudado em cursos. Então muitas universidades deixaram o UNIX de lado e ensinavam apenas a teoria. Com esse ensino apenas teórico, os alunos acabam ficando com uma visão limitada do que realmente é um sistema operacional, pois assuntos importantes acabaram sendo são negligenciados.
Inconformado com esta situação Andrew Stuart Tanenbaum decidiu escrever um novo sistema operacional do zero, o qual serial compatível com UNIX do ponto de vista do usuário, mas completamente diferente por dentro. Ele não usou nenhuma linha de código do UNIX e desenvolveu um sistema que podia ser usado para a aula ou estudo individual.
Esse sistema recebeu o nome de MINIX e foi lançado em 1987 com o seu código-fonte completo para que qualquer um pudesse estudar ou modificar. O nome do MINIX significa mini-UNIX porque é pequeno o suficiente para que mesmo uma pessoa que não seja especialista possa entender como ele funciona. Além da vantagem de eliminar problemas jurídicos, MINIX tinha outra vantagem sobre o UNIX. Foi escrito uma década depois do UNIX e foi estruturado de uma forma mais modular. Outra diferença é que o UNIX foi projetado para ser eficiente, enquanto que o MINIX foi projetado para ser legível. O código MINIX tem milhares de comentários no mesmo.
1.1. Histórico e Conceitos Básicos
Além da vantagem de eliminar os problemas jurídicos, MINIX tinha outra vantagem sobre UNIX. Foi escrito uma década depois UNIX e foi estruturado de uma forma mais modular. Por exemplo, o sistema de arquivos, os drivers de dispositivo de E/S, que (com exceção do driver do relógio) e gerenciador de memória funciona como programas do usuário. Outra diferença é que o MINIX foi projetado para ser legível, e para ser com a versão 7 do UNIX, devido à sua simplicidade e elegância. Às vezes se diz que a versão 7 foi uma melhoria não só sobre todos os seus predecessores, mas também sobre todos os seus sucessores. Com o advento do POSIX, MINIX começou a evoluir em direção ao novo padrão, mantendo a compatibilidade com os programas existentes.
Como UNIX, MINIX foi escrito na linguagem de programação C e foi concebido para ser fácil e compatível com vários computadores. Inicialmente para o PCs IBM, posteriormente para várias outras plataformas. Em sintonia com a filosofia "Small is beautiful", originalmente não se fazia necessário o uso do disco rígido para executar (em meados dos anos 1980 discos rígidos ainda eram uma novidade caro). Como ele cresceu em termos de funcionalidade e tamanho, eventualmente chegou a um ponto que era necessário um disco rígido para PCs, mas em sintonia com a filosofia MINIX, uma partição de 200 Mega Bytes é suficiente (para aplicações embarcadas, nenhum disco rígido é necessário). Em contraste, mesmo pequenos sistemas Linux requerem 500 MB de espaço em disco, e vários Giga Bytes serão necessários para instalar aplicativos comuns.
1.2. Principais distribuições
Os Minix 1 e 2 foram originalmente lançados como ferramentas de ensino. A versão 1 (1987) é compatível com a versão 7 do UNIX, havendo Cerca de 12.000 linhas de código em C, incluindo Kernel, gerenciamento de memória, sistemas de arquivos. O código e binários desta verão foram liberados através de diskets com um manual de referência. A versão 2 (1997) foi baseada na segunda versão do livro de Tanenbaum, sendo apenas disponibilizada para processadores x86 e Solaris em arquitetura SPARC. Além disso foi adicionado o padrão POSIX e distribuído a partir de CD-ROM. Já a versão 3 tem por objetivo se tornar usável em computadores com recursos limitados (compacta), sistemas embarcados e aplicações que demandam grande confiabilidade.
Juntamente com seus alunos e programadores na Universidade Vrije em Amsterdã, ele produziu MINIX 3, reformulando, reestruturando e reduzindo o kernel, enfatizando a modularidade e confiabilidade. O Minix 3 é um novo sistema operacional open-source projetado para ser altamente confiável, flexível e seguro. Esta nova versão é, de certa forma, baseada nas anteriores mas é fundamentalmente diferente em muitos aspectos. Entre as novas funcionalidades pode-se citar:
- Adição de suporte a rede via TCP/IP
- X Window System (X11 - desenhar e mover as janelas no dispositivo de visualização e interação com um mouse e teclado.)
- Kernel reescrito e reduzido em 4000 linhas de código
- Suporte completo a multi-programação e multi-usuário
- Drivers de dispositivos executam como processos de usuário
- Linguagens: cc, gcc, g++, perl, python, etc.
- Suporte de até 4GB de RAM;
A versão 3 do Minix é descrita na terceira edição do livro "Operating Systems: Design and Implementation 3nd Edition" (OSDI 3) de Andrew S. Tanenbaum e Albert S. Woodhull, na qual este artigo é baseado
...