Hacer un sistema operativo simple

¿Alguna vez quisiste hacer un sistema operativo? ¿Alguna vez quiso saber cómo funcionan los sistemas operativos de línea de comandos? ¡Todo está aquí!

Así que crearemos un sistema operativo básico en C #, no se preocupe, si conoce algunos conceptos básicos de c ++ o java, comprenderá el código: D

¡Al final de este tutorial, podrás hacer que tu sistema operativo sea genial!

Así que comencemos con algo de ind

Paso 1: el concepto

Entonces, ¿cómo funciona realmente un sistema operativo? Lo explicaré desde el nivel de un circuito eléctrico.

La mayoría de ustedes conocen puertas lógicas en circuitos eléctricos. cuando muchas puertas lógicas están conectadas, es decir, miles de millones de transistores están conectados dentro de un chip, pueden almacenar ceros y ceros. Cada puerta puede almacenar 0 o 1.

Luego, el transistor conectado forma un microcontrolador o un microprocesador. Aquí vamos a programar en el microprocesador que está en su computadora.

¿Sabía que su computadora también puede funcionar con un sistema operativo? ¡Me pregunto como! Cada chip en su computadora puede ejecutarse individualmente sin un microprocesador, pero luego sin SO, no puede realizar múltiples tareas o ejecutar múltiples hilos juntos como en palabras simples, reproducir un video en el que una vez puede reproducir música y una vez pueden reproducir gráficos. Pero ambos no pueden correr juntos.

Debido a un sistema operativo, hoy puede escuchar música mientras navega por Internet.

El sistema operativo funciona en función de su núcleo. El núcleo almacena todos los archivos de la biblioteca y cada vez que ejecutamos un programa, el código del programa llama a los archivos de encabezado del núcleo. En Windows, el núcleo es 'Win32'

Paso 2: Materiales y conocimientos previos necesarios

¿Qué necesitarás?

1) Microsoft Visual Studio 2012/2013/2010 (cualquier edición)

Enlace: //www.visualstudio.com/

2) Kit de desarrollo de usuario COSMOS Milestone 4 (Sistema operativo gestionado de código abierto C #)

Enlace: //cosmos.codeplex.com/downloads/get/90082

3) Cualquier software de virtualización para ejecutar el sistema operativo. Estoy usando VMware Player.

Perquisite Knowledge-

Los fundamentos de C ++, Java, .net funcionarían

Solo solicito navegar entre 5-10 tutoriales básicos en línea de c # para que pueda comprender mejor

Paso 3: Introducción a COSMOS

Cosmos (C # Open Source Managed Operating System) es un kit de desarrollo de sistema operativo que utiliza Visual Studio como su entorno de desarrollo. A pesar de C # en el nombre, se puede usar cualquier lenguaje basado en .NET, incluidos VB.NET, Fortran, Delphi Prism, IronPython, F # y más. Cosmos en sí y las rutinas del núcleo están escritas principalmente en C #, y por lo tanto el nombre Cosmos. Además de eso, NOSMOS (.NET Open Source Managed Operating System) suena estúpido.

Cosmos no es un sistema operativo en el sentido tradicional, sino que es un "Kit de sistema operativo", o como me gusta decir "Sistema operativo Legos". Cosmos le permite crear sistemas operativos tal como Visual Studio y C # normalmente le permiten crear aplicaciones. La mayoría de los usuarios pueden escribir y arrancar su propio sistema operativo en solo unos minutos, todo utilizando Visual Studio. Milestone 5 incluye nuevas características, como un tipo de proyecto integrado en Visual Studio y un depurador integrado. Puede depurar su sistema operativo directamente desde Visual Studio utilizando puntos de interrupción. Cosmos está disponible en dos distribuciones, el kit de desarrollador (kit de desarrollo) y el kit de usuario. El kit de desarrollo está diseñado para usuarios que desean trabajar en Cosmos. El kit de usuario está diseñado para aquellos que estén interesados ​​en construir su propio sistema operativo y hacer un trabajo de Cosmos. El kit de desarrollo podría considerarse como el SDK de Cosmos. La mayoría de los usuarios deberían comenzar con el kit de usuario, ya que no es tan abrumador como el kit de desarrollo. Este artículo se centra en el kit de usuario.

Paso 4: escribir su primer sistema operativo

¡Entonces, primero vamos a escribir un sistema operativo que simplemente pueda imprimir texto en la pantalla!

En primer lugar, instale todo el software necesario que se menciona en el paso anterior.

1) Abra Visual Studio y navegue a Archivo> Nuevo proyecto

2) En el cuadro de diálogo del nuevo proyecto, seleccione COSMOS y luego Proyecto COSMOS en el cuadro de plantillas. Asigne un nombre al proyecto y haga clic en Aceptar.

3) Ahora verá un archivo "program.cs" en el explorador de soluciones. Haz clic y cárgalo.

4) Verá una gran cantidad de código en él, no se asuste, solo necesitamos editar el código bajo el bloque "public static void Init ()" solamente: D

5) Ahora haga clic en el botón de inicio que ve en la barra de herramientas de Visual Studio o en el menú Depurar, haga clic en "Iniciar depuración"

6) Verá aparecer una ventana de COSMOS Builder, sin ninguna modificación, solo haga clic en la compilación de arranque

7) ¡GUAU! ¿Para que aparezca la ventana QEMU? QEMU es en realidad un emulador del sistema operativo, por lo que está viendo cómo se ejecuta el código. Ahora hagamos algunas modificaciones y personalicemos el sistema operativo.

Paso 5: Personalizando el SO

Ahora solo haga algunos cambios simples en el código,

bajo vacío público estático Init (),

Cambie Console.WriteLine ("¡Bienvenido! Acaba de iniciar el código C #. Edite Program.cs para que se ajuste a sus necesidades"); a Console.WriteLine ("¡Hola, mundo! Este es mi primer sistema operativo");


Entonces, has cambiado ¡Bienvenido! Acabas de arrancar el código C #. ¡Edite Program.cs para que se ajuste a sus necesidades en Hello World! Este es mi primer sistema operativo.

Acabamos de editar el texto. Ahora compilemos el código y veamos el resultado. Realice los pasos del paso anterior para compilar el código.

¡Ví eso! El texto ha cambiado! incluso puedes poner tu nombre aquí. ¡Felicidades! has ganado la mitad de la batalla al comprender los conceptos básicos. Pero, ¿qué tal un sistema operativo que recibe información del usuario y le da una salida? Al igual que los sistemas operativos de línea de comandos o la terminal de Linux.

Paso 6: Hacer un sistema operativo de línea de comando

Entonces aquí haremos un sistema operativo de línea de comando. Como vimos el código anterior, el código solo escribe algo de texto en la pantalla a través de la función Console.WriteLine () . Ahora escribiremos un sistema operativo donde el usuario da la entrada y la computadora la procesa.

Entonces, ¡hagamos un código que imprima Hello User! ¡Gracias por usar este sistema operativo! cuando saludamos como entrada a la computadora.

En la programación, hay diferentes tipos de bucles que la mayoría de ustedes conocen como el bucle If que realiza la acción si se cumplen las condiciones. Entonces aquí usaremos if loop y si la entrada de un usuario es hola, entonces imprimirá la línea que mencionamos anteriormente.

CÓDIGO:

entrada de cadena;

input = Console.ReadLine ();

if (input == "hola")

{Console.WriteLine ("¡Hola, usuario! ¡Gracias por usar este sistema operativo!");

}

Aquí en este código, creamos una cadena llamada input en la que leemos algunos datos. El bucle If comprueba que si la entrada coincide con la palabra hola, ¡debería imprimir Hello User! ¡Gracias por usar este sistema operativo!

¡Ahora vamos y ejecute este código!

¡Ahora puede escribir en el sistema operativo ahora! escriba hola

¿Emocionado? ¿Vio la salida? :RE

Hiciste tu propio sistema operativo de línea de comandos. pero ¿qué hay de agregar muchas más funciones en esto? Como si escribes sobre, te dice la información sobre el sistema operativo y si escribes ayuda, ¿muestra la lista de comandos? Hagámoslo en el siguiente paso.

Paso 7: Agregar más funciones a nuestro sistema operativo

Entonces, agreguemos más funciones, como sobre qué muestra COSMOS OS 1.0 y ayuda sobre qué pantallas

hola: comando simple del sistema operativo

about - Conozca el sistema operativo

De manera similar al paso anterior, haga 2 bucles if más.

CÓDIGO:

entrada de cadena;
input = Console.ReadLine ();

if (input == "hola")

{Console.WriteLine ("¡Hola, usuario! ¡Gracias por usar este sistema operativo!"); }

if (input == "acerca de")

{Console.WriteLine ("COSMOS OS 1.0");

}


if (input == "ayuda")

{

Console.WriteLine ("hola - Comando simple del sistema operativo");

Console.WriteLine ("acerca de - Conozca el sistema operativo");

}

