Interbloqueos 2.0
Interbloqueos 2.0
Interbloqueos 2.0
Introducción………………………………………………………………….......pag.2
Pasos para crear un sistema operativo…………………………………………Pag.3
Conclusión………………………………………………………………………...pág.10
Bibliografía…………………………………………………………………...…...pág.11
Introducción
En el informe siguiente se aprenderá un poco sobre la creación de un sistema operativo
lo primeros que tenemos que tener en cuenta que es Un sistema operativo es un
conjunto de programas que permite manejar la memoria, disco, medios de
almacenamiento de información y los diferentes periféricos o recursos de nuestra
computadora, como son el teclado, el mouse, la impresora, la placa de red, entre otros.
También tenemos que tener cuenta que realiza un sistema operativo Dentro de las tareas
que realiza el sistema operativo, en particular, se ocupa de gestionar la memoria de
nuestro sistema y la carga de los diferentes programas, para ello cada programa tiene
una prioridad o jerarquía y en función de la misma contará con los recursos de nuestro
sistema por más tiempo que un programa de menor prioridad.
Para poder compilar un sistema operativo con el código C o C++, por supuesto
tendrás que utilizar cualquier compilador. Por lo tanto, deberás leer la guía o los
manuales o la documentación de usuario del compilador C o C++ que vayas a
elegir, ya sea si se incluye con el software o esté disponible en la página web del
distribuidor. Tendrás que saber muchas cosas complejas acerca del compilador y
para desarrollar con C++ deberás tener conocimientos de decoración de nombre
(mangling scheme) del compilador y de su ABI. Se supone que tendrás que conocer
los diversos formatos ejecutables (ELF, PE, COFF, binarios sin formato, etc.) y
entender que el formato patentado de Windows, PE (.exe), está protegido por los
derechos de autor.
Decide cuál será la interfaz de programación de aplicaciones (API,Application
Programming Interface). Te recomendamos POSIX, ya que está bien documentada.
Todos los sistemas Unix tienen al menos el soporte parcial para POSIX, por lo que sería
trivial conectar programas Unix con tu sistema operativo.
Guarda una copia de seguridad de la última fuente de trabajo. Ello será una medida
de protección en caso de que surja algún problema grave con la versión actual de tu
sistema operativo o tu desarrollo. Si la PC se bloquea y no puede arrancar, será
excelente tener una segunda copia con la que puedas trabajar para solucionar el
problema.
Considera probar tu nuevo sistema operativo en una computadora virtual.En lugar
de reiniciar el equipo cada vez que realices cambios o tengas que transferir ciertos
archivos desde el equipo de desarrollo al equipo de prueba, podrás utilizar la aplicación
de una computadora virtual para ejecutar tu sistema operativo, mientras el tuyo se
mantiene en funcionamiento. Algunas aplicaciones de computadora virtual son
VMWare (que también tiene un producto de servidor gratuito), la alternativa de código
abierto, Bochs, Microsoft Virtual PC (no compatible con Linux) y xVM VirtualBox.
Saca un “candidato de lanzamiento”. Esto permitirá a los usuarios informarte sobre
posibles problemas con el sistema operativo.
Un sistema operativo también podría ser fácil de usar, así que asegúrate de incluir
características fáciles para el usuario, de modo que sean parte integral de tu
diseño.
CONSEJOS
Después de que hayas hecho todo el desarrollo, decide si quieres que el código
sea abierto o patentado.
No comiencesun proyecto para crear un sistema operativo con el fin de empezar
a aprender programación. Si no tienes conocimientos avanzados de C, C++, Pascal
u otro lenguaje adecuado, incluida la manipulación del puntero, manipulación de
bits de bajo nivel, desplazamiento de bits, lenguaje ensamblador en línea, etc.,
entonces no estarás listo para desarrollar un sistema operativo.
Si quieres que tu sistema sea viable, tu mayor prioridad tendrá que ser
implementar características de seguridad.
Usa los sitios web como OSDev y OSDever para que te ayuden a desarrollar tu
propio sistema operativo. Ten en cuenta que para la mayoría de los propósitos, la
comunidad OSDev.org prefiere que te limites a hacer uso de su wiki y no participar
en el foro. Si decides participar en el foro, existen requisitos para hacerlo: deberás
tener conocimientos profundos de C o C++ y el lenguaje ensamblador x86. También
deberás comprender conceptos de programación complejos y generales como listas
enlazadas, colas, etc. El reglamento de la comunidad OSDev establece
explícitamente que el objetivo de la comunidad no consiste en cuidar a los
programadores novatos. Si vas a tratar de desarrollar un sistema operativo, no hace
falta decir que se supone que tienes que ser un “dios” de la programación. También
será necesario que leas los manuales del procesador para la arquitectura que vayas a
elegir; ya sea x86 (Intel), ARM, MIPS, PPC, etc. Podrás encontrar fácilmente estos
manuales con una búsqueda de Google (“manuales Intel”, “manuales de ARM”,
etc.).No te unas alos foros OSDev.org para empezar a hacer preguntas obvias sino
simplemente te dirán que leas el manual de respuestas. Deberás tratar de leer
Wikipedia y los manuales de las diversas herramientas que desees utilizar.
Comprueba si hay posibles bloqueos y otros errores. Los errores, bloqueos y
demás problemas afectarán tu proyecto del sistema operativo
Si quieres que sea fácil, ten en cuenta algunas distribuciones de Linux, tales
como Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd,
SUSE Studio y SUSE KIWI. Sin embargo, el sistema operativo que crees le
pertenecerá a la empresa que haya lanzado primero el servicio (aunque tendrás los
derechos de distribuirlo gratuitamente, cambiarlo y ejecutarlo como quieras bajo el
GPL).
Te recomendamos hacer una partición completamente nueva para desarrollar el
sistema operativo.
ADVERTENCIAS
COSAS QUE SE NECESITARAN
Una computadora
Un CPU para la arquitectura que vayas a desarrollar
Memoria (RAM) suficiente para una computadora virtual
Un sistema operativo anfitrión (para desarrollar el ensamblador, otros código
fuente, para construirlo y empaquetarlo mientras estés en tus primeras etapas, con el
tiempo tu propio sistema operativo podría ser tu anfitrión)
Editor de coloreado de sintaxis (si no tienes “Entorno de desarrollo integrado”)
Un compilador
Una unidad CD/DVD
Pro y contra de crear un sistema libre
Desventajas: