Cómo hacer un sistema operativo de computadora: 13 pasos (con imágenes)

Tabla de contenido:

Cómo hacer un sistema operativo de computadora: 13 pasos (con imágenes)
Cómo hacer un sistema operativo de computadora: 13 pasos (con imágenes)

Video: Cómo hacer un sistema operativo de computadora: 13 pasos (con imágenes)

Video: Cómo hacer un sistema operativo de computadora: 13 pasos (con imágenes)
Video: Como Instalar Linux Ubuntu desde USB | Instalar ubuntu desde la BIOS | BIEN EXPLICADO PASO A PASO | 2024, Abril
Anonim

Este wikiHow te enseñará cómo planificar y desarrollar un sistema operativo si no sabes cómo codificar en C o C ++. Los sistemas operativos administran el hardware de la computadora y proporcionan los recursos que las aplicaciones necesitan para ejecutarse. Escribir un sistema operativo desde cero requiere un gran dominio de la informática, un lenguaje de programación como C o C ++, ensamblado y prácticas de gestión de código.

Pasos

Parte 1 de 2: Aprender los conceptos básicos

Hacer un sistema operativo de computadora Paso 1
Hacer un sistema operativo de computadora Paso 1

Paso 1. Toma algunos cursos básicos de Ciencias de la Computación

A diferencia del desarrollo para la web, la creación de un sistema operativo requiere una sólida comprensión de los algoritmos, las estructuras de datos, el hardware informático y la gestión de recursos. Las personas obtienen títulos en estas cosas, ¡así que no espere escribir un sistema operativo completo después de leer un tutorial en línea! El curso de Introducción a las Ciencias de la Computación de Harvard está disponible en línea a través de EDX sin costo alguno.

Hacer un sistema operativo de computadora Paso 2
Hacer un sistema operativo de computadora Paso 2

Paso 2. Aprenda un lenguaje de programación de alto nivel como Python

Una vez que tenga un conocimiento fundamental sólido de la informática, el siguiente paso es dominar C y / o C ++. Al igual que aprender sobre informática, dominar un idioma no es opcional; no podrá codificar un sistema operativo si no puede escribir aplicaciones sólidas.

Si es nuevo en C, consulte el curso Programación en C: Introducción de Dartmouth, que es gratuito a través de EDX. Una vez que complete ese curso, puede tomar el siguiente curso de la serie: Programación en C: Fundamentos del lenguaje. Luego, pase a cursos posteriores como Programación modular y Gestión de memoria y Punteros y Gestión de memoria

Hacer un sistema operativo de computadora Paso 4
Hacer un sistema operativo de computadora Paso 4

Paso 3. Aprenda un lenguaje ensamblador

Los lenguajes ensambladores son lenguajes de bajo nivel diseñados para comunicarse con diferentes procesadores. Dado que el ensamblaje es diferente para los diferentes tipos de procesadores (por ejemplo, lenguaje ensamblador x86 para Intel, AMD, VIA y otros procesadores), necesitará aprender la versión para el tipo de procesador que está codificando.

  • Este libro de código abierto, si se lee en su totalidad, puede brindarle una comprensión lo suficientemente sólida para construir un sistema operativo.
  • El arte del lenguaje ensamblador es un libro altamente recomendado sobre ensamblaje disponible tanto en línea como fuera de línea.
  • También debe investigar mucho sobre el tipo de procesador (s) en el que debe ejecutarse su sistema operativo. Los manuales para la arquitectura del procesador se pueden encontrar fácilmente mediante una búsqueda en Google ("Manuales Intel", "Manuales ARM", etc.).
Hacer un sistema operativo de computadora Paso 5
Hacer un sistema operativo de computadora Paso 5

Paso 4. Complete un tutorial del sistema operativo

Los tutoriales de SO lo guiarán a través del proceso de creación de un sistema operativo básico. Esto te acostumbrará al proceso y te ayudará a determinar si te falta alguna pieza. Una vez que haya completado uno o dos tutoriales, estará en camino de crear su propio sistema operativo.

  • Bare Bones es un tutorial que le ayuda a escribir su primer núcleo simple de 32 bits. Después de completar el tutorial, el siguiente paso es usar Meaty Skeleton para estructurar su propio sistema operativo.
  • Linux from Scratch es un libro en línea que lo guía a través de la creación de su propio sistema operativo Linux.
  • Operating systems from 0 to 1 es un libro gratuito sobre la creación de varios sistemas operativos de principio a fin.
Hacer un sistema operativo de computadora Paso 3
Hacer un sistema operativo de computadora Paso 3

Paso 5. Determine los objetivos de su sistema operativo

¿Qué quieres que haga tu sistema operativo? ¿Cómo debería verse? ¿Realmente necesita escribir un sistema operativo completo o simplemente está buscando crear una apariencia determinada para su escritorio? Estas son todas las cosas a considerar antes de comenzar a codificar.

  • Considere desarrollar con un equipo de otros programadores. Tener un equipo de desarrolladores trabajando en el proyecto reducirá significativamente el tiempo de desarrollo.
  • Agregue los objetivos, planes y preguntas de su proyecto a su repositorio público para que los demás puedan ayudarlo fácilmente.

Parte 2 de 2: Construyendo su sistema operativo

Diviértete con la computadora Paso 16
Diviértete con la computadora Paso 16

Paso 1. Elija un entorno de desarrollo

