• Viernes 29 de Marzo de 2024, 00:58

Autor Tema:  Programar Drivers  (Leído 16802 veces)

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Programar Drivers
« en: Miércoles 17 de Mayo de 2006, 19:48 »
0
:comp:  :comp:  :comp:
Hola foreros como estan? espero que bien
pues bueno he estado buscando en la red y en libros sobre como programar mis propios drivers he encontrado poca informacion al respecto me preguntaba si alguno de uds me podria ayudar con algo de informacion
ahh por cierto alguno de uds sabe que es el EXE2BIN y donde lo consigo porque mi maquina no lo tiene.
Por su atenciuon gracias.
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programar Drivers
« Respuesta #1 en: Miércoles 17 de Mayo de 2006, 20:12 »
0
Primero y principal hay que saber para que S.O. queres desarrollar los drivers, es fundamental. Si es para Windows NT te puedo dar bastante informacion y consejo ya que es a lo que me dedico.

Primero y principal el uso de assembly se desaconseja absolutamente por Microsoft ya que atenta contra la portabilidad, podes seguir por ese camino pero realmente no te servira de mucho, te lo digo por experiencia ya que mis primeros drivers los hice en assembly. Si queres hacer algo profesional vas a pasarte a C o C++ tarde o temprano, sin ir mas lejos el DDK no casi soporte para assembly.

De cualquier manera te paso un par de enlaces geniales al respecto:
http://www.freewebs.com/four-f/
http://mipagina.cantv.net/jjaguilerap/sys.html

El primero es puro assembly y el segundo empieza con C y despues lo genera con assembly.

 :smartass:  :smartass:  :smartass:

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.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programar Drivers
« Respuesta #2 en: Miércoles 17 de Mayo de 2006, 20:13 »
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.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Programar Drivers
« Respuesta #3 en: Jueves 18 de Mayo de 2006, 21:12 »
0
:comp:  :comp:
Excelente voy a checar la informacion y pues bueno los drivers los tengo pensado utilizar en windows XP en windows 98 para posteriormente pasar a red hat 9.0, no se para que S.O sea mas dificil , lo del EXE2BIN es proque he leido un libro sobre ensamblador en el cual me dice mas o menos como programar mis dirvers pero dice que el Masm me generara un executable a este ejecutable debemos sacar su imagen binaria con el EXE2BIN y posteriormente renombrarlo son *-sys aunque este libro nunca me dice como instalarlo como usarlo o si cambia con respecto al sistema operativo supongo que si cambia porque es obvio pero es una parte que no entiendo. bueno en fin voy a checar tu informacion y gracias por ella.
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programar Drivers
« Respuesta #4 en: Viernes 19 de Mayo de 2006, 07:40 »
0
Cita de: "Radoslav"
:comp:  :comp:
Excelente voy a checar la informacion y pues bueno los drivers los tengo pensado utilizar en windows XP en windows 98 para posteriormente pasar a red hat 9.0, no se para que S.O sea mas dificil , lo del EXE2BIN es proque he leido un libro sobre ensamblador en el cual me dice mas o menos como programar mis dirvers pero dice que el Masm me generara un executable a este ejecutable debemos sacar su imagen binaria con el EXE2BIN y posteriormente renombrarlo son *-sys aunque este libro nunca me dice como instalarlo como usarlo o si cambia con respecto al sistema operativo supongo que si cambia porque es obvio pero es una parte que no entiendo. bueno en fin voy a checar tu informacion y gracias por ella.
XP esta basado en NT y 98 no, son dos cosas muy diferentes en su arquitectura pero podes basarte en WDM para conseguir bastante, no total, compatibilidad.
Bueno el MASM tambien es capaz de generar archivos COM que no son mas que codigo ... ese libro parece mas bien orientado a MS-DOS, un S.O. donde ciertamente los drivers se escribian en assembly.

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.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Programar Drivers
« Respuesta #5 en: Sábado 20 de Mayo de 2006, 23:44 »
0
:o  :o  :o  :o
Excelente ahora mismo ya estuve trabajando con mi disco de inicio autobooteable y un programa para formatear dicho disco y todo lo he hecho en ensamblador y coinicido contigo en que seria mucho mas facil y potente hacerlo en C++ perohay varias cosas que no comprendo como pasarlas de MASM a C++ por ejemplo vi el codigo que tenian uds para reiniciar la PC era un brinco asi jmp ffff:0000
lo probe con el debug de ms-dos y no funciono como esperaba no se si haga falta algo ahh bueno pero os decia exacatamente ese salto de jmp ffff:0000 no lo puedo hacer con C++ debido a que solo me acepta jmp ffff acaso tu sabes como hacerlo?
Por tu ayuda gracias. Y seguir dandole

 :comp:  :comp:
_________________________
TAN SOLO SOY UN GATO PROGRMANDO
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Programar Drivers
« Respuesta #6 en: Domingo 21 de Mayo de 2006, 05:39 »
0
Esto se va a escuchar raro pero... ¿Existen drivers multiplataforma?  :blink:

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programar Drivers
« Respuesta #7 en: Domingo 21 de Mayo de 2006, 12:15 »
0
Cita de: "Radoslav"
Excelente ahora mismo ya estuve trabajando con mi disco de inicio autobooteable y un programa para formatear dicho disco y todo lo he hecho en ensamblador y coinicido contigo en que seria mucho mas facil y potente hacerlo en C++

Me parece que estas metiendo en la misma bolsa muchas cosas. Un disco autobooteable no tiene nada que ver con un driver, un driver esta ligado estrechamente con el S.O. bajo el cual va a ejecutarse y un disco autobooteable no tiene un S.O. (o es el mismo el S.O.).


Cita de: "X.Cyclop"
Esto se va a escuchar raro pero... ¿Existen drivers multiplataforma?

Si, el codigo puede ser multiplataforma (con gran cantidad de defines claro) pero el binario no. El binario tiene que estar ligado a las funciones del Kernel y sus instrucciones tienen que ser nativas al microprocesador. Lo primero nos excluye un driver multiplataforma con el mismo binario para diferentes S.O.s (Windows/Linux por ejemplo) y lo segundo nos excluye un driver multiplataforma con el mismo binario para diferentes microprocesadores (32/64 bits por ejemplo).

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.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Programar Drivers
« Respuesta #8 en: Domingo 21 de Mayo de 2006, 13:28 »
0
:lol:  :lol:  :lol:
ahh lo que pasa es que estoy escribiendo muchas cosas aqui mismo que obvio no tienen qu ver con los drivers solo decia que trabajaba en mi disco de inicio pero por aparte de los drivers es solo que cuando me aburro de una cosa me cambio a otra y por eso era mi pregunta si el codigo jmp ffff:0000 lo puedes hacer en C++ y que se supone que debe de hacer ese salto porque como vi en otro post se supone me reinicia el ordenador pero no obtengo los resultados deseados queria saber si hace falta algo más.
Gracias por la atencion.
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Programar Drivers
« Respuesta #9 en: Domingo 21 de Mayo de 2006, 14:12 »
0
Eso lo que hace es saltar justamente a la direccion donde esta cargada la BIOS y por lo tanto desencadenar el inicio de la maquina como cuando le das al boton de reset. Para pasarlo a C++ necesitas para empezar un compilador que genere codigo de modo Real (16 bits).

Despues podes hacer lo mas facil que consiste en meter los bytes correspondientes al salto uno por uno (esto ya dependera del compilador, en VC++ usarias __emit aunque obviamente no en 32 bits). Lo que en MASM seria un db:

reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh

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.