Crear OS

Iniciado por GeorgArming, 5 Noviembre 2011, 23:04 PM

0 Miembros y 2 Visitantes están viendo este tema.

GeorgArming

Bueno, hace unos años empecé a interesarme por la informática y me documenté, así que los conceptos generales los tengo bastante aprendidos. Más tarde, empecé a programar en C. Pero un día me planteé la posibilidad de crear un OS muy simple. Sé que es muy difícil y complicado y más para un novato como yo, así que no crea que lo consiga. Lo quiero intentar básicamente para aprender.

Según vi, tendría que programarlo en assembler y en C. He buscado información, estoy leyendo algunos libros (por ejemplo, estoy empezando Sistemas Operativos de Tanenbaum) y tutoriales, pero tengo las siguientes dudas:

-Si assembler es diferente para cada arquitectura de procesador, ¿significa que si hiciera un OS tendría que hacer una versión diferente para cada una? ¿No hay un assembler válido para todos los procesadores y ordenador? Si no es así, ¿podría programar el OS muy poquito en assembler y hacerlo casi todo en C para sólo tenga que modificar la pequeña parte del assembler porque C es portable? Es que, por ejemplo, cuando yo me descargo Ubuntu, sólo me pide si el procesador 32 bits o de 64, nada más. Si hiciera un OS de 32 bits, ¿sólo tendría una versión?

-¿Es recomendable la arquitectura ewa?

-Para programar en C, ¿cómo tendría que hacerlo? Porque si hago el OS de cero, no tengo ni compilador ni librerías de nada. ¿Tendría que hacer todo esto de nuevo? ¿Las librerías se programan en assembler?

-¿En qué formato debe estar el "arrancable" de un OS (es decir, lo que pones en un CD de arranque)? Porque en Ubuntu he hecho lo siguiente: he copiado un pequeño código de Hello World en assembler, lo he guardado .asm, con nasm lo he  ensamblado y ahora es un archivo .o. ¿Es suficiente así para que arranque? ¿O de .o lo tengo que transformar a .iso o .img? Si es así, ¿cómo lo hago?

-Cuando programo un programa para ponerlo "de arranque", de modo que se muestre sin haber entrado en ningún OS, ¿qué tengo que hacer, un sólo programa que contenga ASM y C o un programa en ASM que llame a otro en C?

-¿Cómo se hace para incluir C en un código ASM? ¿Las librerías, dónde debo ponerlas? ¿Al principio del programa? Porque un printf no puedo hacerlo.

Sé que tengo demasiadas dudas, y seguramente la mayor parte de ellas estúpidas porque me debo estar haciendo un cacao tremendo con toda la información que estoy mirando. Pero seguro que por aquí hay alguien capaz de ayudarme  :D.

GeorgArming


тαптяα

Tienes temas en C, como si no me acuerdo mal un proyecto llamado Luxur.

Coge el botón de Buscar.. o mirate las FAQ de C/C++

Queta

http://wiki.osdev.org/

Es un tema el cual se habló en varias ocasiones en el foro.
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

GeorgArming

muchas gracias! había buscado mucha información pero la que decís es bastante más interesante  ;D

Queta

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

GeorgArming

Otra cosa, ya que intento hacer un OS, me gustaría aportar algo novedoso. ¿Qué se os ocurre?Yo he pensando en que se base en la nube, pero también puedas trabajar en modo local. Cada vez que tengas conexión, todo lo local se pasa a la red. Me gustaría también implementar buenos back-ups y hacer que el usuario no se "entere" de que existen los directorios (vamos, que para encontrar los archivos se tenga que buscar con un motor de búsqueda o, directamente, entrar en la app - situada en un panel, con las demás - correspondiente y desde allí abrir el archivo (app de texos, abrir todos los textos, app de vídeos,...).

¿Qué pensáis? ¿Hacia dónde tendría que orientar el OS?

d(-_-)b

Cita de: GeorgArming en 11 Noviembre 2011, 16:15 PM
Otra cosa, ya que intento hacer un OS, me gustaría aportar algo novedoso. ¿Qué se os ocurre?Yo he pensando en que se base en la nube, pero también puedas trabajar en modo local. Cada vez que tengas conexión, todo lo local se pasa a la red. Me gustaría también implementar buenos back-ups y hacer que el usuario no se "entere" de que existen los directorios (vamos, que para encontrar los archivos se tenga que buscar con un motor de búsqueda o, directamente, entrar en la app - situada en un panel, con las demás - correspondiente y desde allí abrir el archivo (app de texos, abrir todos los textos, app de vídeos,...).

¿Qué pensáis? ¿Hacia dónde tendría que orientar el OS?

Pues no se me acurre nada de nada. Hazlo para los PC.  :D

Suerte.  :P
Max 400; caracteres restantes: 366

Unbr0ken

Offtopic:


Pero que va, estás haciendo todo mal, mal, mal...

Sigue los pasos de este tío, se ve que tiene futuro en la informática, ha hecho un Sistema Operativo sin saber ASM/C, encima lo ha hecho en VB.NET, él si es un Dios.

[youtube=425,350]http://www.youtube.com/watch?v=k8yXt4jwdgI[/youtube]




XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD^DD ... +∞
Cita de: SnowcrashDiscutir con desconocidos por internet es un ejercicio de imbéciles; todos acaban siendo quinceañeros arrogantes con cantidades infinitas de tiempo libre.

NO resuelvo dudas vía MP, para algo está el foro.

RyogiShiki

#9
Eso no es ni un millón de años un Sistema Oprativo, tal vez se le pueda llamar más algo así como: "Entorno de Integración de Herramientas Diversas", Sin mencionar que se está ejecutando sobre Windows (... y todo lo que esto conlleva ...) y que seguramente es el único lugar donde se puede ejecutar. Eso es todo lo que quieras, menos un SO

En todo caso, claro que perecivo el tono sarcástico del Post anterior! es solo para evitar confusiones