ReactOS

Da Wikipedia, l'enciclopedia libera.

(Reindirizzamento da Reactos)
React OS


Il desktop di ReactOS v0.3.9
Sviluppatore: ReactOS Foundation
Famiglia SO: Windows NT
Modello del sorgente: Open source
Ultima versione: 5 luglio 2009: 0.3.10
Tipo di kernel: Kernel Ibrido
Licenza: Software libero
Stadio di sviluppo: Alpha
Sito web: http://www.reactos.org/

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, Vista e il futuro Windows 7). È composto interamente da software libero ed è realizzato completamente da capo, con una tecnica detta "Clean Room Reverse Engineering". Non è un sistema operativo basato su Linux, e non condivide niente con l'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 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 software viene distribuito sotto licenza GNU General Public License anche se alcune componenti sono sotto altre licenze, come la GNU Lesser General Public License e la Licenza BSD.[1]

Indice

[modifica] Sviluppo

[modifica] 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.[2]

[modifica] Cronologia delle versioni

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.

[modifica] 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.

Alcuni giochi come Unreal Tournament e Deus Ex è confermato che funzionino, 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.

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.

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.

[modifica] 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 0.3.0 Release Candidate 2 è stata rilasciata quando il controllo del codice aveva raggiunto il 94%. La scelta di rilasciare un'altra Release Candidate è stata effettuata perchè durante il controllo del codice molti bug sono stati corretti. La versione stabile di ReactOS 0.3.0 è stata rilasciata il 27 agosto 2006.[3]

La versione 0.3.1 è stata rilasciata l'11 marzo 2007 ed è stata la prima release dopo la massiccia riscrittura del kernel, che ha reso molte parti dell'OS più in linea con NT 5.2. Questa versione ha visto anche l'introduzione del Registry library, con grandi miglioramenti al supporto del Registro. Un semplice programma per scaricare programmi freeware e shareware è stato introdotto in questa release oltre anche a un primo wallpaper, denominato "Lake".

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

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.[4]

La release 0.3.4 è stata rilasciata il 22 gennaio 2008[5] ed è caratterizzata da un maggior supporto al Registro, sincronizzazione della maggior parte delle DLL user mode con Wine, migliorie sia nel supporto al plug'n'play che in user32,in Win32k,in molte componenti user mode,in shell32, al Pannello di Controllo e ha anche visto l'introduzione del remote desktop client.

La Versione 0.3.5 (prevista per maggio 2008) è stata rilasciata il 30 giugno 2008.[6] Quest'ultima contiene correzzioni per molti bug presenti nelle versioni precedenti, alcuni presenti addirittura dalla versione 0.3.0 o da versioni ancora antecedenti. Grazie alla lavorazione della maggior parte dei driver di kernel mode e sono state aggiunte alcune funzioni.

La versione 0.3.6, rilasciata il 6 agosto 2008[7] contiene diversi bug fix nel kernel e un'implementazione del RTL heap , miglioramenti nella versione ARM, inizi del supporto all'architettura AMD64 in un branch separato. E' anche possibile scaricare i driver.

La versione 0.3.7, rilasciata il 4 novembre 2008 [8] include un migliorato supporto per l'architettura x64.l'inizio di un vero progetto di supporto per il compilatore MSVC, miglioramenti del Kernel e correzioni in diverse aree, miglioramenti nello Stack di rete e molti nuovi bug fix.

La versione 0.3.8 è stata rilasciata il 4 febbraio 2009[9] contiene diversi bugfix e miglioramenti ai servizi di core del Kernel (ad esempio: registro, routine di informazione del sistema, primitive di sync come guarded mutex, supporto IO e altri). È inoltre stata avviata un'iniziativa per sistemare le parti ancora instabili del kernel: Gestore della Memoria, codice per caching, API dei driver di filesystem e altre dipendenze del Gestore della memoria oltre a l'introduzione di un nuovo meccanismo portatile strutturato di gestione delle eccezioni (PSEH 2.0), il quale è molto più vicino alla sintassi SEH nativa del compilatore e al supporto per Hard Disk multipartizionati nel LiveCD.

