ReactOS

sistema operativo libero compatibile con Windows NT

Template:Infobox SO ReactOS è un sistema operativo libero/open source che si pone l'obiettivo di diventare totalmente compatibile con il codice oggetto delle applicazioni e dei driver realizzati per Microsoft Windows NT 5 e versioni successive (Windows 2000, Xp, 2003 e Vista). È composto interamente da software libero ed è realizzato, completamente da capo, con una tecnica detta "Clean Room Reverse Engineering".Questo non è un sistema basato su Linux, e non condivide niente dell'architettura Unix.

Attualmente il progetto si trova nello stato di sviluppo alpha (gli stessi sviluppatori ne sconsigliano l'impiego per le "attività di tutti i giorni"), anche se l'85% degli obiettivi è stato raggiunto nel novembre 2005. Nell'attuale versione 0.3.6 molte applicazioni per Windows risultano funzionare correttamente grazie anche alle librerie del progetto Wine, con cui collabora lo stesso staff di ReactOS.

Per consentire di provarlo senza disporre di un computer apposito, oltre alla versione installabile e al live cd si possono scaricare dal sito le immagini ISO per vari software di virtualizzazione.

ReactOS è scritto principalmente in C, con alcuni elementi, come ReactOS Explorer, scritti in C++ (il compilatore raccomandato è MinGW).

Molte componenti di ReactOS sono distribuite sotto licenza GNU General Public License, GNU Lesser General Public License e/o BSD License.

Sviluppo

Da FreeWin95 a ReactOS

Intorno al 1996, un gruppo di sviluppatori open source avviò un progetto chiamato FreeWin95, con l'intento di implementare un sistema operativo che fosse compatibile con Windows 95. Il progetto si arrestò alle discussioni riguardanti la progettazione del sistema, perché il sistema di Windows 95 appariva carente in molte delle caratteristiche richieste.

Pertanto, alla fine del 1997 i membri del progetto cambiarono il sistema obiettivo in Windows NT ed il nome stesso del progetto fu modificato in ReactOS. ReactOS nacque nel Febbraio 1998, con lo sviluppo del kernel e dei driver di base.

Purtroppo fin circa l'anno 2000 il progetto fu gestito saltuariamente, inoltre con l'uscita di Windows 2000 fu chiaro che la Microsoft abbandonava per sempre la tecnologia WinMS (Win95, 98, SE, ME) in favore dell'unica tecnologia NT.

Cronologia delle versioni

 
Il coordinatore del progetto Aleksey Bragin (a sinistra) prova le funzionalità di ReactOS insieme a Viktor Alksnis

Il kernel di ReactOS risulta essere abbastanza stabile, con molte API e ABI pronte per lo sviluppo ad alto livello; anche una interfaccia utente di base è disponibile. ReactOS utilizza ReactOS Explorer, una snella shell grafica simile a Windows Explorer.

Versioni 0.2.x

La versione 0.2.0 di ReactOS permette di eseguire molte applicazioni Win32 di base, quali Blocco Note (un semplice editor di testo), Regedit (l'editor di registro), cmd (l'interprete a riga di comando), altre applicazioni più complesse (come, ad esempio, AbiWord) e alcuni giochi (Quake e Quake II), nonché il clone di campo minato del progetto Wine.

La versione 0.2.2, rilasciata il 28 Aprile 2004, riduce notevolmente i problemi che affliggevano la precedente release e in generale sono state migliorate le prestazioni.

La versione 0.2.5, rilasciata il 5 Gennaio 2005, migliora la stabilità del sistema e quella relativa alla connettività.

Dalla versione 0.2.6, Dillo, mIRC, e i componenti DCOM del web browser Mozilla Firefox (usando il motore di rendering Gecko) funzionano con ReactOS. Alcuni giochi come Unreal Tournament e Deus Ex sembrano funzionare, grazie all'uso del rendering software. Inoltre, le librerie OpenGL funzionano, anche se con piccoli problemi, usando i driver nVidia o l'implementazione software Mesa 3D. Sono stati fatti funzionare un webserver (Tiny Web server) e UltraVNC Client. Anche OpenOffice.org (Versione 1.x) risultò parzialmente funzionante.

Con la versione 0.2.8, funzionano alcuni elementi per la rete TCP/IP, così come un buon numero di applicazioni. Il supporto per l'Audio e le periferiche USB è ancora in fase di sviluppo (le schede SoundBlaster SB16 funzionano parzialmente, il lavoro su USB OHCI e UHCI deve ancora essere intrapreso). Le funzionalità USB sono prese 'in prestito' da Cromwell Linux. Anche il lavoro sul supporto Plug and Play è iniziato, con l'intento di supportare il WDM. In aggiunta al browser testuale Lynx, ReactOS può utilizzare componenti DCOM da Mozilla per l'esplorazione grafica delle pagine web.

ReactOS 0.2.8 può anche rilevare se sta girando in un ambiente VMWare, e può installare il drivers SuperVGA dalla ISO degli strumenti VMWare, per migliorare il livello di performance dell'interfaccia grafica. CSRSS (Microsoft Client/Server Runtime Server Subsystem) è stato completamente riscritto, e una implementazione scritta da zero di Ws2_32 (Windows Socket 2.0 32-Bit DLL) è prevista in poco tempo. Sono inoltre presenti elementi iniziali ma funzionanti delle componenti ddraw, dplay e dplayx.

Versioni 0.3.x

ReactOS 0.3.0 Release Candidate 1 è stato rilasciato il 15 giugno 2006. Un migliorato supporto al supporto del networking (TCP/IP) e del Plug&Play sono le novità principali di questo rilascio.

La versione stabile di ReactOS 0.3 è stato rilasciata il 27 agosto 2006.

La versione 0.3.1 è stata rilasciata l'11 marzo 2007, e comprende oltre a numerosi miglioramenti rispetto alla versione precedente, un primo wallpaper, denominato "Lake".

La release 0.3.3 di ReactOS è stata rilasciata il 12 settembre 2007 e il suo rilascio è caratterizzato da un enorme miglioramento del kernel che lo rende più in linea con Windows NT 5.2. É anche stata migliorata la stabilità specialmente in win32k.

La versione 0.3.2 non è stata mai rilasciata a causa di diversi problemi che hanno rallentato il rilascio.

La release 0.3.4 è stata rilasciata nel gennaio 2008, mentre la 0.3.5 (prevista per maggio 2008) è stata rilasciata il 30 giugno 2008. Quest'ultima corregge vari bug presenti nelle versioni precedenti e grazie alla lavorazione della maggior parte dei driver di kernel mode sono state aggiunte alcune funzioni.

La versione 0.3.6 è stata rilasciata il 6 agosto 2008 e sono state fatte diverse migliorie, qui di seguito sono riassunte le più importanti:

  • Supporto per più architetture: miglioramenti nella versione ARM, inizi del supporto all'architettura x64
  • Requisiti di memoria di FreeLdr durante il boot di ReactOS più ridotti
  • Adesso è possibile scaricare i driver
  • Diversi fix e miglioramenti nel kernel (problemi di consegna APC, problemi di timer, tanto lavoro nelle parti indipendenti da architetture del gestore di memoria)
  • Supportate più applicazioni Win32 grazie alla sistemazione dell'implementazione heap dell'RTL (ad esempio installatori basati su InnoSetup, applicazioni Delphi, ecc)
  • Risoluzioni di bug ed eliminazioni di perdite di memoria nello stack di rete
  • Miglioramenti nel sottosistema Win32, la maggioranza delle dll in usermode DLL sincronizzate con Wine

La versione 0.3.7 verrà forse rilasciata nel corso di settembre 2008.

Versioni 0.4.x

La versione 0.4 dovrebbe avere circa il 50% di compatibilità con il kernel di Windows NT, winlogon pienamente implementato, supporto iniziale per l'audio, supporto per le 5 più comuni schede di rete e miglioramenti alla connettività USB.

Versioni 0.5.x

Le versioni del ramo 0.5 di ReactOS passeranno allo stadio beta e saranno pronte per l'uso di tutti i giorni, ma essendo beta non è garantita la sua piena funzionalità per un uso lavorativo fintanto che non diventerà release.

Sviluppi Correnti e Versioni Future

 
ReactOS con AbiWord e ReactOS Explorer in esecuzione

Gli sviluppatori del progetto attualmente stanno lavorando al supporto USB,per questa ragione l'attuale supporto è "preso in prestito dalla distribuzione "Cromwell Linux".Lo sviluppo è anche concentrato per inserire nel sistema anche un migliorato supporto di rete,un supporto per la multimedialità e un completo supporto hardware plug-and-play,oltre ovviamente a migliorare la GUI di default.

Gli sviluppatori stanno sopratutto lavorando per rendere il kernel di ReactOS più compatibile con quello di Windows NT 5.x e 6 e per rendere funzionanti ancora più applicazioni.In futuro verrà anche implementato un pieno supporto al filesystem NTFS e ext2 e seguenti.

Analisi Auto-Imposta

Il 17 gennaio 2006 Harmut Birr contattò gli sviluppatori di ReactOS presenti nella mailing list ufficiale (ros-dev) affermando che in ReactOS risultava esserci qualche codice (copiato in maniera pari-pari) di Windows NT, invalidando la sua licenza libera. Il risultato di queste affermazioni ha fatto chiudere per un periodo di tempo il server SVN dedicato al progetto e gli sviluppatori si sono preoccupati di contattare coloro che contribuivano a migliorare il software ad utilizzare solo ed esclusivamente del codice ottenuto tramite Clean Room reverse Engineering e non librerie (anche libere) di Microsoft. Come conseguenza dall'8 marzo 2006 gli sviluppatori di ReactOS hanno iniziato un analisi auto-imposta di tutto il codice che riguarda la compatibilità con Microsoft Windows. L'analisi è stata completata nel corso di Settembre 2007 e tutto il codice è stato ripulito delle piccole tracce di codice non GPL.

Progetti correlati

ReactOS lavora con il progetto Wine in modo da poter beneficiare dei progressi nell'implementazione delle API Win32. Questi sforzi si concentrano principalmente sulle DLL di Wine, molte delle quali possono essere condivise dai due progetti. Entrambi si incentrano su problemi di compatibilità, in modo che anche le poche DLL restanti possano essere usate da ReactOS.

Un altro progetto collegato è Samba TNG, che implementa dozzine di servizi, quali LSASS, SAM, NETLOGON, SPOOLSS, chiave del successo e della interoperabilità del progetto ReactOS. Il disegno architetturale di Samba e i relativi obiettivi rendono difficile considerarne una integrazione in ReactOS, dato che l'approccio stratificato e modulare di Samba TNG lo rendono appetibile per considerare il porting di ogni servizio in ReactOS.

Requisiti Minimi di Sistema

I requisiti minimi per avviare ReactOS (nel caso lo si voglia testare su Hardware reale)sono:[13]

   * 32MB di RAM[14]
   * Harddisk IDE (non SATA)min. 60MB con partizione primaria FAT16/FAT32[15]
   * CPU Intel 80486
   * scheda video VGA (VESA BIOS v2.0 o superiore)
   * Tastiera standard (PS/2)e Mouse PS/2

I requisiti minimi ottimali per ReactOS (nel caso lo si voglia testare su Hardware reale)sono:

   * 128MB di RAM[14]
   * Harddisk IDE (non SATA) da 100MB
   * CPU Intel da 200Mhz

Le funzionalità di rete attualmente fungono con i seguenti tipi di schede:

   * cloni NE2000 (come Realtek 8139)
   * AMD PCnet32 LANCE

Altri tipi di schede possono funzionare con i driver appropriati.

Architetture Supportate

Gli sviluppatori del progetto stanno lavorando attualmente su diversi port di ReactOS:

   * x86 (funzionante)
   * Xbox (bloccato ma verrà ripreso più avani)
   * PowerPC (in lavorazione)[16]
   * ARM (in lavorazione)[17]
   * Altri (in lavorazione)

ReactOS funziona con software di virtualizzazione come VMWare, VirtualBox e QEMU (VirtualPC 2007 attualmente non è pienamente supportato).

Voci correlate

Collegamenti esterni

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero