PDF de programación - Minix 3 sobre arquitectura ARM

Imágen de pdf Minix 3 sobre arquitectura ARM

Minix 3 sobre arquitectura ARMgráfica de visualizaciones

Publicado el 4 de Julio del 2018
865 visualizaciones desde el 4 de Julio del 2018
1,2 MB
119 paginas
Creado hace 14a (14/09/2009)
Proyecto de Sistemas Informáticos.

Curso 2008-2009.

MINIX 3 SOBRE
ARQUITECTURA ARM

Componentes del grupo:

J. Adrián Bravo Navarro

Héctor Cortiguera Herrera

Jorge Quintás Rodríguez

Directores del proyecto:

Luis Piñuel Moreno

Manuel Prieto Matías

Facultad de Informática.

Universidad Complutense de Madrid.

Prefacio

En este trabajo detallamos el proceso de desarrollo de un port del sistema
operativo Minix 3 a arquitectura ARM. Para una mejor comprensión de este
proceso, es necesario introducir al lector en una serie de conceptos. Por ello,
en primer lugar introducimos Minix 3 y realizamos un análisis de sus aspectos
más importantes. A continuación, exponemos las características más relevan-
tes de la arquitectura ARM, comparándola con la arquitectura x86 en algunos
puntos relevantes para nuestro trabajo. En las secciones siguientes mostramos
la relevancia del proyecto, enumeramos los objetivos iniciales y el estado fi-
nal que ha alcanzado el desarrollo. Posteriormente describimos en detalle los
entresijos de la implementación, centrándonos en los aspectos más relevantes.
Debido a su importancia, a continuación se dedica una sección para introducir
al lector en el entorno de desarrollo que hemos utilizado, sus componentes y su
utilidad, ya que este entorno es un componente crucial del proceso de imple-
mentación, y su configuración no es un asunto trivial. Finalmente, exponemos
las dificultades con las que nos hemos encontrado en la realización del proyec-
to, así como el alcance final del mismo y las lineas de trabajo futuro que quedan
abiertas.

Palabras clave

ARM, Minix 3, sistemas operativos, system on chip, SoC, microkernel, ker-

nel, dispositivo empotrado.

Abstract

In this work we detail the developing process of porting the Minix 3 opera-
ting system to ARM architecture. For a better understanding of this process, we
should introduce the reader into some basic concepts. Therefore, we first intro-
duce Minix 3 and make an analysis of its main features. Afterwards, we present
the main features of the ARM architecture, comparing with the x86 architecture
in some outstanding points for our project. In the next sections we explain the
importance of our project, list the initial goals and the state the development
has reached. Later we go into details about the internals of the coding process,
focusing in the most significant points. Due to its importance, the next section
is used to introduce the reader into the development environment that we ha-
ve used, its components and usefulness, for this environment is a vital part of
the coding process, and its setup it is not a trivial issue. Finally, we present the
dificulties we have faced during the execution of the project, just as the project
scope and the future work lines to pursue.

Keywords

ARM, Minix 3, operating systemas, system on chip, SoC, microkernel, ker-

nel, Embedded systems.

Cesión de derechos

El código fuente del proyecto se encuentra disponible bajo la licencia GPL
versión 2, descargable de http://www.gnu.org/licenses/gpl-2.0.txt.
Por su parte, la memoria del mismo está disponible bajo la licencia GFDL ver-
sión 1.3, a su vez descargable de http://www.gnu.org/licenses/fdl-1.
3.txt.

Sin perjuicio de lo anterior, J. Adrián Bravo Navarro, Héctor Cortiguera
Herrera y Jorge Quintás Rodriguez, los autores del proyecto y abajo firmantes
autorizamos además a la Universidad Complutense a difundir y utilizar con
fines académicos, no comerciales y mencionando expresamente a sus autores,
tanto la propia memoria, como el código, la documentación y/o el prototipo
desarrollado.

Madrid, a 18 de Septiembre de 2009.

Adrián Bravo

Héctor Cortiguera

Jorge Quintás

Agradecimientos

A mi familia, mamá, papá y Rober, por haberme puesto en el camino. A Vicky por
haber retirado las piedras, y a Cris por haber caminado conmigo. A Jorge y Héctor, por
ser un equipo increíble.

A Cris, por estar siempre conmigo. A mis padres, por haberme ayudado a hacer lo
que quería. A mis amigos y compañeros de sobremesa en la facultad, por aguantar que-
jas cuando las cosas no salían como planeábamos. Y a Adrián y Jorge, por que encontré
a los mejores compañeros de prácticas.

A mi extensa familia (¡sois muchos para poneros a todos!). A Unai y Ana por ale-
grarme la vida. A Pepa e Isidro por ejercer de abuelos. A Franciso, "Viriato", Miguel,
Marcelo y Juan, seguís estando aquí. Con especial cariño a Javi e Isabel, a "Isita", a
Clara, a Paula, a mi bisabuela Clara, a mis abuelos Carmen, José y Concha, a mi tío
Antonio y a mis padres (a vosotros especialmente por aguantarme, sé que no lo pongo
fácil). A los compañeros del viaje que se acaba, sobre todo a Adrián y Héctor por vuestro
fantástico trabajo y por ser los mejores compañeros.

