Foros del Web » Programación para mayores de 30 ;) » C/C++ »

crear un Sistema Operativo con C

Estas en el tema de crear un Sistema Operativo con C en el foro de C/C++ en Foros del Web. De nada, seguro que en una semana lo tenes listo ......

  #31 (permalink)  
Antiguo 28/04/2009, 15:59
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: crear un Sistema Operativo con C

De nada, seguro que en una semana lo tenes listo ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #32 (permalink)  
Antiguo 29/04/2009, 17:07
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

alguien sabe como grabar un bootloader en una USB........he buscado info en internet pero solo sale para grabar en floppydisk( disquete )...y mi computadora no tiene disketera.....por favor cualquier informacion me seria util.....
  #33 (permalink)  
Antiguo 29/04/2009, 19:31
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: crear un Sistema Operativo con C

No se como hacer para grabarlo en una USB pero si lo que quieres es probar si funciona lo que hiciste, mejor consigue un emulador.

Hay gratuitos como bochs y virtualbox, o de paga como vmware
  #34 (permalink)  
Antiguo 29/04/2009, 20:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

Si...gracias....baje el VMware.......para probar mi bootloader....y si me funciono....programe algo sencillo!! jajaja esas maquinas virtuales son lo mismo que una maquina real vdd??...digo tienen los mismos pasos de arranque( BIOS, POST, bootloader...etc)??
  #35 (permalink)  
Antiguo 30/04/2009, 07:24
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: crear un Sistema Operativo con C

Asi es son bastante configurables. Ya cuando tienes avanzado tu SO puedes hacer muchas pruebas modificando el tamaño total de la memoria RAM, agregando o quitando discos y puertos USB o algun otro tipo de hardware para comprobar que todo en tu SO funciona como deberia.

Aunque en lo personal, despues de cierto avance al programar, pruebo todo en varios emuladores. Alguna vez me sucedio que algo funciono perfectamente en virtualbox y al probarlo en bochs, pues...no funciono ja ja. Pero despues de una leve modificacion ya pudo funcionar en ambos emuladores.
  #36 (permalink)  
Antiguo 30/04/2009, 13:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

no sabes si el MS virtual pc tiene una opcion para leer desde un archivo .iso..asi como VMware??
  #37 (permalink)  
Antiguo 30/04/2009, 14:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: crear un Sistema Operativo con C

MaNur410: "CD>>Capturar imagen de ISO ..." y "Disquete>>Capturar imagen de disquete ...".

Igual eso no tiene mucho que ver con programacion ya, seguramente el manual del programa es mucho mejor referencia que algunos usuarios ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #38 (permalink)  
Antiguo 01/05/2009, 10:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
ok.......ya probe mi bootloader en VMware y virtalbox.....y me funciono en los 2...ahora voy a seguir leyendo material para ver lo siguiente!!

yo quiero usar codigo C/C++ con assembly...para eso debo enlazar..........yo se tambien que el codigo C esta 32 bits......y q tngo que pasar a modo protegido ´para ejecutar codigo desde un compilador de 32 bits......pro mi duda es para enlazar los dos archivos....tngo que crear ejecutable de ensambler( .EXE ) y enlanzarlo con ejecutable( .EXE ) de C, o tngo que enlazar el archivo en binario puro de assembler con el archivo objeto( .o ) de mi programa C??

Última edición por David; 01/05/2009 a las 20:05 Razón: Combinar mensajes
  #39 (permalink)  
Antiguo 01/05/2009, 13:41
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: crear un Sistema Operativo con C

Es la segunda opcion que diste, enlazar el archivo generado de ensamblador con el objeto de C. Pero el archivo de ensamblador lo tienes que generar como ELF y no como binario. El binario lo utilizarias unicamente para el bootloader.

Lo siguiente que tendrias que investigar es sobre las interrupciones del procesador y sobre modo real/protegido.

Hay que leer todo lo que puedas sobre las interrupciones (que son, cuando y como se ejecutan, etc.) y deberias conseguir la Ralf Brown Interrupt List que te va a servir bastante para consultar las distintas funciones de cada interrupcion.

Tambien deberias conseguir los manuales de intel Software Developer's Manual (que estan en ingles) o AMD. En ellos se explican los distintos modos de los procesadores (ademas de todo lo relacionado con el procesador)
  #40 (permalink)  
