Site Meter
Acceder:
Basado en Elgg

Sistema mkx86 :: Blog

Junio 19, 2008

Un tema pendiente para el sistema mkx86 es la selección de la licencia bajo la cual se va a distribuir.

Actualmente la versión disponible es la beta 1 (mkx86-0.1.0 y mkx86-0.1.1) y carece de licencia aparentemente. En realidad por usarse en un proyecto dentro de la UMSS si tiene la licencia academica que usan las universidades.

Por tal motivo la linea "beta 1" finaliza ahi... y sale la versión beta 2 mkx86-0.2.0 tan luego se tome la decisión de aplicar un nuevo modelo de licenciamento.

 

GPL vs BSD?

Por ahi va la cosa. Me tome unos minutos para entender los tipos de licenciamento para software libre y salí más mareado ;)

http://www.gnu.org/licenses/license-list.es.html

Encontré que la licencia GNU GPL seria muy restrictiva para este sistema con fines académicos pues exige que cualquier proyecto derivado del mismo sea licencie bajo GPL (el famoso virus GPL).

Por otro lado la licencia BSD permite mantener los derechos de autor pero una real libertad para distribuir los posibles productos derivados que salgan del mkx86 original. Incluso un usuario podrian ganarse unos pesos, por decir, vendiendo un mkx-PPC (para proc. Power PC) por 10.000$us. La licencia BSD lo permite! Yo también creo que lo permitiria pues esto demostraria que realmente este proyecto va cumpliendo su objetivo al se ser util a la comunidad informática.


http://es.wikipedia.org/wiki/Licencia_BSD

 

Saludos! 

 

Palabras clave: BSD, GNU, GPL, Licencia, Microkernel, mkx86, Software Libre

Enviado por Sistema mkx86 - Vesmar Boris Camara C. | 2 Comentario (s)

Mayo 21, 2008

Estas son las caracteristicas soportadas en esta version mkx86-0.1.0 (Beta 1):

- Arquitectura microkernel.

- 100% 32 bits, usa caracteristicas avanzadas del procesador i386+ como protección de memoria, niveles de privilegio (ring 0 y 3), acceso a memoria virtual hasta 4GB, uso de estructuras GDT, LDT y TSS.

- Multitarea usando software stack switching, esto es, conmutación de contexto entre distintos niveles de privilegio guardando estado de proceso en pila.

- Planificación en base a prioridades las cuales internamente soportan round robin.

- Sistema de IPC mediante paso de mensajes (SEND, RECV, SENDRECV) entre procesos y con el mismo microkernel mkx86 (estilo rendezvous).

- Manejo de QUANTUM para expropiar CPU de procesos.

- Manejo de interrupciones (PIC8259 + IRQs + ISR + IDT) y transformadas en notificaciones a procesos.

- Manejo de excepciones para evitar la caída del sistema.

- Manejo de reloj de sistema PIT 8253 para soporte a tick y Quantums.

- Manejo de memoria básico segmentada con lista de bloques.


Con la ayuda de los procesos que corren en modo usuario se puede adicionar las siguientes características:

- API disponible, esto es, librería para interactuar parcialmente compatible con el Standard LIBC. Proximamente se publicará documentación.

- Sistema de archivos RAMFS el cual actualmente sopoerta FAT12 que corre en memoria RAM del proceso "FS".

- Driver de consola en modo usuario que maneja teclado/pantalla y se comunica con procesos por paso de mensajes.

- Soporta inicialización de procesos "on boot" mediante programa "INIT".

- Carga y ejecución de procesos desde RAMFS.

- Mini shell MKX86 de demostración.

Estas son las caracteristicas soportadas actualmente. La llamo "beta 1", pues es la primera versión sacada en publico y posiblemente se necesite hacer algunos fixes dependiendo de los bugs que los usuarios vayan reportando.

Mientras tanto no se tiene pensado adicionar otras caracteristicas al menos sea realmente necesario. El esfuerzo hasta el "beta 9" se pondrá en la documentación, difusión, fixes y porting de aplicaciones externas pequeñas.

Hay un semi plan de publicación que prentendo ir cumpliendo poco a poco.

- Presentación [OK]
- Caracteristicas[OK]
- Funcionamiento general del mkx86 [PEND]
- Compilando el mkx86 [PEND]
- API programación de aplicaciones [PEND]
- mkx86 y el bajo nivel [PEND]
- Kernel Internals mkx86 [PEND]
- Explicación del driver de consola [PEND]
- Otros ... ¿?¿??¿

Saludos,

Palabras clave: GCC, microkernel, mkx86, sistemas operativos

Enviado por Sistema mkx86 - Vesmar Boris Camara C. | 4 Comentario (s)

Mayo 15, 2008

Hola, 

Pues despues de años desarrollando piezas sueltas de codigo al fin pude juntarlas todas en un pedazo mas o menos decente el cual lo bautize como mkx86.

 El mkx86 es un peqeññññisimo nucleo de SO que trabaja segun la arquitectura microkernel, esto es, realiza solo funciones basicas en modo nucleo como son la planificacion y conmutacion de procesos, sistema IPC de paso de mensajes tipo rendezvous y abstraccion de interrupciones transformandolas en "notificaciones".

En espacio de usuario pueden correr diversos subcomponentes de codigo del mkx86 tales como son ahora el driver de consola y el servidor del archivos RAMFS. Pero no significan que sean realmente parte del mkx86. Solo son programas de usuario. Cualquiera podria reemplazar el RAMFS por otro mas util sin mucha complejidad.

Bueno, para iniciar es eso. 

 

Ahhh.. una cosa mas. Cual es el objetivo?

Pues el proyecto mkx86  tiene como objetivo principal servir a los estudiantes y todo aficionado a sistemas operativos en ver la construccion real de un sistema operativo desde cero y aplicando los conceptos teoricos impartidos en el trascurso de una carrera de ciencias de la computacion. Por ahora no pensaremos en reemplazar linux o windows, ok!

Nos vemos pronto! 

 Vesmar,

Enviado por Sistema mkx86 - Vesmar Boris Camara C. | 3 Comentario (s)