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!

15 pensamientos 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

    • 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.

  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.

    • 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 0×55, 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!
      ———————————————————————————-

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

  10. 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 :)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>