[Tut] Come è fatto OS X

Rispondi
Avatar utente
rickypaul
Moderatore
Moderatore
Messaggi: 252
Iscritto il: 01 mar 2014, 03:00

[Tut] Come è fatto OS X

Messaggio da rickypaul »

Il file system predefinito in OS X è il file system HFS+ che sta per Hierarchical File System Plus dove il + è stato messo per indicare che si tratta di una rivisitazione del vecchio HFS.
HFS+ rispetto a HFS supporta indirizzi di blocchi più grandi da 32 bit, anziché 16, permettendo quindi di gestire file di dimensioni maggiori. Per i nomi di file e cartelle utilizza come codifica unicode che permette di avere nomi di file fino a 255 caratteri. Per memorizzare i metadati dei file utilizza una struttura ad albero nota come B*-tree.
HFS+ divide il disco in settori di 512 byte.
Il file system dispone di 4 modalità di funzionamento differenti, che vengono stabilite durante il processo di formattazione:
• Case sensitive/insensitive: di default HFS+ viene impostato come case insensitive, il che significa che in una stessa cartella non possono esserci 2 file con lo stesso nome indipendentemente dal fatto che questi siano scritti in maiuscolo o in minuscolo.
Com’è possibile vedere nello screenshot, avendo una cartella chiamata PROVA non ci permette di nominare un’altra cartella con il nome prova.
Lo stesso vale per comandi lanciati dentro al terminale. Scrivere ls o LS è indifferente.

• Con o senza journaling: il journaling è molto utile nel caso in cui il sistema dovesse per qualche motivo andare in blocco o, per esempio, in caso di mancanza di corrente.
Prima di scrivere qualcosa su disco, salva le modifiche su un file di log in modo da poter comunque mantenere il file system in uno stato consistente.
Di default viene usato il journaling.
Da un punto di vista dello sviluppo di applicazioni non cambia assolutamente nulla in quanto le API del file system messe a disposizione dal kernel vengono gestite dal virtual file system che ha come scopo quello di “rendere standard” le chiamate al file system.
Altre caratteristiche principali di questo file system sono le stesse viste per tutti i file system di tipo unix: gestione di permessi, hard link e soft link.
Directory UNIX
Essendo un file system UNIX-like, vediamo quali “cartelle unix” comprende:
• /bin: contiene i file binari della maggior parte dei comandi unix che usiamo da terminale.
• /sbin: contiene i file binari di applicativi utilizzabili solo dall’amministratore di sistema, generalmente l’utente root.
• /usr: in questa cartella vengono installati tutti gli applicativi di terze parti.
Da notare che per applicazioni non si intende le applicazioni di uso quotidiano (come ad esempio un browser), ma applicazioni che generalmente vengono usate dal sistema o richiamabili tramite terminale.
• /etc: contiene la maggior parte dei file di configurazione.
In OS X è implementata come link simbolico alla cartella /private/etc
• /dev: contiene i device file, ovvero i file che rappresentano i dispositivi hardware.
• /tmp: è la directory temporanea, il che significa che scrivendo un file al suo interno verrà poi cancellato al riavvio del sistema. E’ l’unica cartella del sistema in cui qualsiasi utente può scrivere.
Come per /tmp anche questa è un link simbolico che punta alla cartella /private/tmp
• /var: al suo interno troviamo una serie di file come log, print spool e altro.
E’ un link simbolico alla cartella /private/var.
OS X Directory
Ci sono poi una serie di directory che vengono specificatamente create da OS X, e sono:
• /Applications: qua vengono installate tutte le applicazioni disponibili nel sistema.
All’interno della home dell’utente è presente un’altra cartella chiamata Applications che contiene tutte le applicazioni disponibili solo per quell’utente specifico.
• /Library: contiene file di configurazione, documentazioni e altro per le applicazioni di sistema.
• /Network: contiene cartelle virtuali che rappresentano altri dispositivi presenti nella rete.
• /System: contiene una sotto directory chiamata /Library al cui interno sono contenuti tutti i principali componenti del sistema.
• /Users: contiene le cartelle home dei vari utenti presenti nel sistema.
• /Volumes: mount-point di dispositivi esterni
Quello che è possibile notare è che OS X suddivide le cartelle del sistema in 2 macro-categorie e cioè cartelle di sistema e cartelle specifiche di OS X. Non conosco le ragioni esatte di questa scelta ma posso presumere che sia stato fatto per una questione di retro-compatibilità e per il fatto che per le versioni future sia possibile aggiornare una o l’altra componente di sistema senza andare a intaccare il resto.
Rispondi