Windows API: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Risolvo disambigua Singularity in Singularity (sistema operativo) tramite popup
Botcrux (discussione | contributi)
m Bot: Aggiungo controllo di autorità (ref)
 
(20 versioni intermedie di 17 utenti non mostrate)
Riga 1:
Le '''Windows API''' sono l'insieme delle interfacce di programmazione (in [[lingua inglese|inglese]] ''[[application programming interface]]'' o API) disponibili nei [[sistema operativo|sistemi operativi]] [[Microsoft Windows|Windows]] di [[Microsoft]]. Per utilizzare le Windows API Microsoft fornisce gratuitamente il ''Platform [[Software development kit|SDK]]'', ora evolutosi nel più moderno [[Microsoft Windows SDK|Windows SDK]] che unifica il Platform SDK con il [[.NET Framework|.NET Framework SDK]] (dedicato a sua volta all'ambiente .NET). Il Platform SDK (Windows SDK) è una raccolta di strumenti e documentazione da abbinare ad un [[compilatore]] di [[linguaggio C]].
 
== 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 [httphttps://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 metrouniversali diper WindowsPC, 8Tablet, Smartphone, [[Microsoft Hololens|Hololens]].
 
== Struttura delle Windows API ==
Riga 14:
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’interfacciaun'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 MEMe]]) 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’interfacciaun'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 ===
Riga 26:
 
== Implementazioni non Microsoft ==
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 clonarecreare un l'intero sistema operativo compatibile con le Windows API e in grado di eseguire nativamente programmi scritti per esso.
 
== Librerie a più alto livello ==
La stratificazione nel tempo di nuove funzionalità, la necessità di avere una completa [[retrocompatibilità]] e l’enormel'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’interfacciaun'interfaccia di basso livello.
 
Esempi di librerie che incapsulano le Windows API sono:
Riga 39:
 
== Il futuro delle Windows API ==
LaDurante storiagli delleanni le Windows API è a un bivio: nelle intenzioni di Microsoft dovrebbedovevano 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 (sistema operativo)|Singularity]] dei laboratori di [[Microsoft Research]], sperimentanosperimentavano 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.
Ma con l'avvento degli smartphone e dei tablet degli ultimi anni, Microsoft ha preferito introdurre un nuovo set di api chiamato WinRT per lo sviluppo di app, con tutti gli standard delle app, codice utilizzabile su più architetture sia a 32 che a 64 bit, con sandbox e con interfacce adattabili ad ogni tipo di dispositivo.
 
== Voci correlate ==
* [[DirectX]]
* [[Component Object Model]] (COM)
* [[windows.h]]
 
== Collegamenti esterni ==
* [http{{cita web|url=https://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp |titolo=Microsoft Platform SDK]}}
* [{{cita web | 1 = http://www.negusweb.it/wiki/Tutorial_sulle_Windows_API | 2 = Introduzione alle Windows API] | accesso = 19 marzo 2009 | dataarchivio = 18 giugno 2009 | urlarchivio = https://web.archive.org/web/20090618150714/http://www.negusweb.it/wiki/Tutorial_sulle_Windows_API | urlmorto = sì }}
 
{{Controllo di autorità}}
{{portale|Microsoft}}