Cómo crear un Sistema Operativo en un mes

Navegando por la red me encontré por casualidad con un blog que plantea una propuesta muy interesante: cómo hacer un Sistema Operativo en 30 días.

El autor, un asturiano llamado Guillermo Álvarez , propone crear un Sistema Operativo desde cero, ignorando la existencia de windows, linux, Chrome OS, e incluso las arquitecturas de los computadores actuales. Todo su trabajo lo comparte bajo una licencia de software libre, por lo que se permite el uso, modificación, estudio y distribución abiertamente.

Quizás algunos conceptos son un poco técnicos para toda aquella persona ajena al desarrollo de software. Sin embargo casi todo está explicado de forma bastante sencilla para iniciados en el tema de los Sistemas Operativos. Eso sí, su lectura debe de hacerse de forma secuencial; en general, es necesario leer en orden las entradas. Actualmente está en la recta final de los 30 días, que concluirá el viernes 13 de agosto, con la presentación de un Sistema funcional con varias novedades, día del cumple de mi madre por cierto, ¡felicidades mamá! 🙂

Durante los primeros días el autor se centró en presentar el Sistema Informático donde se ejecutará el Sistema Operativo. La característica que más me sorprendió es que busca que el SO sea multiplataforma, es decir, que pueda usarse en cualquier plataforma: un ejecutable sobre un sistema operativo determinado, o sobre java o flash, o incluso dentro de un navegador usando HTML5. Estos Sistemas Informáticos se comportan como máquinas virtuales con una arquitectura muy simple y sencilla de implementar, tanto en equipos de escritorio como otros dispositivos.

A partir del día 14 (casi en la mitad) aparece el concepto de “kérnel” del Sistema Operativo. La verdad es que, aunque conserva algunas cosas habituales, abundan más los cambios. Por ejemplo, utiliza un microkérnel -será más rápido de desarrollar- y varios módulos para ofrecer tres tipos de soluciones: los procesos, los programas y las aplicaciones. La “lógica ternaria” es un constante recurrente en todos los conceptos: son tres Sistemas, hay tres sectores, tiene tres tipos de componentes, existen tres soluciones, …y un largo etcétera.

Aunque todavía faltan algunas entradas, las últimas estarán orientadas a explicar los diferentes administradores de recursos de alto nivel que tendrá el Sistema. En ellas se revelarán los secretos sobre cómo serán las “Particiones, directorios, ficheros y archivos”, los “usuarios y grupos”, los “menús, ventanas y fuentes”, los “teclados y cursores”, la “red”, el “sonido” y otras cosas más de alto nivel. Seguro que incluirán un montón de novedades para mejorar la seguridad y calidad de los Sistemas Operativos actuales que podrán servir como ideas para los grandes Sistemas Operativos, o, quién sabe, convertirse en un nuevo Sistema Operativo generalista.

Terminando ya, sólo decir que si os interesa el mundo de los sistemas operativos os animo a estar pendientes del desenlace de esta aventura. Ánimo Guillermo!

