instalando o minix 3

17
Instalando o Minix 3 Por Nícholas André Oliveira em 26 de fevereiro de 2009 às 11h13 0 Nesta dica vou tentar mostrar para vocês um pouco do Minix 3. O teste foi feito dentro de uma máquina virtual, como mostrarei adiante. A máquina virtual utilizada foi o Virtual Box. Para quem não sabe o Minix foi criado por Andrew Tanenbaum, para que os alunos da faculdade onde ele ensinava estudassem a arquitetura de um sistema operacional, uma vez que o código fonte do Minix também é livre, porém sob a licença BSD. Linus Torvalds criou o Linux com base no Minix, e o Linux é então considerado um clone do Minix, porém ele se tornou um sistema mas avançado e desenvolvido, que é o que temos hoje. O Minix possuiu um microkernel, ou seja, o kernel é composto de poucas linhas, e os drives/módulos dos diversos periféricos são arquivos a parte, o que torna o kernel enxuto, com pouco mais de 5 mil linhas. Já o Linux possui um kernel monolítico em que os drivers são compilados com o kernel, assim ocupando cerca de 5 milhões de linhas de código (entretanto o Kernel do Linux também pode ser modularizado). Para baixar o Minix 3 entre no site oficial, vá para seção downloads e baixe a imagem que for melhor para você http://www.minix3.org/ . Eu optei por fazer a instalação numa máquina virtual, então baixei o IDE-CDROM. Como citado no início do texto, eu utilizei o Virtual Box como máquina virtual para o meu teste. Configurando o Virtual Box Esta é a tela inicial do Virtual Box, clique em Novo para adicionar uma máquina virtual, na janela seguinte clique em próximo.

Upload: allsan27

Post on 30-Jun-2015

731 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instalando o Minix 3

Instalando o Minix 3

Por Nícholas André Oliveira em 26 de fevereiro de 2009 às 11h13

0

Nesta dica vou tentar mostrar para vocês um pouco do Minix 3. O teste foi feito dentro de uma máquina virtual, como mostrarei adiante. A máquina virtual utilizada foi o Virtual Box.

Para quem não sabe o Minix foi criado por Andrew Tanenbaum, para que os alunos da faculdade onde ele ensinava estudassem a arquitetura de um sistema operacional, uma vez que o código fonte do Minix também é livre, porém sob a licença BSD.

Linus Torvalds criou o Linux com base no Minix, e o Linux é então considerado um clone do Minix, porém ele se tornou um sistema mas avançado e desenvolvido, que é o que temos hoje.

O Minix possuiu um microkernel, ou seja, o kernel é composto de poucas linhas, e os drives/módulos dos diversos periféricos são arquivos a parte, o que torna o kernel enxuto, com pouco mais de 5 mil linhas. Já o Linux possui um kernel monolítico em que os drivers são compilados com o kernel, assim ocupando cerca de 5 milhões de linhas de código (entretanto o Kernel do Linux também pode ser modularizado).

Para baixar o Minix 3 entre no site oficial, vá para seção downloads e baixe a imagem que for melhor para você http://www.minix3.org/. Eu optei por fazer a instalação numa máquina virtual, então baixei o IDE-CDROM.

Como citado no início do texto, eu utilizei o Virtual Box como máquina virtual para o meu teste.

Configurando o Virtual Box

Esta é a tela inicial do Virtual Box, clique em Novo para adicionar uma máquina virtual, na janela seguinte clique em próximo.

Aqui você deve dar um nome para a máquina virtual e em 'Tipo de sistema' selecione 'Other/Unknown'. Na próxima tela, você deverá escolher a quantidade de memória RAM para a máquina virtual, eu escolhi 128 MB. Já na tela adiante você deverá criar o disco rígido - eu optei por 8GB.

Page 2: Instalando o Minix 3

Quem tiver problemas no restante da configuração, pode dar uma olhada neste artigo:http://computacaolivre.blogspot.com/2008/12/iniciando-no-mundo-linux-parte-1.html.

Bootando pela ISO

Selecione a máquina virtual recém criada, e vá em configurações > CD/DVD-ROM , marque 'Arquivo de imagem ISO' e selecione a imagem baixada.

Em seguida clique em Iniciar.

Instalando o Sistema

Page 3: Instalando o Minix 3

Essa é a imagem no VirtualBox que você vai receber apos inicializar o Minix, digite 'root' e você poderá então começar a instalação. Após efetuar o logindigite 'setup' para começar a instalação.

