• Viernes 19 de Abril de 2024, 10:15

Autor Tema:  Proyecto Msdos  (Leído 5661 veces)

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Proyecto Msdos
« en: Jueves 23 de Agosto de 2007, 20:24 »
0
Hola a todos. La verdad es que llevo registrado apenas un par de días en el foro, pero he quedado gratamente sorprendido con todo el mundo que se ocupa de contestar dudas y sugerir cosas; por lo que he decidido abrir un nuevo hilo para comentarles mi proyecto.

Se trata de hacer un entorno en 32 bits, que se cargue sin SO, y que permita trabajar con todo el procesador para uno solo. Su finalidad es la de poder interpretar programas, previamente escritos, cargables, bien desde el disco duro, disquete, etc.

Me gustaría diseñarlo especialmente en ASM, ya que el fin principal es la máxima optimización del código generado; es decir, que las instrucciones se ejecuten con la mayor rapidez posible.

En un principio debería trabajar únicamente con operaciones básicas, tipo (3 * 5.2 + 2) / 12.3, y con cadenas de caracteres (concatenación, eliminación, etc). Algo así como MATLAB...

La verdad es que no sé si la idea está bien planteada, o debiera estar en otro foro. Si es así, corríjanme por favor.

Se aceptan ideas, ayudas, participaciones, de todo.. :lol:

Muchas gracias!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #1 en: Jueves 23 de Agosto de 2007, 20:29 »
0
Si el objetivo es aprender me parece interesante, si el objetivo es que sirva para algo me parece que vas a perder el tiempo.

Hay varios hilos en este subforo de donde podes sacar tanto ideas como enlaces interesantes. Tenes que aprender sobre el proceso de arranque de una PC, pasaje a modo protegido (32 bits), modelo de memoria que quieras usar, manejo de interrupciones y varias cosas mas.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #2 en: Jueves 23 de Agosto de 2007, 20:34 »
0
:ouch: la verdad es que el objetivo era que sirviera de algo...

cconozco el mecanismo de arranque y de pasaje a 32 bits, uso de la GDT y algo (minimo) de la IDT... pero ya.. la cuestion es compleja de programar, y sería interesante (creo, si no no lo propondria :lol:) para gente que trabaja en simulaciones, o en captura de datos desde el exterior (p. ej. podría haber algo relacionado con el puerto paralelo, o el puerto serie)...

no se... de verdad piensas que nadie va a querer? (no es un reproche, ni amenaza, es solo que sabras mejor los intereses qe tiene la gente ;) )

un saludo y gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #3 en: Jueves 23 de Agosto de 2007, 20:43 »
0
Cita de: "mjesun"
:ouch: la verdad es que el objetivo era que sirviera de algo...

Creo que es muy dificil teniendo en cuenta que se puede proveer la misma funcionalidad pero bajo un S.O. moderno. Este proyecto implicaria salir del mismo para hacer una tarea muy especifica, la tendria que hacer a la perfeccion como para que sea minimamente util. TODO ESTO BAJO MI PUNTO DE VISTA OBVIAMENTE.

Cita de: "mjesun"
cconozco el mecanismo de arranque y de pasaje a 32 bits, uso de la GDT y algo (minimo) de la IDT... pero ya.. la cuestion es compleja de programar, y sería interesante (creo, si no no lo propondria :lol:) para gente que trabaja en simulaciones, o en captura de datos desde el exterior (p. ej. podría haber algo relacionado con el puerto paralelo, o el puerto serie)...

Mucho mejor pero por ejemplo puerto paralelo y serie ya son cosas del pasado  :P Por mas que se sigan usando, puede que tengas mas exito en el foro de microcontroladores en ese sentido.

Cita de: "mjesun"
no se... de verdad piensas que nadie va a querer? (no es un reproche, ni amenaza, es solo que sabras mejor los intereses qe tiene la gente ;) )

No fue eso lo que dije, puede que haya mucha gente interesada aunque lo dudo, mas que nada me referia a que desde mi punto de vista es demasiado esfuerzo para tan poca utilidad. Por eso decia que si es para aprender siempre vale  ;)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #4 en: Jueves 23 de Agosto de 2007, 20:51 »
0
:rolleyes: entendido... la verdad es que la idea surgió de resolver encriptaciones por fuerza bruta... eso me llevo a darme cuenta de que entre:
  · los servicios de video gráficos
  · el multiproceso
  · las toneladas de codigo basura que tiene windows (es codigo cerrado, lo sé, pero tamoco creo que sea un codigo estilizado 100%) xD
  · las salvajadas que hacen algunos compiladores, como por ejemplo, un sencillo MsgBox en Visual Basic..