En este código, como puede ver, hemos hecho 2 bucles if más. Ahora ejecute el código y escriba about . Vi eso, muestra COSMOS OS 1.0 y luego cierra la ventana y vuelve a ejecutar el código y luego escribe help . ¿Ví eso? Esto significa que todo va bien.

Ahora cada sistema operativo tiene una opción de apagado o apagado. Así que agreguemos funciones como apagar y reiniciar.

Paso 8: Agregar funciones de apagado y reinicio

Agregar la función de apagado y reinicio también es extremadamente fácil. En cosmos, el código para apagar es Cosmos.Sys.Deboot.ShutDown (); y para reiniciar es Cosmos.Sys.Deboot.Reboot ();

Ahora haga bucles IF que tengan entrada como apagado y reinicie .

CÓDIGO:

entrada de cadena;
input = Console.ReadLine ();

if (input == "hello") {Console.WriteLine ("¡Hola, usuario! ¡Gracias por usar este sistema operativo!"); }

if (input == "about") {Console.WriteLine ("COSMOS OS 1.0");

}

if (input == "help") {Console.WriteLine ("hola - Comando simple del sistema operativo"); Console.WriteLine ("acerca de - Conozca el sistema operativo"); }

if (input == "shutdown") {Cosmos.Sys.Deboot.ShutDown (); }

if (input == "restart") {Cosmos.Sys.Deboot.Reboot (); }


Ahora ejecute el código y escriba reiniciar . ¡Lo vi xD! Se reinició! Ahora escriba shutdown . Lo vi, la ventana se cerró, lo que significa que el sistema operativo se apagó.

¡Esta puede ser la parte más emocionante cuando creó un sistema operativo que puede apagarse y reiniciarse!

Ahora vamos a mejorar este sistema operativo dándole toques finales.

Paso 9: toques finales

En los toques finales, usaremos el caso de cambio porque es mucho más simple y mejor que la declaración IF. También crearemos un comando que cuando el usuario escribe una palabra clave que no está en la lista de nuestros comandos, debe mostrar No existe dicho comando

Solo vea el código una vez.

CÓDIGO:

mientras (cierto)
{

comando de cadena = Console.ReadLine ();

interruptor (comando) {

caso "apagado": {Cosmos.Sys.Deboot.ShutDown ();

descanso;

}

caso "ayuda":

{

Console.WriteLine ("hola - Comando simple del sistema operativo");

Console.WriteLine ("acerca de - Conozca el sistema operativo");

descanso;

}

caso "acerca de":

{

Console.WriteLine ("COSMOS OS 1.0");

descanso;

}

caso "reiniciar": {

Cosmos.Sys.Deboot.Reboot ();

descanso;

}

caso "hola": {

Console.WriteLine ("¡Hola, usuario! ¡Gracias por usar este sistema operativo!");

descanso;

}

valor predeterminado: {Console.WriteLine ("No existe ese comando");

comando = nulo; descanso; }}

}

Ok, solo copie el código en Visual Studio y ejecútelo. Tenga en cuenta que agregamos el descanso ;. Esto se usa en la caja del interruptor. ¡Ahora diviértete con tu sistema operativo!

Ahora intenta escribir un comando incorrecto como ayudarme. este comando no se definió, por lo que muestra No se encontró ningún comando . Esto significa que ahora nuestro sistema operativo no aceptará comandos incorrectos. Y prueba todos los comandos. Es posible que haya notado que ahora puede escribir otro comando después del anterior, ya que estamos tomando la entrada en un bucle constante.

Paso 10: ejecutar y probar el sistema operativo

Así que ahora voy a probar el sistema operativo que hicimos. Usaré un software de virtualización para ejecutar el sistema operativo. ¡Usaré el reproductor VMware que se puede descargar gratis!

Ok, cree una máquina virtual y abra C: \ Users \ {Your Username} \ AppData \ Roaming \ Cosmos User Kit

Aquí encontrará el archivo cosmos.iso después de seleccionar compilar ISO en Visual Studio. ¡Simplemente inicie este archivo en VMware y disfrute de su sistema operativo! (hacerlo en pantalla completa)

Paso 11: Gracias y sobre mí

Soy un desarrollador incrustado de 16 años que trabajo con MIT Media Labs India Initiative. Trabajo en diversas tecnologías como ARM, AVR, Arduino y Raspberry Pi.

Puede encontrar sobre mí aquí: //www.sarthaksethi.net/

Facebook: //www.facebook.com/pages/Sarthak-Sethi/25272 ...

Youtube: //www.youtube.com/channel/UCv7OszKtRFkJ_e0Af ...

Artículos Relacionados