Native API: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Lornova (discussione | contributi)
Collegamenti esterni
Lornova (discussione | contributi)
Nessun oggetto della modifica
Riga 1:
In [[informatica]], il termine '''nativeNative API''' (o anche '''native system services''' o '''executive system services''') indica i servizi interni dei [[sistema operativo|sistemi operativi]] appartenenti alla famiglia [[Windows NT]].
 
Le ''nativeNative 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 ''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]].
 
Generalmente ad ogni ''nativeNative API'' corrisponde una Windows API equivalente, ad esempio alla ''nativeNative API'' <tt>NtWriteFile</tt> corrisponde la Windows API <tt>WriteFile</tt>.
 
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''.
 
Le ''nativeNative API'' sono implementate nella [[dynamic-link library|libreria]] <tt>Ntdll.dll</tt>. 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''.
 
== Collegamenti esterni ==