A maioria dos problemas subjacentes pode ser explorada com um único exemplo, como a impressora. Alice realmente não quer que o lpr (1) bloqueie até que Joe termine de imprimir sua tese. O sistema não quer que Alice exclua seu arquivo antes de ser impresso. A solução óbvia é colocar uma cópia do arquivo em um diretório de spool até que esteja em segurança no papel.
Tradicionalmente, os trabalhos de impressão foram enfileirados em / usr / spool / lp. O problema, como observado, é que isso efetivamente proíbe a montagem / usr somente leitura. Tenha em mente que o problema se estende a todas as filas (mail, uucp, etc) e todos os logs do sistema. Isso causa um problema secundário, a saber, que o tamanho de / usr é totalmente independente do tamanho da instalação do sistema operacional. Imagine que você esteja provisionando um novo sistema com 35 MB de binários. Quão grande você precisa para fazer a partição / usr? Pergunta de truque! 35 MB, mais tempo necessário para reter os logs vezes o uso médio de e-mail, impressoras, newsreaders.
Movendo tudo para / var resolve perfeitamente o problema somente leitura e faz incursões significativas nos pesadelos administrativos. Por um lado, permite a fácil medição de quanto espaço os dados estão usando. Também é um pouco menos doloroso estender ou substituir uma única partição do que se preocupar com / usr / spool, / usr / log, etc.
O armazenamento do estado do sistema distribuído entre os diretórios home não lhe compra nada, mas aumenta a complexidade. Em vez de um único diretório global para gerenciar permissões, você tem centenas de outras. Além disso, você pode adicionar a sobrecarga de varredura contínua em todos esses diretórios.
Menos óbvio é o fato de os diretórios pessoais não serem específicos do sistema. Os montados em rede são bastante comuns. É provável que, ao imprimir um arquivo, você queira apenas que ele seja impresso no local onde você está conectado, e não em todas as máquinas nas quais seu diretório pessoal está montado. A disponibilidade também é um problema, pois os diretórios pessoais podem desaparecer se o servidor de arquivos pirar. Ou para adicionar um toque mais moderno, se o diretório inicial estiver criptografado e o sistema não puder lê-lo.
Historicamente, o armazenamento global serviu de cache para informações públicas. Na ausência de um servidor de notícias, os artigos usenet eram baixados em lotes e armazenados em um local central. Afinal, não há motivo para duplicar o grande feed de notícias em vários usuários. Filas centralizadas também servem como um buffer para informações de entrada. Considere a fila de mensagens, que pode não ser capaz de depositar mensagens em seu diretório pessoal criptografado. (Disponibilidade novamente) Ou o caso em que você recebe uma tonelada de spam enquanto está de férias. O sistema deve descartar todas as mensagens depois que você exceder sua cota de disco ou salvá-las e deixar que você as classifique depois?