Las 2 partes de COMMAND.COM

Una de las ideas brillantes que tuvo MS-DOS desde su concepción, cuando era todavía QDOS, escrito por Tim Paterson en 1979, fue dividir la estructura en memoria del procesador de linea de comandos COMMAND.COM, en dos partes diferenciadas.

La primera, era la parte residente en memoria, y que siempre estaba cargada. Con el fin de reducir el espacio requerido al máximo, sus funciones se reducían a mínimos.

La segunda parte, era la parte transitorio, esta parte, se reubicaba en la zona alta de la memoria convencional disponible, pero sin reservarla. De este modo estaba activa, hasta que algún programa cargado que fuera lo suficientemente voluminoso, la sobrescribía. Es decir, a efectos prácticos, es como si esa memoria estuviera disponible para aplicaciones.

La magia venía en que de un modo muy simple, pero al mismo tiempo eficaz, la parte residente detectaba cuando la parte transitoria había sido sobreescrita por algún programa, de manera que al volverse a COMMAND.COM, sus contenidos se volvían a restaurar desde el disco.

Recordemos que en los primeros tiempos del IBM PC, el hardware disponible contaba con solamente 128 Kb. de memoria RAM, y en algunos casos incluso 64 Kb., así que poder ahorrar el espacio que necesitaba la parte transitoria, era un gran logro.

Como ventajas de su diseño, obviamente la parte transitoria contenía casi toda la funcionalidad. Desde la implementación de los comandos internos (DIR, DELETE, etc); sus alias y abreviaturas (DEL, RD, …); el proceso de la linea de comandos; sus mensajes, etc.

Esta filosofía seguiría vigente hasta los últimos coletazos de DOS, ya fuera MS-DOS 8.00, PC-DOS 7.1, DR-DOS 8.0, …

Este concepto pionero, se iría mejorando paulatinamente. Así por ejemplo 4DOS, o su derivado NDOS, permitirían que la parte transitoria se paginara a disco, memoria alta (HMA), memoria extendida (XMS) o memoria expandida (EMS).

Las 2 partes de COMMAND.COM

2 comentarios en “Las 2 partes de COMMAND.COM”

Deja un comentario