pense que si todo eso se pudiera eliminar, es decir, si realmente dispusiesemos del procesador solo para nosotros, trabajando a toda caña, quizas las cosas serian un poco mas faciles... (y + rapidas!)

lo de las matematicas surgio xq creo que es una aplicacion util al programa, sobre todo trabajar con matrices (de ahí lo de matlab). tb pense en reenfocar todo desde el punto de vista de un SO, pero eso si que se me va realmente fuera de las manos... :lol:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #5 en: Jueves 23 de Agosto de 2007, 21:13 »
0
Cita de: "mjesun"
:rolleyes: entendido... la verdad es que la idea surgió de resolver encriptaciones por fuerza bruta... eso me llevo a darme cuenta de que entre:
  · los servicios de video gráficos
  · el multiproceso

No se cuanto pueden afectar los graficos especialmente con placas de video de verdad (hardware - caracteristicas no emuladas por software -) y ahora ya son comunes los multiprocesadores reales tambien.

Cita de: "mjesun"
· las toneladas de codigo basura que tiene windows (es codigo cerrado, lo sé, pero tamoco creo que sea un codigo estilizado 100%) xD

En realidad en este foro eso no tiene mucho sentido, el codigo en assembly de Windows es accesible muy facilmente con los depuradores que proveen  ;)

Cita de: "mjesun"
· las salvajadas que hacen algunos compiladores, como por ejemplo, un sencillo MsgBox en Visual Basic..

Ciertamente VB deja bastante que desear pero VC++ es excelente.

Cita de: "mjesun"
pense que si todo eso se pudiera eliminar, es decir, si realmente dispusiesemos del procesador solo para nosotros, trabajando a toda caña, quizas las cosas serian un poco mas faciles... (y + rapidas!)

Faciles en lo absoluto, el S.O. es una abstraccion que provee una simplicidad enorme, tal vez logres mayor velocidad.

Cita de: "mjesun"
lo de las matematicas surgio xq creo que es una aplicacion util al programa, sobre todo trabajar con matrices (de ahí lo de matlab). tb pense en reenfocar todo desde el punto de vista de un SO, pero eso si que se me va realmente fuera de las manos... :lol:

¿Si lo enfocas como un S.O. no seria mejor investigar sobre RTOS?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #6 en: Jueves 23 de Agosto de 2007, 21:49 »
0
hmmm... se te ocurre alguna manera de enfocarlo con alguna utilidad practica? visto lo visto.. no tiene mucha no? :D

gracias x todo

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #7 en: Jueves 23 de Agosto de 2007, 21:51 »
0
Cita de: "mjesun"
hmmm... se te ocurre alguna manera de enfocarlo con alguna utilidad practica? visto lo visto.. no tiene mucha no? :D

gracias x todo
Sinceramente no pero como te decia al principio para aprender seguro que es un gran proyecto.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Proyecto Msdos
« Respuesta #8 en: Jueves 23 de Agosto de 2007, 22:28 »
0
Hola mjesun

Me parece muy interesante tu proyecto.
Existe un OS llamado DexOS http://www.dex4u.com/
que cumple mas o menos con tu mismo objetivo, la idea no es tener un SO como los actuales (que para eso ya estan los actuales) sino probar con el minimo de software como capa de abstracion con el hardware.

Este modelo existe en las consolas de Videojuegos como la XBOX y un monton mas.

Si te interesa seguir con el proyecto, yo necesito un SO muy simple para compilar sobre el...

Saludos

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #9 en: Jueves 23 de Agosto de 2007, 22:36 »
0
hola pabloreda, eso que cuentas es basicamente lo que me gustaria desarrollar... una vez hecha la base, la programación de funciones es bastante facil, ya sea el clasico sprintf, y similares...

ciertamente es una modificacion de la idea original, pero de todas maneras se ajusta a los requisitos (pues a través de un compilador específico, se llegaría a lo mismo).

la idea global es aprovechar toda la RAM del ordenador, así como el microprocesador funcionando en monoproceso y a 32 bits...

si tienes ideas, aportes, etc, postealas plis :lol:

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Proyecto Msdos
« Respuesta #10 en: Jueves 23 de Agosto de 2007, 22:46 »
0
OK,
Si te inscribis en el foro del dexOS, dex te da el codigo fuente...
tambien hay un proyecto trunco llamado Karig (si queres despues te busco el link)

aunque si lo empezas de 0 creo que va a ser mejor..

SO hay un monton, pero cada uno le agrega algo, como ventanas o manejo de memoria y entonces se empieza a agrandar...

Yo tengo una lista de servicios basicos, por ahora son 11... quizas necesite algunos mas...

saludos !!

pablo

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #11 en: Jueves 23 de Agosto de 2007, 22:50 »
0
mi idea principal sería empezarlo desde cero; su funcionalidad principal estaría orientado a las matemáticas y física, pero, al fin y al cabo, la idea de SO me gusta bastante; es decir, a pesar de que el sistema se especialice en eso, que la gente pueda crear sus propios programas, como blocs de notas, juegos, etc.

si puedes postear la lista de servicios, plis  B)

un saludo, miguel

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #12 en: Jueves 23 de Agosto de 2007, 23:45 »
0
Si no entendí mal lo que quieres hacer es una calculadora gráfica que arranque sola sin necesidad de SO.

Si quieres aprandizaje, la idea del SO está buena.

Si quieres utilidad, mejor hacela para Win32 y/o Linux usando la API que te proveen esos sistemas. Eso sería mucho más util.

No le veo utilidad a una calculadora que arranque sola sin necesidad de SO, es mas comoda si la puedo ejectuar junto con Office por ejemplo. Respecto al uso del procesador.... ¿Que quieres calcular, el factoria de 5 E+5655745757457? Con lo potente que vienen ahora los procesadores, no existe diferencia en cuanto a la optimizacion. Suponete que una operacion tarde 50 ciclos reloj, una Pentium 2 de 750Mhz es capaz de hacer  786432000 ciclos por segundo asi que eso sobra.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #13 en: Jueves 23 de Agosto de 2007, 23:54 »
0
no no.. quiero hacer un SO basico con orientacion a las matematicas... es decir, que posea funciones implementadas como por ejemplo, interpolaciones matematicas...

lo que pasa es que hay determinados programas (por ejemplo en matlab) que tardan en ejecutarse... y bastante! entonces, utilizar el micro solamente para ejecutar estos programas...

en cuanto a graficos.. nada de nada... por el momento y durante mucho!

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Proyecto Msdos
« Respuesta #14 en: Viernes 24 de Agosto de 2007, 00:19 »
0
OK, aqui va:

 OS inteface
