Interbloqueos 2.0

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Índice

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.

Ya que se entiende esos temas podemos entender los temas principales.


PASOS PARA CREAR UN SISTEMA OPERATIVO

Los sistemas operativos permiten al usuario interactuar con el hardware de su


computadora, los cuales se elaboran con cientos de miles de líneas de código, por lo
general con los lenguajes C, C++ y ensambladores.
Tendrás que tener conocimientos de programación antes de empezar. El lenguaje
ensamblador es esencial; otro lenguaje adicional de bajo nivel como C será muy
recomendable.
Decide en qué medio deseas cargar el sistema operativo. Podría ser una unidad de
CD, DVD, de flash, un disco duro o en otra PC.
Decide qué quieres que haga tu sistema operativo. Si se trata de un sistema operativo
completamente capaz que tiene una interfaz gráfica de usuario (GUI,Graphical User
Interface) o algo un poco más minimalista, tendrás que saber qué dirección vas a tomar
antes de comenzar.

Especifica qué plataforma de procesador será compatible con tu sistema


operativo. Te recomendamos las dos más comunes para las computadoras personales:
AI-32 y x86_64.
Decide si prefieres hacerlo todo tú mismo desde cero o si hay un núcleo existente
que te gustaría usar como base para construir. Por ejemplo, programar Linux desde
cero será un proyecto para aquellos que le gustaría crear su propia distribución de
Linux.
Decide si vas a utilizar tu propio gestor de arranque o uno pre-creado como el
cargador de arranque unificado global (GRUB, Grand Unified Bootloader). Debido
a que para programar el código de tu propio gestor de arranque necesitarás poseer un
conocimiento amplio del hardware y del BIOS, podría retrasarte para programar el
núcleo en sí.
Decide qué lenguaje de programación vas a utilizar. Si bien es posible crear un
sistema operativo con un lenguaje como Pascal o BASIC, será mejor si usas C o el
ensamblador. El ensamblador es absolutamente necesario, ya que algunas partes vitales
de un sistema operativo lo necesitan. Por su parte, C++ contiene palabras clave que
necesitan otro sistema operativo totalmente integrado para poder funcionar.

 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.

Decide el diseño. Existen núcleos monolíticos y micronúcleos. Los monolíticos


implementan todos los servicios en el núcleo, mientras que los micronúcleos tienen un
núcleo pequeño combinado con servicios de implementación de demonios de usuario.
En general, los núcleos monolíticos son más rápidos, pero los micronúcleos tienen un
mejor aislamiento de fallos y fiabilidad.
Considera desarrollar y trabajar en equipo. De esta manera, se resolverán más
problemas en menos tiempo, lo cual podría generar un mejor sistema operativo más
rápidamente.
No borres tu disco duro por completo. Recuerda, ¡al borrar el disco podrías borrar
todos tus datos irreversiblemente! Utiliza el GRUB u otro gestor de arranque para que tu
computadora tenga otro sistema operativo con el cual arrancar hasta que el tuyo
funcione por completo.
Empieza con algo pequeño. Empieza con cosas pequeñas como mostrar texto e
interrupciones antes de proseguir a desarrollar cosas como gestión de memoria y
multitarea.

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

 Escribir descuidadamente tu sistema operativo sobre el disco duro podría


dañarlo por completo, así que ten cuidado.
 No podrás crear un sistema completo en dos semanas. Primero haz uno que
arranque, luego prosigue con las características interesantes.
 No esperes que sea fácil construir un sistema operativo bien hecho. Habrá
muchas interdependencias complejas, por ejemplo, para que el sistema pueda
manejar varios procesadores, el administrador de memoria deberá tener mecanismos
de “bloqueo” para evitar que varios procesadores accedan al mismo recurso al
mismo tiempo. Los “bloqueos” para ello necesitarán la presencia de un planificador
para asegurarse de que solo un procesador tenga acceso a un recurso crítico en algún
momento dado mientras todos los demás esperan. Sin embargo, el planificador
dependerá de la presencia de un administrador de memoria. Este es el caso de una
dependencia en punto muerto. No existe ninguna solución estándar para este tipo de
problemas, por lo que se supone que cada programador de un sistema operativo
tendrá que tener la destreza necesaria para lidiar con él.
 Si haces algo contraproducente, por ejemplo, escribir bytes aleatorios a puertos
I/O aleatorios, bloquearás el sistema operativo y podrías quemar el hardware (en
teoría).

 
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

Las ventajas del sistema operativo libre

 La principal ventaja del software libre es que cualquier persona puede


utilizarlo, es gratuito. Sin duda, el más conocido, es el sistema operativo
libre Linux.

 La segunda y mayor ventaja es que existe la libertad de conocimiento y el


trabajo cooperativo entre los usuarios, consiguiendo así un software más
innovador.

 La tercera ventaja es que permite una rápida solución de errores ya que se


puede acceder libremente al código fuente.

 La cuarta ventaja del sistema operativo libre es que tienes total


independencia de un proveedor, es decir, tienes total autonomía con el
software.

 La quinta ventaja es la facilidad de uso y personalización a la necesidades


que tengas.

 Otra de las ventajas que ofrece es que puede traducirse a cualquier idioma,


