Linux ha una funzionalità chiamata namespaces, che consente di assegnare una "vista" diversa del filesystem a processi diversi. In termini Windows, questo sarebbe utile ad esempio se si avesse un programma legacy "floyd" che caricava sempre la sua configurazione da C:\floyd\floyd.ini
. Se Windows avesse spazi dei nomi, potresti scrivere uno script wrapper che creerebbe uno spazio dei nomi in cui eseguire floyd
, facendo in modo che quando Alice eseguisse lo script, floyd si avvierebbe in un ambiente in cui era presente C:\floyd
ma in realtà puntava a C:\Users\Alice\Floyd
.Windows equivalente agli spazi dei nomi di Linux (supporti per filesystem per processo)?
Ora si potrebbe pensare, "OK, basta usare collegamenti soft o hard e rendere C:\floyd
un alias per C:\Users\Alice
." Ma con gli spazi dei nomi, Bob può anche eseguire lo script di avvio, ma la sua istanza di floyd (sullo stesso computer, in esecuzione allo stesso tempo) vedrà C:\floyd
con il contenuto di, ad esempio, C:\Users\Bob\Program Settings\Floyd Config
(o qualsiasi altro percorso che ci piace).
È possibile farlo su Linux con spazi dei nomi. C'è qualcosa di simile o analogo su Windows? Va bene se richiede la scrittura di un programma in C, ed è OK se funziona solo su versioni recenti di Windows.
I veri bastardi sono ovviamente quei programmi che caricano la loro configurazione da qualcosa come '\ floyd \ floyd.ini' - un percorso relativo all'unità che funziona se la directory di lavoro corrente è ovunque sulla stessa unità. Non posso davvero sistemarlo con i namespace. – MSalters
Questa non è davvero una domanda di programmazione, ma è troppo interessante per chiudere. – Gabe