; stack............
; [esi+4] [esi] eax     ( [esi+4] [esi] eax --
;===============================================

SYSUPDATE: ; ( -- )
Sensa y ejecuta las interrupciones

SYSEND: ; ( -- )
Fin de programa...sale

SYSPAUSA:
pausa

SYSRUN: ; ( "nombre" -- )
Carga y ejecuta el binario de volumen a memoria.

SYSREDRAW: ; ( -- )
Refresca la memoria de video, Copia la pantalla en ram a la pantalla en vram.

SYSMSEC: ;  ( -- msec )
Que dice el reloj del sistema, tic por tic.

SYSTIME: ;  ( -- s m h )
Hora minutos y segundos de ahora

SYSDATE: ;  ( -- y m d )
Año mes y dia

Las siguientes palabras estan en dudas...
   
SYSDIR: ; ( "path" -- )
elige el path en el disco o en cualquier lugar

SYSFILE: ; ( nro -- "name" )
nombre del archivo

SYSLOAD: ; ( 'from "filename" -- 'to )
carga en memoria el nombre del archivo

SYSSAVE: ; ( 'from cnt "filename" -- )
graba memoria en archivo

Hasta aqui 12 funciones,
con las siguientes 11 variables

SYSEVENT ; Cuando ocurre un evento es cargado aqui.
SYSXYM   ; posicion del cursor
SYSBM   ; botones de raton
SYSKEY   ; tecla presionada
SYSMS   ; inicio de apuntador
SYSMM   ; movimiento del apuntador
SYSME   ; fin de apuntador
SYSBPP   ; bip por pixel por ahora 32 y listo
SYSW   ; ancho de la pantalla
SYSH   ; alto de la pantalla
FRAMEV  ; memoria de video

las variables son posiciones de memoria.

Esta es la interface, adjunto archivo de una prueba, se compila con FASM .
algunas palabras van a cambiar...pero no ahora

Es importante en es desarrollo del kernel, que trates de no usar el BIOS porque estan atadas a los 16bits, o algo asi.....

Saludos...
Pablo
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #15 en: Viernes 24 de Agosto de 2007, 00:45 »
0
bien, lo compilare a ver que pasa, pero primero tendre que encontrar el FASM.. :D yo compilo siempre con NASM y MASM para win32... :D

de un tiempo a aquí, desarrolle un pequeño programa que arrancaba desde ms2 puro el modo 32 bits... sera cosa de desempolvarlo y empezar... de todas maneras todavía no tengo nada claro!

:lol:

jordixip

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #16 en: Sábado 1 de Septiembre de 2007, 02:29 »
0
Encontre por internet, y empeze a modificar un pequeño bootloader, con otro bootcode, y te lo paso por curiosidad por si te sirve de algo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

jordixip

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #17 en: Sábado 1 de Septiembre de 2007, 02:32 »
0
Y ahora te mando el bootcode. Mando una de las versiones (tengo 4)... Uso el tasm y el tlink. Con todo eso, se usan un par de programas en pascal, que graban en el sector de inicio del diskette y demas.... Si hace falta algo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #18 en: Sábado 1 de Septiembre de 2007, 03:58 »
0
waoh... la verdad es que me viene bien...  :kicking: (toda ayuda es wena...) lo que me vendria genial son conocimientos sobre la FAT, xq consigo ir desde arrancar desde el disquete hasta 32 bits, pero me haría falta alguna forma de leer datos del disco, aparte del sector del bootload.

el codigo que has posteado esta genial xq hace algunas operaciones con este formato, pero aun asi no son suficientes como para grabar y extraer archivos. prnto posteare aqui el codigo (estoy quitándole algunos bugs) del boot loader, con alguna interfaz en 32 bits (estoy peleandome con el teclado ahora).

un saludo a todos, y gracias!

jordixip

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #19 en: Sábado 1 de Septiembre de 2007, 08:25 »
0
Yo por suerte tengo un libro de Anaya creo q es... porque me lo compre hara unos diez años de programacion en ensamblador, en donde explica las interrupciones y la parte de acceso a disco esta muy bien.

En cuanto a lo de la FAT, hacer un dir vamos),  sabes a que sector del disco debes ir, y luego ir sacando de ahi los nombres de archivos. Recuerda que por ejemplo a la hora de borrar.... realmente el archivo se queda donde esta y lo unico que se hace es que se cambia creo yo el primer caracter por una marca (otro codigo ASCII), y asi al hacer un dir, se recorre la tabla y si se encuentra ese codigo, pues no se visualiza, pero el fichero en si esta en el mismo sitio.... y por eso herramientas antiguas como undelete funcionaban. Porque unicamente tenian q variar ese codigo ASCII por el correcto. Me imagino que al haber 2 copias, se variaba solo 1, y por ahi se podia conseguir que caracter tenia q poner.

Por eso al hacer un defrag, o al grabar mas informacion..... es posible que se machara el espacio ese usado, pero usado por un fichero borrado, y en ese caso no seria posible hacer un undelete.

Yo el problema que tengo es el pasar a modo grafico y hacer algo tipo windows... me pierdo porque surgen entonces q si  el desplazamiento de memoria grafica, el famoso, 0b800h, que si VESA, ......

Y bueno lo suyo, seria no usar las interrupciones BIOS, y por el ejemplo el acceso a disco y me imagino que el resto tambien, no hacerlo via bios, sino via DMA.... que ya cuesta un poco mas, y por cierto, no se donde encontrar documentacion para acceder a disco via dma, y para acceder a pantalla de la misma manera.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #20 en: Sábado 1 de Septiembre de 2007, 09:44 »
0

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Proyecto Msdos
« Respuesta #21 en: Domingo 2 de Septiembre de 2007, 22:46 »
0
Me gustaría saber cuáles son las áreas de memoria en las que la bios no escribe.. he estao bastante tiempo con un problema en el bootloader hasta que me he dado cuenta de que si cambiaba la dirección (E000h) por 8000h funcionaba...

tampoco estoy seguro de que sea por eso, pero creo que es lo mas probable

un saludo