La versione 0.3.9 è stata rilasciata il 26 aprile 2009.[10] Questa release riduce la quantità minima di memoria richiesta a 32Mb. Aggiunge l'implementazione di varie aree del kernel fra cui Mapping Hyperspace, controlli di sicurezza all'Object Manager, GDI, Kernel Streaming (supporto preliminare per l'audio), diversi problemi di NDIS e AFD sono stati risolti aumentando la compatibilità con driver NIC di terze parti e consolidando lo stack ti rete. È stato inoltre fatto un importante lavoro sul prompt dei comandi per renderlo più compatibile e adesso può eseguire script molto complessi, compreso lo stesso Ambiente di Build di ReactOS.

La versione 0.3.10, rilasciata il 5 luglio 2009. [11] risolve il problema dell'impossibilità di lavorare con partizioni più grandi di 8Gb, ha aggiunto la possibilità di installazione su qualsiasi delle quattro partizioni primarie, include il supporto iniziale per controller SerialATA assieme ad un supporto migliorato per ATA, supporto iniziale per tastiere e mouse USB, migliorato il supporto per schede di rete e aumentata la stabilità di rete, aggiunta un'applicazione clone di MS Paint, supporto iniziale per la compilazione con MSVC e un utilizzo più pulito delle risorse del sistema oltre alla consueta sincronizzazione della maggior parte delle librerie DLL usermode di Wine e qualche codice del sottosistema Win32 condiviso con Wine.

[modifica] Versioni Future

Le versioni presenti qui di seguito non sono state ancora rilasciate. Le descrizioni potrebbero variare ogni qual volta saranno disponibili nuove informazioni.

[modifica] Versioni 0.4.x

La versione 0.4.0 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. Le versioni del ramo 0.4 saranno le ultime contrassegnate come Alpha.

[modifica] Versioni 0.5.x

Le versioni del ramo 0.5 di ReactOS passeranno allo stadio beta. Gli sviluppatori promettono che le versioni di questo ramo di sviluppo saranno pronte per l'uso di tutti i giorni.

[modifica] Sviluppi Correnti e Futuri

ReactOS con AbiWord e ReactOS Explorer in esecuzione

Gli sviluppatori del progetto attualmente stanno lavorando al supporto USB".[12] Lo sviluppo è anche concentrato per inserire nel sistema 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. Java e il supporto per applicazioni .NET (e Mono) è ora funzionante, anche se la compatibilità con alcune applicazioni non è garantita.

Gli sviluppatori stanno soprattutto 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 si cercherà di implementare il supporto al filesystem NTFS[13] e ext2 e seguenti[14].

Il lavoro procede anche nell'implementare supporto al 3D gaming support e un completo supporto OpenGL, ci sono stati anche progressi nella scrittura delle ReactX, il progetto open source equivalente alle DirectX closed source di Microsoft.

[modifica] Architetture Supportate

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

  • x86 (funzionante)
  • Xbox (interrotto ma verrà ripreso più avanti)
  • PowerPC (in lavorazione)
  • ARM (in lavorazione)
  • AMD64 (in lavorazione)

ReactOS funziona con software di virtualizzazione come VMware, VirtualBox e QEMU (il supporto per Microsoft VirtualPC è attualmente non disponibile ma verrà ripreso in futuro). Dato che Windows NT 4.0 funzionava su architetture MIPS, Alpha AXP, e PowerPC oltre che nell'architettura i386, e che i sistemi operativi di derivazione NT come Windows XP e Windows Server 2003 sono stati portati su diverse architetture ( AMD64, IA-32, e IA-64), gli sviluppatori di ReactOS hanno mosso i primi passi per portare anche ReactOS su diverse architetture.Per esempio il supporto per una variante dell'archiettura IA-32 e uno per la piattaforma Xbox, sono stati aggiunti nella release 0.2.5, e sforzi per portare ReactOS su architetture PowerPC e Xen ci sono gia stati nel 2005. Attualmente si sta lavorando per rendere funzionante ReactOS nella piattaforma ARM con la speranza che un pocketPC con ReactOS risulti migliore grazie a un OS completamente funzionante e compatibile con applicativi Windows.

[modifica] 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. Dato che ReactOS è rilasciato come software open source questa azione ha causato una reazione negativa da parte della comunità del software libero. Non ci sono comuqnue state conseguenze a danno degli sviluppatori e l'accesso al programma di sviluppo è stato ripristinato quasi immediatamente.

Come conseguenza dall'8 marzo 2006 fino a Dicembre 2007 gli sviluppatori di ReactOS hanno iniziato un'analisi auto-imposta di tutto il codice che riguarda la compatibilità con Microsoft Windows. A Settembre del 2007 quando il controllo del codice era quasi ultimato, lo stato dell'analisi venne rimosso dalla homepage di ReactOS. Quando l'analisi venne definitivamente completata, i dettagli nello specifico non furono resi pubblici e rimasero solo come dati interni per essere sicuri della completa legalità del prodotto.

A dispetto del controllo che dimostrava che tutto il codice era stato ripulito delle piccole tracce di codice non libero e che non c'era nessuna prova che il resto del codice fosse illegale, il promotore del RosAsm, Betov, ha sostenuto che la maggior parte dei file sospetti erano stati volutamente tralasciati dalla lista dei file selezionati per il controllo. In risposta a ciò, gli sviluppatori di ReactOS hanno rilasciato una dichiarazione pubblica in cui "sono daccordo che i file, sottolineati da Betov, nel codice di ReactOS [...] appartengono a Microsoft ma dichiarano anche che "sono del parere che l'uso di questi materiali è legale, e non è un problema." La licenza per il codice, disponibile [qui][1], è l'EULA standard che viene fornito con il Windows NT Device Driver Kit, che permette all'utente di" modificare il codice sorgente del campione ( "Codice Campione") per progettare, sviluppare e testare Software di prodotto, e di riprodurre e distribuire il codice di esempio con le modifiche in oggetto,il codice sorgente e le forme ". Non è comunque chiaro se un tale accordo sarebbe applicabile ad un sistema operativo "clone".

Preoccupazioni sono state sollevate anche su ReactOS, più in generale, a causa delle diverse definizioni di clean-room reverse enginering. ReactOS potrebbe essere potenzialmente minacciato dai brevetti a causa della realizzazione di alcuni elementi (come il supporto per il lungo file name kludge che risulata essere brevettato).

Nonostante tutte le preoccupazioni e le accuse non confermate mosse verso il progetto, il codice sorgente di ReactOS è il primo posto in cui guardare (e quindi aperto per un'eventuale ispezione).


[modifica] Progetti correlati

Il progetto ReactOS utilizza porzioni di codice del progetto Wine, e lavora a stretto contatto con i suoi sviluppatori in modo da poter beneficiare dei progressi nell'implementazione delle API Win32. Solo NTDLL, USER32, KERNEL32, GDI32, e ADVAPI del progetto Wine non sono usati da ReactOS, per via delle differenze di architettura. La restante parte delle DLL di Wine viene condivise dai due progetti. Entrambi si incentrano su problemi di compatibilità, in modo che anche le poche DLL restanti possano essere usate da ReactOS.[15]

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.

Ndiswrapper è un altro progetto correlato che mira a ricreare parzialmente il kernel di Windows NT dentro il kernel Linux in modo da avviare i driver craeti per Windows in una Linux Box. NDISWrapper include le Api NTOSKRNL oltre a un semplice controller WDM.

Un progetto correlato ma che risulta distante dagli obbiettivi di ReactOS è Longene (Linux Unified Kernel), che intende divenire compatibile con i driver e le applicazioni realizzati sia per Microsoft Windows che per Linux. Si tratta di una versione modificata del kernel linux che cerca di includere le funzioni chiave dei sistemi operativi Windows e per questo utilizza codice proveniente sia da ReactOs che da Wine e NDISWrapper.

NTFS-3G. Si tratta di un driver NTFS per Linux, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku e altri sistemi operativi.

[modifica] Requisiti Minimi di Sistema

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

  • 24MB di RAM (72MB in Debug)
  • Harddisk IDE o SATA (quest'ultimo parzialmente supportato ed in via di sviluppo) min. 60MB con partizione primaria FAT16/FAT32
  • CPU Intel 80486
  • scheda video VGA (VESA BIOS v2.0 o superiore)
  • Tastiera standard (PS/2) e Mouse PS/2

Le funzionalità di rete attualmente funzionano con i seguenti tipi di schede:[16]

  • cloni NE2000 (come Realtek 8029)
  • AMD PCnet32 LANCE

Altri tipi di schede possono funzionare con i driver appropriati dato che il supporto va via via migliorando.

[modifica] Note

  1. ^ Licenza di ReactOS in ReactOS Website. URL consultato il 13-06-2009.
  2. ^ Storia di ReactOS in ReactOS Website. URL consultato il 13-06-2009.
  3. ^ (EN) News #22: ReactOS 0.3.9 released! in ReactOS Website. URL consultato il 13-06-2009.
  4. ^ News #37: Rilasciato ReactOS 0.3.3 in ReactOS Website. URL consultato il 13-06-2009.
  5. ^ News #40: Rilasciato ReactOS 0.3.4 in ReactOS Website. URL consultato il 13-06-2009.
  6. ^ News #44: Rilasciato ReactOS 0.3.5 in ReactOS Website. URL consultato il 13-06-2009.
  7. ^ News #45: Rilasciato ReactOS 0.3.6 in ReactOS Website. URL consultato il 13-06-2009.
  8. ^ News #46: Rilasciato ReactOS 0.3.7 in ReactOS Website. URL consultato il 13-06-2009.
  9. ^ News #49: Rilasciato ReactOS 0.3.8 in ReactOS Website. URL consultato il 13-06-2009.
  10. ^ News #51: Rilasciato ReactOS 0.3.9 in ReactOS Website. URL consultato il 13-06-2009.
  11. ^ News #53: Rilasciato ReactOS 0.3.10 in ReactOS Website. URL consultato il 06-07-2009.
  12. ^ (EN) USB Stack in ReactOS Wiki. URL consultato il 13-06-2009.
  13. ^ (EN) File Sytestems/NTFS in ReactOS Wiki. URL consultato il 13-06-2009.
  14. ^ (EN) File Sytestems/ext2 in ReactOS Wiki. URL consultato il 13-06-2009.
  15. ^ FAQ di ReactOS. URL consultato il 13-06-2009.
  16. ^ a b (EN) Installing ReactOS in ReactOS Wiki. URL consultato il 13-06-2009.

[modifica] Voci correlate

[modifica] Collegamenti esterni

Strumenti personali