Home | Informazioni | Community | Sviluppo | myReactOS | Contattaci

  1. Home
  2. Informazioni
  3. Community
  4. Sviluppo
  5. myReactOS

  1. Descrizione
  2. Come prenderne parte
  3. Whitepaper
  4. Compilare ReactOS
  5. FAQ dello sviluppatore
  6. "Proprietà intellettuale"
  7. Server SVN
  8. Bugzilla
  9. Doxygen
  10. RosCMS
  11. Stato del sito
  12. Tradurre il sito
  13. ReactOS CIA

ReactOS - Sviluppo > Libro bianco

Libro bianco

Introduzione

L'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'Esecutivo

L'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 Layer

L'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 periferiche

I 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.

Comunicazione

I 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).

Kernel

Il 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 sistema

I 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 protetti

I 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 native

L'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.


ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.