Il progetto ReactOS continua il lungo lavoro per costruire un sistema operativo libero compatibile con applicazioni e driver progettati per Microsoft Windows. Nel codice di sviluppo è stato appena integrato il supporto iniziale ai Job Objects, una funzionalità del kernel Windows particolarmente importante per l'esecuzione del software moderno.
ReactOS è uno dei progetti più particolari del panorama del Software Libero. Non utilizza il kernel Linux e non cerca semplicemente di eseguire programmi Windows sopra un altro sistema operativo: l'obiettivo è costruire un vero sistema operativo libero compatibile con l'architettura Windows NT. Il progetto dichiara esplicitamente di voler offrire supporto alle applicazioni e ai driver realizzati per la famiglia Windows NT.
Questo significa ricreare, attraverso codice libero e senza utilizzare il codice proprietario di Microsoft, un'enorme quantità di API, servizi e comportamenti che le applicazioni Windows si aspettano di trovare nel sistema operativo.
Il nuovo lavoro sui Job Objects riguarda proprio uno di questi componenti.
In Windows, un Job Object permette sostanzialmente di trattare un insieme di processi come una singola unità. Il sistema può così applicare al gruppo limiti sulle risorse, terminarne collettivamente i processi, controllarne alcune caratteristiche e imporre determinate restrizioni.
È una funzione diventata particolarmente importante con il software moderno. Applicazioni complesse possono essere composte da numerosi processi distinti che devono essere controllati e isolati. I browser Web rappresentano uno degli esempi più evidenti: separare componenti e contenuti in processi differenti è diventato uno degli strumenti utilizzati per migliorare sicurezza e stabilità.
I Job Objects hanno quindi un ruolo anche nei meccanismi di sandboxing utilizzati dalle applicazioni. La loro assenza può impedire a programmi moderni di funzionare correttamente anche quando molte altre API necessarie sono già state implementate.
Il codice attuale di ReactOS mostra ora funzioni per creare e aprire Job Objects, assegnarvi processi, interrogarne e modificarne le informazioni e terminarli. Si tratta ancora di un lavoro in evoluzione, ma costituisce un ulteriore pezzo dell'infrastruttura necessaria alla compatibilità con le generazioni più recenti di software Windows.
Ed è proprio qui che emerge la straordinaria complessità del progetto ReactOS.
Per rendere compatibile un'applicazione non basta infatti riprodurne l'interfaccia grafica o implementare qualche libreria. Un programma può dipendere da centinaia di comportamenti del sistema operativo, alcuni documentati pubblicamente e altri scoperti attraverso test e attività di reverse engineering compatibile con la legge.
ReactOS porta avanti questo lavoro da molti anni e continua a essere classificato dagli stessi sviluppatori come software Alpha. Il progetto raccomanda quindi di provarlo in una macchina virtuale o su un computer che non contenga dati importanti, perché componenti non ancora maturi possono provocare malfunzionamenti o persino perdita di dati.
È una precisazione importante perché ReactOS non deve essere presentato oggi come una semplice alternativa pronta a sostituire Windows sul computer di tutti i giorni.
Il suo interesse va oltre l'utilizzo immediato.
ReactOS cerca infatti di dimostrare che è possibile costruire un sistema operativo libero capace di dialogare con un ecosistema software nato attorno a una piattaforma proprietaria. Non obbliga quindi necessariamente l'utente a scegliere tra libertà del sistema e compatibilità con il patrimonio di programmi Windows accumulato in decenni.
Il progetto collabora inoltre storicamente con Wine e una parte significativa dei componenti user-space deriva dal lavoro svolto nell'ecosistema Wine. Ma la differenza rimane fondamentale: Wine è un livello di compatibilità eseguito sopra un altro sistema operativo, mentre ReactOS vuole essere esso stesso il sistema operativo.
L'arrivo dei Job Objects non trasforma improvvisamente ReactOS in un sostituto maturo di Windows. È piuttosto uno dei tanti piccoli passi necessari per raggiungere un obiettivo enormemente ambizioso.
Ed è proprio questo a rendere il progetto interessante per il Software Libero: non costruire soltanto programmi alternativi a quelli proprietari, ma provare a ricreare liberamente anche l'infrastruttura sulla quale un intero ecosistema di software è stato costruito.