lengua regional o indígena.

La durabilidad de la información y su migración están aseguradas gracias al acceso al


código fuente. Además tiene menos riesgos de códigos maliciosos o de espionaje. Otra
de las ventajas del sistema operativo libre es que permite el uso y trabajo de varios
usuarios al mismo tiempo. Y por último, al no depender de empresas privadas,
garantiza la continuidad del producto y está libre de las prácticas del tipo monopolio.

Desventajas del sistema operativo libre


Aunque las ventajas del software libre son muchas, también existe desventajas. Entre las
principales encontramos que es difícil el intercambio de archivos de texto .doc, ya
que suelen dar errores o perder datos.

Generalmente se necesitan algunos conocimientos de programación o formación


en Administración de sistemas informáticos en red para la configuración del sistema
operativo. Por otro lado no ofrece garantía, el software libre no se hace responsable
de daños causados por su funcionamiento.
Al ser un software creado por los usuarios, no hay garantizado un control de calidad
previo, aunque serán ellos los que reporten los errores y las mejoras a realizar.

¿Linux y Software Libre son la misma cosa?

Constantemente se usan conceptos de forma errónea.


Linux y Software Libre no son la misma cosa, como tampoco software comercial,
propietario y privativo. A veces se confunden o usan indistintamente Linux y Software
Libre, cuando son dos conceptos distintos.

Software libre de forma técnica podríamos definirlo como cualquier aplicación o


programa que cumpla con 4 libertades para los usuarios de ese software:

• La libertad de usar el programa, con cualquier propósito (libertad 0).


• La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades
(libertad 1). El acceso al código fuente es una condición previa para esto.
• La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
• La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo
que toda la comunidad se beneficie. (libertad 3). 
El acceso al código fuente es un requisito previo para esto.

El software Libre se centra en la libertad, en la oportunidad para que cualquier persona


pueda usarlo, distribuirlo, mejorarlo,… es decir, no poner límites al progreso de la
misma, y, por lo tanto, a la Sociedad en su Conjunto.
Y como todos sabemos, el concepto fue inventado por Richard M Stallman, así como el
proyecto GNU, entre otras muchas otras cosas.
Por otro lado, Linux fue ideado y comenzado por Linux Torvalds, un estudiante que
quiso con sus conocimientos técnicos hacerse un Sistema Operativo acorde a sus
necesidades y las limitaciones de las computadoras de aquellos tiempos. Como bien
define la wikipedia, debiéramos diferenciar el Núcleo Linux y el conjunto concreto de
aplicaciones junto al núcleo, que es lo que se denomina GNU/Linux. Aunque
habitualmente se usa Linux para referirnos a GNU/Linux, lo cual siempre ha generado
polémica, al igual que en los últimos años se han popularizado tanto distribuciones
como Ubuntu que los usuarios más neófitos usan indistintamente Linux, Ubuntu,… para
referirse a lo que correctamente es GNU/Linux. 
• Hay quien lo llama software comercial, pero no es correcto, porque el software libre
también es comercial, es más, como la propia FSF define, se puede cobrar por el
software libre.
• Hay quien lo llama propietario, algo igual de incorrecto, porque el software libre tiene
propietario, o mejor dicho autor.  De hecho, ambos están sujetos a derechos de autor.  Y
que no es más que una nueva equivocación provocada por la mala traducción de
términos anglosajones: “proprietary software”
• Lo que si que está claro que es un software que no respeta las libertades del software
libre, que no genera riqueza local, independencia, soberanía tecnológica, progreso para
la Sociedad en su conjunto,… y que solo beneficia a unos pocos.  Por lo tanto, si uno te
da la libertad y el otro te priva de ella, lo más correcto es usar el término Software
Privativo.
Ventajas:

• El mejor costo del mercado, gratuito o un precio simbólico por el cd.


• Tienes una enorme cantidad de software libre para este sistema
• Mayor estabilidad por algo lo usan en servidores de alto rendimiento
• Entorno grafico (beryl) mejor que el Aero de Windows…
• Existen distribuciones de Linux para diversos tipos de equipo, hasta para maquinas de
64 bits.
• Las vulnerabilidades son detectadas y corregidas más rápidamente que cualquier otro
sistema operativo.

Desventajas:

• Para algunas cosas debes de saber usar Unix


• La mayoría de los ISP no dan soporte para algo que no sea Windows (ignorantes).
• No Existe mucho software comercial.
• Muchos juegos no corren en Linux.
conclusión
De acuerdo con lo que se vio en el trabajo sabemos cómo se crea un sistema operativo y
que se requieres sabemos que los sistemas OS son lo primordial para poder utilizar una
computadora para todo tipo de trabajo y que si no sabemos cómo funciona no podremos
sacarles el máximo rendimiento posible a nuestros equipos.
Llegamos al final del informe y Espero que le haya aportado más conocimiento sobre
los sistemas operativos,
Bibliografía
https://chsosunal20162913052.wordpress.com/2016/08/14/pasos-para-crear-un-sistema-
operativo/
https://fp.uoc.fje.edu/blog/cuales-son-las-ventajas-de-trabajar-con-un-sistema-operativo-
libre/

También podría gustarte