Cita:
Iniciado por Eternal Idol
Con conocer el S.O. sobre el que se desarrolla alcanza. ¿Que importancia tiene el planificador? El concepto de proceso no es la base de un antivirus ya que por definicion un virus copia su codigo en otros ejecutables (en disco) por tanto un antivirus clasico tiene dos modulos imprescindibles. Uno es el scanner, por firmas generalmente y otro es el "interceptador" (un driver de tipo filtro para el sistema de archivos) que se encarga de lanzar el scan en tiempo real y por ende impedir la ejecucion de un virus. Es cierto que actualmente existe toda una tendencia a deteccion por comportamiento pero es algo relativamente nuevo a comparacion.
La verdad no entendi el punto al que queres llegar.
Para hablarlo de manera entendible. Si un virus se ejecuta, ya estas perdido.
Para hablarlo de manera menos entendible. Un buen antivirus, se "inyecta" en la tabla de procesos del sistema operativo, y en el algoritmo de planificacion del SO.
¿PARA QUE?
Para el Sistema operativo, el .exe es un simple objeto, no interpreta el .exe que vemos nosotros, lo que hace es ejecutar sentencia por sentencia, en realidad tranformarla a "lenguaje maquina".
Supongamos un virus que elimina todos los archivos de la PC.
Lo que hace es mediente cada subproceso, pedirle al sistema operativa una E/S de hardware, en este caso seria borrar un archivo situado en el disco rigido.
Casi todos los planificadores nuevos utilizados por sistemas operativos, al ver un proceso de E/S el SO se apropia del micro y le da espacio a otro proceso que realice la accion que necesita. AHI ES DONDE ACTIVA EL SUBPROCESO DEL ANTIVIRUS, quien "pregunta" al SO que esta haciendo el proceso anterior, y le informa que esta borrando un archivo.
Es decir que el antivirus al notar que el "virus" borro varios archivos, nota un estado anormal en ese proceso, impidiendole seguir ejecutandose ese procesos y sus procesos hijos.
No se si se entendio lo que quise decir. Para hacerlo mas simple.
(ya todos saben que los procesadores solo ejecutan un proceso a la ves, nada mas que lo hace tan rapido y el SO cambia tan rapido de proceso a proceso, que da la impresion de multiprocesamiento)
1- Un virus se ejecuta. (ese virus es nuevo y no esta en la base de datos del antivirus)
2- Ese proceso del virus, esta listo primero en la tabla de procesos a ejecutarse que posee el SO. Entonces el SO se fija lo que tiene que realizar.
3- El virus le pide al SO borrar un archivo situado en memoria secundaria (disco rigido).
4- Como es un procedimiento de entrada/salida, el SO, le da espacio al proceso siguiente a ejecutarse (ya que los tiempos de respuesta de un disco rigido, es mucho mayor en tiempo que el tiempo que tarda el procesador en procesar).
5- Justamente ese proceso que estaba en cola espera y que da lugar el SO a ejecutar la siguiente instruccion es el ANTIVIRUS. (tipica imagen cuando el Karspesky escanea una ejecucion). Entonces el proceso del antivirus, le pide al planificador que le informe que proceso anterior realizo (ahi le dice que se esta borrando un archivo), ese dato almacena el antivirus.
6- Termino de borrarse el archivo, entonces termino la E/S, y le da pie otra ves al proceso (virus) a seguir ejecutando la siguiente sentencia. Que otra ves es borrar otro archivo.
7- Vuelve a tomar el antivirus el control ya que se encuentra una secuencia de E/S. Y vuelve a notar que se borra un archivo. Entonces ahi el antivirus INFORMA al usuario que ese programa puede ser maligno y le pregunta que desea hacer.
Obviamente, no van a ser 2 procesos en ejecucion que va a poseer la PC. van a ser muchos procesos mas, nada mas que un proceso de E/S puede demorar milisegundos y un proceso de calculo que haga el microprocesador, puede durar nanosegundos, es decir que para el momento que el virus vuelva a tomar control del microprocesador, pudieron haber pasado miles de procesos de calculos de muchos programas diferentes (entre esos el antivirus).
Bueno, espero que no se haya echo larga la clase ;)
Insisto, lo que este usuario debe estar realizando, es almacernar todos los CRC de los posibles virus en bases de datos, y cada cierta cantidad de segundos o milisegundos, controlar los procesos en ejecucion y verificar si no son algunos de los CRC que posee en la base de datos. (es lo que yo haria utilizando vb, aparte de otras cosas).
Insisto. No es lo mismo el planificador de windows 98, que el de windows XP, que el de Windows VISTA...
Y no es lo mismo el planificador de Red Hat que el de Mandrake.... De ahi salen las distros de linux especiales para cada actividad. Es decir, que supongamos Red Hat que es orientado a servidores, el algoritmo de planificacion del SO va a dar prioridad a ciertos procesos mas que otros, en este caso un antivirus no tendria tanta participacion en un sistema asi, o por lo menos le darian menos tiempo de uso del procesador al antivirus.
Saludos.