• Nenhum resultado encontrado

Bruno Ribeiro da Silva. O port de um sistema operacional: uma abordagem ao port do Minix 3 para o Nintendo DS (Rascunho)

N/A
N/A
Protected

Academic year: 2021

Share "Bruno Ribeiro da Silva. O port de um sistema operacional: uma abordagem ao port do Minix 3 para o Nintendo DS (Rascunho)"

Copied!
18
0
0

Texto

(1)

Bruno Ribeiro da Silva

O port de um sistema operacional: uma abordagem

ao port do Minix 3 para o Nintendo DS (Rascunho)

Florianópolis, SC 2 de Julho de 2007

(2)

Bruno Ribeiro da Silva

O port de um sistema operacional: uma abordagem

ao port do Minix 3 para o Nintendo DS (Rascunho)

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação

Orientador:

Luís Fernando Friedrich

UNIVERSIDADE FEDERAL DESANTA CATARINA

DEPARTAMENTO DE INFORMÁTICA EESTATÍSTICA

CURSO DECIÊNCIAS DA COMPUTAÇÃO

Florianópolis, SC 2 de Julho de 2007

(3)

Bruno Ribeiro da Silva

O port de um sistema operacional: uma abordagem ao port do Minix 3 para o Nintendo DS (Rascunho)

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação.

Prof. Luís Fernando Friedrich Orientador

Prof. Luiz Cláudio Villar dos Santos Avaliador da banca

José Mazzucco Jr. Avaliador da banca

(4)

RESUMO

Os sistemas operacionais são peças chave na utilização de um computador, são eles que nos fornecem o acesso aos dispositivos contidos no mesmo. O principal componente de um com-putador é sua unidade central de processamento, ou somente processador. É ela que executa todas as instruções lógicas de um sistema operacional. Este trabalho aborda a adaptação de um sistema operacional e sua reprogramação para a execução sobre um diferente processador. Tra-tando dos segmentos de código de um sistema operacional que são extremamente dependentes do conjunto de instruções da arquitetura do processador.

(5)

SUMÁRIO

1 Introdução p. 6 1.1 Sobre o Minix 3 . . . p. 7 1.2 Sobre o Nintendo DS . . . p. 7 2 Tipos de sistemas p. 8 2.1 Definição geral . . . p. 8 2.2 O sistema para a Biologia . . . p. 8 2.3 O sistema para a Sociologia . . . p. 8 2.4 O sistema para a Computação . . . p. 8 2.4.1 O conceito de sistema operacional para a Computação . . . p. 9

3 O ambiente de desenvolvimento p. 10 3.1 Os hardwares envolvidos . . . p. 10 3.2 Nintendo DS . . . p. 10 3.2.1 O loader . . . p. 10 3.3 As ferramentas lógicas . . . p. 10 3.3.1 O emulador . . . p. 11 3.3.2 O compilador . . . p. 11

4 Portando um sistema operacional p. 12

4.1 Aumentando a portabilidade do código . . . p. 12 4.1.1 Melhorando a estrutura organizacional . . . p. 12

(6)

5 As arquiteturas envolvidas p. 13 5.1 A arquitetura fonte (host) . . . p. 13 5.1.1 IBM PC . . . p. 13 5.2 A arquitetura destino (target) . . . p. 13 5.2.1 ARM7 . . . p. 13 5.2.2 ARM9 . . . p. 13 6 Minix DS p. 14 6.1 O bootloader . . . p. 14 6.2 O kernel . . . p. 14 6.2.1 A organização do kernel . . . p. 14 6.3 Gerência de memória . . . p. 14 6.4 Entrada e saída . . . p. 14 6.5 Os drivers . . . p. 14

7 Para trabalhos futuros p. 15

8 Conclusão p. 16

(7)

6

1

INTRODUÇÃO

Os computadores hoje são ferramentas indispensáveis, tanto para trabalhos que necessitem da interação humana como para trabalhos que precisem de autonomia. A maneira de como os computadores operam segue um determinado padrão, é necessário um hardware específico e uma camada de software que nos permite a execução de softwares terceiros. Esta camada intermediária de software que nos possibilita a utilização de todos os componentes de hardware contidos em um computador é chamada de sistema operacional.

Um sistema operacional fornece um ambiente no qual o usuário possa executar seus pro-gramas de maneira que ele não precise se preocupar em como manipular os componentes de hardware. Seu objetivo principal é, então, prover a utilização de um computador de forma mais eficiente e mais conveniente, Oliveira, Carissimi e Toscani (2004, p. 2)

Por advento da arquitetura de um computador permitir que possamos agregar novos compo-nentes, sejam eles de diferentes fabricantes, modelos e com suas características próprias, surge um problema no desenvolvimento dos sistemas operacionais que é: como fazer para que um sistema operacional possa lidar com os diferentes dispositivos e até mesmo os que no futuro possam vir a ser construídos?

O principal componente em um computador é a sua unidade central de processamento (UCP) vulgarmente chamado de processador, é ele quem executa todas as operações lógicas e é sobre ele que um sistema operacional executa suas instruções.

Com foco na pergunta anteriormente feita, levanta-se uma outra questão, como é que um sistema operacional então pode ser desenvolvido de forma que ele possa executar suas instru-ções em um diferente processador? Como é que isto pode ser feito de maneira eficiente? De que maneira é possível estruturar o sistema de modo que ele possa ser reprogramado facilmente para outro processador? Estes são os objetivos fundamentais deste projeto.

(8)

7

1.1

Sobre o Minix 3

O Minix 3 é um novo sistema operacional de código aberto projetado para ser altamente confiável, flexível e seguro. Ele é livremente baseado nas prévias versões do Minix mas é fundamentalmente diferente em muitos caminhos chave. Os Minix 1 e 2 tinham a intenção de serem ferramentas de aprendizado. O Minix 3 adiciona um novo ponto de partida para ser usado como um sistema sério em computadores com recursos limitados ou sistemas embarcados e para aplicações que necessitem de alta confiabilidade.

Esse novo sistema operacional é extremamente pequeno, com a parte que executa em modo kernel sob 4 mil linhas de código. As suas partes que executam em modo de usuário são divi-didas em pequenos módulos. Por exemplo, cada driver de dispositivo roda como um processo separado à nível de usuário, então se ocorrer um erro no driver (drivers de dispositivo são a maior fonte de erros em qualquer sistema operacional), este não consegue comprometer todo o sistema.

1.2

Sobre o Nintendo DS

O Nintendo DS é um dispositivo de jogo portátil desenvolvido pela Nintendo Compania Ltda. Comumente abreviado por NDS, é um dispositivo dotado de duas telas LCDs (Liquid Crystal Display) de 3 polegadas cada, ambas com resolução de 256x192 pixels. A tela inferior é do tipo sensível ao toque e é utilizada como dispositivo de entrada e saída. A entrada nesta tela inferior é feita por uma caneta plástica das mesmas utilizadas em computadores de mão.

Como dispositivos periféricos exclusivamante de entrada o NDS é dotado de um controle direcional de eixos X e Y, 4 botões e ainda um microfone embutido. O videogame também é dotado de alto-falantes para a emissão sonora dos eventos do sistema, incluindo os efeitos sonoros dos jogos. A unidade ainda apresenta um dispositivo de comunicação wireless para acesso à internet, chat ponto-a-ponto e jogo com multijogadores.

O sistema utiliza-se de dois processadores de arquitetura ARM para o processamento dos jogos. O processador principal, responsável por todo o processamento lógico dos jogos, é um ARM946E-S com velocidade de clock de 67 MHz, já o co-processador, responsável pelo processamento referente à todos os dispositivos periféricos, é um ARM7TDMI com velocidade de clock de 33MHz, ambos compartilham de 4MB de memória RAM. (WIKIPéDIA, 2007)

(9)

8

2

TIPOS DE SISTEMAS

2.1

Definição geral

Sistema (do grego syst¯ema) é um conjunto de entidades, reais ou abstratas, compondo um todo onde cada componente interage com ou está relacionada a pelo menos um outro compo-nente e todos eles servem á um objetivo comum. Qualquer objeto que não tenha relação com qualquer outro elemento do sistema não faz parte deste sistema mas sim do ambiente do sis-tema. Um subsistema é então um conjunto de elementos que formam um sistema por si só e fazem parte de um sistema maior.

Cada divisão ou agregação de entidades reais em sistemas é arbitrário, portanto é um con-ceito abstrato subjetivo.

2.2

O sistema para a Biologia

Esta seção é dedicada à uma breve explanação do conceito de sistema aplicado às ciências biológicas.

2.3

O sistema para a Sociologia

Esta seção é dedicada à uma breve explanação do conceito de sistema aplicado às ciências sociais.

2.4

O sistema para a Computação

Esta seção é então dedicada a uma aprofundade explanação do conceito de sistema aplicado às ciências da computação.

(10)

9

2.4.1

O conceito de sistema operacional para a Computação

Esta subseção traz então a definição do conceito completo de sistema operacional, única e exclusivamente aplicada às ciências da computação.

(11)

10

3

O AMBIENTE DE

DESENVOLVIMENTO

Capítulo dedicado à descrição e explanação do ambiente de desenvolvimento escolhido para a realização do projeto de conclusão de curso. O ambiente de desenvolvimento está separado em duas seções, dividas pelo papel que apresentam referente à lógica e ao hardware.

3.1

Os hardwares envolvidos

Esta seção envolve os componentes e hardwares utilizados tanto para o desenvolvimento quanto para os testes do port do Minix 3.

3.2

Nintendo DS

A descrição detalhada de todos os componentes de hardware do Nintendo DS será feita nesta seção.

3.2.1

O loader

O loader é um periférico necessário para executar aplicações homebrew no Nintendo DS, por ser de vital importância no projeto possui esta subseção para explicação de seu funciona-mento.

3.3

As ferramentas lógicas

Todas as ferramentas lógicas, entendidas por softwares utilizados durante o projeto serão descritas nesta seção.

(12)

11

3.3.1

O emulador

O emulador de Nintendo DS é uma peça chave na realização de testes rápidos e de depura-ção de código, o que justifica uma subsedepura-ção de explicadepura-ção mais detalhada.

3.3.2

O compilador

O compilador por ser o responsável em gerar os binários de máquina, aqueles que efetiva-mente serão executados pelo processador, terá também uma subseção de maior importância no capítulo corrente.

(13)

12

4

PORTANDO UM SISTEMA

OPERACIONAL

Este capítulo tem a função de apresentar e discutir métodos de melhoria de código em função da portabilidade.

4.1

Aumentando a portabilidade do código

Esta seção do capítulo trata do que será feito efetivamente ao código fonte do Minix 3 para aumentar a sua portabilidade.

4.1.1

Melhorando a estrutura organizacional

Nesta subseção será abordada a estrutura de organização de diretórios dos códigos fonte do Minix-DS. Essa estrutura tem importantes implicações aos arquivos de Makefile.

(14)

13

5

AS ARQUITETURAS

ENVOLVIDAS

Um capítulo inteiro dedicado ao estudo das arquiteturas envolvidas no processo.

5.1

A arquitetura fonte (host)

A arquitetura fonte não precisa ser fonte de estudo detalhado, já que é uma arquitetura já suportada pelo Minix 3.

5.1.1

IBM PC

5.2

A arquitetura destino (target)

A arquitetura destino é aquela sob a qual o projeto se propõe a portar o Minix. Nesta seção será discutido detalhes da arquitetura ARM, suas características gerais e específicas separadas em subtópicos.

5.2.1

ARM7

Gerência de memória Interrupções Exceções Entrada e saída

5.2.2

ARM9

(15)

14

6

MINIX DS

Este capítulo é todo dedicado ao port propriamente. É aqui que serão discutidas as decisões tomadas e que foram aplicadas ao código fonte. Com explanação sobre cada parte tratada do sistema operacional.

6.1

O bootloader

6.2

O kernel

6.2.1

A organização do kernel

6.3

Gerência de memória

6.4

Entrada e saída

6.5

Os drivers

(16)

15

7

PARA TRABALHOS FUTUROS

Como neste trabalho de conclusão de curso serão apenas portados as mínimas partes ne-cessárias para que o kernel do Minix 3 possa residir em memória e entrar em execução, ficam descritos aqui o que falta a ser feito para que se tenha um port de todo o sistema, como suíte de compiladores, editores de texto, drivers de dispositivo, etc.

(17)

16

(18)

17

REFERÊNCIAS BIBLIOGRÁFICAS

OLIVEIRA, R. S. de; CARISSIMI, A. da S.; TOSCANI, S. S. Sistemas Operacionais. 3. ed. Porto Alegre, Instituto de Informática da UFRGS: Sagra Luzzatto, 2004. 274 p.

WIKIPéDIA, E. colaborativa. Nintendo ds. 2007. Disponível em:

Referências

Documentos relacionados

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

Neste sentido, o presente estudo busca como objetivo principal realizar um revisão de literatura sobre as atuais intervenções realizadas nas empresas com vistas a minimizar os

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Antes de se apresentar as ações de melhoria que dizem respeito ao sistema pull e tendo em consideração que o planeamento da UI de Lamas combina a tipologia