Programar desde 0 un sistema operativo en C

Iniciado por marrison, 2 Diciembre 2013, 15:58 PM

0 Miembros y 1 Visitante están viendo este tema.

marrison

Hola buenas, voy a adquirir una raspberry pi, y para empezar tengo un proyecto en mente, que seria crear un sistema operativo desde 0, que se adapte a mis necesidades y a la raspberry, un mini-ordenador con unas especficaciones muy bajas, por eso lo que quiero es crear mi propio so o editar una distribucion de software libre.

Digo en c porque es el lenguaje que mejor manejo.

El so que tenia pensado seria MUY simple, un escritorio, con dos menus, uno de aplicaciones y otro de lugares (al estilo ubuntu) con 6 o 7 aplicaciones preinstaladas y que en principio no se pudiesen instalar mas, solo se pudiese utilizar esas. Serian libre office (o similar si no se puede), una calculadora, audacity, gimp, openshot, un visor de imagenes y un reproductor de imagenes (todos cogidos de ubuntu, y creo software libre, asi que no habria ningun problema para utilizarlos no?) y como mucho algun juego simple como el solitario o el buscaminas, y luego un navegador, que seria la base, pensaba programar yo mismo mi propio navegador con mi propia nube, seria posible no?

Esto seria mas o menos el so, muy simple como vereis, pocas aplicaciones preinstaladas y sin opcion a mas, para evitar complicaciones y agilizar el so.

Creo que podria programar en c todo esto, pero tengo muchas dudas, nunca he programado un so, y me veo muy verde, alguna ayuda, libro o tutorial para empezar?
"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)

matiasnahuelheredia

no necesitas programar de cero con saber como recompilar un kernel de linux ya es suficiente.

dato000

todas esas aplicaciones son muy pesadas, necesitas un so para un raspberry, eso es todo.

http://www.raspbian.org/



marrison

#3
Cita de: matiasnahuelheredia en  2 Diciembre 2013, 16:14 PM
no necesitas programar de cero con saber como recompilar un kernel de linux ya es suficiente.

y es el kernel lo que contiene todo el escritorio y todo lo del so? o eso hay que programarlo luego?

y en que lenguaje se programa un kernel? es que en esto estoy perdido...




Cita de: dato000 en  2 Diciembre 2013, 16:15 PM
todas esas aplicaciones son muy pesadas, necesitas un so para un raspberry, eso es todo.

http://www.raspbian.org/

ya se que son muy pesadas, pero lo que quiero es hacerme yo mismo mi so, no quiero cojer uno ya hecho, quiero hacerlo yo adaptandolo a la raspberry para que si va en ella, vaya en los demas.

Y por eso no dejaria instalar mas, para evitar la incompatibilidad... y el gimp, el audacity y el openshot me lo estoy pensando, porque siempre viene bien pero ya tienen mas requisitos para que vayan bien... puede que esas las elimine...




Cita de: matiasnahuelheredia en  2 Diciembre 2013, 16:14 PM
no necesitas programar de cero con saber como recompilar un kernel de linux ya es suficiente.

he estado imformandome sobre compilar el kernel de ubuntu (la que uso yo, me da igual cojer otra) y he visto que hay que añadir o eliminar modulos, y me han surgido varias dudas...

la primera, como se que funcion tiene cada modulo y si debo o no borrarla (googleando?)
segunda, como hago nuevos modulos para lo que necesite?
tercera, hay un modulo que impida ( o permita y deba eliminarlo) instalar mas aplicaciones de las que yo quiera?
cuarta, con esto hago el kernel, pero luego como hago la apariencia del escritorio y de todo?
quinta, al hacer esto se quedaria la terminal de ubuntu?
y para terminar (por fin) al hacerlo se borra la distro que tengo en el ordenador o se crea una nueva en el grub?

No he entendido mucho... -.-
"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)

dato000

tres palabras, y creeme que hay que saber mucho de todo, no solo de C:

Linux From Scratch



marrison

Cita de: dato000 en  2 Diciembre 2013, 19:31 PM
tres palabras, y creeme que hay que saber mucho de todo, no solo de C:

Linux From Scratch

ya lo suponia, pero me gusta mucho todo esto y asi aprendo, me entretengo y hago algo util.

Al año que viene empiezo 1º de ingenieria informatica (si este curso va bien, que si) y me servira para la carrera, asi que estoy decidido a hacerlo, aunque sea aprendiendo desde 0, y aunque me dire 3 años hacerlo, no me importa, quiero hacerlo.
"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)

dato000

Cita de: marrison en  2 Diciembre 2013, 20:59 PM
ya lo suponia, pero me gusta mucho todo esto y asi aprendo, me entretengo y hago algo util.

Al año que viene empiezo 1º de ingenieria informatica (si este curso va bien, que si) y me servira para la carrera, asi que estoy decidido a hacerlo, aunque sea aprendiendo desde 0, y aunque me dire 3 años hacerlo, no me importa, quiero hacerlo.

ohhhh amigo te tengo noticias, te tomaría mucho más.



Vaagish

CitarLinux From Scratch
Buena info

Creo que vas a tener que empezar a darle duro a ensamblador, las primeras rutinas de un SO son en ensamblador y no hay otra,, desde ahí es donde se inicializan un montón de cosas.. (gestión de memoria, lectura de disco, etc,etc..)
Yo te recomiendo agarrar el código de el SO que hay para raspberry, y empieces por leer eso.. yo pretendo hacer lo mismo que vos, solo que lo mio va a quedar mas simple, (gráficamente hablando) quiero un SO sin escritorio, orientado para robotica..

En fin, suerte!!!


Vaagish

Mmm.. no tanto,, yo pienso "tomar prestao" un linux y así safar de lo mas grueso, en realidad,, estaría haciendo un programa que funciona sobre un sistema operativo a medio terminar lo mio (lo digo porque no quiero nada de gráficos, ni escritorio, un poco retro lo mio)  :xD

Aparte no te olvides la plataforma,, simple, simple..

Saludos!