Native API: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Lornova (discussione | contributi)
mNessun oggetto della modifica
Luigi923 (discussione | contributi)
Nessun oggetto della modifica
 
(21 versioni intermedie di 17 utenti non mostrate)
Riga 1:
In [[informatica]], il termine '''nativeNative 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]].
{{stub informatica}}
 
Le ''nativeNative 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 ''nativeNative API'' non è garantita tra differenti versioni di Windows NT, in quanto cambiamenti alla struttura del kernel potrebbero riflettersi in cambiamenti delle ''nativeNative API''. Per la scrittura di applicazioni è necessario utilizzare esclusivamente le Windows API, sebbene sia tecnicamente possibile utilizzare le ''nativeNative API'', che però sono documentate solo parzialmente. Le Native API sono l'equivalente delle [[system call]] dei sistemi operativi [[Unix]].
In [[informatica]], il termine '''native API''' (o anche '''native system services''' o '''executive system services''') indica i servizi interni dei [[sistema operativo|sistemi operativi]] appartenenti alla famiglia [[Windows NT]].
 
Generalmente ad ogni ''nativeNative API'' corrisponde una Windows API equivalente, ad esempio alla ''nativeNative API'' <ttcode>NtWriteFile</ttcode> corrisponde la Windows API <ttcode>WriteFile</ttcode>.
Le ''native API'' costituiscono l'interfaccia al [[kernel]] di più basso livello possibile, tuttavia non si tratta dell'[[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.
 
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 ''nativeNative API'' sono l'interfaccia con la quale vengono sviluppati i ''subsystem''.
Generalmente ad ogni ''native API'' corrisponde una Windows API equivalente, ad esempio alla ''native API'' <tt>NtWriteFile</tt> corrisponde la Windows API <tt>WriteFile</tt>.
 
Le ''nativeNative API'' sono implementate nella [[dynamic-link library|libreria]] <ttcode>Ntdll.dll</ttcode>. A ciascuna ''nativeNative 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''.
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''.
 
== Voci correlate ==
Le ''native API'' sono implementate nella [[dynamic-link library|libreria]] <tt>Ntdll.dll</tt>. 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''.
* [[Architettura Windows NT]]
 
== Collegamenti esterni ==
[[categoria:informatica]]
* [https://web.archive.org/web/20050327034343/http://www.sysinternals.com/ntw2k/info/ntdll.shtml Inside the Native API] - articolo introduttivo di [[Mark Russinovich]]
[[categoria:sistemi operativi]]
* [https://msdn.microsoft.com/library/default.asp?url=/library/en-us/devnotes/winprog/ntcreatefile.asp Calling Internal APIs] - informazioni tecniche di [[Microsoft]]
 
{{portale|Microsoft}}
 
[[Categoria:Componenti di Windows]]