Tecnologia di macOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
PertBot (discussione | contributi)
m Robot: Automated text replacement (-\[\[Categoria:Mac OS X +{{Mac OS X}\n[[Categoria:Mac OS X)
Corretto: "progettate"
 
(63 versioni intermedie di 43 utenti non mostrate)
Riga 1:
{{F|sistemi operativi|febbraio 2013}}
[[Immagine:Mac OS X Tecnico.png|right|thumb|200px|I 5 Livelli]]
{{aggiornare|argomento=informatica}}
[[Immagine:Schema Mac OS X.png|thumb|300px|Schema interno]]
{{torna a|macOS}}
[[Mac OS X]] è il [[sistema operativo]] sviluppato da [[Apple Computer]] per i computer [[Macintosh]]. Mac OS X come tutti i moderni sistemi operativi è strutturato a livelli. Nella fattispecie è composto da cinque livelli. La suddivisione a livelli è una scelta molto comune tra i moderni sistemi operativi dato che consente uno sviluppo rapido del sistema operativo, consente di rendere il sistema operativo quasi totalmente indipendente dall'hardware, fornisce una architettura logica e consente di ottenere un sistema efficiente dato che i singoli moduli possono essere singolarmente analizzati e i colli di bottiglia eliminati tramite riprogettazione degli stessi
[[ImmagineFile:Mac OS X Tecnico.png|right|thumb|200px|I 5 Livelli]]
'''[[Mac OS XmacOS]]''' è il [[sistema operativo]] sviluppato da [[Apple Computer]] per i computer [[Macintosh]]. Mac OS X, come tutti i moderni sistemi operativi, è strutturato a livelli. Nella- fattispeciee, ènella compostofattispecie, da cinque livelli. La suddivisione ain livelli è una scelta molto comune tra i moderni sistemiOS, operativi dato chepoiché consente uno sviluppo rapido del sistema operativo, consentee permette di rendere il sistema operativorenderlo quasi totalmente indipendente dall'[[hardware]]. Inoltre, forniscequesta unasoluzione fornisce un'architettura estremamente logica e consente di ottenere un sistema efficiente, datovisto che i singoli moduli possono essere singolarmente analizzati e iriprogettati colliin dimodo bottigliada eliminatieliminare tramiteil riprogettazionepiù deglipossibile stessigli eventuali "colli di bottiglia".
 
== Livello utente ==
[[File:Diagram of Mac OS X architecture.svg|thumb|upright=1.8|Architettura interna (per semplicità i due semi-livelli "grafica" e "servizi per le applicazioni" sono rappresentati uniti)]]
Questo livello è l'unico livelload essere direttamente accessibile dall'utente. AlcuniAlcune componenti di questo livello formano l'[[interfaccia grafica]] che l'utente utilizza, mentre altrialtre sonorappresentano delle linee guida che i programmatori devono seguire per uniformare l'interfaccia grafica dei loro programmi all'interfaccia grafica del sistema operativo - e, quindi, alle aspettative dell'utente.
 
* [[Aqua (informatica)|Aqua]]
Aqua è la tecnologia che racchiude la rappresentazione dell'interfaccia grafica. Questa tecnologia racchiude i temi utilizzati dall'interfaccia grafica per disegnare le finestre che compongono le applicazioni ede il sistema operativo. Aqua è anche un insieme di linee guida che i programmatori devono seguire per uniformare le loro applicazioni al sistema operativo.
* Accessibilità
QuestoQuesta componente raccoglie tutte le tecnologie che il sistema operativo utilizza per facilitare l'utilizzo del computer agli utenti disabili. Le tecnologie vanno- dall'utilizzo di un programma per ingrandire lo schermo alla tecnologia delal riconoscimento vocale.
* [[AppleScript]]
AppleScript è il linguaggio standard di ''scripting standard'' utilizzato dalda Mac OS X e dalle sue applicazioni per automatizzare le operazioni ripetitive.
* Bundle e Package
I Bundle e i Package sono i contenitori di software autoinstallanti deldi Mac OS X. I Bundle vengono usualmente utilizzati per istallareinstallare e gestire i componenti interni del sistema operativo (come i [[salvaschermo]], le librerie, i plug-in o altro), mentre i Package''package'' vengono utilizzati per l'installazione delle applicazioni. Il sistema tiene traccia dei Bundle e dei Package''package'' installati tramite un database interno.
* [[Cambio utente rapido]]
Il Mac OS X consente a un utente di utilizzare il computer anche quando un altro utente risulta collegato al computer,. lL'avvio del nuovo utente, infatti, non sospende i processi del vecchivecchio utente. Quando un nuovo utente si intende collegare al sistema ''Cambio utente rapido'' provvede a creare l'ambiente per il nuovo utente e a tenere traccia di tutte le risorse condivise in modo da evitare blocchi del sistema dovuti all'accesso scorretto a risorse condivise.
* [[localizzazione (software)|Localizzazione]]
* Internazionalizzazione e localizzazione
Mac OS X supporta molteplici lingue e tutti i maggiori stili di scrittura del pianeta. Tutti i componenti raccolti sotto questa denominazione si preoccupano di gestire i vari linguaggi del sistema operativo comprese le peculiarità di scrittura (sase da destra verso sinistra o viceversa, dall'alto verso il basso o l'opposto) e le notazioni standard della data, dei numeri ecc.e Essendocosì chevia. unEsiste, programma può essere dotato di più localizzazioni esistequindi, ununa componente del sistema operativo che provvede a selezionare la [[localizzazione (software)|localizzazione]] migliore tra quelle disponibili.
* Autoconfigurazione del Software
Per cercare di semplificare il normale utilizzo del computer, il sistema operativo dispone di ununa componente che quando installa un programma provvede a memorizzare i file che il programma è in grado di manipolare in modo da associaliassociarli automaticamente alle estensioni corrette. IlProvvede, componente provvededunque, a integrare le funzionalità del programma nel sistema operativo (sempre che il programma possa fornire funzioni al sistema operativo).
 
== Livello Applicazioni ==
 
Per sviluppare applicazioni per Mac OS X il programmatore dispone di diverse tecnologie utilizzabili. Alcune tecnologie svolgono compiti simili pur essendo disegnateprogettate per affrontare un problema da punti di vista differenti
* [[Carbon (API)|Carbon]]
La tecnologia Carbon è stata sviluppata per permettere alle applicazioni progettate per [[Mac OS 9]] di essere utilizzate con Mac OS X con minime correzioni. Questa tecnologia per ragioni di compatibilità non si avvantaggia di molte delle caratteristiche del Mac OS X
* [[Cocoa (software)|Cocoa]]
Questa tecnologia è rivolta allo sviluppo di applicazioni native per Mac OS X. È progettata per sfruttare al pienepieno le tecnologie incluse nel sistema operativo. I programmi sviluppati con le librerie Cocoa non sono compatibili con i sistemi operativi precedenti a Mac OS X
* [[Linguaggio_di_programmazione_JavaLinguaggio di programmazione Java|Java]]
Il sistema operativo supporta nativamente le applicazioni Java e le Applet Java. Questo componente provvede a avviare la Java virtual machine e a gestire le comunicazioni tra la Java virtual machine e il sistema operativo.
* [[WebObjects]]
WebObjects è un insieme di programmi e librerie utilizzabili per sviluppare applicazioni native per il [[Web]].
* [[BSD]] e [[Apple X11|X11]]
Il nucleo del Mac OS X è basato su BSD, questo componente provvede a gestire le chiamate dei programmi BSD e a indirizzarle correttamente. X11 è un 'estensione grafica utilizzata dei programmi BSD per visualizzare un 'interfaccia grafica. È concettualmente simile a [[Quartz (Mac OS X)|Quartz]] solo che è meno sofisticata. Per la visualizzazione si basa sulle primitive di Quartz per fornire all'utente una rappresentazione grafica coerente con le applicazioni native per Mac OS X.
 
== Grafica e multimedia ==
Durante lo sviluppatosviluppo di Mac OS X Apple ha posto molta attenzione nel sottosistema grafico. Infatti il livello dedicato alla gestione della grafica e più in generaregenerale del multimedia è composto da molte tecnologie che sono state sviluppate per ottenere il migliomiglior risultato possibile nel loro campo di applicazione.
 
* [[Quartz (Mac OS X)|Quartz]]
Quartz è l'insieme delle tecnologie che si occupano del disegno e della gestione dell'interfaccia grafica del Mac OS X. La tecnologia Quartz è basata sul formato [[Portable Document Format|PDF]] per consentire una resa grafica elevata e indipendente dal dispositivo di visualizzazione.
* [[QuickTime]]
Riga 47 ⟶ 50:
Il sistema operativo dispone di una serie d componenti dedicati alla visualizzazione e alla elaborazione dei font. I componenti supportano anche la codifiche unicode a 16 bit per permettere di rappresentare correttamente lingue come il cinese o il coreano, lingue dotate di migliaia di simboli diversi.
* [[ColorSync]]
ColorSync è la tecnologia sviluppata da Apple per gestire i colori. Ogni dispositivo di ingresso (scanner, videocamere, fotocamere, ecc) e ogni dispositivo di uscita (monitor, stampante, ecc.) è dotato di una particolare rappresentazione dei colori. Lo spazio cromatico gestibile dal monitor è diverso dallo spazio cromatico gestibile dalla stampante e quindi per evitare di ottenere dei colori in stampa diversi da quelli visualizzati a monitor è stato sviluppato ColorSync. Il componente provvede utilizzando i profili colore dei singoli dispositivi a adattare i colori rappresentati a video con i colori stampati.
* [[Core Audio]]
Questo componente si preoccupa di gestire l'audio del computer. Permette di adattare l'audio prodotto dai programma con le reali capacità audio del computer e provvede a miscelare più canali, a generare effetti audio, ecc.
Riga 55 ⟶ 58:
Questo sottosistema provvede a gestire le stampanti installate. È in grado di gestire stampanti remote, di effettuare conversioni se necessario e di gestire la coda di stampa. Il sottosistema si occupa di gestire i fax ricevuti e si interfaccia a CUPS o a i driver proprietari sviluppati dai produttori delle stampanti.
* [[QuickDraw]]
Questa tecnologia si occupa di manipolare e visualizzare la grafica delle applicazioni che utilizzano [[Classic (Mac OS Xsoftware)|Classic]]. In realtà la tecnologia QuickDraw non manipola direttamente la grafica ma unicamente converte le chiamate QuickDraw in chiamate al sottosistema [[Quartz (Mac OS X)|Quartz]] che provvederà a elaborarle.
 
== Servizi per le applicazioni ==
Questo livello è composto da servizi forniti dal sistema operativo alle applicazioni. Questi servizi hanno lo scopo di consentire una più stretta integrazioni tra le applicazioni e il sistema operativo. Questo servizi sono nati nell'ottica di rendere più semplice e comodo l'utilizzo del computer per l'utente.
 
* [[AddressContatti Book(Apple)|Contatti]]
Il sistema operativo mette a disposizionidisposizione delle applicazioni un servizio centralizzato di recupero e gestione delle informazioni. Questo servizio che si basa sull'omonimo programma provvede a organizzare tutti i contatti dell'utente.
* Disc Recording
Questo insieme di librerie permettono agli applicativi di manipolare e gestire direttamente i dispositivi ottici riscrivibili come CD e DVD senza doversi preoccupare delle problematiche tecniche dato che queste sono gestite dal sistema operativo.
* Help
Mac OS X include un gestore delle guide in linea centralizzato. Questo consente all'utente di effettuare direttamente le ricerche in tutte le guide in linea installate e non soltanto in quella dell'applicazione in uso.
* Human Interface Toolbox
L'Human Interface Toolbox è una raccolta di oggetti (Toolbox) che possono essere utilizzati dai programmatori per realizzare interfacce grafiche conformi agli standard Aqua con semplicità.
* Image Capture
Image Capture è un componente che si preoccupa di gestire l'acquisizione di immagini da scanner o da fotocamera. Utilizzando questa libreria i programmatori non si devono preoccupare di gestire direttamente l'acquisizione delle immagini dato che viene gestito e processato in automatico dal sistema operativo.
* Ink
Questo componente si preoccupa di gestire il riconoscimento della scrittura a mano libera. Se l'utente collega al computer una tavoletta grafica il sistema riconosce la presenza del dispositivi e attiva il componente Ink. Questo componente provvede a gestire la tavoletta grafica e a riconoscerne i comandi.
* Keychain Services
Il sistema operativo fornisce un servizio di raccolta e gestione delle informazioni sensibili dell'utente. Questo componente gestisce le password, gli account e tutte le informazioni riservate che l'utente crea quando utilizza internet o durante il normale utilizzo del computer. Il servizio fornisce (dietro autentificazione ) le informazioni richieste ai programmi.
* Launch Services
Questo servizio provvede a attivare il programma appropriato quando l'utente effettua un doppio click su un file contenente dati.
* Open Directory
Open Directory è una tecnologia che provvede a fornire un metodo standard e trasparente per recuperare e gestire informazioni presenti in locale o su server remoti. Il servizio si avvale di plug-in che provvedono a gestire i singoli protocolli. Apple fornisce plug-in per LDAPv2, LDAPv3, NetInfo, AppleTalk, SLP, SMB, DNS, Microsoft Active Directory, Rendezvous e altri. Ulteriori protocolli possono essere gestiti con l'aggiunta di ulteriori plug-in.
* [[Apple Bonjour|Bonjour]]
Questo servizio fornisce l'implementazione Apple della tecnologia [[Zeroconf]], ununa tecnologia per l'autoconfigurazione delle reti locali e l'individuazione delle macchine disponibili.
* Search Kit
Questo insieme di librerie forniscono un motore di ricerca veloce e efficiente da utilizzare nelle applicazioni. Il motore di ricerca gestisce le lingue e gli alfabeti gestiti da Mac OS X e è in grado di indicizzare e analizzare elevate molti di dati in tempi rapidi. Viene utilizzato dal [[Finder]], dal programma di posta [[Mail (Apple)|Mail]] e da [[AddressContatti Book(Apple)|Contatti]].
* Security Services
I componenti sotto questo nome si occupano della gestione della sicurezza sotto Mac OS X. Il sistema operativo supporta tecnologie come il [[protocollo di rete]] [[Kerberos]], BSD e Common Data Security Architecture (CDSA). I componenti supportano la gestione dei [[certificati digitali]] e dei canali sicuri (VPN e SSL). I componenti utilizzano i Keychain Services per memorizzare le informazioni riservate.
* Tecnologia vocale
Mac OS X è dotato della tecnologia di riconoscimento audio e di sintesi vocale. Il sistema opertivooperativo utilizzando questi componenti è in grado di riconoscere i comandi datagli vocalmente eed è anche in grado di tradurre un testo nell'equivalente file audio. Questa tecnologia è molto importateimportante per gli utenti disabili e utilizzando questi componenti può essere integrata nelle applicazioni. La tecnologia attualmente gestisce solo l'inglese.
* Web Kit
Questo componente si preoccupa di analizzare un file HTML e di tradurlo nella sua rappresentazione grafica. Viene utilizzato dal programma [[Safari (browser)|Safari]] e dal programma [[Mail (Apple)|Mail]] per mostrare le e-mail in formato HTML.
* Web Service Access
Questo componente fornisce una serie di servizi agli sviluppatori di applicazioni orientate al Web.
* XML Parsing
Riga 100 ⟶ 103:
* Bundle e plug-ins
* Stringhe
* Dati rawgrezzi a blocchi
* Data e ora
* Preferenze
Riga 111 ⟶ 114:
 
== Nucleo del Sistema Operativo ==
Questo è l'ultimo livello del sistema operativo. A questo livello i programmi accedono direttamente all'[[hardware]] della macchina. In questo livello si trova il nucleo del sistema operativo e tutti i componenti che per ottenere le migliori prestazioni possibili gestiscono direttamente i componenti hardware del computer.
 
* [[Apple Darwin|Darwin]]
Darwin è il nucleo del Mac OS X, è formato dal [[kernel]] [[XNU]] e dal sottosistema BSD. XNU è un kernel di derivazione Mach che supporta il [[multitasking]] ''preemptive'', supporta il ''multiprocessing'' simmetrico e i task in realtempo timereale. Gestisce nativamente la memoria protetta e la memoria virtuale. Il sottosistema BSD è integrato nel kernel e fornisce le primitive per manipolare i processi e le regole per gestire la sicurezza a livello di processo. Il sottosistema BSD fornisce le primitive per gestire la rete e per il supporto dei tread''thread''. Il kernel provvede a gestire anche i driver delle periferiche e i [[file system]] che gestiscono i dispositivi di memorizzazione ([[Harddisco Diskrigido]], [[Compact disc|CD]], [[DVD]], ecc ).
* Network Support
Questo componente si preoccupa di gestire i dispositivi di rete. Essendo basato sul sottosistema BSD i dispositivi sono gestiti tramite moduli. Questo componente si occupa di gestire sia i protocolli logici che quelli fisici.
* [[AltiVec|Velocity Engine]]
Questo componente permette al programmatore di utilizzare le istruzioni multimediali incluse nell'unità di calcolo altivec dei processori [[PowerPC]] a partire dai processori [[PowerPC G4]]. L'unità altivec è stata progettata per lavorare in parallelo su elevati flussi di dati come possono essere i flussi multimediali.
* Supporto [[Java (linguaggio di programmazione)|Java]]
Per ottenere le migliori prestazioni dal linguaggio Java è stato necessario implementare direttamente le chiamate della [[Macchina virtuale Java|Java virtual machine]] al più basso livello possibile.
 
== Collegamenti esterni ==
* {{en}}cita [httpweb|https://developer.apple.com/documentation/MacOSX/Conceptual/OSX_Technology_Overview/MacOSXOverview/chapter_2_section_2.html |Documentazione Apple] |lingua=en}}
 
{{macOS}}
{{portale|Apple}}
 
[[Categoria:MacTecnologie OSdi XmacOS]]
{{Mac OS X}
[[Categoria:Mac OS X]]