Antiguo 02/05/2009, 14:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
gracias posman por los links me han ayudado muchisimo........y no encontre un foro solo de ensamblador en foros del web......tngo una duda haber si me pueden ayudar,, quiero aprender a utilizar el mouse.....la cosa es que estaba leyendo que se utilizar la interrupcion 33h del BIOS..el problema que para usar la funcion quemuestra el mouse( 01h ) no me lo muestra,,,, asi que vine y probe la instruccion:

MOV ax, 0x00
cmp al, 0x00
en caso de que la comparacion fuera cierta( al = 0 ) significa que el controlador del mouse no esta instalado.....como estoy tratando de crear un nuevo SO esto es logico.....pro como hago crear un controlador de mouse a fin de utlizar la interrupcion 33h de la BIOS??

pq microsoft tiene el archivo mouse.com o .sys no me acuerdo muy bien......entonce io tendria que interactuar con los puertos del hardware del mouse y assembly( claro) no se si me pueden ayudar??

Última edición por David; 02/05/2009 a las 19:02 Razón: Combinar mensajes
  #41 (permalink)  
Antiguo 03/05/2009, 00:03
 
Fecha de Ingreso: enero-2007
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: crear un Sistema Operativo con C

Cita:
Iniciado por MaNur410 Ver Mensaje
buenas.........
mi meta es crear un sencillo sistema operativo, nada lujuso ni ambicioso...en C. se manejar ensamblador, C, C++. que son los lenguajes mas aptos para este tipo de aplicacion, ahora mi pregunta es......( disculpen si es muy tonta ;) ).......pero
estaba leyendo en tutoriales de la web libros , etc, que uno debe crear sus propias librerias, ya q para hacer un sistema operativo independiente( nuevo ), no voy a tener a mano la biblioteca estandar de C cuando ejecute mi sistema en un X computador, por ejemplo no puedo usar printf(......) de la biblioteca stdio.h, sino q debo crear mi propia biblioteca stdio.h, entonces lo q deseo saber es pq tngo q crear mi propia libreria estandar y no usar las que ya trae el compilador?? para crear un SO nuevo??? favor explicar ampliamente...

muchas gracias...
como andas??
primero que nada, para irte conociendo...
que conocimientos de programacion en c tenes?? tenes claros conceptos como: thread, semaforos, monitores, etc, etc?
tenes alguna idea sobre sistemas operativos?
leiste algun libro?
modificaste ya alguna distro de linux, haiku, etc?
en base a esas preguntas vas a poder empezar a responder las tuyas propias...
te aconsejo, que antes de todo eso... leas libros como el stanllings, y seas experto programador en c/c++...
cualquier cosa, estoy para ayudar (en lo poco que se)...

Última edición por manudferreiro; 03/05/2009 a las 00:18
  #42 (permalink)  
Antiguo 03/05/2009, 00:08
 
Fecha de Ingreso: enero-2007
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: crear un Sistema Operativo con C

Cita:
Iniciado por MaNur410 Ver Mensaje
gracias posman por los links me han ayudado muchisimo........y no encontre un foro solo de ensamblador en foros del web......tngo una duda haber si me pueden ayudar,, quiero aprender a utilizar el mouse.....la cosa es que estaba leyendo que se utilizar la interrupcion 33h del BIOS..el problema que para usar la funcion quemuestra el mouse( 01h ) no me lo muestra,,,, asi que vine y probe la instruccion:

MOV ax, 0x00
cmp al, 0x00
en caso de que la comparacion fuera cierta( al = 0 ) significa que el controlador del mouse no esta instalado.....como estoy tratando de crear un nuevo SO esto es logico.....pro como hago crear un controlador de mouse a fin de utlizar la interrupcion 33h de la BIOS??

pq microsoft tiene el archivo mouse.com o .sys no me acuerdo muy bien......entonce io tendria que interactuar con los puertos del hardware del mouse y assembly( claro) no se si me pueden ayudar??
te aconsejo, que te bajes el codigo de alguna distro de linux.. asi podes empezar a ver como esta hecho... el querido windows te va a resultar mucho mas oscuro en ese aspecto.. si te interesa proyectos del tipo windows, te recomiendo que pases por el site del reactOS (una especie de windows open source) recien en version alfa..
saludos
  #43 (permalink)  