Nesta tela você configura o seu teclado. Para nós brasileiros, devemos escolher a opção latin-america e então apertar enter.

Logo após devemos escolher que tipo de instalação queremos, a mínima ou completa. Selecione F de Full(completa) e logo após dê enter.

Page 4: Instalando o Minix 3

Já nesta tela podemos particionar o disco, você pode dar enter para o modo "step-by-step" (passo-a-passo) de particionamento ou o modo expert. Vamos dar enter para ir para o modo básico, contudo, para ir para o expert basta digitar expert.

Nesta tela selecionamos o disco, e como só temos 1, devemos digitar 0 e dar enter. Na próxima tela também devemos digitar 0 e dar enter, pois ele vai pedir a região do disco rígido a usar e como só temos uma devemos digitar 0 e dar enter.

Em seguida devemos confirmar digitando yes para podermos prosseguir.

Page 5: Instalando o Minix 3

Neste momento devemos informar o tamanho da partição /home, eu optei por utilizar 804MB, você deve digitar em MB o tamanho da partição. Na próxima tela, devemos informar o tamanho do bloco do sistema de arquivos, eu escolhi utilizar o padrão, a não ser que você saiba o que está fazendo poderá utilizar outro tamanho. Digite 4 e dê enter.

A instalação começará, e após finalizar basta digitar 'shutdown' para reiniciar e entrar na tela do boot loader (gerenciador de boot).

MINIX

Introdu �� o Diferen � a entre vers � es Instala �� o

o Nativamente no computador o Live CD

Page 6: Instalando o Minix 3

o Usando emuladores VMware BOCHS QEMU

Estrutura interna do Minix o Gerencia de processador (escalonamento) o Gerencia de mem � ria o Sistema de arquivos

Compilando um kernel Comandos b � sicos do Minix Sugest � es de trabalhos

o Modificar o escalonador do Minix o Gerencia de mem � ria o Sistema de arquivos

Introdu��o

O Minix � um sistema operacional gratuito, com o c�digo fonte dispon�vel e compat�vel com a vers�o 7 do UNIX. Minix foi desenvolvido por Andrew Stuart Tanenbaum, originalmente para compensar a proibi��o da AT&T contra o estudo de SO baseado no c�digo do UNIX e prover uma ferramenta de ensino para seus alunos. Vale citar que Minix foi escrito do "zero" e apesar de ser compat�vel com Unix, n�o cont�m nenhum c�digo da AT&T e por isso pode ser distribu�do livremente.

Este relat�rio tem como objetivo obter informa��es para a utiliza��o de Minix em um curso de sistemas operacionais. TODOS os processos de compila��o, instala��o e testes descritos neste relat�rio foram verificados na pr�tica.

Diferen�a entre vers�es

Minix 1 e 2 s�o entendidos como ferramentas de ensino. Na vers�o 3, Minix adiciona um novo objetivo, se tornar us�vel como um sistema s�rio para computadores embarcado e com recursos limitados e para aplica��es que requerem uma 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, baseado nas vers�es anteriores do Minix, mas � fundamentalmente

Page 7: Instalando o Minix 3

diferente em muitos pontos. Entre as novas funcionalidades da vers�o 3, pode-se citar: adi��o de suporte a rede via TCP/IP, inclus�o de X Window System, o kernel foi reescrito e reduzido em 4000 linhas de c�digo, suporte completo a multiprograma��o e multiusu�rio, device drivers executam como processos de usu�rio e inclus�o de v�rios novos programas.

A vers�o 2 do Minix � descrita na segunda edi��o do Livro "Operating Systems: Design and Implementation 2nd Edition" (OSDI 2) de Andrew S. Tanenbaum e Albert S. Woodhull. Para estudar a vers�o � necess�rio a terceira edi��o do livro. Este relat�rio foi escrito baseando-se no OSDI 2 e a vers�o do Minix utilizada na maioria dos testes � a 2.0.4.

Mais Informa��es:

Short list of differences between 2.0 and 2.0.4: http://minix1.woodhull.com/pub/demos-2.0/VMWarePlayer/changes.txt

Minix 3 - Improvements since V2: http://www.minix3.org/improvements.html

Instala��o

Esta se��o descreve o processo de instala��o/utiliza��o de 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 2 nativamente em um computador � descrito em http://minix1.woodhull.com/current/2.0.4/wwwman/man8/usage.8.html.

