Linux - Programar un sector de arranque con C

 
Vista:

Programar un sector de arranque con C

Publicado por Fran (1 intervención) el 18/12/2006 19:37:36
Saludos.

Mi pregunta es un tanto "filosófica" pero ahí va.

¿Es posible programar un pequeño sector de arranque totalmente en un lenguaje de alto nivel como C o Pascal? En concreto, si yo hago un programa que contenga sólo una instrucción printf ("Hola") por ejemplo, compilo el código, y grabo el ejecutable en un disquete ¿funcionará? ¿o habrá problemas si la instrucción printf llama a rutinas propias del sistema operativo? (por ejemplo en el antiguo MSDOS, posiblemente printf habría hecho uso de la INT21, que evidentemente no estará disponible al arrancar un PC.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programar un sector de arranque con C

Publicado por Tom (482 intervenciones) el 19/12/2006 16:17:38
En C, poder, puedes. Sólo tienes que evitar cuidadosamente cualquier syscall, y, por supuesto, linkar estáticamente. O sea que es prácticamente imposible hacerlo si no es con asm().

printf() usa una syscall: write().
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programar un sector de arranque con C

Publicado por william (1 intervención) el 20/12/2006 03:46:00
bueno,, mi problema es algo pareceido y con muchas dudas, espero me puedan ayudar

aqui voy:

tengo ya hecho mi sector de arranque en asm, tamaño 512 byte y lo pongo en el sector de arranque, todo funciona muy bien, por el momento no hace nada,,

es conocido que el minix esta hecho "completamente" en C, por lo que me surge la siguiente pregunta..

despues de haber hecho mi sector de arranque, como puede continuar con el SO en C y no asm, y para poder usar el C que debo hacer, pues se supone que este creando un SO desde cero y que el IDE del C (como Turbo C++) necesite un sistema operativo para funcionar, asi que no se como hacer para continuar en C y que debe incluir para que este funcione,,,

lo que trato hacer es algo como Minix pero desde cero, aunque tal vez utilice algo de este.

saludos y muchas gracias al que me pueda ayudar..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programar un sector de arranque con C

Publicado por Tom (482 intervenciones) el 22/12/2006 08:08:08
Tu sector de arranque tendrá que empezar a hacer algo: cargar en memoria algún tipo de núcleo o kernel, que proporcione servicios al resto del sistema operativo.
De igual manera que el sector de boot, no puedes usar syscalls (nadie las atiende aún).
Te recomiendo que eches un vistazo a los fuentes del kernel Linux, aprenderás bastante sobre el tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar