SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: Enko en Jueves 24 de Mayo de 2007, 21:49

Título: Boot Loader
Publicado por: Enko en Jueves 24 de Mayo de 2007, 21:49
Estuve haciendo un boot loader que logra cargar el kernel desde el disquet usando lectura de sectores.
Lee desde el disquet y lo carga a la direccion 0x1000:0000 y luego hace un salto alli.
El kernel por ahora se encarga de mostrar un texto en la pantalla nomas y luego reiniciar. Si el loader no encuentra el disquet o el kernel, muestra error y espera para reiniciar.
Hasta ahora todo bien. Las cosas dudosas que ocurren:
Para mostrar el mensaje de "kernel cargado" desde el kernel, la cadena la tengo que colorar en archivo del bootloader, sino no se muestra pero ensambla.
Otra cosa, la funcion que muestra el texto, debo tenerla repetida con otro nombre en el kernel porque si no, no muestra el texto pero si ensambla.

Por sierto :devil: , me mata la forma que use para crear la imagen de disquet que uso con vmware o VirtualPC:
Código: Text
  1.  
  2. include "bootloader.asm"
  3. include "kernel.asm"
  4. db  1474560 - $ dup 0
  5.  
  6.  
Lo malo, es que no tiene formato pero es suficiente por ahora.

Este es el loader:
Código: Text
  1.  
  2. MAX_TRIES   equ 3
  3.   use16
  4.   org   0
  5.   jmp  0x07C0:start
  6. start:
  7.   mov  ax, cs
  8.   mov  ds, ax
  9.   mov  es, ax
  10.  
  11.   mov  di, MAX_TRIES
  12.   mov  dh, 5    
  13. reset_floppy:  
  14.   mov  ah, 0x00
  15.   mov  dl, 0x00
  16.   int  0x13
  17.   dec  di
  18.   jz  no_floppy
  19.   jc  reset_floppy
  20. ;floppy ready, procede read kernel
  21.   mov  di, MAX_TRIES
  22. read_kernel:      
  23.   mov  ah, 0x02;RawRear
  24.   mov  al, 0x01;One Sector
  25.   mov  cl, 0x02;Second Sector
  26.   mov  ch, 0x00;First Cylinder
  27.   mov  dh, 0x00;First Head
  28.   mov  dl, 0x00;Floppy Drive
  29.   mov  bx, 0x1000;The firs Page
  30.   mov  es, bx;0x1000:0x0000
  31.   xor  bx, bx
  32.   int  0x13
  33.   dec  di
  34.   jz  no_kernel
  35.   jc  read_kernel
  36. kernel_leaded:
  37.   jmp  0x1000:0x0000;jump to kernel  
  38. no_floppy:
  39.   mov  si, str_no_floppy
  40.   call  print_string
  41.   jmp  reboot
  42.  
  43. no_kernel:  
  44.   mov  si, str_no_kernel
  45.   call  print_string
  46. reboot:
  47.   mov  si, str_press_key
  48.   call  print_string
  49.   xor  ax, ax
  50.   int  16h&#59;wait key
  51.   jmp  0xFFFF:0x0000
  52.  
  53. ;si = source string  
  54. print_string:
  55.   mov  dl, 1
  56. start_print:
  57.   mov  ah, 0Ah
  58.   mov  al, [si]
  59.   cmp  al, '$'
  60.   je  end_print  
  61.   mov  bx, 7
  62.   mov  cx, 01
  63.   int  10h  
  64.  
  65.   mov  ah, 02h
  66.   inc  dl  
  67.   inc  si
  68.   int  10h
  69.   jmp  start_print
  70. end_print:
  71.   inc  dh
  72.   ret
  73. ;string messages  
  74.   str_no_floppy   db ' Flopy Drive not Found$'
  75.   str_no_kernel  db ' Kernel File not Found$'
  76.   str_press_key  db ' Press Key for Reboot $'
  77.   str_kernel_ok  db ' Kernel Cargado !!!   $'
  78. ;sizing the bootsector 510 + 0xAA55    
  79.   db  510 - $  dup 0
  80.   dw  0xAA55
  81.  
  82.  
Código: Text
  1.  
  2.       mov  si, str_kernel_ok    
  3.       call  print_stringa
  4.  
  5.   xor  ax, ax
  6.   int  16h  &#59;wait key
  7.   jmp  0xFFFF:0x0000;reboot
  8.  
  9. print_stringa:
  10.   mov  dl, 1
  11. start_printa:
  12.   mov  ah, 0Ah
  13.   mov  al, [si]
  14.   cmp  al, '$'
  15.   je  end_printa  
  16.   mov  bx, 7
  17.   mov  cx, 01
  18.   int  10h  
  19.  
  20.   mov  ah, 02h
  21.   inc  dl  
  22.   inc  si
  23.   int  10h
  24.   jmp  start_printa
  25. end_printa:
  26.   inc  dh
  27.   ret
  28.  
  29.  
Todavia no se por que no puedo tener la cadena "kernel_ok" en el kernel, sino que en el loader con las demas y tampoco porque no puedo usar la misma funcion dos veces porque teoricamente debería ser posible.
Seguramente es un problema con el segmento de datos y de codigo pero no se...

PD:
Hice un hilo nuevo para no revivir uno viejo, pero podria unirse con>
http://foros.solocodigo.com/index.php?show...&hl=nano+loader (http://foros.solocodigo.com/index.php?showtopic=16756&hl=nano+loader)
Título: Re: Boot Loader
Publicado por: Eternal Idol en Jueves 24 de Mayo de 2007, 23:14
El Kernel optimizado con lo que querias hacer:

Código: Text
  1.  
  2. mov  ax, cs
  3. mov  ds, ax
  4.  
  5. mov  si, str_kernel_ok - 512
  6. call  0x07C0:print_string
  7.  
  8.  xor  ax, ax
  9.  int  16h&#59;wait key
  10.  jmp  0xFFFF:0x0000;reboot
  11.  
  12.   str_kernel_ok  db ' Kernel Cargado !!!   $'
  13.  
  14.  

¿Ahora no te parecera tan graciosa la manera de generar el binario no?  :lol:  :lol:  :lol: Como lo incluis en vez de ensamblar dos binarios no cuenta de 0 en el Kernel.asm para direccionar ...

PD. ¿No te da verguenza usar cadenas terminadas en $?  :P
Título: Re: Boot Loader
Publicado por: Enko en Jueves 24 de Mayo de 2007, 23:30
Citar
Como lo incluis en vez de ensamblar dos binarios>
mov  si, str_kernel_ok - 512
Ah... con razon...  Gracias!
Ahora voy a ensamblarlos por separado y luego los junto haciendo una especie de
Citar
incbin "boot.bin"
incbin "kernel.bin"
seguro que en fasm no se hace asi, pero recuerdo que se podia usando una macro... ahora la busco.
Citar
PD. ¿No te da verguenza usar cadenas terminadas en $?
No se,  tenia pensado que terminen en nulo pero use $ :ouch:
jaja, en algun momento lo cambio.

Por sierto, ahora empiezo a leer sobre modo protegido supongo?
Que lecturas recomendarias? Tengo un poco de tiempo y ganas pero no se por donde encararlo bien.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Jueves 24 de Mayo de 2007, 23:39
Cita de: "Enko"
Por sierto, ahora empiezo a leer sobre modo protegido supongo?
Que lecturas recomendarias? Tengo un poco de tiempo y ganas pero no se por donde encararlo bien.
Empeza escuchando esto (http://www.youtube.com/watch?v=f1VjwciFLAg) (despues me contas).

Despues dale a esto: http://www.intel.com/products/processor/manuals/index.htm (http://www.intel.com/products/processor/manuals/index.htm)
Título: Re: Boot Loader
Publicado por: Enko en Viernes 25 de Mayo de 2007, 00:04
TRAMPA.... jajaja
probá esto tambien:
tenia ya ALSA diagnosticado (muestra un monton de temas y ejercicios, si podes miralo completo yo lo hice con el de vai. Es mas lo estoy escuchando ahora, no lo veo porque no me gusta la cara de Vai, un poco "cheto" y no me gusta la cara de "Santana" que pone. Na es broma, todo bien con el :rolleyes: )
http://www.youtube.com/watch?v=K3fvB4QO1qo (http://www.youtube.com/watch?v=K3fvB4QO1qo)

aca está sanito: (fijate  los arpegios de la parte final, el principio es aburrido)
http://www.youtube.com/watch?v=RaCndizvS_Y (http://www.youtube.com/watch?v=RaCndizvS_Y)
Título: Re: Boot Loader
Publicado por: Enko en Viernes 25 de Mayo de 2007, 00:17
Se la rebanca Vai, pero si escuchas ves los dos videos completos que pase y escuchas los dos discos de Jason Becker: Perpetual Burn y Perspective (el segundo solamente lo escribió, no pudo tocar guitarra por lo que hay una orquestra sinfónica de vez en cuando y instrumentos raros); veras que me gusta otra onda en la que  aunqeu parezca mentira, Malmsteen no está del todo incluido o casi totalmente excluido.
Tampoco me gusta Marty Firedman que estuvo en Cacophony con Jason aunque lo influencio al igual que cuando estaba joven Malmsteen tiene un estilo propio del mal llamado metal neoclasico. Es Speed Metal y ya. (por ahi se puede decir melodico como para variar).
Título: Re: Boot Loader
Publicado por: Eternal Idol en Viernes 25 de Mayo de 2007, 00:17
¿Serrana? Nunca me termino de cerrar Jason Becker ... la musica de su ex compañero Friedman me copa mas.

Ah, me voy a dormir que es tarde aca  :P
Título: Re: Boot Loader
Publicado por: Enko en Viernes 25 de Mayo de 2007, 00:32
Citar
¿Serrana? Nunca me termino de cerrar Jason Becker ... la musica de su ex compañero Friedman me copa mas.
Cosas de gustos, no se puede descutir. Como guitarristas son todos buenos, ya pasa por el estilo que a uno le puede gustar o no.

Yo prefiero la onda más a Paganini, no me refiero a la parte de virtuoso frenético tipo Malmsteen sino que no se como explicarlo.
Las composiciones de Paganini  principalmente los Capriccios tienen algo en comun y eso que tienen en comun es lo que me gusta. Es que usa escalas prinipalmente Menores y mezcla entre las puras, melodicas y harmónicas. Además usa a veces la 5ta y 7ma aumentada. Además claro está las cromáticas.

No digo que solo la escala define la composicion pero Vai usara principalmente Pentatonicas de Blues Y escalas Exoticas como Menor doble armonica, Oriental y algunas pentatonicas raras como Egipica y China en ciertos temas.
Por supuesto tambien las pentatonicas de blues y mas obvio que todos los artistas usan otras notas que no estan en las escalas (no son cuadrados) pero si tienen una guia.

Ba, resumiendo, el Blues mucho no me gusta  :alien:
Título: Re: Boot Loader
Publicado por: Enko en Sábado 26 de Mayo de 2007, 23:31
Ya leí bastante de los manuales de intel, son más teoricos de lo que pensaba. Creí que serían muchisimo más técnicos y densos, y la verdad que son bastante light. :P

off topic:
mira como toca esa chinita: Li Jie
http://www.youtube.com/watch?v=H36vL3MzQDU (http://www.youtube.com/watch?v=H36vL3MzQDU)
Título: Re: Boot Loader
Publicado por: bob esponja en Domingo 27 de Mayo de 2007, 00:25
puedo poner un link? :D

michael romeo (http://www.youtube.com/watch?v=PG2804ggsI0)

no es del palo de vai pero vean la tecnica y la proligidad :D

una pregunta enko, si seguis el SO, va a ser todo en ASM?

yo tenia pensado hacer uno en C/ASM pero estoy pensandolo bien :D
Título: Re: Boot Loader
Publicado por: Eternal Idol en Domingo 27 de Mayo de 2007, 01:03
Cita de: "bob esponja"
puedo poner un link? :D
Por supuesto y mas siendo de este nivel  ;)
Título: Re: Boot Loader
Publicado por: Enko en Domingo 27 de Mayo de 2007, 01:12
Por sierto, cambie mi firma. Que les parece?
Por ahora logre crear una funcion que imprime cadenas sin usar interrupciones. Ahora voy a dedicarme a pasar al modo protegido, lo logro, , voy a postear aca el codigo del nuevo kernel.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Domingo 27 de Mayo de 2007, 01:18
Je, si con activar ese bit alcanzara esto seria tu solucion:

Código: Text
  1.  
  2. mov eax,cr0
  3. or al, 1
  4. mov cr0, eax
  5.  
  6.  
Título: Re: Boot Loader
Publicado por: Enko en Domingo 27 de Mayo de 2007, 01:22
Cita de: "Eternal Idol"
Je, si con activar ese bit alcanzara esto seria tu solucion:
Código: Text
  1.  
  2. mov eax,cr0
  3. or al, 1
  4. mov cr0, eax
  5.  
  6.  
Por suerte El manual de intel trea un ejemplo
Título: Re: Boot Loader
Publicado por: Eternal Idol en Domingo 27 de Mayo de 2007, 01:29
Cita de: "Enko"
Por suerte El manual de intel trea un ejemplo
Te dije que empezaras por ahi  :P
Título: Re: Boot Loader
Publicado por: Enko en Domingo 27 de Mayo de 2007, 01:38
Tan testarudo no soy. A muchos consejos le hago caso.
Gracias otra vez. :hola:
Título: Re: Boot Loader
Publicado por: Enko en Miércoles 30 de Mayo de 2007, 21:36
Volviendo al tema inicial.
Ahora estoy tratando de pasar a modo protegido. Llevo creo 3 dias leyendo info y viendo ejemplos pero no logro hacerlo. Los ejemplos que encuentro no son diferentes a como lo quiero hacer.
El bootloader lee el 2do sector del disquet y lo carga a la dirreccion 0x1000:0000 y luego salta alli, al kernel.
Obviamente algo está mal porque la pc reinicia, pero no logro encontrarlo.
¿Alguna pista?
Código: Text
  1.  
  2. jmp   real_mode  
  3. global_descriptor_table:
  4. null_descriptor:  db  0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00
  5. system_code:  db  0xFF,0xFF, 0x00,0x00, 0x01,0x9A, 0x00,0xCF
  6. system_data:  db  0xFF,0xFF, 0x00,0x00, 0x01,0x92, 0x00,0xCF
  7. system_linear:  db  0xFF,0xFF, 0x00,0x00, 0x00,0x92, 0x00,0xCF
  8. global_descriptor_end:
  9. gdtr:
  10.   dw  global_descriptor_end - global_descriptor_table -1
  11.   dd  global_descriptor_table
  12. real_mode:
  13.   mov  ax, cs
  14.   mov  ds, ax
  15.   mov  es, ax
  16.  
  17.   cli
  18.   lgdt  [gdtr]
  19.   mov  eax, cr0
  20.   inc  ax
  21.   mov  cr0, eax
  22.   jmp  0x8:protected_mode
  23. use32
  24. protected_mode:
  25.   mov   ax,0x10
  26.   mov   ds,ax
  27.   mov   ss,ax
  28.   mov   ax,0x18
  29.   mov   es,ax
  30.   mov   byte [es:0xB8010], "!"
  31. forever:
  32.   jmp  forever
  33.  
  34.  
Título: Re: Boot Loader
Publicado por: Eternal Idol en Miércoles 30 de Mayo de 2007, 21:54
No tengo tiempo de probarlo ni analizarlo (especialmente las tablas) pero no entiendo la razon por la cual no usas el codigo logico para activar el bit de cr0. Despues en el codigo protegido seguis trabajando como si estuvieras en 16 bits cuando en realidad estas en 32 y con un modelo de memoria plana. ¿Cual es la razon para poner jmp 0x8:protected_mode?
Título: Re: Boot Loader
Publicado por: Enko en Miércoles 30 de Mayo de 2007, 22:03
Citar
¿Cual es la razon para poner jmp 0x8:protected_mode?
Supuestamente es para realizar un jmp far y el parametro 0x8 indica el offset del descriptor del segmento sytem_segmen en la GDT. (Eso es lo que yo entendi, como primero esta el null_descriptor, el del systema es el que le sigue, 8 bytes. Por sierto que tambien pude estar en otro posicion, 0, 8h,10h,18h,20h: es cuestion de como se arme la gdt

Lo del tiempo no te preocupes, de eso no hay problema  ;) , solo quería revisar que el código no tenga fallas obvias. Capaz era una boludez mia nomas.
 Pero el problema esta de seguro en la GDT (igualmente tambien hice un hilo en el foro de fasm, en os-construction que es más dedicado a eso supongo)

Respecto de la técnica para activar el bit PE de cr0, probé con varios. Dejé el último, igualmente ninguno funcionó.
Título: Re: Boot Loader
Publicado por: Enko en Miércoles 30 de Mayo de 2007, 22:14
Por sierto, el problema del reinicio por culpa de los segmentos creo, lo puedo solucionar siguiendo un ejemplo activando el modo protegido en el bootloader.
El problema es que no se si que tanto puede crecer mi GDT y luego como accedo a ella una vez que salté al kernel.
Título: Re: Boot Loader
Publicado por: Enko en Jueves 31 de Mayo de 2007, 21:14
Cita de: "Enko"
Por sierto, el problema del reinicio por culpa de los segmentos creo, lo puedo solucionar siguiendo un ejemplo activando el modo protegido en el bootloader.
 
Hice eso y funcionó.
Solo tuve que reemplazar el salto lejano por:
Código: Text
  1.  
  2. jmp 0x8:0x10000
  3.  
  4.  
Aunuqe si configuro en la tabla la base del segmento como 0x10000 solo tendría que hacer jmp 0x8:0x00000

Pd: adjunto el codigo por si le interesa a alguien, es un rar, le cambie la extencion a zip porque el foro no me lo permite subir como rar.
Título: Re: Boot Loader
Publicado por: su - en Domingo 10 de Junio de 2007, 01:28
No se si deba continuar aqui, pero como no tengo ni la menor idea y ustedes son los mas indicados:

Renemos un File System encriptado (como ZFS o cualquier otro) y como mi logica me dice, el password para poderla usar debe estar en el boot loader, o no es asi?

Si es asi... no seria "facil" desensamblar el boot loader y ver el password de encriptacion  :blink:
Título: Re: Boot Loader
Publicado por: Eternal Idol en Domingo 10 de Junio de 2007, 10:09
Cita de: "su -"
No se si deba continuar aqui, pero como no tengo ni la menor idea y ustedes son los mas indicados:

Renemos un File System encriptado (como ZFS o cualquier otro) y como mi logica me dice, el password para poderla usar debe estar en el boot loader, o no es asi?

Si es asi... no seria "facil" desensamblar el boot loader y ver el password de encriptacion  :blink:
La verdad es que no, esto no tiene nada que ver con  el desarrollo en assembly que es de lo que trata el hilo.

En cuanto a la pregunta la logica indica que no, para empezar el boot sector es de 512 bytes que suelen estar bastante llenos ya y por mas "corto" que sea el boot sector del S.O. siempre seria poco escalable a muchos discos/particiones/archivos encriptados. Si se guarda algo se hace en las propias estructuras del File System normalmente y nunca jamas se guarda el password directamente, eso seria un error de principiantes y nadie que diseñe un File System lo cometeria (espero!).
Título: Re: Boot Loader
Publicado por: su - en Lunes 11 de Junio de 2007, 00:37
Oh! ya veo, supongo que no seria facil hacer un boot loder que decipte lo necesario para arrancar el kernel...
Creo que pasare un ranto en la documentacion de grub.
Gracias.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Lunes 11 de Junio de 2007, 00:43
Cita de: "su -"
Oh! ya veo, supongo que no seria facil hacer un boot loder que decipte lo necesario para arrancar el kernel...
Creo que pasare un ranto en la documentacion de grub.
Gracias.
Hablando de GRUB, lo interesante del mismo es que soporta la especificacion multiboot con lo cual se puede hacer un ejecutable en cualquier formato (incluso PE con VC++) y siempre que respetemos la especificacion (con su cabecera) nos cargara nuestro Kernel.

GRUB es ya un proyecto bastante enorme, su segunda etapa consta de unos 100KB pero supongo que no seria tan dificil meter algo de fuerza bruta para intentarlo, habria que ver cuan factible es hacerlo en cualquier condicion ...
Título: Re: Boot Loader
Publicado por: Enko en Lunes 11 de Junio de 2007, 21:11
Además quien dice el que la contraseña del FileSystem encriptado no está encriptada.  :scream:  Eso sería lo más seguro, una encriptacion en base a la contraseña del usuario y otra segun algun indicador del  Disco Duro por ejemplo.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Lunes 11 de Junio de 2007, 21:17
Cita de: "Enko"
Además quien dice el que la contraseña del FileSystem encriptado no está encriptada.  :scream:  Eso sería lo más seguro, una encriptacion en base a la contraseña del usuario y otra segun algun indicador del  Disco Duro por ejemplo.
Logico por eso dije si se guarda algo, lo unico que falta es que pongan la clave directamente  :lol:
Título: Re: Boot Loader
Publicado por: Enko en Lunes 11 de Junio de 2007, 22:12
Cita de: "Eternal Idol"
Cita de: "Enko"
Además quien dice el que la contraseña del FileSystem encriptado no está encriptada.  :scream:  Eso sería lo más seguro, una encriptacion en base a la contraseña del usuario y otra segun algun indicador del  Disco Duro por ejemplo.
Logico por eso dije si se guarda algo, lo unico que falta es que pongan la clave directamente  :lol:
El otro día desensamble en el trabajo una ejecutable de Visual Basic que pasaba entre formatos de musica. Necesitaba un serial (solo queria pasar 1 tema del formato Monkey Audio a MP3 y no encontre otra cosa). La verdad que soy malisimo para eso pero no imaginas mi sorpresa:
En las cadenas referenciadas aparecia una especie de serial universal. :scream:
Asi que tan raro no es.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Lunes 11 de Junio de 2007, 22:26
Cita de: "Enko"
El otro día desensamble en el trabajo una ejecutable de Visual Basic que pasaba entre formatos de musica. Necesitaba un serial (solo queria pasar 1 tema del formato Monkey Audio a MP3 y no encontre otra cosa). La verdad que soy malisimo para eso pero no imaginas mi sorpresa:
En las cadenas referenciadas aparecia una especie de serial universal. :scream:
Asi que tan raro no es.
No me jodas, como vas a comparar esas dos cosas  :P ¿De verdad podes pensar que la gente que desarrolla un File System puede hacer algo asi? Es un error que para alguien asi mereceria silla electrica.
Título: Re: Boot Loader
Publicado por: su - en Lunes 11 de Junio de 2007, 22:43
Anoto algo interesante, con GRUB podes hacerle que pida password para poder "bootear" pero como es de esperarse con un floppy (, o USB) o un live CD se puede borrar "esta seguridad".

Supongo que si estubiera el password en el boot loader y se borrara todo se hecharia a perder, entonces debe de estar en algun sector del file system (tal como comentan) pero me imagina que hay alguna forma de dencriptar tal cosa.
Título: Re: Boot Loader
Publicado por: Enko en Lunes 11 de Junio de 2007, 23:00
Citar
No me jodas, como vas a comparar esas dos cosas
Creo que me hice mal interpretar.
Lo comenté off topic. No tenía nada que ver con File System en especial.
Título: Re: Boot Loader
Publicado por: Eternal Idol en Lunes 11 de Junio de 2007, 23:07
Cita de: "su -"
Anoto algo interesante, con GRUB podes hacerle que pida password para poder "bootear" pero como es de esperarse con un floppy (, o USB) o un live CD se puede borrar "esta seguridad".

Supongo que si estubiera el password en el boot loader y se borrara todo se hecharia a perder, entonces debe de estar en algun sector del file system (tal como comentan) pero me imagina que hay alguna forma de dencriptar tal cosa.

Dependiendo de la implementacion es posible que no se necesite ningun dato guardado en ningun lado, simplemente se aplica el algoritmo sobre ciertos datos y si su CRC (y mas comprobaciones tal vez) dan positivas ...  si se usa encriptacion simetrica se guarda una llave privada (que no es una clave) generalmente.
Podes hacer una prueba con un RAR comprimido y ver como intenta descomprimir con la clave que le des y te va mostrando el error CRC en cada archivo.

Pero mejor investiga sobre encriptacion en Wikipedia o donde quieras.

Cita de: "Enko"
Creo que me hice mal interpretar.
Lo comenté off topic. No tenía nada que ver con File System en especial.

Y bueno che es que dijiste: Asi que tan raro no es.  :P
Título: Re: Boot Loader
Publicado por: Enko en Martes 12 de Junio de 2007, 22:07
Leyendo un poco me surgieron algunas dudas.....

Lo que tengo hecho hasta ahora es pasar a modo protegido y tener algunas rutinas I/O con manejos de cadena. Basicamente una shell al estilo comand.com.
Lo que se me complica es no se por donde seguir, tenía pensado implementar un FileSystem pero se me hace que primero necesito un MemoryManager. ¿Es asi?

Una duda aparte sobre el kernel. Según entendí, algunas interupciones se pueden "interceptar" usando una IDT pasando funciones distintas para cada interupcion. (Timer, Teclado, etc....)
Si eso es así:
Podría hacer que cada vez que ocurre una de esas interrupciones meter en una especie de pila de mensajes lo que sea haya ocurrido y luego  el kernel simplemente sacaria uno por uno los  mensajes de la pila y los trataría de forma  similar al WindowProc de windows.
¿Se puede hacer así?
Título: Re: Boot Loader
Publicado por: Eternal Idol en Martes 12 de Junio de 2007, 22:14
http://www.osdev.org/osfaq2/ (http://www.osdev.org/osfaq2/)

GDT, IDT y mucho mas.
Título: Re: Boot Loader
Publicado por: Zirrosis en Sábado 11 de Agosto de 2007, 18:56
Una pregunta...en mi PC no hay diskete, asi que tendre que buscarme otra manera para poder cargar.

Se peude hacer eso desde USB???(Por un MP3 que no uso)

Este creo que usa FAT12, asi que con eso supongo que no tendria problemas, pero a la hora de cargar no se.

Se peude hacer desde USB??? :(
Título: Re: Boot Loader
Publicado por: bob esponja en Sábado 11 de Agosto de 2007, 20:59
podes usar qemu, vmware u otro para probarlo sin reiniciar
Título: Re: Boot Loader
Publicado por: Enko en Sábado 11 de Agosto de 2007, 21:18
El Microsoft Virtual PC es gratuito, y sirvira de los mas bien. Tambien está Bochs que es GNU.
Título: Re: Boot Loader
Publicado por: Zirrosis en Sábado 11 de Agosto de 2007, 21:18
desde la VMware como lo puedo cargar????

Muchas gracias Bob  :lol:
Título: Re: Boot Loader
Publicado por: Enko en Sábado 11 de Agosto de 2007, 21:21
Cita de: "Zirrosis"
desde la VMware como lo puedo cargar????

Muchas gracias Bob  :lol:
Creas una PC Virtual, de la misma forma que se hace siempre.
Luego, en la Unidad de Disquet, pon: Cargar Imagen de Disquet o algo así, y selecciona  la imagen. Arrancas y listo.
La imagen del disquet, es la que ocupa 1.44 MB.

PD: si ya tienes una pc virtual configurada, puedes usar esa, no habrá problema, solo recuerda estableces la imagen de disquet para la unidad A:
Título: Re: Boot Loader
Publicado por: Zirrosis en Sábado 11 de Agosto de 2007, 22:53
Yo no tengo disketera..... :(

Para crear la imagen como lo hago??? Con el mismo Nero???
Título: Re: Boot Loader
Publicado por: Enko en Lunes 13 de Agosto de 2007, 15:15
Cita de: "Zirrosis"
Yo no tengo disketera..... :(

Para crear la imagen como lo hago??? Con el mismo Nero???
Si lo que quieres es probar el paquete que postee en este hilo, la imagen ya viene ahí, se llama "enkoos.img"

No hace falta que tengas disquetera, pero si que la tenga la maquina virtual.
Título: Re: Boot Loader
Publicado por: Zirrosis en Martes 14 de Agosto de 2007, 15:50
El enkoos.img lo tengo que cargar en el Borchs, no??? Pero, como lo configuro para que cargue??? :(

Gracias Enko