Manuales y Guías

Cómo crear un SO en C#

Este tutorial es fácil. Antes de todo, mencionar el "material" que vamos a usar.

 

Lo primero es Visual C#, que es el software que vamos a usar para programar. ¡Tiene que ser la edición 2008! Probé la 2010 y no funciona... Da igual si es la Express o la Professional. Para descargar la Express, id aquí.

No uséis MonoDevelop, y eso que debería de valer...

 

Lo segundo es COSMOS. COSMOS contiene el kernel del SO y un programa, el IL2CPU, que convierte C# en ensamblador. Nosotros vamos a usar la Milestone 4, no la 5. La 5 es muy diferente y aún no he podido probarla (no vale en Express), así que... Para descargar, ir aquí.

 

Bien. Antes de todo: al instalar COSMOS, no os preocupéis si os avisa de que el software no está firmado. Es normal. Asustarse si es "legal" Guiño.

Una vez hemos hecho las instalaciones (en 7 me fue del tirón, en XP no tanto), iniciamos Visual C#. El programa está representado por este icono:

 

alt

 

La interfaz del programa es un poco compleja, pero ya os acostumbraréis.

 

alt

 

Para empezar un proyecto nuevo, ve a Archivo > Nuevo proyecto...

En Mis plantillas, selecciona "CosmosBoot", dale el nombre que quieras al proyecto y pulsa en Aceptar.

 

alt

 

Una vez creado el proyecto, dirígete al panel derecho. Haz doble clic en Program.cs.

 

alt

 

Te saldrá un texto coloreado, separando un tipo de código del otro.

Antes de programar, vamos a ver la parte central del código, ésta en concreto:

 

 

var xBoot = new Cosmos.Sys.Boot();
            xBoot.Execute();
            Console.WriteLine("Welcome! You just booted C# code. Please edit Program.cs to fit your needs");
            while (true)

var xBoot = new Cosmos.Sys.Boot();

xBoot.Execute();

Console.WriteLine("Welcome! You just booted C# code. Please edit Program.cs to fit your needs");

while (true)
      ;

 

La primera línea de código indica que se arranque el sistema operativo. En la segunda se indica el inicio del "programa" (porque en el fondo lo es), la tercera muestra el texto indicado en la misma y las últimas 2 son innecesarias. Observad una cosa: en todos los lenguajes de C, para terminar una línea, es necesario incluir el caracter  ;  .

 

Ahora vamos a cambiar el sistema operativo a esto:

 

 

var xBoot = new Cosmos.Sys.Boot();

xBoot.Execute();

Console.Beep();

Console.WriteLine("Bienvenido a ClubSO!");

while (true)
      ;

 

¿Que qué cambios hay? Pues se ha añadido la tercera línea, que hace que el speaker haga un 'bip' (el bip sólo lo soportan el arranque nativo y Windows Virtual PC, que yo sepa) y se ha modificado la cuarta, que ahora muestra otro texto.

 

Ahora vamos a probarlo. Guardar el archivo se hace igual que en Office XP.

 

alt

 

Para ejecutar nuestro primer sistema, pulsamos en el botoncito de "Play" que hay en la misma barra (sí, es el mismo que el de WMP, iTunes, VLC...)

 

alt

 

Ahora no se va a ejecutar el sistema operativo, sino que va a aparecer el COSMOS Builder. Desde aquí configuraremos los parámetros de lo que vayamos a compilar (ISO, máquina virtual, etc.). En este paso vamos a dejarlo intacto.

 

alt

 

Tranquilos si no teneis QEMU, que viene con COSMOS. Dadle al botón Build y esperad un poco.

Al arrancar nuestro SO no hará bip, ya que QEMU no lo soporta. Sin embargo, nos mostrará el texto que escribimos antes.

 

alt

 

Ahi está. Ya tienes un sistema operativo en toda su gloria Reir. Para apagar, cierra la ventana. Una pergunta: ¿no sería mejor expandir sus posibilidades? Sigue leyendo.

 

 

  1. var xBoot = new Cosmos.Sys.Boot();
  2. xBoot.Execute();
  3. string input;
  4. Console.Beep();
  5. Console.WriteLine("Bienvenido a ClubSO!");
  6. MENU:
  7. Console.WriteLine(" ");
  8. Console.WriteLine("[1] Apagar, [2] Reiniciar");
  9. Console.Write("> ");
  10. input = Console.ReadLine();
  11. Console.WriteLine(" ");
  12. if (input == "1")
  13. {
  14.     Cosmos.Sys.Deboot.Shutdown();
  15.     Console.WriteLine("Ya puedes apagar el ordenador.");
  16. HALT:
  17.     goto HALT;
  18. }
  19. if (input == "2")
  20. {
  21.     Console.WriteLine("Reiniciando...");
  22.     Cosmos.Sys.Deboot.Reboot();
  23. }
  24. else
  25. {
  26.     Console.WriteLine("Has insertado un parametro incorrecto.");
  27.     goto MENU;
  28. }

 

 

Tenemos aquí mucho más código ampliado (y reducido). En 1er lugar, he eliminado las 2 últimas líneas. Ya ni siquiera eran leídas por Visual C#. En segundo lugar, he añadidio un "menú" muy complejo. Para ayudar a diferenciar las líneas, las he numerado. Vamos a ver cómo lo hemos hecho:

  • En la línea 3, he colocado el valor de texto "input". Aquí se grabará lo que escribamos en el menú.
  • La línea 6 representa el inicio de un bucle llamado "MENU", luego invocada con goto. Un bucle es un código que se puede empezar cuando otra parte del programa lo indique.
  • De la línea 7 a la 11 he colocado la ayuda y el intérprete del teclado (donde se escribe). La línea en concreto es la 10, en la que usamos el valor "input".
  • De la 12 a la 23 hemos creado las respuestas al texto escrito. De la 12 a la 18 está la órden correspondiente al número 1. Se usa if en esta tarea (la línea 12, empieza la órden si "input" es equivalente a "1"). Al apagar, el sistema operativo no se cierra. Por eso he podido introducir un texto avisando de que ya se puede terminar de usar el SO. Para evitar que se vaya al menú otra vez, añado el bucle infinito "HALT" entre las líneas 16 y 17. De la línea 19 a la 23, se reinicia el ordenador. En este caso no hemos necesitado un bucle infinito.
  • De la 24 a la 28 hemos creado el código "en caso de errores". Así, si hemos metodo texto incorrecto, nos avisa y nos lleva de nuevo a la "zona de escritura". Sencillamente colocamos un poco de texto e invocamos el menú de nuevo con goto.

Prueba el código metido. Ahora el sistema es algo así:

 

alt

 

Ahora, ¿quieres compartir tu sistema operativo con todos? ¿o quieres probarlo fuera de QEMU? Es fácil. En COSMOS Builder, en el panel "Target", selecciona "ISO" en vez de "QEMU". Dale a "Build". Una vez creado, tu archivo estará en una de estas dos carpetas (ambas ocultas):

  • X:\Documents and Settings\Usuario\Datos de programa\Cosmos User Kit en Windows XP.
  • X:\Users\Usuario\AppData\Roaming\Cosmos User Kit en Windows Vista/7.

El archivo se llama por defecto Cosmos.iso. Ahora cuélgalo en Internet y compártelo, o grábalo en un CD. Yo, personalmente, ya he subido el archivo final con el código fuente a este zip.

 

alt

 

#5 comentario(s)
#1. País Cracksper | 1 Marzo 2011 16:46 |
0
Estupendo y extenso,gracias expectalll123.



#2. País vans_125 | 1 Marzo 2011 17:17 |
0
muy buen el post expectalll123. bully
#3. País espectalll123 | 1 Marzo 2011 18:17 |
0
¡De nada! Lo que he hecho es aprovechar lo que he aprendido con Lime para compartirlo. fellow

¿A quién le apetece una manzana?
Tambien tengo limas.
#4. País Leo_n | 2 Marzo 2011 00:31 |
0
Esta super buena honda gracias.
Feliz dia.
#5. País Pituko | 2 Marzo 2011 10:03 |
+1
Excelente, lo aplicaré con InstantCMD Unity

Información
Lo siento, no tienes los permisos suficientes para dejar un comentario aquí... =(
EspacioMéxico.net

Descargar Windows 8

Windows 8 Preview

Windows 8 Developer Preview es una versión pre-beta de Windows 8 para desarrolladores. No se debe utilizar como sistema operativo por defecto, sólo con fines de prueba. Descárgalo gratis desde Microsoft.com.

Descargar

Descargar Office 2010

Microsoft Office 2010

Microsoft Office es la suite ofimática de Microsoft. Contiene programas para redactar documentos (Word), crear hojas de cálculo (Excel), diseñar presentaciones (Powerpoint), gestionar correos y eventos (Outlook) y muchas otras utilidades auxiliares. ¡Prueba la última versión en español!

Descargar

66 usuarios online

foto foto

64 invitados, 2 miembros

Menú de navegación

  • Ghermain
  • Cracksper
  • CrystalEye
  • darioroncoroni
  • ambulante
  • mkdatos
Actualizado: 21:36 13-05-2012

Encuesta

¿Qué navegador web utilizas con más frecuencia?

Google Chrome
Safari
Internet Explorer
Opera
Mozilla Firefox
Otro