Un enlace es la funcionalidad proporcionada por el software para que los usuarios de ese software tengan su propio código llamado bajo ciertas circunstancias. Ese código puede aumentar o reemplazar el código actual.
En los viejos tiempos, cuando las computadoras eran realmente personales y los virus eran menos frecuentes (estoy hablando de los años 80), era tan simple como parchear el software del sistema operativo para llamar a su código. Recuerdo haber escrito una extensión al lenguaje BASIC de Applesoft en el Apple II que simplemente conectó mi código al intérprete BASIC inyectando una llamada a mi código antes de que se procesara cualquiera de las líneas.
Algunas computadoras tenían ganchos prediseñados, un ejemplo es la transmisión de E / S en el Apple II. Utilizó dicho gancho para inyectar todo el subsistema del disco (las ROM de Apple II se construyeron originalmente en los días en que los casetes eran el medio de almacenamiento principal para las PC). Usted controló los discos imprimiendo el código ASCII 4 ( CTRL-D
) seguido del comando que deseaba ejecutar luego a CR
, y fue interceptado por el subsistema de disco, que se había enganchado en las rutinas de impresión ROM de Apple.
Entonces, por ejemplo, las líneas:
PRINT CHR(4);"CATALOG"
PRINT CHR(4);"IN#6"
enumeraría el contenido del disco y luego reinicializaría la máquina. Esto permitió trucos como proteger sus programas BASIC configurando la primera línea como:
123 REM XIN#6
luego usando POKE
para insertar el CTRL-D
personaje en donde X
estaba. Entonces, cualquiera que intente enumerar su fuente enviará la secuencia de reinicialización a través de las rutinas de salida donde el subsistema de disco la detectaría.
Ese es a menudo el tipo de truco al que tuvimos que recurrir para obtener el comportamiento que queríamos.
Hoy en día, con el sistema operativo más seguro, proporciona facilidades para los ganchos, ya que ya no se supone que modifique el sistema operativo "en vuelo" o en el disco.
Han existido por mucho tiempo. Los mainframes los tenían (llamados salidas) y una gran cantidad de software de mainframe usa esas instalaciones incluso ahora. Por ejemplo, el sistema de control de código fuente gratuito que viene con z / OS (llamado SCLM) le permite reemplazar completamente el subsistema de seguridad simplemente colocando su propio código en la salida.