Antiguo 03/05/2009, 15:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
despues d esa pregunta....he estado leyendo mucho manudferreiro y he aprendido bastante tambien....aunque hay algunas cosas que no las puedo encontrar( como lo del mouse ) donde pregunto en el foro.....gracias por tu ofrecimiento........tu manejas C++ y C??

y no t preocupes por la respuesta....pro la proxima puedes aditarla si quieres!!!;)

en fin.......aun no hayo como programar( en C/C++ o assembly) el controlador del mouse para mi SO....no se si hay una pag web donde den una reseña.......o si alguien me da una pista...o si tngo que estudiar el codigo del kernel de linux??

Última edición por David; 03/05/2009 a las 21:03 Razón: Combinar mensajes
  #44 (permalink)  
Antiguo 03/05/2009, 22:52
 
Fecha de Ingreso: enero-2007
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: crear un Sistema Operativo con C

Cita:
Iniciado por MaNur410 Ver Mensaje
despues d esa pregunta....he estado leyendo mucho manudferreiro y he aprendido bastante tambien....aunque hay algunas cosas que no las puedo encontrar( como lo del mouse ) donde pregunto en el foro.....gracias por tu ofrecimiento........tu manejas C++ y C??

y no t preocupes por la respuesta....pro la proxima puedes aditarla si quieres!!!;)

en fin.......aun no hayo como programar( en C/C++ o assembly) el controlador del mouse para mi SO....no se si hay una pag web donde den una reseña.......o si alguien me da una pista...o si tngo que estudiar el codigo del kernel de linux??
de todas formas.. eso anda dejandolo para el final...
de hecho durante muchos años se usaron S.O sin mouse (D.O.S sin ir mas lejos).
si queres arrancar haciendo un S.O desde cero, seria buena idea que empiezes con uno que no sea multi-Thread, podrias tratar de hacer una especie de d.o.s.. va a ser mucho mas facil..
sino podes ojear codigo de distros de linux, haiku o reactOS..
si te gustan las cosas hechas en assembler.. DexOS esta programado integramente en dicho lenguaje.. (no se si es open source)
te repito el consejo... empeza a ver codigos de sistemas libres, te va a ayudar mucho..
un abrazo
  #45 (permalink)  
Antiguo 04/05/2009, 17:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

estaba viendo que para hacer un kernel.........hay sudar lagos para lograrlo( desde 0).....pero creo que tampoco es imposible....ustedes que me aconsejan???...quiero ver opiniones antes de empezar..
  #46 (permalink)  
Antiguo 08/05/2009, 07:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 19
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: crear un Sistema Operativo con C

Hola MaNur410 ,

No soy muy experto en el tema y lo mismo es una tonteria lo que voy a decirte , pero lo mismo te sirve de ayuda .

Si no recuerdo mal cuando linus torvalds creo su nucleo lo hizo en otro sistema operativo diferente al que utilizamos ahora Linux , mas que nada por que aun no estaba creado ; ) hay que compilar todo codigo antes de que funcione .

Pues bien ademas de eso , necesito librerias libres para la compilacion de su nucleo , por ello Linux realmente es GNU linux , por que GNU le dejo esas otras aplicaciones que necesitaba linus para compilar su nucleo .

Lo mismo estoy equivocado , pero creo que el tema es asi .

Asi que si quieres hacer un so tienes que pensar en dar soporte a librerias , no creo que tengas que crear la rueda 2 veces , ó si .....


Salu2
  #47 (permalink)  
Antiguo 09/05/2009, 10:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

esta ves estaba tratando de hacer un compilador cruzado para una X-arquitectura.....estoy trabajando con cygwin y GCC 4.3.2...para esta version necesito GMP( GNU MULTIPLE PRESITION Arithmetic Library) para poder compilar correctamente GCC, en cygwin.bat( el bash) io escribo el siguiente codigo......:

cd C:/cygwin/usr/src/
C:/cygwin/bin/mkdir.exe build-gcc (me crea una nueva carpeta en C:/cygwin/usr/src)
C:/cygwin/usr/src/gcc-x.x.x/configure --prefix=C:/cygwin/usr/local

aki es donde me tira error:
/gcc-x.x.x/configure: sed:command not found
/gcc-x.x.x/configure: rm:command not found
/gcc-x.x.x/configure: chmod:command not found

estos programas esta en el archivo C:/cygwin/bin/ x; x=sed.exe o x= rm.exe o x= chmod.exe,,,,
Lo que no se es como hacer que configure busque esos programas el archivo(C:/cygwin/bin)
porque por ejemplo cuando yo solo puse en el bash mkdir....al principio me salia error

mkdir C:/Users/Manuel/Desktop/build-gcc
mkdir:command not found

Asi que tuve que poner la direccion del programa mkdir.exe:

C:/cygwin/bin/mkdir.exe C:/Users/Manuel/desktop/build-gcc

y ahi si me corre bien el bash.
etonces me imagino que tngo que hacer lo mismo con los programas sed, rm y chmod pero no se como??? si alguien me ayuda??? gracias de antemano....
  #48 (permalink)  
Antiguo 14/05/2009, 19:44
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
ya arregle lo de cygwin!!! tuve que rebuscarme la respuesta pero lo logre despues de todo!!! ;)
ahora alguien sabe sobre un programa para grabar un bootloader en una USB.........para que sirve de arranque al encender la maquina!!!?????

estaba viendo flashboot....pero es pagado y ahorita estoy corto economicamente.......!! :s

Última edición por David; 14/05/2009 a las 19:48 Razón: Combinar mensajes. Por favor, use el botón Editar para agregar contenido en lugar de dejar dos mensajes.
  #49 (permalink)  
Antiguo 15/05/2009, 09:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 19
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: crear un Sistema Operativo con C

Hola de nuevo ,

Me parece muy interesante lo que estas intentando hacer en los años que corren , se ve que impulso tienes : ) .

Yo creo que resolverias muchas de tus dudas observando el comportamiento y funciones de el nucleo 1.0 de linux .

Aqui seguramente puedas encontrar muchas referencias de codigo hacia lo que buscas .

En sus inicios tenia poco soporte para controladores y demas , asi que sera mas sencillo , dentro de la dificultad que de antemano tiene poder localizar y comprender la estructura de el nucleo de un sistema operativo , que ademas esta creciendo cada vez mas y a conseguido cosas muy interesantes ya .

Creo que esto es una buena base , por no decir la mejor base para poder realizar un nucleo .

Espero que te vaya muy bien en todo este tema y consigas realizar tu idea .

Salu2
  #50 (permalink)  
Antiguo 15/05/2009, 21:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
gracias overnat!! .......yo me descarge hace unos meses el kernel de linux 2.6.9...y mire que era muy complicado de entender.....y ahora que me decis que descargue la version 1.0...la descargue y mucho mas sencillo.....mas facil de comprender las funciones basicas del kernel!!!!jajaaj ;) y pues si ahorita me estoy leyendo muchos libros sobre diseño de sistemas operativos...para no hacerlo a lo loco..como dicen!!!!jejeje..

estoy estudiando ahorita el sistema operativo minix........y queria saber si las llamadas al sistema de minix que estan en lengujes C( fork(), waitpid()..etc) son funciones propias de la libreria estandar de minix o funciones de UNIX( Linux)???

Última edición por David; 16/05/2009 a las 11:50 Razón: Mensajes combiandos. Use el botón Editar en lugar de dejar dos mensajes seguidos.
  #51 (permalink)  
Antiguo 21/05/2009, 20:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: crear un Sistema Operativo con C

ya me respondi mi pregunta!!! :S......

Ahora quisiera saber que piensan de los Sistemas Operativos actuales( Windows, linux, Mac OS ); quiero saber que les gusta o que no les gusta( ya sea rapidez, procesos, manejo de archivos, de memoria...etc).....criticas constructivas..si hay algo que no han visto en ningun SO y piensan que se deberia de inplementar...pueden mencionarlo tambien....ya que quiero empezar mi kernel...y hacerlo con una perspectiva diferente.....y les mostrare mi kernel cuando este terminado( no tan pronto!!jeje )..

Agredecere sus comentarios: (Alguien??)

Última edición por MaNur410; 24/05/2009 a las 15:39 Razón: No obtengo respuesta!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:24.