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

Tabla de contenido:

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

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

Video: Cómo hacer un sistema operativo de computadora (con imágenes)
Video: Como Actualizar Desde Windows 7 a Windows 8.1 SIN FORMATEAR 2024, Mayo
Anonim

El sistema operativo permite al usuario interactuar con el hardware de la computadora. El sistema se compone de cientos de miles de líneas de código. Por lo general, el sistema operativo se crea utilizando los lenguajes de programación C #, C, C ++ y ensamblador. El sistema operativo le permite navegar por su computadora mientras guarda y ejecuta comandos. No crea que crear un sistema operativo sea fácil. Se necesita mucho conocimiento para hacerlo.

Paso

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

Paso 1. En primer lugar, aprenda a programar

El lenguaje ensamblador es muy importante; Es muy recomendable que aprenda otro lenguaje complementario de alto nivel como el lenguaje C.

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

Paso 2. Decida qué medio desea utilizar para cargar el sistema operativo

Este medio puede ser una unidad de CD, una unidad de DVD, una unidad flash, un disco duro, un disquete u otra PC.

Hacer un sistema operativo de computadora Paso 3
Hacer un sistema operativo de computadora Paso 3

Paso 3. Defina la idea central de un SO

Por ejemplo, en Windows, la idea central es una GUI fácil de usar y mucha seguridad.

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

Paso 4. Determine qué plataforma de procesador admitirá su sistema operativo

IA-32, ARM y x86_64 son las plataformas más comunes para computadoras personales. Entonces, todos ellos son tu mejor opción.

Hacer un sistema operativo de computadora Paso 5
Hacer un sistema operativo de computadora Paso 5

Paso 5. Decide si prefieres hacer todo tú mismo desde cero o si ya hay un kernel disponible en el que te gustaría construir

Por ejemplo, Linux from scratch es un proyecto para personas que quieren construir su propia distribución de Linux.

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

Paso 6. Decida si utilizará su propio cargador de arranque o uno preconstruido como Grand Unified Bootloader (GRUB)

Codificar el cargador de arranque usted mismo requerirá un amplio conocimiento de hardware y BIOS. Como resultado, este paso puede dificultar la programación real del kernel.

Hacer un sistema operativo de computadora Paso 7
Hacer un sistema operativo de computadora Paso 7

Paso 7. Decide qué lenguaje de programación usar

Está bien tener un sistema operativo en un lenguaje como Pascal o BASIC, pero debe usar C o Ensamblador. El ensamblaje es muy necesario, porque algunas partes importantes de un sistema operativo lo requieren. Por otro lado, el lenguaje C ++ contiene palabras clave que requieren otro SO completo para ejecutarse.

Para compilar un sistema operativo a partir de código C o C ++, por supuesto, utilizará un compilador u otro. Por lo tanto, es una buena idea consultar la guía de usuario / manual / documentación del compilador C / C ++ de su elección, ya sea incluido en el software o disponible en el sitio web del distribuidor. Necesita saber muchas cosas complicadas sobre el compilador y, para el desarrollo de C ++, necesita conocer el esquema de manipulación del compilador y su ABI. Se espera que comprenda los diversos formatos ejecutables (ELF, PE, COFF, binario básico, etc.) y que comprenda que el formato exclusivo de Windows, PE (.exe), está protegido por derechos de autor

Hacer un sistema operativo de computadora Paso 8
Hacer un sistema operativo de computadora Paso 8

Paso 8. Defina su interfaz de programación de aplicaciones (API)

Una buena API para elegir es POSIX, ya que está bien documentada. Todos los sistemas Unix tienen al menos soporte parcial para POSIX. Por lo tanto, conectar programas Unix a su sistema operativo debería ser fácil.

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

Paso 9. Decide tu diseño

Existe algo así como un kernel monolítico y un micro kernel. Los núcleos monolíticos implementan todos los servicios en el núcleo, mientras que los micro núcleos tienen núcleos pequeños empaquetados con los servicios de implementación del demonio del usuario. 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 10
Hacer un sistema operativo de computadora Paso 10

Paso 10. Considere desarrollar y trabajar en equipo

De esa manera, se necesita menos tiempo para resolver más problemas, lo que probablemente acelerará la construcción de un mejor sistema operativo.

Hacer un sistema operativo de computadora Paso 11
Hacer un sistema operativo de computadora Paso 11

Paso 11. No limpie su disco duro por completo

Recuerde, eliminar una unidad borrará todos los datos que contiene de forma irreversible. Use GRUB u otro administrador de arranque para arrancar dos veces su sistema con otro sistema operativo hasta que su sistema operativo sea completamente funcional.

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

Paso 12. Empiece poco a poco

Comience con cosas pequeñas como mostrar texto y haga una pausa antes de pasar a cosas como la gestión de la memoria y el trabajo compuesto. También asegúrese de hacer las versiones de 32 bits y 64 bits.

Hacer un sistema operativo de computadora Paso 13
Hacer un sistema operativo de computadora Paso 13

Paso 13. Mantenga una copia de seguridad del último código fuente en funcionamiento

