Windows API: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: fix incipit |
|||
Riga 1:
== Versioni delle Windows API ==
Le Windows API si possono dividere nei seguenti gruppi:
* '''Win16''', versione iniziale a [[16 bit]] delle Windows API, le cui specifiche sono disponibili anche come Standard [[ECMA]] con codice [http://www.ecma-international.org/publications/standards/Ecma-234.htm ECMA-234].
* '''Win32''', evoluzione a [[32 bit]] per le versioni moderne di Windows.
* '''Win32s''', sottoinsieme di Win32 da installare sulle versioni di Windows a 16 bit per eseguire applicazioni compilate a 32 bit.
* '''Win64''', evoluzione a [[64 bit]] per le versioni di Windows destinate ai nuovi processori a 64 bit di [[Intel]] e [[Advanced Micro Devices|AMD]].
* '''WinRT''', nuove api per le app metro di Windows 8
== Struttura delle Windows API ==
Le API consistono in un insieme di [[funzione (informatica)|funzioni]] in [[linguaggio C]] implementate in ''librerie a collegamento dinamico'' (in inglese ''[[Dynamic-link library|Dynamic-link libraries]]'' o DLL).
Le Windows API, nonostante siano scritte, per ragioni di prestazioni, in un mix di linguaggio C e [[assembly]], presentano un complesso modello [[object oriented|orientato agli oggetti]] con una struttura molto uniforme ed uno stile che è stato di ispirazione per molti altri progetti.
La struttura di base delle Windows API è rimasta pressoché invariata da Windows 1.0 ad oggi. Vi sono tre gruppi principali di API: ''kernel'', ''GDI'' e ''user''.
=== API Kernel ===
Le API ''kernel'' forniscono alle applicazioni un’interfaccia di [[alto livello]] ai servizi del [[kernel]] del sistema operativo (gestione della memoria, dei processi, sincronizzazione, ecc.). Sulle versioni di Windows dalla 1.0 a Windows 4.9 ([[Windows ME]]) molte di queste API sono semplicemente dei richiami ai servizi forniti dagli [[interrupt]] software di [[MS-DOS]]. Sui sistemi con [[Windows NT|kernel NT]], queste API effettuano delle chiamate alle API di basso livello di NT, chiamate ''[[Native API]]''.
=== API GDI ===
Le API ''GDI'' (''[[Graphics Device Interface]]'') costituiscono la libreria grafica dei sistemi Windows. GDI virtualizza tutti i dispositivi grafici (monitor, stampanti, plotter) in modo da avere un’interfaccia omogenea (chiamata ''[[Device Context]]'') tra le differenti tipologie di dispositivi. Inoltre GDI permette di creare e manipolare una serie di oggetti grafici, tra cui [[font]], penne, pennelli, [[bitmap]], ecc.
=== API User ===
Le API ''user'' (da ''user interface'') forniscono i servizi di interfaccia grafica, basati sui concetti di "finestra" e di "messaggio".
== Implementazioni non Microsoft ==
Sebbene
▲Sebbene l’implementazione delle API di Windows sia soggetta a [[copyright]], vi sono delle implementazioni proprietarie di altri produttori e anche diversi progetti [[open source]] fra i quali citiamo [[WINE]] per emulare le Windows API nei sistemi di tipo [[Unix]], e [[ReactOS]] che mira a clonare l’intero sistema operativo.
== Librerie a più alto livello ==
La stratificazione nel tempo di nuove funzionalità, la necessità di avere una completa retrocompatibilità e l’enorme mole complessiva di funzioni disponibili (ad oggi diverse migliaia) ha reso la programmazione di Windows con le API ostica e inadatta agli standard oggi accettati. Per questo sono nate nel tempo molte [[Libreria software|librerie]] (in linguaggi come [[C++]] e altri) che propongono un modello ad oggetti più astratto e semplice da usare, trasformando di fatto le Windows API in un’interfaccia di basso livello.
Esempi di librerie che incapsulano le Windows API sono:
* [[Microsoft Foundation Classes]] (MFC), libreria in C++ molto utilizzata che però ha un livello di astrazione ridotto.
* [[Object Windows Library]] (OWL), libreria in C++ di [[Borland]] con un maggiore livello di astrazione.
* [[Active Template Library]] (ATL), libreria in C++ basata su [[template]] di Microsoft.
* [[Windows Foundation Classes]] (WFC), libreria per [[
* [[Framework .NET|.NET framework]], libreria di Microsoft indipendente dal linguaggio perché destinata ai [[compilatore|compilatori]] [[Common Language Runtime|CLR]].
== Il futuro delle Windows API ==
La storia delle Windows API è a un bivio: nelle intenzioni di Microsoft dovrebbe lasciare il posto alla libreria .NET grazie in particolare al nuovo componente [[Windows Presentation Foundation]], disponibile nella versione 3.0 del Framework .NET. Alcuni progetti infatti, come [[Singularity]] dei laboratori di [[Microsoft Research]], sperimentano nuovi sistemi operativi completamente basati sul nuovo tipo di kernel completamente scritto con codice gestito basato su .NET, abbandonando quindi la vecchia architettura basata su Windows API.
== Voci correlate ==
* [[DirectX]]
* [[Component Object Model]] (COM)
Riga 63 ⟶ 48:
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp Microsoft Platform SDK]
* [http://www.negusweb.it/wiki/Tutorial_sulle_Windows_API Introduzione alle Windows API]
{{portale|Microsoft}}
[[Categoria:Microsoft Windows]]
[[Categoria:Librerie software]]
|