Ver Mensaje Individual
  #12  
Antiguo 07-06-2004
santana santana is offline
No confirmado
 
Registrado: nov 2003
Posts: 1.030
Reputación: 0
santana cantidad desconocida en este momento
Hola, no puedo reprimirme de participar en mi tema favorito .
Soy una fanática de C, como saben quienes me han leído en hilos anteriores al respecto, pero en honor a la verdad, tengo que reconocer la evidencia.
La potencia que tiene C/C++ frente a la que tiene Delphi, es simplemente de sintaxis, cualquier puntero o forma de tratar datos o acceso a memoria de C/C++ tiene su equivalente en Pascal (por lo tanto Delphi) u otro lenguaje multipropósito, con la excepción de cualquier lenguaje de Scripting o por ejemplo, Java.


En Delphi puedes hacer exactamente todo lo que puedes hacer con cualquier compilador de C/C++, lo único que cambia es que debido a la sintaxis de cada lenguaje el código máquina resultante suele ser más veloz en C/C++ para algun tipo de instrucción. Poco más. Bueno si, una diferencia es que en C++ puedes utilizar la herencia multiple a la hora de extender clases.


Y respecto al acceso total a "las entrañas de la máquina", solo es posible si ese programa realizado en C, Delphi o cualquier lenguaje funciona en el anillo cero del sistema, por lo que no depende del lenguaje que utilices. Solo tienes que decirle al sistema que ese programa es un driver o un servicio de sistema y funcionará en el anillo cero con total acceso a la memoria física y a cualquier dispositivo del pc. Lo que ocurre es que normalmente todos los drivers suelen estar hechos en C++ pero por poder, también se pueden hacer en Delphi.

En Windows NT, 2000 y XP el acceso a la memoria y a las instrucciones privilegiadas de ensamblador lo gestiona directamente sin intermediarios posibles el procesador, porque cuando arranca la primera porción del sistema, este le pide al microprocesador que se coloque en modo protegido (activada paginación y segmentación), y solo se puede cambiar reiniciando. A partir de ahí y dicho a grosso modo, el sistema tiene varias formas de tratar los procesos (como si los etiquetase), unos tienen acceso directo a la RAM, al bus pci, a los puertos de teclado, ratón, COM1, etc. y además pueden usar instrucciones privilegiadas del procesador y otros procesos solo tienen acceso a la memoria que le cede el sistema operativo, estos ultimos procesos tienen que recurrir a las DLLs para poder hacer todas las peripecias que se te puedan ocurrir, las DLLs a su vez hablan con los drivers y así todo está controlado sin posible escapatoria.

W98 también funciona así, aunque no es robusto y puedes bajar cualquier programa al anillo cero e incluso usar las interrupciones de sistema con lo que se desmonta la seguridad proporcionada por el hardware ya que el encargado de decidir en que anillo va cada proceso está implementado con muy baja seguridad, MS dice que es un sistema operativo doméstico y no requiere de tanta seguridad ni robustez.


Estoy soltando uno de mis rollos....... Lo siento .
Responder Con Cita