Este paso es útil como salvaguarda en caso de que algo salga mal con la versión actual de SO o desarrollo. Si su computadora falla y no arranca, es una buena idea tener una segunda copia con la que trabajar para que pueda solucionar el problema.

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

Paso 14. Considere probar su nuevo sistema operativo con una máquina virtual

En lugar de reiniciar su computadora cada vez que realiza cambios o después de enviar archivos desde su computadora de desarrollo a su máquina de prueba, puede usar una aplicación de máquina virtual para ejecutar su sistema operativo mientras se ejecuta su sistema operativo actual. Las aplicaciones de VM actuales incluyen: VMWare (que también tiene un producto de servidor disponible de forma gratuita), alternativas de código abierto, Bochs, Microsoft Virtual PC (no compatible con Linux) y Oracle VirtualBox.

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

Paso 15. Ejecute el "candidato de lanzamiento" o la versión Beta

Este paso permitirá al usuario notificarle sobre posibles problemas con su sistema operativo.

Hacer un sistema operativo de computadora Paso 16
Hacer un sistema operativo de computadora Paso 16

Paso 16. El sistema operativo también debe ser fácil de usar

Asegúrese de agregar funciones fáciles de usar, conviértalas en una parte integral de su diseño.

Consejos

  • Busque posibles interbloqueos y otros errores. Los errores, los interbloqueos y otros problemas afectarán el proyecto de compilación de su sistema operativo.
  • Asegúrese de implementar las funciones de seguridad como máxima prioridad si desea que el sistema funcione correctamente.
  • Utilice sitios web como OSDev y OSDever para ayudarlo a desarrollar su propio sistema operativo. Tenga en cuenta que para la mayoría de los propósitos, la comunidad de OSDev.org estará más que feliz si usa su wiki y no se une al foro. Si decide unirse a un foro, hay una condición previa: necesita saber realmente sobre C o C ++ y el lenguaje ensamblador x86. También debe comprender conceptos de programación generales y complejos como listas enlazadas, colas, etc. La comunidad OSDev, en sus regulaciones, declara explícitamente que su comunidad no se creó para nutrir a nuevos programadores.
  • No te unas con el foro OSDev.org y luego haga la pregunta obvia. Solo se le pedirá que lea la guía. Lea Wikipedia y las instrucciones de cualquier equipo que desee utilizar.
  • Si está intentando desarrollar un sistema operativo, definitivamente se le considera el "dios" de la programación.
  • También debería haber leído el manual del procesador para la arquitectura de procesador que ha seleccionado; ya sea x86 (Intel), ARM, MIPS, PPC, etc. Los manuales para arquitecturas de procesador son fáciles de encontrar mediante una búsqueda en Google ("manual de Intel", "manual de ARM", etc.).
  • Una vez que se haya completado todo el trabajo de desarrollo, decida si desea publicar el código como código abierto o con derechos de autor.
  • No empieces un proyecto de sistema operativo para comenzar a aprender a programar. Si no conoce por dentro y por fuera sobre C, C ++, Pascal o algún otro lenguaje adecuado, incluida la manipulación de punteros, manipulación de bits de bajo nivel, desplazamiento de bits, lenguajes ensambladores en línea, etc., no está listo para el sistema operativo desarrollo.
  • Crear una partición completamente nueva para 'expandir' SO podría ser una buena opción.
  • Si desea una manera fácil, considere distribuciones de Linux como Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD o SUSE Studio y SUSE KIWI. Sin embargo, el sistema operativo que crea pertenece a la empresa que inició el servicio primero (aunque tiene derecho a distribuirlo libremente, modificarlo y ejecutarlo como desee bajo la GPL).

Advertencia

  • No obtendrá un sistema operativo completo en dos semanas. Comience con un SO de arranque, luego continúe con cosas más interesantes.
  • Escribir descuidadamente su sistema operativo en un disco duro puede dañarlo por completo. Ten cuidado.
  • Si hace algo que no se recomienda, como escribir bytes aleatorios en puertos de E / S aleatorios, bloqueará su sistema operativo y (en teoría) podría quemar su hardware.
  • No espere que el sistema operativo sea fácil de construir. Hay muchas interdependencias complicadas. Por ejemplo, para crear un sistema operativo capaz de manejar varios procesadores, su Administrador de memoria debe tener un mecanismo de "bloqueo" para evitar que varios procesadores accedan al mismo recurso al mismo tiempo. El "bloqueo" utilizado para esto requeriría un programador para garantizar que solo un procesador acceda a los recursos críticos en un momento dado y que todos los demás tengan que esperar. De hecho, el planificador depende de la presencia del Administrador de memoria. Este es un ejemplo de dependencia sin salida. No existe una forma estándar de resolver este tipo de problema; Se espera que todo programador de sistemas operativos sea lo suficientemente hábil para conocer su propia manera de manejarlo.

Recursos adicionales

  • Directrices: Linux desde cero
  • Cargador de arranque: GRUB
  • Aplicaciones de máquinas virtuales: Bochs, VM Ware, XM Virtual Box.
  • Manual del procesador: manual de Intel
  • SO sitios de desarrollo: OSDev, OSDever

Recomendado: