Linux tiene una función llamada namespaces, que le permite dar una "vista" diferente del sistema de archivos a diferentes procesos. En términos de Windows, esto sería útil, por ejemplo, si tuviera un programa heredado "floyd" que siempre cargó su configuración desde C:\floyd\floyd.ini
. Si Windows tuviera espacios de nombres, podría escribir un script de contenedor que crearía un espacio de nombres para ejecutar floyd
, haciendo que cuando Alice ejecutara el script, Floyd se iniciara en un entorno donde C:\floyd
existía pero apuntaba a C:\Users\Alice\Floyd
.Windows equivalente a los espacios de nombres de Linux (montajes del sistema de archivos por proceso)?
Ahora usted puede estar pensando, "OK, solo use enlaces suaves o duros y haga de C:\floyd
un alias para C:\Users\Alice
". Pero con espacios de nombres, Bob también puede ejecutar el script de inicio, pero su instancia de floyd (en la misma computadora, ejecutándose al mismo tiempo) verá C:\floyd
con los contenidos de, digamos, C:\Users\Bob\Program Settings\Floyd Config
(o cualquier otra ruta que nos guste).
Puede hacer esto en Linux con espacios de nombres. ¿Hay algo similar o análogo en Windows? Está bien si requiere escribir un programa en C, y está bien si solo funciona en versiones recientes de Windows.
Los bastardos reales son, por supuesto, los programas que cargan su configuración de algo como '\ floyd \ floyd.ini' - una ruta relativa a la unidad que funciona si el directroy de trabajo actual está en cualquier lugar en la misma unidad. Realmente no puedo arreglar eso con espacios de nombres. – MSalters
Esto no es realmente una pregunta de programación, pero es demasiado interesante para cerrar. – Gabe