Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/03/2009, 07:22
quartzlock
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Programar en c sin S.O

No me malinterpretes ni tomes mi comentario a mal, pero el "jugar" con el teclado y monitor requiere otro tipo de conocimientos y no tanto C. Me refiero basicamente a hardware. Si lo unico que quieres es programar sin OS asumo pues que no tienes interes de que el sistema haga algo util mas que ser el OS mismo. No hay nada de malo con eso, solo que estas ante una tarea que te puede tomar muchos meses sino años.

Pero en fin, si me equivoco y realmente sabes a lo que te estas metiendo, o mejor dicho de lo que te estas saliendo al tratar de programar fuera de las winapps o *xapps entonces aqui va un poco. Mencionaste windows, teclado monitor por lo que asumo que quieres programar para una PC o un smartphone.

Empieza con algo sencillo como leer del teclado y escribir en video ram, contar memoria, analizar bancos de memoria etc. Por el momento no hay nada malo con un diskette. Claro que cualquier cosa que quieras escribir, tendra que ser en assembler y copiarla al bootsector del floppy.

Ahora me salto a un mes mas tarde y entonces ya estaras pensando en correr algo de C. Para entonces ya dominas el arte de linkear, como generar un cmd file para el linker, areas bss text data rodata bla bla. Como ya identificaste cuanta memoria tienes, como la vas a dividir etc entonces ya puedes inicializar el stack pointer frame pointer etc y el salto al abismo: jmp main.

C plano y nada mas, y en el momento que quieres utilizar algo de la libreria de C entonces viene el asunto que mencionas. No tienes aun memory mannager por lo que malloc/free so funcionan asi que hay que valerse de algo que te de minimo soporte y es esto lo que buscas talvez: libc glibc. Trata de compilar eso sin un kernel entero y seras mi heroe. Bueno en serio. Yo he utilizado en esos casos NewLib, esta llena de stubs que puedes quitar y poner a gusto y gana en funcion de lo que vas necesitando.

Una vez corres en C puedes empezar a inicializar hardware, escribir tus rutinas de interrupt and exception handling etc. NO TE QUEDES EN 16 bits, puedes incluso saltar a x64 sin pasar por 32. Creeme que te recomiendo no meterte a 32bit, no vale la pena en estos dias. luego siques con otras cosas basicas como programar el pic, el (los)apic.

Y eso que aun no he saltado a c++. En fin es un chansal. Sin pajas, es un chansal pero no imposible. Recomendaciones: entrale a rtlinux, ucos etc. estos son microkernels que tienen un footprint bien pequeño y estan porteados a varias arquitecturas, x86,x64,arm entre ellas.

Y entonces luego de varios meses de chingadera, podras jugar a diesta y siniestra con el teclado y el monitor :)

Exitos