Visita la versión flash
Propuestas
Visita el perfil del autor
Hablan del blog

SOM30


"Cómo hacer un Sistema Operativo en 30 días"
8/07/2010 14:08

Dividiendo del Espacio de Direcciones (I y III sector)

Comunicaciones de Red
Tenemos ya el Sistema Informático definido a nivel de componentes, pero necesitamos dar un paso más. Entre hoy y mañana entraremos en detalle respectivamente en el tema de los dispositivos y controladores más básicos del Sistema Informático.

Durante todos estos días habréis visto que siempre se intenta obtener una completa estandarización en todas aquellas cosas que se hacen. Al haber seleccionado esta arquitectura, el mapeo de los componentes se realizará siempre en posiciones conocidas. El Bus de Direcciones o Espacio de Direcciones es el lugar donde se encuentran todos los registros (de 1 bit) disponibles agrupados en lo que llamamos dispositivos y controladores.

En este punto cabe destacar que el Espacio de Direcciones se divide en tres sectores de diferente tamaño.

El primer sector "va desde la dirección 0x00 hasta la 0xFF, por tanto, ocupa 0xFF+1 (28 = 256) direcciones, que son justamente las que soportan los Sistemas Informáticos más pequeños" dice la documentación. Y así es. Si recordamos, los punteros de la MMU están compuestos por páginas de 8 bits, por lo tanto, el puntero más pequeño (con una sola página) podrá apuntar a 28 direcciones como máximo, es decir esas 256 direcciones que ocupa el primer sector. Como el número de direcciones es igual al número de bits disponibles, este tipo de Sistema, con una MMU de sólo una página, sólo podría ejecutar código objeto de hasta 256 bits (32 bytes) o lo que es lo mismo, 64 instrucciones básicas, lo que es realmente poco para el fin que perseguimos.

En el primer sector de los SIMs siempre se encuentra el dispositivo "Gestor de Arranque Mínimo". Este dispositivo está formado por cuarto elementos:
  • Instrucción de salto: es un trozo de código objeto fijo que posiciona el puntero PC sobre la primera dirección del segundo sector.
  • Área de datos: en la parte central del dispositivo se encuentra un área de datos que incluyen información sobre el Sistema Informático.
  • Gestor del Sistema Eléctrico: en las últimas direcciones de este sector (0xFC y 0xFD) están dos bits que respectivamente permiten el reiniciado y el apagado del Sistema Informático de forma lógica.
  • Altavoz del sistema: en la penúltima dirección (0xFE), está un pequeño altavoz que emitirá un pitido cada vez que pongamos el valor 1 en él.
  • Bit de continuidad: en la última dirección (0xFF), hay un bit que indica si existe y está disponible el segundo sector.
El segundo sector "va desde la dirección 0x00.01.00 hasta la 0xFF.FF.FF, por tanto, ocupa 0xFF.FF.00 (224 = 16.776.960) direcciones, que son justamente las que soportan los Sistemas Informáticos Reducidos de 24 bits" dice la documentación. Debido a que en este sector se encuentran la mayoría de los controladores, lo trataré mañana.

Y por último, el tercer sector es el segmento que "va desde la dirección 0x00.00.00.00.01.00.00.00 hasta la dirección 0xFF.FF.FF.FF.FF.FF.FF.FF, ocupando por tanto 0xFF.FF.FF.FF.FF.FF.FF.00 (264 = 18.446.744.073.709.551.360) direcciones, que coincide con el número de direcciones que logran apuntar los punteros de los Sistemas Informáticos Extendidos de 64 bits" según indica la documentación. Aquí se encuentra exclusivamente la memoria RAM. Este sector teóricamente tiene un límite de hasta 2.147.483.647 gigabytes de memoria RAM disponible; es obvio que si se necesita más, se puede anexar a este último sector otro nuevo simplemente añadiendo una página más a la MMU.

Comentarios

29/05/2015 19:21
Muchas gracias y bienvenido. Si tienes alguna duda, según te vaya surgiendo, plantéala en la sección de comentarios.

29/05/2015 05:35
Guillermo: Quiero mandarte un saludo y mi respaldo. Sigo la SOM30 y estoy fascinado. Jamás se me ocurrió que se podría diseñar una arquitectura, un compilador y un SO sin contar (de algún modo) con cualquier tipo de licencia y todo eso.

Por lo demás aún me cuesta asimilar el eWa de todo lo visto hasta ahora en el de Intel, el assembler tradicional, etc.

19/09/2014 22:23
Hola. Espero verte comentando en más entradas; al fin y al cabo, la idea del Tablón de Comentarios es debatir sobre los temas tratados en la cada entrada... no comentar sobre los comentarios inconexos. ¡Gracias!

1/09/2014 19:06
A los dos primeros, vaya par de maleducados. Hay que leer para entender y así poder aplicar la teoría y la estructura a realizar. Nunca llegareis a nada con el copy/paste. Buen trabajo Guillermo Alvarez y todo muy bien estructurado, un saludo!

12/11/2013 22:27
En ningún caso se ha asegurado que un S.O. se pueda hacer en treinta días. Simplemente lo que se persigue en este blog es presentar en treinta entradas ("días") todos los aspectos que se deben tener en cuenta para el correcto desarrollo de un S.O.M. usando la Arquitectura eWa y el Paradigma eWa. Nada más.
Actualmente no se ha implementado ningún S.O.M. completo siguiendo estas directrices, pero está previsto que algún día llegue a nosotros. Con la colaboración de varias personas, ese día llegará pronto.

7/11/2013 11:19
si tanto sabeis que pensais que un sistema operativo se puede hacer en poco tiempo, porque no lo aveis echo vosotros?

28/08/2013 00:39
Hubiera sido en 7 días si no hubiera hablado tanta carreta.

14/11/2011 18:32
he leido todo hasta ahora y aun no no hace nada...

Deja tu comentario


Se enviará usando la Red Social @visitante
¿Quieres responder con otra cuenta de TuEntidad.es?
Usa MonoMola o LoTienes.

Búsqueda

Calendario

- Día 1
- Día 2
- Día 3
- Día 4
- Día 5
- Día 6
- Día 7
- Día 8
- Día 9
- Día 10
- Día 11
- Día 12
- Día 13
- Día 14
- Día 15
- Día 16
- Día 17
- Día 18
- Día 19
- Día 20
- Día 21
- Día 22
- Día 23
- Día 24
- Día 25
- Día 26
- Día 27
- Día 28
- Día 29

Código

- Sistemas Informáticos
- Compilador
- GAM
- GAE
- Kérnel
- LiSi
- ViSi
- SAM
Licencia LSW

Comentan

- Día 1 (16) 8/06 02:28
- Día 29 (19) 13/03 04:10
- Día 10 (18) 23/01 22:16
- Día 3 (9) 10/12 08:55
- Día 2 (19) 10/12 08:54
- Día 7 (4) 5/11 21:29
- Día 11 (44) 25/10 01:39
- Día 4 (3) 24/09 13:45
- Día 28 (2) 6/04 04:01
- Día 26 (1) 17/07 01:21
- Día 27 (4) 29/05 14:50
- Día 8 (9) 29/05 05:35
- Día 24 (2) 18/01 05:16
- Día 17 (5) 18/01 05:10
- Día 13 (7) 6/12 18:44
- Día 15 (1) 30/08 08:53
- Día 6 (2) 25/08 02:14
- Día 5 (4) 7/04 00:50
- Día 21 (6) 26/06 21:26
- Día 18 (2) 26/06 03:09
- Día 23 (2) 22/04 13:45
- Día 25 (1) 11/03 21:34
- Día 19 (3) 19/01 17:33
- Día 14 (2) 7/01 22:06

Valid HTML 4.01 Transitional