Home | Informazioni | Community | Sviluppo | myReactOS | Contattaci
|
ReactOS - Sviluppo > Libro biancoLibro biancoIntroduzioneL'architettura ReactOS si basa su quella di Microsoft Windows 2003 Server. Essa, come NT, è monolitica ma è in grado di caricare moduli. Al livello più basso si trova l'Esecutivo. Questo include tutto quello che gira in modo kernel. Sopra l'esecutivo si trovano i sottosistema protetti. Questi forniscono implementazioni di diverse personalità del Sistema Operativo. L'EsecutivoL'Esecutivo è tutto il codice che gira in modo kernel. Può essere grossolanamente suddiviso nei seguenti componenti: Strato di Astrazione dell'Hardware (HAL), driver di periferiche, il kernel, servizi di sistema (compreso il sottosistema Win32k) Tutti questi componenti girano in modo kernel. L'HAL, il kernel, i servizi di sistema e i driver delle periferiche sono collettivamente denominati Esecutivo. Hardware Abstraction LayerL'HAL fa si che il kernel x86 di ReactOS possa funzionare su schede madri x86 diverse. L'HAL astrae codice specifico delle schede madri dal kernel, così che schede madri diverse non richiedano kernel diversi. Esempi di disegni di hardware diversi sono il PC standard, il PC Giapponese NEC PC98 oppure le workstation x86 di SGI. Driver di perifericheI driver delle periferiche sono estensioni specifiche di hardware all'esecutivo ReactOS. Queste permettono al Sistema Operativo di interagire con certe periferiche e viceversa. ReactOS attualmente cerca di implementare il modo di driver NT, di cui il Windows Driver Model (WDM) è un sottoinsieme. WDM è un insieme di regole per scrivere driver Windows portabili. Windows Driver Foundation (WDF) introdotto in Windows Vista è anche in considerazione per lo sviluppo futuro. ComunicazioneI driver delle periferiche usano pacchetti per comunicare con il kernel e con altri driver. I pacchetti sono inviati attraverso il gestore di I/O (servizio di sistema) e fanno uso degli IRPs (I/O Request Packets). KernelIl disegno del kernel è basato su quello Microsoft Windows 2003 Server. Implementa il modo kernel, Chiamate di Procedure Asincrone (APCs), Chiamate di Procedure Differite (DPCs), processi, threading, mutex, semafori, spinlocks, codice di timing, e altro. Servizi di sistemaI servizi di sistema includono: IO Manager, Configuration Manager, Plug and Play, Power Manager, Memory Manager, Supporto all'Esecutivo, Object Manager, security reference monitor, struttura di processi, local procedure call, sottosistema Win32. Sottosistemi protettiI sottosistemi protetti permetto che personalità del Sistema Operativo differenti girino sopra l'esecutivo di ReactOS. Il target iniziale di ReactOS era il sottosistema Win32K -- tuttavia, il sottosistema Win32k funziona in modo kernel come parte dell'esecutivo e non viene presentato qui. Per altri sottosistemi grafici, esiste un'interfaccia per sottosistemi attraverso il sottosistema Win32k. I driver delle schede video di Windows sono strettamente integrati nel disegno con il sottosistema Win32k. Per questo motivo, non è pratico per un sottosistema in modo user interagire direttamente con i driver video. Di conseguenza, un sottosistema dovrebbe fare uso del sottosistema Win32k in modo kernel per l'interfaccia grafica. Tale sistema non deve dipendere dal gestore di finestre di Win32k, ma può invece usare le primitive grafiche fornite dal sottosistema Win32k. Architettura delle API nativeL'architettura delle API native chiama del codice del modo user per chiamare i servizi di modo kernel in modo standard. E' equivalente all'interfaccia di chiamata di sistema usata dalla maggior parte degli UNIX. Microsoft Windows NT/2000/XP non documenta l'architettura delle API native per programmatori, loro devono usare le API Win32 invece. Dato che ReactOS è a codice aperto, la nostra architettura API nativa è aperta al programmatore di applicazioni. La stessa viene implementata in NTDLL.dll. Oltre a contenere punti di ingresso delle API native in modo user, NTDLL.dll contiene anche codice per l'avvio dei processi e il caricamento dei moduli. Questi punti d'ingresso chiamano KiSystemService in modo kernel, il quale cerca il servizio di modo kernel in una tabella di sistema - KiSystemServiceTable. Target di compatibilitàIl target originale di ReactOS, con rispetto alla compatibilità di driver e applicazioni, era Microsoft Windows NT 4.0. Da allora, sono stati rilasciati Microsoft Windows 2000, XP, 2003 Server, e Vista. Tutti questi sono discendenti di Windows NT. Di conseguenza possiamo spostare il target di compatibilità gradualmente senza doverci preoccupare se l'architettura cambierà. In fatti, internamente, Windows 2000 si presenta come versione Windows 5.0, XP come Windows 5.1, 2003 Server come Windows 5.2, e Vista come Windows 6.0. Il team di ReactOS attualmente mira a Windows 2003 Server come target ufficiale di compatibilità. Delle versioni rilasciate, 2003 Server ha dimostrato di essere la più robusta. Questo non significa che le caratteristiche presenti in versioni successive di Sistemi Operativi basati su Windows NT non saranno implementate in ReactOS e si lavora continuamente per implementare nuove APIs. |