Native API: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Lornova (discussione | contributi)
mNessun oggetto della modifica
Luigi923 (discussione | contributi)
Nessun oggetto della modifica
 
(17 versioni intermedie di 17 utenti non mostrate)
Riga 1:
In [[informatica]], il termine '''Native API''' (o anche '''native system services''' o '''executive system services'''), in [[informatica]], indica i servizi interni dei [[sistema operativo|sistemi operativi]] appartenenti alla famiglia [[Windows NT]].
 
Le Native API costituiscono l'interfaccia al [[kernel]] di più basso livello possibile, tuttavia non si tratta dell'[[Application programming interface|API]] ufficiale e documentata del sistema operativo, bensì di un'interfaccia privata sulla quale si appoggiano le [[Windows API]]. La compatibilità delle Native API non è garantita tra differenti versioni di Windows NT, in quanto cambiamenti alla struttura del kernel potrebbero riflettersi in cambiamenti delle Native API. Per la scrittura di applicazioni è necessario utilizzare esclusivamente le Windows API, sebbene sia tecnicamente possibile utilizzare le Native API, che però sono documentate solo parzialmente. Le Native API sono l'equivalente delle [[system call]] dei sistemi operativi [[Unix]].
 
Generalmente ad ogni Native API corrisponde una Windows API equivalente, ad esempio alla Native API <ttcode>NtWriteFile</ttcode> corrisponde la Windows API <ttcode>WriteFile</ttcode>.
 
La ragione per la quale esiste questo doppio strato di API deriva dal fatto che i sistemi operativi Windows NT possono disporre di differenti ''subsystem''. In Windows NT sono disponibili i ''subsystem'' Win32, [[Posix]] e [[OS/2]] (a partire da [[Windows XP]] è presente solo quello Win32). Pertanto le Native API sono l'interfaccia con la quale vengono sviluppati i ''subsystem''.
 
Le Native API sono implementate nella [[dynamic-link library|libreria]] <ttcode>Ntdll.dll</ttcode>. A ciascuna Native API corrisponde un servizio del kernel, che viene invocato tramite un [[interrupt]] ''0x2E'' (o con un'istruzione di [[linguaggio macchina]] ''sysenter'' o ''syscall'' sui [[microprocessore|microprocessori]] più recenti); questa operazione viene definita ''system service dispatching''.
 
== Voci correlate ==
* [[Architettura Windows NT]]
 
== Collegamenti esterni ==
* [https://web.archive.org/web/20050327034343/http://www.sysinternals.com/ntw2k/info/ntdll.shtml Inside the Native API] - articolo introduttivo di [[Mark Russinovich]]
* [httphttps://msdn.microsoft.com/library/default.asp?url=/library/en-us/devnotes/winprog/ntcreatefile.asp Calling Internal APIs] - informazioni tecniche di [[Microsoft]]
 
{{portale|Microsoft}}
* [http://www.sysinternals.com/ntw2k/info/ntdll.shtml Inside the Native API] - articolo introduttivo di [[Mark Russinovich]]
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devnotes/winprog/ntcreatefile.asp Calling Internal APIs] - informazioni tecniche di [[Microsoft]]
 
[[Categoria:Componenti di Windows]]
[[categoria:informatica]]
[[categoria:sistemi operativi]]