ReactOS

sistema operativo libero compatibile con Windows NT

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

React OS
sistema operativo
[[File:Logo|frameless|center|200x200px|Logo]][[File:Screenshot|frameless|center|260x300px]]Il desktop di ReactOS v0.3.9
Sviluppatore{{{sviluppatore}}}
FamigliaWindows NT
Release corrente0.4.15 (21 marzo 2025)
Tipo di kernelKernel Ibrido
Piattaforme supportateIA-32
LicenzaSoftware libero
Stadio di sviluppoAlpha
Sito webreactos.org

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]

Etimologia

Il nome ReactOS è stato coniato dal fondatore del progetto Jason Filby, uno sviluppatore di Oracle di Durban, Sud Africa. Mentre il termine "OS" stava per "Sistema Operativo", il termine "React" si riferiva alla disapprovazione di massa verso Microsoft e la sua posizione monopolistica e alla necessità di una "Reazione".

Sviluppo

Sviluppi Iniziali (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]

Cronologia delle versioni

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

Colore Significato Colore Significato
Rosso Release vecchia; non più supportata Giallo Release Vecchia; ancora supportata
Verde Versione corrente Blu Release futura
Versioni di ReactOS
Versione di Sistema Data di rilascio Informazioni sulla Versione
0.2.0 2004-01-25 Prima versione con GUI funzionante
0.2.2
0.2.5
2004-04-27
2005-01-02
Solo Bug Fix
0.2.8 2005-10-29 Rileva VMWare, Riscrittura di CSRSS
0.3.0 2006-08-27 Prima versione che supporta ufficialmente lo stack di rete
0.3.1 2007-03-10 Incluso un basilare Download manager, iniziale riscrittura del Kernel
0.3.2 saltata Branch creato ma versione mai resa pubblica
0.3.3 2007-09-12 Miglioramenti al Kernel e al sottosistema win32k
0.3.4 2008-01-22 Riscrittura del Registro, Remote Desktop Client e Plug 'N' Play
0.3.5 2008-06-30 Solo Bug Fix
0.3.6 2008-08-06 Supporto RTL
0.3.7 2008-11-04 Migliorie per il supporto x86_64, MSVC, Nuovi Stack
0.3.8 2009-02-04 Intro a PSEH e supporto agli HDD con più partizioni nel LiveCD
0.3.9 2009-04-26 Consumo RAM ridotto a 32MB, Faster Hyperspace Mapping, Supporto iniziale per il Sonoro
0.3.10 2009-07-05 Supporto iniziale per SATA, Supporto per Mouse/Tastiera USB, Clone di Microsoft Paint, Supporto MSVC
0.3.11 2009-12-16 Riscrittura di kdcom, font Cinese e Coreano, Compatibilità con FireFox 3.5, Opera, OpenOffice, VLC 1.1 e Skype
0.3.12 2010-10-20 Gestione della memoria migliorata, versione a 64 bit e altre migliorie
0.3.13 2011-03-22 miglioramenti nelle aree: Gestione della memoria, supporto audio/video, stabilità complessiva. Introdotto un nuovo Heap Manager.
0.3.14 2012-02-07 Minori artefatti grafici, nuovo stack TCP/IP, supporto al wireless, introduzione stack USB (tastiere e mouse funzionano), SHELL32 riscritta in C++, compatibilità al 100% con MSVC.
0.4.0 2013/4 Nuovo Explorer, Migliorie alla UI, altro
 
ReactOS 0.3.10 in italiano

Sviluppi Correnti e Futuri

 
ReactOS con AbiWord e ReactOS Explorer in esecuzione

Gli sviluppatori del progetto attualmente stanno lavorando al supporto USB[3], che nella versione 0.3.14 consente il funzionamento di tastiere e mouse, ancorché sotto forma di "pezza software": il supporto completo allo stack USB verrà completato in una futuro rilascio, probabilmente la versione 0.3.15. Il lavoro attuale è anche rivolto ad 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) sono ora funzionanti, 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[4] e ext2 e seguenti[5].

Il lavoro procede anche nell'implementare il supporto ai videogiochi 3D insieme ad un completo supporto OpenGL; in futuro le applicazioni multimediali e di intrattenimento potranno contare sulle librerie ReactX, frutto di un progetto open source equivalente alle DirectX di Microsoft.

Lo sviluppo attualmente procede in maniera limitata per via della mancanza di sviluppatori. Anche se sono 34 quelli indicati come attivi, questo numero impallidisce in confronto al team di circa 1000 sviluppatori che hanno lavorato su Windows 7, organizzati in 25 team differenti, e ogni team con a disposizione una media di 40 sviluppatori.

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

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 già 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.

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 comunque state conseguenze a danno degli sviluppatori e l'accesso al programma di sviluppo è stato ripristinato quasi immediatamente.

Il codice che Birr ha contestato coinvolgeva la funzione BadStack presente in syscall.S, e altre voci non specificate. Confrontando questa funzione con il codice binario ottenuto dal reverse di Windows XP, Birr ha sostenuto che la funzione BadStack era semplicemente un mero copia-incolla, dato che erano identici. Alex Ionescu, l'autore del codice, ha affermato che mentre il binario di Windows XP è stato effettivamente studiato, il codice non era copiato, ma reimplementato; il motivo per cui le funzioni sono identiche, ha sostenuto Ionescu, è stato perché c'era solo un modo per implementare la funzione. Un fatto analago può essere ricondotto alla causa intentata da Sony Computer Entertainment contro Connectix nel reverse engineering fatto nel corso dello sviluppo di Virtual Game Station, dove Connectix ebbe successo nel ricorso contro la sentenza iniziale, dicendo che il reverse e l'osservazione diretta del codice proprietario era resa necessaria perché non c'era altro modo per determinare il suo comportamento, e quindi considerato come "uso legittimo".

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 fosse 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 era stata volutamente tralasciata dalla lista dei file selezionati per il controllo. In risposta a ciò, gli sviluppatori di ReactOS hanno rilasciato una dichiarazione pubblica in cui "sono d'accordo 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 engineering. ReactOS potrebbe essere potenzialmente minacciato dai brevetti a causa della realizzazione di alcuni elementi (come il supporto per il lungo file name kludge che risulta 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).

Impatto

Diverse persone hanno riconosciuto in ReactOS la possibilità di essere una vera alternativa open-source a Windows.

Nella sua rubrica di Free Software Magazine, David Sugar ha notato che ReactOS potrebbe consentire l'uso di applicazioni di versioni vecchie di Windows, le cui API sono state eliminate, come pure la sua capacità di ampliare la base totale installata di software libero nelle case. Ha anche osservato come ReactOS costituisca una risorsa per gli sviluppatori che desiderano conoscere le API di Windows, le quali vengono documentate nel corso della scrittura di applicazioni portatili. Viktor Alksnis ha anche incontrato l'attuale coordinatore del progetto Aleksey Bragin, che ha mostrato una presentazione e dimostrazione del progetto, mostrando ReactOS in esecuzione con Total Commander e Mozilla Firefox.

John C. Dvorak di PC Magazine Columnist ha osservato come l'architettura di Windows NT sia rimasta sostanzialmente la stessa che abbiamo oggi, il che rende il kernel un candidato ideale per la clonazione, e ritiene che ReactOS potrebbe essere "una minaccia più grande di Linux al dominio di Microsoft". Infatti, Aleksey Bragin ha dichiarato, in un commento al settimanale tedesco Der Spiegel, che ReactOS è rivolto agli utenti Windows che vogliono rinunciare all'uso di software proprietario commerciale senza dover passare a Linux.

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 vengono condivise dai due progetti. Entrambi si incentrano su problemi di compatibilità, in modo che anche le poche DLL restanti possano essere usate da ReactOS.[6]

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 creati 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 obiettivi di ReactOS è Longene (Linux Unified Kernel), che intende divenire compatibile con i driver e le applicazioni realizzati sia per Microsoft Windows sia 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.

Requisiti Minimi di Sistema

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

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

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

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

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) USB Stack, in ReactOS Wiki. URL consultato il 13-06-2009.
  4. ^ (EN) File Sytestems/NTFS, in ReactOS Wiki. URL consultato il 13-06-2009.
  5. ^ (EN) File Sytestems/ext2, in ReactOS Wiki. URL consultato il 13-06-2009.
  6. ^ FAQ di ReactOS, su reactos.org. URL consultato il 13-06-2009.
  7. ^ a b (EN) Installing ReactOS, in ReactOS Wiki. URL consultato il 13-06-2009.

Voci correlate

Altri progetti

Collegamenti esterni

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

Template:Storia di Windows

Template:Link VdQ