Al restaurante Tokio de Moncloa, por alimentarnos durante las jornadas más in-

tensas.

Al Aula SUN UCM, por cedernos un espacio para reunirnos y trabajar a gusto.

A esta carrera, por haberse terminado.

Índice general

1. Introducción

1.1. Motivación .
. . . . . . . . . . . . . . . . . . . . . . .
1.2. Estructura del documento . . . . . . . . . . . . . . . . . . . . . .

.

.

.

.

.

.

.

2. Minix 3

2.1. Historia de Minix .
2.2.

.

.

.
. . . . . . . . . . . . . . . . . . . . . . .
Introducción a Minix 3 .
. . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Diseño y arquitectura . . . . . . . . . . . . . . . . . . . .
2.2.2. Estructura de Minix 3 . . . . . . . . . . . . . . . . . . . .
2.2.3. Ventajas de la arquitectura . . . . . . . . . . . . . . . . . .
2.2.4. Desventajas de la arquitectura . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Estructuras de datos . . . . . . . . . . . . . . . . . . . . .
2.4.2. Llamadas al sistema y gestión de memoria . . . . . . . .
2.4.3. Cambio de contexto y memoria . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .

.
.

.

.

.

2.3. Gestión de Procesos .
.
2.4. Gestión de Memoria .

2.5. Paso de mensajes .

3. ARM

3.1. Historia de ARM .
3.2. Arquitectura .
.

.

.

.
.

.
.

.
.

. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Modelo de Programación . . . . . . . . . . . . . . . . . .
3.2.2. Extensiones de la arquitectura . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
3.3.1. Segmentación frente a paginación . . . . . . . . . . . . .
3.3.2. Cambio de contexto hardware frente a cambio de contexto
. .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .

software .

. . . . .

. . .

.
.

.
.

.
.

.
.

.

.

.

.
3.4. Nuestra elección .

3.3. ARM frente a Intel

I

1
1
3

5
5
6
7
8
9
10
10
13
14
16
16
17

19
20
22
25
31
35
35

35
36

Índice general

4. Memoria virtual

4.1. Pequeña introducción a la memoria virtual

. . . . . . . . . . . .
4.1.1. Paginación .
. . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2. Segmentación . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3. Segmentación con paginación . . . . . . . . . . . . . . . .
4.2. Memoria virtual en Intel x86 . . . . . . . . . . . . . . . . . . . . .
4.3. Memoria virtual en ARM . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Memory Management Unit . . . . . . . . . . . . . . . . .

5. Minix@ARM

5.1. Objetivos iniciales . .
. . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Objetivos alcanzados . . . . . . . . . . . . . . . . . . . . . . . . .

6. Implementación

.

. . .

. . .

. . . . .

6.1. Multiprogramación . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Scheduler .
. . . . . . . . . . . . . . . . . . . . . . . .
6.3. Memoria virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Paso de mensajes .
. . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Gestión de memoria dinámica . . . . . . . . . . . . . . . . . . . .
Inicialización . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
6.6.
6.6.1. Placa . . .
. . . . . . . . . . . . . . . . . . . . . .
6.6.2. Vectores de interrupción . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1. Temporizadores . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
6.7.2. PIC .
. . .
6.7.3. MMU . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
6.8.1. Mapa de memoria . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
6.8.2. Stackframe . .
. . . . . . . . . . . . . . . . . . . . . . . . . .

6.7. Dispositivos . .

6.8. Definiciones . .

. . . . .
. . . . .

6.9. Minix .

. . .

. . .

.

.

.

.

. . .

7. Entorno de Desarrollo

.
.

. . .
. . .

. . . . . . . . . . . . . . . . . . . . . . . . . .
7.1. Qemu .
.
. . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. U-Boot
.
7.3. Toolchain .
. . . . . . . . . . . . . . . .
7.4. Desarrollo Colaborativo: Launchpad, Bazaar y Dokuwiki . . . .

.
.
. . . . . .

. . . . .

. . .

.
.
.

8. Dificultades

9. Trabajo futuro

II

39
39
40
41
42
43
47
50

55
56
56

57
58
58
58
61
61
62
63
63
65
65
69
70
71
71
72
74

77
77
78
80
80

83

87

Índice general

I

I

I

II

III

IV

IV

V

V

IX

X

XI

XVII

XXI

A. Configuración del Entorno
.

A.1. Instalación .

.

.

.

.

.

.

.

.

.

.

.

. . . . . . . . . . . . . . . . . . . . . .
A.1.1. Software Necesario . . . . . . . . . . . . . . . . . . . . . .
A.1.2. Qemu, tftpd, bridge-utils y uml-utilities . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
A.1.3. DNSmasq .
A.1.4. CodeSourcery Toolchain . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . . .
A.1.5. U-Boot .
.
. . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .

.
A.2. Utilizando el entorno .
.
.
.

A.2.1. Ejecutando .
.
A.2.2. Depurando .
A.2.3. Compilando .

. . . . . . .
  • Links de descarga
http://lwp-l.com/pdf12332

Comentarios de: Minix 3 sobre arquitectura ARM (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad