- Introdução
- Versões existentes
- Estrutura interna do Minix
- O básico do básico do editor VIM
- Quick Start para os ansiosos
- Outros sites
Este material é baseado no original do mestrando Marcelo Veiga (link).
Introdução
O Minix é um sistema operacional gratuito desenvolvido por Andrew Tanenbaum para compensar a proibição da AT&T contra o estudo de SO baseado no código UNIX e prover uma ferramenta de ensino para seus alunos. Originalmente foi projetado para ser compatível com a versão 7 do UNIX e em seguida passou a ser desenvolvido baseado no padrão POSIX. O Minix foi escrito a partir do zero e mesmo sendo compatível com UNIX, não contém código AT&T possibilitando sua distribuição livremente.
Versões existentes
O Minix 1 e 2 são entendidos como ferramentas de ensino. A versão 3 tem por objetivo se tornar usável em computadores com recursos limitados, sistemas embarcados e aplicações que demandam grande 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
- kernel reescrito e reduzido em 4000 linhas de código
- suporte completo a multiprogramação e multiusuário
- drivers de dispositivos executam como processos de usuário
- linguagens: cc, gcc, g++, perl, python, etc.
- inclusão de vários novos programas
A versão 3 do Minix é descrito na terceira edição do livro "Operating Systems: Design and Implementation 3nd Edition" (OSDI 3) de Andrew S. Tanenbaum e Albert S. Woodhull.
Estrutura interna do Minix
O Minix é estruturado em 4 camadas:
Camada 1: Kernel. Trata serviços de baixo nível necessários para a execução do sistema como o gerenciamento de interrupções, traps, escalonamento e comunicação. Os códigos que lidam com a parte mais baixo nível das interrupções são escritos em assembly. O restante desta camada e as demais acima são escritas em C.
Camada 2: Drivers de dispositivos. Os processos que tratam de E/S (I/O tasks) se encontram nessa camada. Entre os dispositivos podemos citar discos, terminais, placas de rede e relógios. Estes processos equivalem aos drivers de dispositivos, comuns em outros SO's. Todos os processos desta camada são ligados ao código da primeira camada formando um programa binário único chamado kernel.
Camada 3: Processos de servidor. Esta camada contém processos que fornecem serviços úteis para os processos de usuário como, por exemplo, gerenciamento de memória (MM), sistema de arquivos (FS), rede, etc.
Camada 4: Processos de usuário. Os processos de usuário como shells, editores, compiladores e demais programas se encontram nesta camada.
Instalação
Esta seção descreve o processo de instalação/utilização do Minix em três cenários diferentes: nativamente em um computador, a partir de um Live CD e utilizando emuladores.
Nativamente no computador
O processo de instalação do Minix 3 nativamente em um computador é descrito em http://www.minix3.org/doc/A-312.html.
Também é possível utilizar o Minix em um computador que possui outros sistemas operacionais instalados, como o Linux. Para tanto, basta adicionar a partição bootável do Minix no LILO ou GRUB. Informações adicionais podem ser encontradas neste link.
Live CD
O Live CD trata-se do CD de instalação do Minix 3. O Live CD pode ser obtido no site do Minix 3 (http://www.minix3.org/download) ou localmente aqui.
VMware
A vantagem de usar um emulador é a possibilidade de lançar um sistema operacional diferente, realizar alterações em seu código e depurá-lo sem a necessidade de reiniciar o computador.
VMware Workstation é um programa de virtualização que permite a criação e execução de múltiplas máquinas virtuais em um mesmo computador. Uma máquina virtual é um computador com configurações de hardware e sistema operacional definidas em software. O VMware Workstation é um software comercial que está disponível para diversos sistemas operacionais, como Linux e Windows.
VMware Player é uma versão limitada, porém gratuita que permite a execução e modificação de uma máquina virtual previamente criada pelo VMware Workstation. A última versão pode ser obtida em http://www.vmware.com/products/player ou localmente aqui. Um tutorial sobre a instalação em Linux pode ser encontrado neste link.
O site oficial do Minix 3 disponibiliza imagens pré-instaladas em http://www.minix3.org/vmware.html. As versões disponíveis localmente são:
- Minix 3.1.2a para teclados ABNT (link)
- Minix 3.1.2a para teclados americanos (link)
- Minix 3.1.2a CDROM (link)
Auxiliares:
- Mapa de teclado ABNT-2 (br-abnt2.map, br-abnt2.src)
- WinRAR (link)
Bochs
Bochs é um emulador de PC IA-32 (x86) disponível para Windows e Linux. A última versão do Bochs pode ser obtida em http://bochs.sourceforge.net. A imagem utilizada está disponível aqui.
Mais informações:
- Minix on the Bochs Emulator: http://minix1.woodhull.com/faq/bochs.html.
- Minix on Bochs on Windows How-to: http://minix1.woodhull.com/faq/bxmxhowto.html.
QEMU
QEMU é um emulador genérico e Open Source que permite emular um sistema completo (por exemplo, um PC), incluindo o processador e vários periféricos. A última versão do QEMU pode ser obtida em http://fabrice.bellard.free.fr/qemu.
As imagens disponíveis são:
Execute o QEMU com o comando:
$ tar -xvzf minix3_1_2a-qemu-abnt.tar.gz$ cd minix3_1_2a-qemu-abnt$ qemu -m 128 -serial "file:serialport.file" -hda minix-3_1_2a-qemu.img
Dessa forma é possível se usar o arquivo serialport.file como saida de uma porta serial.
Noções básicas sobre Minix
Comandos básicos
A idéia inicial do Minix era ser um clone do Unix. Desta forma, os comandos básicos do Minix são os mesmos disponíveis em sistemas Unix como, por exemplo, no Linux. Os dois principais editores de arquivos do Minix são o vi e o elle (ELLE Looks Like Emacs). Um manual de referência para o vi pode ser obtido em http://drumlin.thehutt.org/vi.
A seguir são mostrados alguns comandos Minix/UNIX necessários para começar a utilizar o sistema.
Criar um diretório:
$ mkdir diretorio
Acessar um diretório:
$ cd diretorio
Listar o conteúdo do diretório corrente:
$ ls -l
Apagar um arquivo:
$ rm arquivo
Compilar um programa:
$ cc hello.c$ ./a.outou$ cc -o hello hello.c$ ./hello
Mudar as permissões de um arquivo:
# neste caso, adicionar a permissao de execucao a um arquivo$ chmod +x arquivo
Executar um programa:
# em segundo plano (ou background)$ ./programa &# em primeiro plano (ou foreground)$ ./programa
Executar um shell script:
$ sh script.sh
Exibe o estado e PID dos processos em execução:
$ ps -x
Mata um processo:
$ kill PID
Para mais informações:
- Lista completa dos manuais disponíveis do Minix 3: http://www.minix3.org/manpages/index.html
- Programming in the MINIX 3 Environment: http://www.minix3.org/doc/environ.html
Compilando um kernel
O código-fonte do Minix está localizado no diretório /usr/src. Após alguma modificação no código, é necessário recompilar e criar um novo kernel. Para compilar:
# cd /usr/src/tools# make
Nesse ponto o kernel apenas foi compilado, agora é necessário gerar e instalar a imagem do kernel.
# cd /usr/src/tools# make install
A imagem do kernel é armazenada no diretório /boot/image. Cada vez que um kernel é compilado, uma cópia da imagem é armazenada neste diretório. Quando o computador for reiniciado, o Minix irá carregar a versão mais nova (último kernel compilado).
# ls -a /boot/image. .. 3.1.2a 3.1.2ar0 3.1.2ar1
Se forem realizadas modificações no gerenciamento de processos, também é necessário recompilar o comando ps para exibir corretament os processos no novo ambiente.
# cd /usr/src/commands/ps# make# cp ps /usr/bin# chown root /usr/bin/ps# chmod 4755 /usr/bin/ps
Para que as alterações tenham efeito reinicie o sistema:
# shutdown -R
O básico do básico do editor VIM
O ambiente disponibilizado para a execução do Minix é uma console texto sem nenhum suporte a ambientes gráficos. Neste caso é necessário realizar as tarefas que habitualmente se está acostumado a fazer com ferramentas gráficas com seu equivalente em modo texto.
O VIM é um editor de texto. Ele é uma evolução de um outro editor bastante conhecido no mundo UNIX, o vi. Apesar de parecer rudimentar ele oferece uma série de funcionalidades bastante úteis. A grande vantagem de se conhecer um editor de textos como o vi é poder interagir com um sistema instalado quando a interface gráfica, por uma ou outra razão, não funciona. Normalmente, para repará-la, é necessário editar arquivos de configuração... Portanto, o vi (e similares) resta como a única alternativa (Em caso de dúvida de sua utilidade, pergunte a um administrador de redes competente).
Você pode obter uma breve explanação dos principais comandos e uso do VIM no documento vimqrc.pdf.
Quick Start para os ansiosos
- Instale o VMware Player (http://www.vmware.com/products/player, mirror na ufrgs)
- Descompacte a imagem do sistema Minix (minix) para teclados que seguem a norma brasileira (ABNT) ou (minix) para teclados US Internacional.
- Inicie o emulador e carregue o arquivo MS-DOS.vmx
- Logue como root e digite ENTER quando for solicitado senha
Outros sites
- Minix 3 Complete Documentation (http://www.minix3.org/doc)
- Minix Tips (http://www.minixtips.com)
- MINIX: what is it, and is it still relevant? (http://www.freesoftwaremagazine.com/articles/minix)
- outros virão ...
Última atualização em 18/08/2008.
Mais instalando o Minix ---->
Fonte:
https://www.inf.ufrgs.br/~johann/sisop1/minixpage/
0 comments:
Postar um comentário