24 opiniones en “Cómo crear un Sistema Operativo en un mes”

  1. Gracias por el artículo muy interesante, el mundo del sistema operativo está poco explorado por la mayoría de los programadores…

    saludos

  2. buenas nueva. es de mi interes aprender sobre los sistema operativos. me gustaria realizar mi propio sistema operativo. como hago, que lenguaje debo aprender, como me inicio. hay un tutorial para eso. una ayuda o algo. seria de gran ayuda

  3. Muy bueno el tema, quiero realizar un SO en un entorno web, es un poco complicado al parecer pero quisiera logralo, sobre todo porque deseo presentarlo como una tesis para la UNiversidad

  4. HOLA QUE TAL ME ENCANTARIA CRERAR MI PROPI SISTEMA OPERATIVO PERO SIN CREAR EL DE OTRO PQ EN LOS VIDEOS LO QUE HACES ES COPIAR Y ESO NO QUIERO HACERLO YO LO QUE QUEIRO ES HACER MI PROPIO SISTEMA

  5. hola soy enmnuel me seria mui importante crear me un sisitema operatibo paea mi por que yo para: poner videos,juegos,chatyconcursos y asi les pido que porfabor me lo creen

  6. yo se programar en assembler y también he tenido por muchos años la idea de desarrollar un sistema operativo,como muchos otros.una y otra vez hay un obstaculo dificilmente salvable: los controladores de los dispositivos.despues de muchos años de pensar he llegado a la conclusión de que todos los que tenemos deseos de programar sistemas operativos necesitamos una maquina libre como la que voy a describir ahora:
    una placa base fabricada por los chinos que tenga cuatro procesadores de 4 GHZ en la misma placa,con su correspondiente memoria de 4 GB y el chipset para controlar las memorias.la maquina estará pues dividida en cuatro secciones de 4 GHZ x 4 GB.la primera sección se ocupará de crear la imagen en pantalla y de las operaciones de entrada y salida de audio y otros datos a perifericos.la segunda sección se ocupará de operaciones 3D y de renderizar video con el codec correspondiente.la tercera sección se ocupará del sistema operativo.por ultimo la cuarta sección será donde estén funcionando los programas de usuarios,de manera equivalente a nuestros PC.tres de los chipsets darán acceso a su correspondientes CPU a todos los bloques de memoria de las secciones,para que por ejemplo el sistema operativo pueda ensamblar en la memoria de la sección cuarta (de usuario) un ejecutable y activarlo o para cambiar la manera en la que funciona la salida de video de la sección primera.el chipset de cuarta sección (de usuario) será el unico que de a su CPU solo acceso a su bloque de memoria,para que le sea imposible cambiar la salida de video o alterar el sistema operativo.

    ¿cuatro ordenadores en uno? es muy caro.
    es la unica manera de prescindir de los dispositivos con drivers.con este sistema los drivers los podemos hacer nosotros porque el sistema operativo puede meter en la memoria de la sección que se ocupa del video y el audio el programa de funcionamiento.una CPU de 4 GHZ siempre será mas rapida que una tarjeta grafica de cualquier marca que no irá a esa velocidad.
    se debe poner la mayor potencia de CPUs posible en la actualidad porque el sistema no va a ser ampliable,asi se va a quedar hasta el fin de sus dias.
    el sistema se llamaría Free4x4 y lo podría usar cualquier estudiante que quiere desarrollar un sistemas porque se conocerían las direcciones de todo el harware interno donde todo sería via software.por ejemplo el administrador de USB o TCP/IP sería un programa software alojado en la sección primera (encargada de las salidas de audio/video y datos).
    aceptemos la realidad no podemos programar sistemas operativos en maquinas llenas de componentes misteriosos.necesitamos una maquina libre de gran potencia,con todo funcionando via software libre en las diferentes secciones.
    yo tengo la idea pero no el dinero,si lo tuviera preguntaría a los chinos cuanto cobran por desarrollar la placa base libre mas poderosa jamas construida PARA EL USUARIO.

  7. Yo creo que la creación de nuevos sistemas operativos es esencial para la evolución del mundo informatico, windows, apple, linux.. etc, nos lo dan todo hecho y nos cierran las puertas de nuestra creatividad e imaginación. Luego sobre el tema controladores.. yo creo que podriamos aprovechar la gran potencia de creación de los chinos a base de controladores “virgenes”.
    Espero que el mundo informatico no se quede estancado, y cada vez las nuevas generaciones sean más eficientes… Informatización.
    Gracias por esta gran aportación, espero tener más información sobre este nuevo sistema creado por Guillermo.

  8. muy buen articulo, es realmente asombroso que haya gente que se centre en la programacion en lenguaje assembler, seria bno que algunod elos que supiera, creara unos tutoriales, en donde expliquen como hacerlo, ya que mi idea tambien es poder realizar mi propio sistema operativo multiplataforma, independiente del linux, windows , apple, chrome os, esa es la idea que tengo, inclusive tengo un grupo en face donde hace poco estuvimos hablando de eso.

  9. me gustaria hacer mi propia base de datos… ya sea en sistema operativo o en access.. espero y me puedan ayudar, gracias 🙂

  10. Un sistema operativo (SO) le dice a tu computadora qué hacer. Ya sea que no hayas encontrado uno que te satisfaga, o simplemente quieras tener tu propia creación, puede ser desalentador llevar a cabo esta tarea y puede tomarte años para que tu sistema operativo sea útil. Remasterizar un distro de Linux ya existente puede ser más directo y sencillo. El sistema operativo es una pieza de software que administra e interactúa con el hardware de manera efectiva y proporciona una cubierta para que los demás programas funcionen.

  11. alguien podria dejar el enlace a la paguina del chabal que hico eso del sistema operativo?? es que quiero hacerlo primero como el y luego ya vere muchas gracias 🙂

  12. Muy interesante… Yo ya hize un Sistema Operativo Kernel (SOK) con aplicaciones como juegos y un emulador.
    Es muy sencillo hacer un SOK, pero un Sistema Operativo que no sea Kernel eso ya es bastante complicado.

    Si os interesa descargar mi sistema operativo, visitad mi blog:
    http://lorenoskernel.blogspot.com.es/

  13. Si te interesa crear un Sistema Operativo Kernel sigue estos pasos:
    1.- Descarga e instala el programa “Nasm” en el escritorio.
    2.-Introduce este código en el bloc de notas:
    ;———————————————————————-
    ; Sistema Operativo Kernel
    ;———————————————————————-
    org 0x7c00 ; This is where BIOS loads the bootloader

    ; Execution begins here
    entry:
    jmp short begin ; jump over the DOS boot record data

    ; ———————————————————————-
    ; data portion of the “DOS BOOT RECORD”
    ; ———————————————————————-
    brINT13Flag DB 90H ; 0002h – 0EH for INT13 AH=42 READ
    brOEM DB ‘MSDOS5.0’ ; 0003h – OEM name & DOS version (8 chars)
    brBPS DW 512 ; 000Bh – Bytes/sector
    brSPC DB 1 ; 000Dh – Sectors/cluster
    brResCount DW 1 ; 000Eh – Reserved (boot) sectors
    brFATs DB 2 ; 0010h – FAT copies
    brRootEntries DW 0E0H ; 0011h – Root directory entries
    brSectorCount DW 2880 ; 0013h – Sectors in volume, 512
    %error “Codigo demasiado largo”
    %endif
    times (512 – size – 2) db 0

    db 0x55, 0xAA ;2 byte boot signature

    3.- Cuando lo hayas escrito guarda el archivo como boot.asm en la carpeta de Nasm.
    4.- Abre el archivo nasmpath.bat y escribe:
    nasm boot.asm -o boot.bin

    5.- Te aparecerá en esa carpeta el archivo transformado en formato .bin , y lo copias al disquete.
    6.- Abre nasmpath.bat, inserta un disquete en tu ordenador y escribes:
    debug
    n boot.bin
    l 0 (es una L en minúscula)
    w 0 0 0 1
    quit

    7.- Reinicias tu ordenador, configuras la BIOS para que arranque tu disquete.
    8.- Inserta tu disquete y arrancará tu sistema operativo.

    ¡LISTO!
    ———————————————————————————-

  14. Hice exactamente todo como lo describis basjé el Nasm 2 para dos y lo ejecuté en un win2000 y me dio un error, entonces use el arcaico OS/2 ahora eComstation 2 en modo DOS y me dio el mismo error…
    se trata de el %endif… como le hago?… la ide es de ponerlo en un diskette y decirle al OS/2 que arranque desde el diskette(Posee la capacidad de arrancar un diskette sin reiniciar la maquina!!! 😀 ), llevo tiempo intentando aprender de un SO simple como el DOS, ayudame por favor… 😀 Gracias!!

  15. Hice todo como dice Lorenzo para armar mi SOK y me dice el nasm(ver 2) error con el %endif, he probado con lo muy poco que se, agregarle y sacarle cosas como en el leguaje C, pero me da mas errores, solo quiero saber como le hago y después investigo solo gracias!!! muy buen post!! 😀

  16. Hola:
    Me pregunto si alguno sabe si existe algún sistema operativo que sirviera sólo para tocar música en vivo. Que funcionara como un Sintetizador. Básicamente me gustaría instalar un OS de sintetizador a mi pc… Disponiendo de un disco para guardar las muestras de sonido WAV y que el sistema se organizara como el programa Cantabile Performer, Kontakt y programas como esos. Levantarlo en windows hace que uno tenga que esperar un montón de tiempo de inicio de sesión, más los riesgos de tildarse…
    Pregunto esto porque sé que los sintetizadores como el KORG TRITON, tienen un sistema operativo y son como una computadorita… usan hardware muy desactualizado.. sistema como el de MS DOS… 16 mb de Ram.. un procesador, no sé bien cuál… Espero sus respuestas =D

  17. Me gustaria poder crear un sistema operativo mucho.Javier buscare esa pagina que as dicho u otra y intentare crear un sistema operativo.Aunque lo veo muy dificil lal que solo tengo 14 años y no se casi nada de programacion asi que estudiare programacion y luego intentare crear un sistema operativo.

  18. Me gustaria poder crear un sistema operativo mucho.Javier buscare esa pagina que as dicho u otra e intentare crear un sistema operativo.Aunque lo veo muy dificil por que solo tengo 14 años y no se casi nada de programacion asi que estudiare programacion y luego intentare crear un sistema operativo.

  19. Perdón, el código estaba mal. Aquí está el nuevo código:

    ;———————————————————————-
    ;Sistema Operativo Kernel
    ;———————————————————————-
    org 0x7c00 ; This is where BIOS loads the bootloader

    ; Execution begins here
    entry:
    jmp short begin ; jump over the DOS boot record data

    ; ———————————————————————-
    ; data portion of the “DOS BOOT RECORD”
    ; ———————————————————————-
    brINT13Flag DB 90H ; 0002h – 0EH for INT13 AH=42 READ
    brOEM DB ‘MSDOS5.0’ ; 0003h – OEM name & DOS version (8 chars)
    brBPS DW 512 ; 000Bh – Bytes/sector
    brSPC DB 1 ; 000Dh – Sectors/cluster
    brResCount DW 1 ; 000Eh – Reserved (boot) sectors
    brFATs DB 2 ; 0010h – FAT copies
    brRootEntries DW 0E0H ; 0011h – Root directory entries
    brSectorCount DW 2880 ; 0013h – Sectors in volume, 512
    %error “code is too large for boot sector”
    %endif
    times (512 – size – 2) db 0

    db 0x55, 0xAA ;2 byte boot signature

  20. Estas totalmente equivocado, hay una inmensa cantidad de programadores en el mundo de los sistemas operativos, quizás te refieras a ti cuando comentas esto, google hasta hace poco tenía un camino donde podías ver una inmensa mayoría de esto que te digo, ya dejo de hacerlo a pesar de que cada cual sigue su camino en distintas web, antes podías acceder atreves de la utilidad de google llamada “Code”, hoy solo te da acceso a los proyectos del propio google

  21. Aunque es un tema ya biejo te aclaro que sinceramente desconoces el PC, el sistema operativo no es el encargado de decir si ha encontrado o no un sistema operativo, para eso está la BIOS ( Basic Input/Output System) traducido viene a decir sistema básico de entrada/salida, esto es lo que le dice al PC si existe o no un sistema

Deja un comentario