08/09/2020

La historia de los nombres de archivo que no puedes usar bajo Windows

Holi. Antes de dormirme, les traigo una pequeña clase de historia. Antes de comenzar quiero que hagan lo siguiente (bajo Windows). Abran Paint, bloc de notas o cualquier app. Creen algo. Intenten guardar el archivo con el nombre de "lpt1" (ele, pe, te, uno, sin las comillas).


No se puede. Es un nombre "reservado". Windows tiene varios nombres reservados que no se le pueden dar a ningún archivo: con, prn, aux, nul, comx (donde x es un número del 1 al 9) y lptx (donde x es un número del 1 al 9).


¿Qué tienen estos nombres en particular? Bueno, es una historia que viene desde mediados de los 70.
En el año 1974 salió un sistema operativo a la venta llamado CP/M. Ese sistema heredaba de un sistema incluso más antiguo llamado Unix la capacidad de que los dispositivos se pudiesen trabajar como si fuesen archivos. ¿Qué significa esto? Por ejemplo, que si tenías una impresora conectada a un puerto LPT (Line Printer Terminal) podías copiar un archivo a "lpt1" y el sistema reaccionaría enviándoselo a la impresora. Estamos hablando de tiempos muy anteriores a tener una interfaz gráfica; todo se manejaba mediante una terminal de texto (como lo que obtienes al abrir cmd o, bajo Linux, cambiar de tty).

nul era una salida nula (O sea, se descartaba todo lo que fuese a ella), aux era una forma de referirse al primer puerto de comunicación disponible, com1-9 eran puertos de comunicación de 9 pines usado usualmente por módems o ratones, lpt eran los puertos de impresora de 25 pines (aunque algunos pocos dispositivos podían usarlo), con hacía referencia a la terminal misma y prn era una forma de referirse a la primera impresora disponible en un puerto lpt. 

Ahora, ¿Cómo esto que pasó en 1974 llegó a Windows 10? Todo es parte de la historia. Cuando Microsoft sacó MS-DOS en el año 1981 éste era básicamente un clon de CP/M y copió muchas cosas de este sistema, desde los archivos con 8 letras + una extensión de 3, hasta el uso de esos nombres "reservados" para indicar operaciones hacia algún dispositivo. Dicho uso se mantuvo con el paso de los años. Cuando llegó Windows el uso de comandos de terminal para imprimir se hizo menos frecuente pero no desapareció del todo. 

Windows 95 estaba construido sobre MS-DOS, por lo que la limitación de nombres de archivo se mantuvo, y se mantendría por Windows 98 y ME. Cuando llegó Windows XP, para mantener la compatibilidad con scripts antiguos, Windows mantuvo los nombres de archivos reservados..... y esa compatibilidad se mantuvo con Vista, 7, 8, 8.1 y hasta el día de hoy con Windows 10. Esa es la razón por la que un sistema operativo Windows no te va a dejar usar esos nombres de archivo.

Como dato interesante final, sí se puede obligar a Windows a usar dichos archivos (gracias al subsistema de Linux para Windows 10), pero el resultado será muy extraño, con archivos ocasionalmente inaccesibles o provocando que el explorador se confunda. FlyTech hizo algunos videos relacionados al explorador trabajando con archivos "prohibidos": aquí, aquí y aquí.

cmd siendo cmd.



Compartir:
Etiquetas:

2 comentarios:

  1. la mayor curiosidad de todas es...
    ¿Sirven a día de hoy esos nombres para algo?

    si haces un
    echo "hola, es un string" >> lpt1
    ¿no te lo imprime?

    :)

    buen artículo xd

    ResponderBorrar
  2. Técnicamente sí, todavía sirven. No todos vienen activados por defecto, pero leí que algunos se pueden activar para sistemas que tienen dichos puertos físicamente.

    nul y con todavía funcionan desde la línea de comandos.

    ResponderBorrar

Antes de publicar:

-> Manten un nivel aceptable de educación. Si bien yo acepto algunas malas palabras, odio los comentarios en 1337. Mensajes como 1O S H4X0R serán eliminados sin siquiera intentar descifrarlos.

-> Si vienes sólo a hacerte publicidad, por lo menos se creativo y trata de que no lo note. Yo sé diferenciar lo que es publicidad de lo que es el SPAM, pero no quiero que esto se convierta en un expositorio publicitario. Disimula.

-> Si escribes algo que nada que ver con el tema, rechazaré el comentario. Y si me escribes algo a mí que no tenga relevancia para los demás, también lo borraré, aunque igual lo leeré ;)

-> Recuerda no escribir direcciones de correo electrónico. Hay varios robots (programas) que recogen estas direcciones, y muchos sitios de dudosa procedencia usan estos correos como base para mandar virus y spam. La próxima vez que veas publicidad en tu email ofreciéndote Viagra, piensa que quizás tú mismo regalaste tu correo.

¿Dudas? ¿Sugerencias? ¿Críticas? Díganlas con confianza. Prometo leerlas todas.

El autor


Soy htfcuddles (alguna vez conocido como DragonTrainer), un furry fan de la informática noventera que se gana la vida dibujando personajes peludos haciendo cosas que ustedes muy probablemente no deberían estar mirando.



Advertencia: Estos sitios muy, muy probablemente contienen material adulto y/o no recomendable para todo tipo de audiencia. O para ningún tipo de audiencia.

El año pasado cuando hice mi post sobre "Una nueva oportunidad" mencioné que tenía un cómic en mente para mediados del 2022.  Si ...

Entradas populares

Disclaimer

Las opiniones vertidas en este sitio son de exclusiva responsabilidad de quien las emite. Este sitio web está optimizado para verse con el monitor encendido.

El contenido de este sitio no tiene una edad mínima de acceso, pero algunos de los enlaces son explícitamente sitios para mayores de edad.

Iconos de enlace a otros sitios por Uluri. Iconos de redes sociales ANSI por Frederic Cambus.