Tamb�m � poss�vel utilizar Minix em um computador que possui outras sistemas operacionais instalados, como por exemplo Linux. Basta, para isso, adicionar a parti��o boot�vel do Minix no LILO.

Mais informa��es:

Booting Minix from LILO Linux Bootloader: http://minix1.woodhull.com/faq/lilomx.html

Exchanging Data between Minix and Other OS File Systems: http://minix1.woodhull.com/faq/datxchng.html

Page 8: Instalando o Minix 3

Live CD

Tanto a vers�o 2 quanto a vers�o 3 do Minix possuem distribui��o Live-CD. O Live CD do Minix 2.0.3 pode ser obtido em http://studia.elka.pw.edu.pl/prog/minix/download/m203CD08iso.gz. O Live CD do Minix 3 pode ser obtido em http://www.minix3.org/download/index.html (escolha a op��o IDE CD-ROM).

Mais informa��es:

CD-based Minix 2.0.3 distribution: http://minix1.woodhull.com/faq/minixcd08.html

Usando emuladores

Uma outra op��o � a utiliza��o de emuladores. A vantagem de usar um emulador � a possibilidade de lan�ar um diferente sistema operacional, realizar altera��es no seu c�digo e depura-lo sem a necessidade de reiniciar o computador. A seguir demonstra-se como utilizar Minix com os emuladores QEMU, BOCHS e VMWare.

VMware

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��o de hardware e sistema operacional definido em software. VMware Workstation � um software comercial que est� dispon�vel para diversos sistemas operacionais, incluindo Windows e Linux.

VMware Player � uma vers�o limita, por�m gratuita, que permite a execu��o e modifica��o de uma m�quina virtual previamente criada por VMware Workstation. A �ltima vers�o pode ser obtida em http://www.vmware.com/download/player/. Descompacte o pacote e execute o script de instala��o. Procure aceitar os valores default. A vers�o para Windows cont�m um wizard de instala��o bastante intuitivo.

$ tar xzf VMware-player-1.0.2-29634.tar.gz $ cd vmware-player-distrib # ./vmware-install.pl

Uma m�quina virtual contendo Minix 2.0.4 pode ser obtida em http://minix1.woodhull.com/pub/demos-2.0/VMWarePlayer/minix204vmwp01.zip. Descompacte o arquivo para criar um diret�rio

Page 9: Instalando o Minix 3

minix204_32MB_512MB. Dentro deste diret�rio, o arquivo README.txt descreve como iniciar o Minix dentro do VMWare. nenhuma configura��o especial � necess�ria. Recentemente, tamb�m foi disponibilizada uma m�quina virtual com a vers�o 3.1.1 do Minix (http://www.minix3.org/download/minix3_1_1_small_vmware_256MB_1GB.zip). No Windows, basta carregar o .vmx.

$ unzip minix204vmwp01.zip $ cd minix204_32M_512MB

Executar VMware Player e carregar a m�quina virtual do Minix:

$ vmplayer

Mais informa��es:

Minix 2.0.4 Virtual Machine for VMWare Player: http://minix1.woodhull.com/pub/demos-2.0/VMWarePlayer/

How to use VMware Player to create your own images: http://software.newsforge.com/article.pl?sid=06/05/16/1940214

BOCHS

Bochs � um emulador de PC IA-32 (x86) dispon�vel para Windows e Linux. A �ltima vers�o de Bochs pode ser obtida em http://bochs.sourceforge.net/ (neste exemplo, utilizou-se a vers�o 2.2.6).

$ tar xvfz bochs-2.2.6.tar.gz $ cd bochs-2.1 $ ./configure $ make # make install

Ap�s a instala��o do emulador Bochs, realizar o download da imagem do Minix 2.0.4 dispon�vel em http://minix1.bio.umass.edu/pub/contrib/mx204bx01.zip.

$ unzip mx204bx01.zip $ cd minix204 $ bochs -q -f minix.bxrc

Mais informa��es:

Minix on the Bochs Emulator: http://minix1.woodhull.com/faq/bochs.html

Page 10: Instalando o Minix 3

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 de QEMU pode ser obtida em http://www.qemu.com/ (neste exemplo, utilizou-se a vers�o 0.8.2).

$ tar xzf qemu-0.8.2-i386.tar.gz -C /

Ap�s a instala��o do emulador QEMU, realizar o download da imagem do Minix 2.0.4 (mesma imagem do BOCHS, dispon�vel em http://minix1.bio.umass.edu/pub/contrib/mx204bx01.zip).

$ unzip mx204bx01.zip $ cd minix204 $ qemu -m 16 -hda minix.img -hdachs 200,16,63

Mais informa��o:

Minix on Qemu Step-by-step: http://minix1.woodhull.com/faq/qemumx.html

Estrutura interna do Minix

Minix � estruturado em quatro camadas, cada uma com uma fun��o bem definida. A camada 1 trata todas as interrup��es e traps, realiza escalonamento e prov�, para todas as camadas superiores, um modelo de processos independentes que se comunicam atrav�s de mensagens. A parte de tratamento de interrup��es em mais baixo n�vel � escrita em assembly e todo o resto em C.

A camada 2 cont�m os processos de E/S (I/O tasks), um para cada tipo de dispositivo. Estes processos equivalem aos drivers de dispositivos, comuns em outros SOs. Todas as I/O tasks da camada 2 s�o ligadas ao c�digo da primeira camada formando um programa bin�rio �nico, chamado kernel.

A camada 3 cont�m os processos que prov�m servi�os �teis aos processos de usu�rio como, por exemplo, gerencia de mem�ria (MM), sistema de arquivos (FS), rede, etc. Finalmente, a camada 4 cont�m todos os processos de usu�rio como shells, editores, compiladores e demais programas de usu�rios.

Page 11: Instalando o Minix 3

Para mais informa��es:

Livro OSDI 2: p�ginas 93 e 94.

Gerencia de processador (escalonamento)

O gerenciamento do processador � feito usando um sistema multin�vel de filas contendo 3 filas, uma para as I/O tasks, uma para os servidores e outra para os processos de usu�rio. Os processos das duas primeiras camadas executam at� bloquear, isto �, n�o podem ser preemptados pelo clock. J� os processos da terceira camada s�o escalonados usando round robin. Tasks possuem uma maior prioridade, seguidas dos servidores (gerenciador de mem�ria e sistema de arquivos). Os processos de usu�rio s�o os que possuem a menor prioridade.

A cada tick do clock, o escalonador verifica se o processo em execu��o � um processo de usu�rio que j� executou por mais de 100 msec. Neste caso, o escalonador escolhe um novo processo que esteja esperando pela CPU e move o processo que estava executando para o fim da fila. Se n�o existir nenhum processo pronto para ser executado nas filas, o processo IDLE � escolhido.

Para mais informa��es:

Livro OSDI 2: p�gina 140.

Gerencia de mem�ria

Sistema de arquivos

Compilando um kernel

O c�digo fonte de 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

Se foram realizadas modifica��es no gerenciamento de processos, tamb�m � necess�rio recompilar o comando ps para exibir corretamente os processos no novo ambiente.

# make ps # cp ps /usr/bin

Page 12: Instalando o Minix 3

# chown root /usr/bin/ps # chmod 4755 /usr/bin/ps

Nesse ponto o kernel apenas foi compilado, agora � necess�rio gerar e instalar o a imagem do kernel.

# make hdboot

A imagem do kernel � armazenada no diret�rio /minix. Cada vez que um kernel compilado, uma c�pia da imagem � armazenada neste diret�rio. Quando o computador for reiniciado, Minix ir� carregar a vers�o mais nova (�ltimo kernel compilado).

# ls /minix . .. minix minix20r0 minix20r1

Comandos b�sicos do Minix

A id�ia inicial do Minix era ser um clone do Unix. Desta forma, os comando 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 vi e elle (ELLE Looks Like Emacs). Um manual de referencia 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 directory name

Acessar um diret�rio:

$ cd directory name

Listar o conte�do do diret�rio corrente.

$ ls -l

Apagar um arquivo:

$ rm filename

Compilar um programa:

Page 13: Instalando o Minix 3

$ cc hello.c $ ./a.out # ou $ cc -o hello hello.c $ ./hello

Mudar as permiss�es de um arquivo:

# neste caso, adicionar permiss�o de execu��o a um arquivo $ chmod +x filename

Executar um programa:

# em background $ ./filename& # em foreground $ ./filename

Executar um shell script:

$ sh filename

Exibe estado e PID dos processos em execu��o:

$ ps -x

Matar um processo:

$ kill pid

Para mais informa��es:

Lista completa dos comando dispon�veis no Minix 2.0.4 (Minix Manual Pages): http://minix1.woodhull.com/current/2.0.4/wwwman/

Sugest�es de trabalhos

Modificar o escalonador do Minix

Gerencia de mem�ria

Sistema de arquivos