elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con modo kernel y CNC
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con modo kernel y CNC  (Leído 4,205 veces)
achernar_

Desconectado Desconectado

Mensajes: 117



Ver Perfil
Duda con modo kernel y CNC
« en: 21 Agosto 2012, 23:43 pm »

Hola, mi duda es la siguiente, para controlar una máquina frezadora a contról numérico, utilizo el mach3 un programa que hace de interfaz entre el usuario y la frezadora (conectada al puerto paralelo de la computadora).

Mach3 usa un driver para controlar el puerto paralelo, estoy investigando porqué porque estoy intentando hacer un soft similar pero simplificado. Quiero saber cuales son las ventajas del modo kernel. Pero ya se me acabaron las palabras para google.

Esto es lo que dice en el manual del mach3:

Citar
Mach3 debe ser capaz de enviar muy exactamente las señales de control a los ejes de la máquinaherramienta.
Windows carga y ejecuta programas normales de usuario cuando no tiene nada mejor para
hacerse. Así Mach3 no es un "programa normal de usuario"; éste debe estar al nivel más bajo dentro
Windows (esto es el manejo de interrupciones). Además para hacer esto se requiere posiblemente alta
velocidad (cada eje puede requerir atención 45.000 veces por segundo), el driver necesita sintonizar su
propio código. Windows no permite esto (este es un truco que juegan los virus) así ello se tiene que
solicitar un permiso especial. Este proceso requiere los reinicios de PC. Así si usted no ha realizado los
reinicios solicitados entonces Windows puede presentar la pantalla azul de muerte y el driver puede ser
corrompido. La única salida de esto será desinstalar manualmente el driver

Me gustaria saber si alguien me pudiera expandir un poco mas detalladamente esta expicación. Encuentro solo información de como programar drivers, que me va a resultar util, pero también quiero saber porque en este caso resulta necesario programar un driver ¿Si la computadora se relentiza por algún motivo, el driver sigue ejecutandose con la misma velocidad?¿Tiene acceso al timer de un modo diferente?¿Puede trabajar mas rápido?¿o mas constantemente?¿Por qué?

Bueno Muchas gracias por haber leido hasta el final  ;D espero una mano porque estoy medio estancado

Ah algo más:

Citar
http://2004.encuentrolinux.cl/docs/presentaciones/pdf/presentacion-cduclos.pdf


La programación en modo Kernel debiera utilizarse
en situaciones donde el rendimiento es crítico y en
aquellas situaciones donde se requiere acceso a
hardware que no es accesible a las aplicaciones de
usuario.
La programación en modo Kernel no sirve para
todas las situaciones


Desventajas:
● Los recursos disponibles en modo Kernel son por
lo general muy limitados
● Ausencia de printf (Cuidado con el uso de printk)
● No hay aritmética de punto flotante
● El flujo del tiempo no es lineal



En línea

Tengo una habilidad sorprendente para hacer cosas que no sorprenden.
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda con modo kernel y CNC
« Respuesta #1 en: 22 Agosto 2012, 00:39 am »

Pues eso lo que viene a decir es que es un programa que necesita de un rendimiento y de acceso al hardware que no se puede obtener programando un programa normal de usuario, y tiene que recurrir a programar un driver. En tu post citas dos fuentes, una habla en el contexto de windows y otra en el de linux, ¿en cual quieres programarlo?.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
achernar_

Desconectado Desconectado

Mensajes: 117



Ver Perfil
Re: Duda con modo kernel y CNC
« Respuesta #2 en: 22 Agosto 2012, 04:27 am »

daniyo gracias por la respuesta, pienso programarlo en windows con el masm32 si fuese necesario realmente programar un kernel. Noto que según la explicacion uno puede acceder con otras posibilidades al puerto paralelo, pero queria saber bien el motivo. Dejando de lado este ejemplo uno puede decir que en una carrera entre una Ferrari y un caballo en una autopista ganaria un Ferrari por su potencia y en un camino de montaña un caballo por la considerable distancia que le otorgan sus patas entre su cuerpo y el piso.

Mi duda es cuales son las caracteristicas de la programación en modo kernel que la hacen favorita al momento de tener que programar el puerto paralelo, porque no se puede hacer desde un programa por ejemplo en vb6. Porque en tal caso esto parece una cuestion mas de velocidad que de acceso a cierto privilegios (supongo desde mi ignorancia) porque entonces un programa en modo kernel parece poder manejar mayor velocidad?
En línea

Tengo una habilidad sorprendente para hacer cosas que no sorprenden.
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda con modo kernel y CNC
« Respuesta #3 en: 22 Agosto 2012, 12:59 pm »

Pues lo primero decirte que yo tambien hablo desde mi ignorancia, pero supongo que la diferencia entre hacer algo en modo kernel y en modo usuario es que si quieres manejar hardware por ejemplo, y si no quieres que se te cuelgue el congelador, necesitaras mas privilegios, por ejemplo si windows da un pantallazo azul(lo cual no seria raro :¬¬ ) querras que tu driver siga funcionando, sin embargo no creo que sea facil hacer un programa con interfaz grafica desde el modo kernel.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
achernar_

Desconectado Desconectado

Mensajes: 117



Ver Perfil
Re: Duda con modo kernel y CNC
« Respuesta #4 en: 24 Agosto 2012, 04:36 am »

Bueno, creo que solucioné el problema reduciendo considerablemente el flujo de informacion desde la computadora a la placa controladora, parece más facil programar un pic que un driver para este caso. Gracias. Saludos.
En línea

Tengo una habilidad sorprendente para hacer cosas que no sorprenden.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al debuguear paso de modo usuario a modo kernel
Ingeniería Inversa
jauma 0 2,215 Último mensaje 11 Junio 2006, 20:53 pm
por jauma
Equivalente a SetWindowsHookEx en modo kernel?
Programación C/C++
Zzombi 6 5,015 Último mensaje 31 Julio 2010, 21:11 pm
por Littlehorse
Sincronizar modo kernel y modo usuer.
Programación C/C++
Distorsion 2 3,115 Último mensaje 28 Diciembre 2010, 16:45 pm
por Distorsion
Trabajo con procesos [modo kernel] « 1 2 »
Programación C/C++
lweb20 19 7,410 Último mensaje 6 Diciembre 2011, 21:38 pm
por Eternal Idol
Un problema con WinDbg en modo kernel local.
Windows
Usuario887 1 2,403 Último mensaje 31 Julio 2020, 09:33 am
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines