SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: Eternal Idol en Miércoles 24 de Agosto de 2005, 17:03

Título: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Miércoles 24 de Agosto de 2005, 17:03
Bueno,

para los que se quieran anotar a este muy ambicioso proyecto (cuyo objetivo es infimo a comparacion de un Sistema Operativo profesional) que me manden un privado con su mail (preferentemente Messenger).


Cualquier duda o sugerencia ponganla aca asi la ve todo el mundo  :devil:  :smartass:
Título: Re: Proyecto Sistema Operativo
Publicado por: bob esponja en Jueves 25 de Agosto de 2005, 21:53
bueno veo mucho entusiasmo en el tema pero esto es lo que yo opino:

tenemos que empezar delineando unas cosas simples:

*compilador
*modo de ejecucion
*tipo de sistema de archivos
*etc

yo propongo FASM o NASM porque segun se por ejemplo no se pueden escribir compiladores con compiladores de microsoft lo mismo supongo de MASM con los SO

yo creo que como no nos conocemos mucho y no hemos trabajado nunca juntos, lo primero que tendriamos que hacer es un proyecto piloto simple para ver como nos desempeñamos y no estancarnos con cosas complejas.

propongo un SO en modo real simple monotarea monousuario booteable de un diskette con un sistema de ficheros NO jerarquico ( un solo directorio al estilo CP/M ) con ejecutables planos ( como los .COM de MS-DOS ).

eso es lo mas simple que se me puede imaginar y si logramos eso podemos empezar a plantearnos objetivos mas lejanos.

por el momento me interesaria que sea en ASM por el tema del foro, si logramos este, al proximo podriamos escribirlo en C o algo asi.

espero sus respuestas
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Viernes 26 de Agosto de 2005, 00:41
Como comentaba en el otro foro creo que no se puede hacer (legalmente) un Sistema Operativo con MASM con lo cual queda excluido, habria que decidir entre FASM y NASM como bien decis.

En cuanto al primer objetivo me parece correcto y en sintonia con todos tus mensajes. Primero intentemos hacer algo que podamos hacer y no pensemos hacer un Windows/Linux que es una utopia.

Un nanoDOS no estaria mal para empezar, podriamos delinear un par de modulos asi todos pueden contribuir.

 :smartass:
Título: Re: Proyecto Sistema Operativo
Publicado por: su - en Viernes 26 de Agosto de 2005, 02:16
Hola.
Para el kernel se puede basar en esto :
http://radios.sourceforge.net/ (http://radios.sourceforge.net/)
 :hola:
Título: Re: Proyecto Sistema Operativo
Publicado por: bob esponja en Viernes 26 de Agosto de 2005, 06:58
a mi me parece que se aprende mas empezando de cero

sobre si nasm o fasm yo uso los dos asi que quesa en ustedes
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Viernes 26 de Agosto de 2005, 10:03
Si, concuerdo con Bob, seria mejor solo usar herramientas de terceros para construir el S.O. y que sea todo el codigo hecho por nosotros.

Doy mi voto para FASM y les propongo un par de cositas para un futuro no tan lejano, esto se podria leer reemplazando FAT12 por _nuestro_file_system como decia Bob:

_El OS ya que va en diskette podria soportar FAT12

_El loader obviamente se escribiria en el primer sector pero segun el formato de FAT12 (que empieza con un jmp al codigo del loader y sigue con campos indicativos)

http://www.mega-tokyo.com/osfaq2/index.php/FAT12%20document (http://www.mega-tokyo.com/osfaq2/index.php/FAT12%20document)

_El Kernel (un solo archivo de codigo finalmente) podria escribirse en el diskette con un copy paste desde Windows o un copy desde MS-DOS

Modulitos:

loader: se encargaria de leer el disquette en busca del kernel, podria usar un nombre fijo siempre, podria complementar eso con la espera de una tecla como F5 para permitir elegir el nombre, todas las ideas que se nos ocurran y podamos implementar. Seria un modulo de codigo separado. :devil:

kernel: se encargaria entre otras cosas de establecer las interrupciones que proveera el S.O. (sus servicios) que inicialmente serian init_app y exit_app. Seria un modulo de codigo separado con otro submodulos que en este caso serian archivos en realidad.

Dentro del Kernel podriamos tener (y serviria para distribuir tareas):

Keyboard: encargado de entrada y salida por teclado
Shell: encargado de la interfaz (con sus comandos como ls/dir, info del sistema y de iniciar el proceso de ejecucion de otros programas)
FileSystem: encargado de todo lo relacionado con el FileSystem, enumeracion de directorios/archivos, lectura de los mismos y eventualmente escritura
Utils: encargado de cosas como strings
Video: encargado de salida grafica (mas adelante)

Bueno, me voy unos dias de vacaciones asi que les dejo un par de cosas para que las vayan pensando y comenten lo que les parece  :devil:  :comp:  :ph34r:
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Viernes 26 de Agosto de 2005, 10:46
Estuve pensando un ratito mas, lastima que no lo hago mucho  :D , y me parece que el Shell no tiene porque estar en el Kernel. En realidad ni siquiera me parece logico, podriamos proveer los servicios de ejecucion y de file system mediante interrupciones y dejar al shell ser un ejecutable mas (estilo command.com).
Título: Re: Proyecto Sistema Operativo
Publicado por: bob esponja en Sábado 27 de Agosto de 2005, 06:50
una pregunta?

vamos a usar las funciones de la BIOS donde se pueda? o vamos a programar todo?

me parece a mi que en un inicio la parte de teclado pantalla y diskette se lo dejemos a la bios que muy bien lo hace  :D  y cuando tengamos algo consistente empecemos a reemplazar ese codigo on el nuestro.

estoy de acuerdo con el tema de los modulos
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Domingo 28 de Agosto de 2005, 18:35
Cita de: "bob esponja"
una pregunta?

vamos a usar las funciones de la BIOS donde se pueda? o vamos a programar todo?

me parece a mi que en un inicio la parte de teclado pantalla y diskette se lo dejemos a la bios que muy bien lo hace  :D  y cuando tengamos algo consistente empecemos a reemplazar ese codigo on el nuestro.

estoy de acuerdo con el tema de los modulos
BIOS sin dudas, mas rapido y mas seguro (años de desarrollo tienen sobre sus espaldas) y mas compatible  :devil:  :ph34r:
Título: Re: Proyecto Sistema Operativo
Publicado por: x.cyclop en Lunes 21 de Agosto de 2006, 00:46
¿Y? ¿Al final lo hicieron? :huh:
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Lunes 21 de Agosto de 2006, 08:18
Como ves el ultimo mensaje del hilo tiene casi un año y la respuesta obviament es no. Termine de hacer el loader tal como describia arriba y deje por la mitad el Kernel.
Título: Re: Proyecto Sistema Operativo
Publicado por: Kar en Domingo 27 de Agosto de 2006, 21:12
Hola Eternal y Bob he seguido de cerca cada uno de sus comentarios y he llegado a este foro por accidente en busca de lo que ustedes proponen, la verdad es que me gustaría participar en este proyecto.

A Bob probe el archivo que hiciste y me parecio muy interesante, me llevó a ver y entender algunos conceptos que he visto en la universidad, pero que no comprendía, me gustaria Bob y tengo entendido de que estabas tratando de realizar un File System pero que tuvistes algunos inconvenientes, si es de tu posibilidad facilitarme las teorias que tuviste para tratar de conectar algunas ideas mias.

Espero que tenga en cuenta mi participación y me parece respondiendo a algunos de sus comentarios que se deberia usar NASM y crear un proyecto piloto para ver la cordinación y el trabajo en equipo, yo he leido sobre el sistema FAT12 y me parece una buena elección para asegurar la conpatibilidad entre los SO
Título: Re: Proyecto Sistema Operativo
Publicado por: Eternal Idol en Domingo 27 de Agosto de 2006, 23:15
Cita de: "Kar"
Espero que tenga en cuenta mi participación
La hubieramos tenido en cuenta seguramente pero llega con un año de retraso, por favor relee el hilo prestando atencion a las fechas.