Autor
|
Tema: creando el sistema operativo (Leído 16701 veces)
|
D1e6o!
Desconectado
Mensajes: 133
|
Creemos un sistema operativo entonces!Bueno gente, esto es la continuación del post "quieres crear un sistema operativo?" http://foro.elhacker.net/index.php?topic=170093.new;topicseen#newMe decidí a hacerlo en un hilo separado porque llegamos a un punto en el que son muchas páginas de debates sobre nombres, logos y nisiquiera una línea de código. Llegué a leer todo y me aburrí al no encontrar nada de esto. Seamos más objetivos y específicos sí? Estoy dispuesto a programar hasta el cansancio y me gusta mucho la idea y viendo que podemos actuar muy bien en conjunto decidí involucrarme firmemente en esto. Nos basamos en lo siguiente: el primero que pueda aportar algo que lo diga. Avancemos. Aportes de código. Ideas sobre necesidades iniciales del programa. Apuntes. En que se va a basar:Por el momento: Sistema operativo super compatible con la arquitectura de IBM. Esto es para que pueda trabajar desde una vieja 386 en adelante con muy poca memoria. Luego deberá ir avanzando de a poco y ajustar a los requerimientos que no van a ser muy amplios para una proyección futura del proyecto. Tareas:Lograr correr un programa hecho en c en un disquette que guardemos en el sector de inicio del mismo. (En los primeros 512 bytes) para que al bootear con él logremos que corra sin ninguna base. Por lo tanto quién logre algo de info de esto es quién siga con la iniciativa...! Yo rindo mañana a la mañana un final, después de eso voy a estar de lleno con este programa e información. (Cuando vayamos consiguiendo enlaces y demás los voy a ir poniendo al final de este post, modificándolo y demás para que sea una tarea ordenada) Primero lo primero:Nos vemos ante la necesidad de comenzar a programar un programa independiente del sistema operativo. Hasta el momento no tenemos mucho, pero este lo hace: http://www.lawebdelprogramador.com/codigo/enlace.php?idp=560&id=29&texto=EnsambladorEn un principio no es muy complejo y es todo lo que necesitamos. El problema es que está hecho en asm nativo. No hay muchos simpatizantes del tema, por ahí tengo un manual básico acerca de esto si a alguien le interesa (en mi vieja 486). Funciona bien por lo que no va a haber problemas pero no la tengo en este momento a mano (la archive hace poco...) así que apenas la saque bajo estos datos y los subo para compartir. También tengo un sistema operativo muy básico en ella hecho también en tasm... será cuestión de revisarlo. El programa que linkee para tasm lo compilé sin problemas en otro momento, en este estoy buscando el tasm pero... Ya lo probé hace bastante. La pregunta es: se podrá hacer esto mismo en c? La respuesta: Si, se puede! (modificado) En la ayuda del programa turboc, para cada función está indicado en que sistemas operatios funciona y hay una columna que dice C++ Only... no encontré muchas funciones que lo usen... igualmente en algún momento se me dió por programar en asm básico (solo con subrutinas de la bios) pero... es bastante complejo Encontré que el núcleo de freedos está compilado en turboc + nasm. Links InteresantesCódigos fuentePrograma que mete un código en un disquette para hacerlo booteable, hecho en asm. Compilable en tasm http://www.lawebdelprogramador.com/codigo/enlace.php?idp=560&id=29&texto=Ensamblador]http://www.lawebdelprogramador.com/codigo/enlace.php?idp=560&id=29&texto=Ensamblador Tutoriales básicos de crear un sistema operativo: http://tech.todoprogra.com/category/tutorial-nodos/]http://tech.todoprogra.com/category/tutorial-nodos/ Programas de posible utilizaciónNASM (lo vamos a necesitar para compilar algunas cosas más adelante) http://sourceforge.net/project/showfiles.php?group_id=6208]http://sourceforge.net/project/showfiles.php?group_id=6208 Algunos programas como turbo c, turbo asm y demás: http://www.upseros.com/compiladores.php]http://www.upseros.com/compiladores.php Manuales y tutorialesCarretero , Jesus . "Sistemas operativos: una visión aplicada" http://www.gigasize.com/get.php/-1100272985/CARRETERO_Jesus__Sistemas_Operativos.pdfTanenbaum, Andrew. "Sistemas operativos distribuidos" http://rapidshare.com/files/32940380/Sistemas_Operativos_Distribuidos_TANENBAUM.pdf.htmlTanenbaum, Andrew. "Sistemas operativos: diseño e implementacion" http://rapidshare.com/files/32933153/TANENBAUM__Andrew_-_Sistemas_Operativos._Diseno_e_Implementacion.pdf.htmlStallings W. "Sistemas operativos" http://rapidshare.com/files/32931164/STALLINGS__William_-_Sistemas_Operativos.pdf.htmlSilberschatz-Galvin . "Sistemas operativos" http://rapidshare.com/files/33033814/Sistemas_Operativos-_Silberschatz_Galvin.pdf.htmlAssemblers And Loaders By David Salomon WEB: http://www.davidsalomon.name/assem.advertis/AssemAd.htmle-book: http://www.davidsalomon.name/assem.advertis/asl.pdfThe Art of Assembly Language By Randall Hyde HTML: http://maven.smith.edu/~thiebaut/ArtOfAssembly/artofasm.htmle-book: http://massmirror.com/b5c98b925d822dd41dfb9c8e4154c371.htmlAlgo más de info de sistemas operativos (pasos internos y demás) http://www.monografias.com/trabajos14/sistemas-full/sistemas-full.shtmlOtros enlaces de interésGNU/Fiwix Project http://www.fiwix.orgDe Wikipedia: http://es.wikipedia.org/wiki/Ensamblador_de_alto_nivelhttp://es.wikipedia.org/wiki/Assemblerhttp://es.wikipedia.org/wiki/Turbo_Assemblerhttp://es.wikipedia.org/wiki/FASMPizziOS Homepage (minikernel de 32 bits con bot compatible a i386) http://www.patmedia.net/eaj.pizzi/pizzios/index.htmlHelenOS Project (otro s.o.) http://www.helenos.eu/Nota: Me tomé el atrevimiento de intentar organizar esto en un nuevo post. Si alguien no está de acuerdo que me lo diga sin problemas. Mi mail: es eld1e6o@gmail.com. Alguna sugerencia o algo por el estilo? Aportes de material? Cualquier cosa: Bienvenidos van a ser! Por favor, no debatamos sobre nombres ni nada por el estilo por el momento, vayamos a lo que realmente importa, que inicialmente es un programa independiente del sistema operativo como está dicho en tareas. Alguna iniciativa? Ayudemos a ayuarnos! Espero la contribución. Suerte! Saludos! Dulces BYTES 
|
|
|
|
« Última modificación: 06 Agosto 2007, 07:02 por diegoar »
|
En línea
|
|
|
|
|
Ragnarok
|
La pregunta es: se podrá hacer esto mismo en c? Creo que sí, busca información en la documentación de gcc a ver si se puede forzar que las características del programa generado se ajusten al programa que debe haber en la sección de boot del disco. Ten en cuenta que además se puede embeber ensamblador en código en C.
|
|
|
|
|
En línea
|
|
|
|
D1e6o!
Desconectado
Mensajes: 133
|
Buen punto Ragnarok! Estoy buscando como, para eso me metí en el proyecto Freedos ( www.freedos.org) y encontré como se compila su kernel. Es eso lo que hay que hacer... Cuando tenga algo más específico lo publico. Con respecto a asm, para crear un sistema mínimo lo vamos a necesitar. Tengo entendido que la combinación de nasm con turboc pueden hacerlo. Lamentablemente tengo un final mañana a la mañana así que por hoy voy a tener que cortar con este tema pero... regresaré  ! el mini how-to compile de freedos está en http://fd-doc.sourceforge.net/wiki/index.php?n=FdDocEn.KernelCompileSi alguien estudia e investiga algo de esto que lo postee pls...! Saben donde encocntrar el turboc así lo usamos? lo vamos a necesitar...! Yo lo tengo, cualquier cosa...
|
|
|
|
« Última modificación: 04 Agosto 2007, 03:27 por diegoar »
|
En línea
|
|
|
|
|
SERBice
|
Justamente estuve hace unas horas hablando con varios de los "muchacho" interesados... y si, estuvimos hablando y cotejando la iea de basarnos en FreeDOS, aunque, verdaderamente la idea no me gusta al 100%, prefiero algo nuevo.... deseo que el SO sea propio, osea, nuestro y no qeu sean fragmentos recortados de otros... en fin.... la idea de reorganizar en este hilo me arece buena. el material de http://www.lawebdelprogramador.com/codigo/enlace.php?idp=560&id=29&texto=Ensamblador me parecio bueno, mañana le pego un ojo.... tngo 2 PC's 80286... pra las primeras pruebas van bien, pero depues ya no servirán cuando comencemos a usar instrucciones de 386 en adelante.... el 286 y anteriores tienen varios defectos y si haces operaciones invalidas como acceso a memoria invalido se petan y hacen cosas raras jajaja.... osea, no sno micros estables, por eso era facil que se "volvesen locos con un viritus smiplon"..... en mi familia estuvieron estudiando Analista de Sistemas, y aqui tengo de los mejores libros de C y sistemas operativos, jamas les heche un ojo, son muchas ojas y daba "cosa".... pero ya mismo (bueno, mañana porque ahora me muero de sueño) me pongo a leer..... en http://www.upseros.com/compiladores.php pueden encontrar los cmpiladores de C y ASM asi como otros como el QBasic, Cobol y Pascal. Me gusta la objetividad y prudencia con el que has abordado el tema sobretodo porque solo piensas en los primeros 512bytes del SO y no en IA (con todo respeto a quien tuvo esa idea, no es mala pero es muy precipitada)..... asi pues, te dejo mi felicitacion y mi apoyo y me voy a dormir, despues charlamos por MSN o mail (y no es op dejar a la comunidad afuera) ya que tengo la posibilidad de proporcionar host apra un foro, una pagina y los arcivos del proyecto, tengo suficiente espacio para todo, asi pues, lo charlamos por chat (como dije, no por dejar la cominidad afuera, pero el chat es ms rapido y ademas se desvirtuaria el post si no ponemos a ofrecer host y cosas asi....). Saludos.
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
[Decoded]
Desconectado
Mensajes: 73
La imaginacion es parte de la vida, Imagina...
|
Hey!! Muy Bien......Que bueno que cada vez mas personas se interesen en el proyecto...
Aunque, ¿no te parece que esto lo hagamos en la pagina de NucleOS[sección FORO]? en ahí crearíamos un sub-foro donde hablaríamos completamente sobre el BOOT...
Para empezar Muy BIEN...me alegra mucho esto...
|
|
|
|
|
En línea
|
|
|
|
|
SERBice
|
Estas algo subidito al caballo como quien dice por ser un usuario de 25posts..... deberias vovler a leer el post qeu dejo en el hilo relacionado (el que seria la parte anterior de este) el Mod Global...
eso de soy el "fundador"... "mi sistema", "mi pagina"... mhmh, no se, ademas deja de llamarlo asi tio, no tienes ni una linea, por favor, deja de tratar de acaparar la atension... si quieres hacer "tu sistema", hazlo, ponle el nombre que queiras y sigue el orden de pasos que se te antoje, pero estamos en este foro, este hilo ,somos los que ves y estamos poniendo u orden a las cosas, asi que (y disculpa si t cae mal), calla, escucha, colabora y no digas tonterias.
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
[Decoded]
Desconectado
Mensajes: 73
La imaginacion es parte de la vida, Imagina...
|
A esto no es lo que pensé llegar...Yo pensaba formar un equipo, no a personas que quieran dividirse y hacer otras cosas...Si miras mi primer POST veras de lo que pensaba hacer...Ademas como he indicado en el anterior POST aquí no es que yo sea el fundador o algo relacionado a esto....LO QUE SE BUSCA EN APRENDER y esto es lo que mas me interesa a mi....aunque ustedes piensen algo diferente a lo que yo pensaba en un futuro al proyecto[OJO: Nunca dije "MI PROYECTO" o palabras similares]....yo pretendia hacer cosas con personas que quieran hacer algo, no que empiecen los insultos por esto....si esto sigue asi, no me imagino lo que en un futuro sucedería...A mi parecer Yo veo a otra persona que quiere hacer algo de malicia[no a SERBice, ya que el es una buena persona] provocando a otras personas que hagan cosas que no vienen al caso...
|
|
|
|
|
En línea
|
|
|
|
|
SERBice
|
A esto no es lo que pensé llegar...Yo pensaba formar un equipo, no a personas que quieran dividirse y hacer otras cosas...Si miras mi primer POST veras de lo que pensaba hacer...Ademas como he indicado en el anterior POST aquí no es que yo sea el fundador o algo relacionado a esto....LO QUE SE BUSCA EN APRENDER y esto es lo que mas me interesa a mi....aunque ustedes piensen algo diferente a lo que yo pensaba en un futuro al proyecto[OJO: Nunca dije "MI PROYECTO" o palabras similares]....yo pretendia hacer cosas con personas que quieran hacer algo, no que empiecen los insultos por esto....si esto sigue asi, no me imagino lo que en un futuro sucedería...A mi parecer Yo veo a otra persona que quiere hacer algo de malicia[no a SERBice, ya que el es una buena persona] provocando a otras personas que hagan cosas que no vienen al caso...
deja de postear queiro irme a dormir (?) jaja... 1: nadie queire dividir nada, la idea es hacer un SO, aqui, con las peronas que hay y cn nuestros aportes, las decisiones se toman entre todos y con consulta previa, organizando todo para q no se haga un descontrol. 2: "hacer otras cosas" ??... no solo que nadie divide nada, sino que la unica "cosa" para hacer aqu es un SO, no se a que quieres llegar ¿sabes lo que es un so verdaderamente?...... (sin animos de ofender) 3: no se que pensabas tu sobre el proyecto, no se niq ue proyecto, solo hay una idea, tu le pusiste la etiqueta de proyecto, y hasta nombr y logo, pero no viene al caso, nadie piensa distinto al otro respecto a esto (hablando en terminos generales), hay que hacer un SO, no hay pensamientos diferentes en este sentido; las aplicaciones y funciones que tenga luego es otra cosa, pero tu estas "volando" muy lejos antes de tener lo primeros 512bytes.... 4: nadie se insulto, todos estamos aportando loq ue podemos, algunos ma otros menos, segun podamos. Nadie nos paga, nadie es jef de nadie... es una democracia en igualdad y nos estamos entendiendo como personas que somos, no estamos insultandonos, no se donde has visto un insulto.... 5: No hay peronas aqui que esten haciendo cosas de malicia, si te refieres a cosas que se han dicho sobre ti, tus ideas o algo con que te hayas sentido identificado y molesto, puntualmente creo que es to de malicia viene por "el roce" cno el Mod....... la verdad, es un capricho de niño decir "personas con malicia".... vamos tio, a no ser tan suseptibles.... a ver, dices "una persona", "malicia", que induce a "otras personas" a "hacer cosas".... muy claro me ha quedado todo... (es sarcasmo).... ¿puedes dar una puntualidad o solo estas intentando tu crear un altercado de pura "malicia" (más sarcasmo)?
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
[Decoded]
Desconectado
Mensajes: 73
La imaginacion es parte de la vida, Imagina...
|
Bueno...bueno.......Lo que interesa es hacer el SO.... Anteriormente[si es que lo recuerdan] he publicado algunos tutos que hizo MOVAXES donde nos enseña a hacer un BOOT en FASM[Flat Assembler] y luego una pequeña linea de comandos.... aquí el link de esos tutos: http://tech.todoprogra.com/category/tutorial-nodos/He rogado a MOVAXES para que nos pueda ayudar a hacer el SO, DarkSigma tambien esta dispuesto, y por ahi algunas personas tambien....Ya tenemos personas que conocen mas sobre esto, que pueden guiarnos en los avances...REVISEN ESE LINK ya que lo probé y lanza un "Hola Mundo!" en pantalla...TALVEZ NOS SIRVA COMO UN INICIO...
|
|
|
|
« Última modificación: 04 Agosto 2007, 14:30 por NucleOS Development Team »
|
En línea
|
|
|
|
|
mukiman
|
bien, entonces, esta idea del nuevo post esta genial, (por favor, no empeceis de nuevo), pero tampoco es cuestion de dejar de lado la web de NucleOS que para algo la creamos... vamos, digo yo.
|
|
|
|
|
En línea
|
|
|
|
|
SERBice
|
bueno, entre lectura y lectura (de libros jaja) me di el tiempo suficiente como apra probar el boot sector que aqui diegoar nos dejo linkeado; etngo buenas y malas noticias... mas buenas que malas jaja....
efectivamente, el boot sunfiona, lo que hace este programa en ASM; luego de ser compilado, lo ejecutas y se encarga de escribir el boot sector por ti.
Bootea bien, no hace nada mas que dejarte escribir etxto en una linea en pantalla, luego presionas escape y espera a que retires el floppy y presiones una tecla apra despues bootear de HD... bueno, paece simplon, pero es bastante avanzado...... es unmuy buen aporte el que nuestro colega ha encontrado.
La mala noticia, las insrtucciones usadas en el boot sector de ejemplo son muy "modernas", pr lo tanto n 286 no puede bottear y se queda "freezado".... luego probe el floppy en un Pentium 4 y funciona bien. Mas tarde lo pruebo en el AMD 64 Dual Core y les cuento.
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
|
mukiman
|
pero realmente, tengo una duda, es necesario tener que testear el boot, o el futuro SO en maquinas tan antiguas? si eso, para que ? esque tengo una muy vieja y podria darle utilidad. Aparte de eso que la mayoria de los PCs se van actualizando a P4, Dual, 64...
Mas tarde probaré el boot, que toi aprendiendo algo de C...
PD: me he bajao un programilla para crear C/C++ y veo una opcion que es la de crear un archivo al compilar el C con la que lo traspasa a ASM, eso seria de utilidad en algo? supongo que si no??
Saludos
|
|
|
|
« Última modificación: 04 Agosto 2007, 19:54 por mukiman »
|
En línea
|
|
|
|
winfuck
Desconectado
Mensajes: 254
|
Hola a todos Estuve mirando el post anterior y este, y según veo, ustedes ("Equipo NucleOS"), quieren crear un SO con según ustedes poco o casi nada de conocimientos sobre el diseño de este o de programación, también por lo que he leído, la finalidad de ustedes es simplemente ir aprendiendo a medida que crean su SO, esta idea de ir aprendiendo armando grupos, donde se ayuden unos con otros, ya sea por foros, irc u otros medios, me parece espectacular, muy acertada, pero sobre la idea de ir aprendiendo a medida que crean un SO, IMHO: eso ya es otro tema, creo que tendrían que ir paso a paso, y con mucha paciencia, algo que es crucial en esto, no deben saltar etapas, ya que sino se verán estancados con cosas difíciles que les será necesario conocimientos previos para poder resolver, y los llevara a un "rechazo" o "abandono". Creo que primero, deberían enfocarse en estudiar programación (ASM y C), y leer libros sobre SO, estudiar el código de núcleos enfocados a estudiantes, con licencias libres, como hizo Linus, basándose en Minix, creado por ast (Andrew Stuart Tanenbaum), proyectos así hay varios, ej. GNU/Fiwix Project ( http://www.fiwix.org), quien liberara el código, cuando llegue a la versión 1.0 ("The Fiwix kernel will be publicly available under an open license when it reaches the 1.0 version."). Luego de mis humildes consejos, lo único que les recomiendo, es que trabajen duro, no se ocupen en cosas secundarias como logos, webs, foros, etc!, solo estudien y escriban código, lo de mas saldrá solo a medida que vallan finalizando y vean que características presenta su SO con respecto a otros, les recomiendo los sistema de control de versiones (subversion, cvs, git, etc), para que sea mas fácil de llevar las modificaciones de cada uno. Sobre la licencia del SO (bibliotecas, documentos, etc), les recomiendo que usen licencias libres (GPL, LGPL, FDL). -------------- Bueno basta de hablar, acá les dejo un pequeño aporte (e-books) sobre SO, espero que los lean, ya que estoy seguro que les servirá mucho. NOTA: La mayoría están alojados en rapidshare, lo siento, se que es el peor que se pueda usar, pero son sacados de la fuente tal cual, si alguien los sube a otro lugar donde se pueda descargar varios ficheros al mismo tiempo, que lo haga. Fuente de las descargas: SO e-booksSuerte! Saludos!
|
|
|
|
|
En línea
|
|_|0|_| |_|_|0| |0|0|0|
|
|
|
|
SERBice
|
Gracias colega pro el apoyo; yo tengo el libro de Silberschatz Galvin, Sistemas operativos... más de 800 paginas... lo leere como ya comentado antes.... es un muy buen libro, se usa en la carrera de analista de sistemas y en otras que ahora no recuerdo; es caro.... jeje.
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
|
mukiman
|
woww, que gran aportacion para el estudio. Winfuck, buenos consejos, gracias.
Por cierto, me voy a dedicar a aprneder ASM, asi que he visto que hay varios tipos, FASM, TASM, ¿que elegimos? cual es mejor?
|
|
|
|
|
En línea
|
|
|
|
|
|