Esta es la plataforma que utilizará para codificar su nuevo sistema operativo. Es una cuestión de preferencia personal, pero la mayoría de la gente usa Windows o una versión de UNIX. Si está utilizando Windows, es una buena idea instalar un entorno UNIX como Cygwin o MinGW. Por lo general, querrá asegurarse de que el entorno que esté utilizando incluya lo siguiente:

  • GCC (el compilador de Gnu). Si está usando Windows, puede instalarlo en Cygwin o MinGW.
  • Binutils es una colección de herramientas que se utilizan para manipular archivos de objetos. Nuevamente, si está usando Windows, puede instalarlo en Cygwin.
  • Un buen editor de texto. Vim y emacs se utilizan comúnmente en entornos UNIX. Los usuarios de Windows pueden usar el Bloc de notas o consultar el Bloc de notas ++ para una actualización de múltiples pestañas.
  • Perl y / o Python. Se recomiendan uno o ambos para la manipulación de cuerdas.
Hacer un sistema operativo de computadora Paso 13
Hacer un sistema operativo de computadora Paso 13

Paso 2. Configure su sistema de control de versiones

Escribir un sistema operativo significa que probablemente creará cientos (¡o miles!) De líneas de código. Cuando está trabajando en revisiones, esto puede resultar confuso. Algunas opciones para verificar son CVS, Mercurial y Subversion.

Hacer un sistema operativo de computadora Paso 6
Hacer un sistema operativo de computadora Paso 6

Paso 3. Decidir sobre un gestor de arranque

Si no desea crear el suyo propio, puede usar uno existente como Grand Unified Bootloader (GRUB). Si se siente lo suficientemente atrevido como para codificar un gestor de arranque, consulte Rolling Your Own Bootloader en OSDev.org.

Hacer un sistema operativo de computadora Paso 9
Hacer un sistema operativo de computadora Paso 9

Paso 4. Elija un diseño de kernel

El kernel es el núcleo de su sistema operativo y proporciona una interfaz entre el usuario y el hardware de la computadora. Hay núcleos monolíticos y micro núcleos. Los kernels monolíticos implementan todos los servicios en el kernel, mientras que los microkernels tienen un kernel pequeño combinado con demonios de usuario que implementan servicios. En general, los núcleos monolíticos son más rápidos, pero los microkernel tienen mejor aislamiento de fallas y confiabilidad.

Hacer un sistema operativo de computadora Paso 12
Hacer un sistema operativo de computadora Paso 12

Paso 5. Empiece poco a poco

Comience con cosas pequeñas como mostrar texto e interrupciones antes de pasar a cosas como la gestión de la memoria y la multitarea. También puede intentar hacer un sistema operativo simple de 16 bits, en lugar de dar un gran salto.

No tendrá un sistema completo en dos semanas. Comience con un sistema operativo que se inicie, luego continúe con las cosas interesantes

Hacer un sistema operativo de computadora Paso 14
Hacer un sistema operativo de computadora Paso 14

Paso 6. Pruebe su nuevo sistema operativo con una máquina virtual

En lugar de reiniciar su computadora cada vez que realiza cambios o tener que transferir los archivos desde su computadora de desarrollo a su máquina de prueba, use una aplicación de máquina virtual. VMWare es una opción común que funciona tanto con Windows como con Linux, al igual que Bochs. Verifique posibles interbloqueos y otros errores y repárelos según sea necesario.

Hacer un sistema operativo de computadora Paso 15
Hacer un sistema operativo de computadora Paso 15

Paso 7. Liberar un "candidato de lanzamiento"

Puede hacer esto cargando su código probado en su repositorio público. Esto permitirá a las personas probar su sistema operativo e informar sobre cualquier problema que encuentren.

Diviértete con la computadora Paso 28
Diviértete con la computadora Paso 28

Paso 8. Establezca una red con otros desarrolladores de sistemas operativos

Hay toda una comunidad de desarrolladores de sistemas operativos reunidos en varios foros, incluidos / r / osdev en Reddit y Software Engineering Stack Exchange. Una vez que haya aprendido a desarrollar un sistema operativo básico, lea las publicaciones existentes para ver qué tipo de cosas surgen durante el proceso de desarrollo.

Video: al utilizar este servicio, es posible que cierta información se comparta con YouTube

Consejos

  • Asegúrese de implementar funciones de seguridad como su máxima prioridad si alguna vez desea que su sistema sea viable.
  • Una vez finalizado todo el desarrollo, decida si desea publicar el código como fuente abierta o propietario.
  • Para que un sistema operativo pueda manejar varios procesadores, su Administrador de memoria debe tener mecanismos de "bloqueo" para evitar que varios procesadores accedan al mismo recurso al mismo tiempo. Los "bloqueos" utilizados para esto requerirán la presencia de un programador para asegurarse de que solo un procesador acceda a un recurso crítico en un momento dado y que todos los demás se hagan esperar. Sin embargo, el planificador depende de la presencia de un administrador de memoria. Este es un caso de dependencia bloqueada. No existe una forma estándar de resolver problemas como este; Como programador, se espera que tenga la habilidad suficiente para descubrir su propia forma de lidiar con ello.
  • Un sistema operativo también puede ser fácil de usar. Asegúrese de agregar funciones fáciles de usar, convirtiéndolas en una parte integral de su diseño.
  • No te unes los foros de OSDev.org y comience a hacer preguntas obvias. Simplemente resultará en "Leer el manual" respuestas. Debería intentar leer Wikipedia y los manuales de las diversas herramientas que desea utilizar.
  • No empieces un proyecto de sistema operativo para comenzar a aprender a programar. Si aún no conoce C, C ++, Pascal o algún otro lenguaje adecuado de adentro hacia afuera, incluida la manipulación de punteros, manipulación de bits de bajo nivel, desplazamiento de bits, lenguaje ensamblador en línea, etc., no está listo para el desarrollo del sistema operativo.
  • Si hace algo poco aconsejable, como escribir bytes aleatorios en puertos de E / S aleatorios, bloqueará su sistema operativo y puede (en teoría) freír su hardware.

Recomendado: