Кіріспе

Тегін, толық емес Windows NT сияқты операциялық жүйе

ReactOS – amd64/i686 дербес компьютерлері үшін арналған тегін және ашық кодты операциялық жүйе. Ол Windows Server 2003 және Microsoft Windows-тың кейінгі нұсқалары үшін жасалған компьютерлік бағдарламалармен және құрылғы драйверлерімен екі жақты үйлесімді болуға бағытталған. ReactOS Windows-ты ауыстыруға болатын ашық кодты балама ретінде танымал.

ReactOS негізінен C тілінде жазылған, ал кейбір элементтері, мысалы, ReactOS File Explorer, C++ тілінде жазылған. Жоба Windows API функционалдығын ішінара жүзеге асырады және AMD64 процессор архитектурасына көшірілген. Жаңа жоба құрылған кезде ReactOS деген жаңа атау таңдалды. Жоба 1998 жылдың ақпан айында жаңа NT ядросы мен негізгі драйверлерді құру арқылы басталды. ReactOS атауы IRC чатында пайда болды. «OS» термині операциялық жүйені білдірсе, «react» термині топтың Microsoft-тың монополиялық жағдайына наразылығын және оған реакциясын білдірді. 2002 жылы ReactOS қоры Мәскеуде Максим Осовский мен Алексей Брагин атқарушы директорлар ретінде, ал Владимир Брагин, Савелий Третьяков және Алексей Иванов директорлар кеңесіне енді. 2015 жылы қор таратылды.

Ішкі аудит

Авторлық құқық бұзушылықтан сақтану үшін ReactOS Windows жүйесінен толыққанды ерекшеленуі және одан туындамауы тиіс болды, бұл мақсатқа жету үшін өте ұқыпты жұмыс қажет еді. 2006 жылдың 17 қаңтарында әзірлеуші Хартмут Бирр ReactOS әзірлеушілерінің пошта тізімінде (ros dev) ReactOS-та Microsoft Windows-ты кері инженериялау арқылы алынған код бар екенін мәлімдеді. Бирр даулаған код syscall-дағы BadStack функциясын және басқа да белгіленбеген элементтерді қамтыды. Бұл функцияны Windows XP-ден алынған дисасемблирленген файлдармен салыстырғанда, Бирр BadStack функциясы Windows XP-ден көшіріліп жабыстырылған деп мәлімдеді, себебі олар толық сәйкес келді. Кодтың авторы Алекс Ионеску Windows XP-нің екілік файлы шынымен дисасемблирленгенін және зерттелгенін, бірақ код жай ғана көшіріліп жабыстырылмағанын, қайта іске асырылғанын айтты; функциялардың бірдей болу себебі, Ионескудың пікірінше, функцияны іске асырудың бір ғана мүмкін жолы болды. 2006 жылдың 27 қаңтарында айыптаулар талқыланғаннан кейін ReactOS код қоймасына қол жеткізуге жауапты әзірлеушілер оны уақытша тоқтатты. NewsForge тілшілеріне Microsoft компаниясы осы оқиғаға қатысты ешқандай түсіндірме бермеді. ReactOS – ашық бастапқы кодты бағдарламалық жасақтаманы әзірлеу жобасы болғандықтан, бұл мәлімдеме ашық бағдарламалық жасақтама қауымдастығынан теріс пікірлерге ие болды. Атап айтқанда, Wine бірнеше белсенді емес әзірлеушілердің үлестеуін тоқтатты және 2006 жылға дейін екі жоба арасындағы ресми деңгейдегі ынтымақтастық қиын болды. ReactOS өз веб-сайтындағы мәлімдемесінде келіспеушіліктің себебін таза бөлмеде кері инженерияның заңдық анықтамаларындағы айырмашылықтармен түсіндірді. Әлеуетті сот процесінен сақтану үшін компаниялар кейде қайта іске асыру үшін дисасемблирленген кодты пайдаланғанда, бастапқы кодты дисасемблирлеген және зерттеген адамнан басқа біреудің жазуын талап ететін саясатты қабылдайды. ReactOS АҚШ заңнамасын бұзу мүмкіндігін болдырмау үшін таза бөлмеде кері инженерияға қатысты Зияткерлік меншік саясатының талаптарын нақтылады. Ішкі кодты тексеру жүргізіліп, тек таза бөлмеде кері инженерия қолданылғанын қамтамасыз ету үшін барлық әзірлеушілер жобаның кері инженерия саясатын сақтауға міндеттенетін келісімге қол қойды. Сондай-ақ, 2004 жылы жарияланған Windows коды ReactOS үшін құқықтық тәуекел ретінде қарастырылмады, өйткені кең таралғандықтан коммерциялық құпия сотта қорғала алмайды деп есептелді. Microsoft компаниясының ядро инженері Аксель Риечин ReactOS ядросында таза бөлмеде қайта іске асыру нәтижесінде пайда болуы екіталай кейбір нақты биттерді танығанын мәлімдеді. Оның сөзіне қарағанда, жоба Windows Research Kernel-ден бастапқы кодты алған, ол университеттерге лицензияланған және бірнеше рет жарияланған. Ішкі деректер құрылымдары мен айнымалы атаулары ReactOS-та да, зерттеу ядросында да бірдей.

Google Summer of Code-ға қатысу

2006 жылдан бастап ReactOS жобасы бірнеше Google Summers of Code бағдарламасына қатысты. Мысалы, 2011 жылғы GSoC бағдарламасында ReactOS lwIP-ті желілік стекке интеграциялаған студенттік жобаны басшылыққа алды. 2011 жылы сол кездегі президент Дмитрий Медведевке Ставрополь облысының Верхнерусское ауылындағы орта мектепке жасаған сапары барысында демонстрация көрсетілді, оған даму тобының бір мүшесі қатысты. 2012 жылдың 31 шілдесінде Владимир Путинге де Ресей Президенті ретінде Селигер жастар форумын аралаған кезінде демонстрация ұсынылды, оған даму тобының мүшесі Марат Каратов қатысты. 2015 жылдың 1 сәуірінде Брагин Ресейлік байланыс министрлігінде Ресейдің коммерциялық бағдарламалық қамтамастың импортына тәуелділігін азайту мәселесі бойынша өткен сарапшылар кеңесіне қатысты. Кеңес протоколында «PC, ноутбуктер және басқа да мобильді құрылғылар үшін ReactOS негізінде ашық кодты операциялық жүйе құру», сондай-ақ «ReactOS негізінде серверлер үшін ашық кодты операциялық жүйе құру» жобалары аталып, үш ұсыныстың арасында екінші орынға қойылды.

Қаржыландыру науқандары

2012 жылдың 1 мамырында қосымша даму жобаларын қаржыландыру үшін 30 000 евролық қаржы жинау науқаны басталды. Жыл соңында қаржы жинау мақсатының шамамен 50%-ы орындалды және мерзімі шектелмеген түрде қаржы жинау науқанын жалғастыру туралы шешім қабылданды. Ақша ReactOS Deutschland e. V ұйымына жіберілді. Германия заңнамасы бойынша осындай тіркелген ерікті ұйымның (Eingetragener Verein) дамушыларына тікелей төлем жасау қиындық тудырғандықтан, стипендиялар сияқты жанама жолдар қарастырылды.

Thorium Core Cloud Desktop жобасы

ReactOS 2013 жылдың маусым айында SourceForge сайтында «Ай жобасы» ретінде марапатталғанда, жобаның үйлестірушісі Алексей Брагинмен жасалған сұхбатта Kickstarter платформасында жаппай қаржы жинау науқаны жарияланды. 2013 жылдың 23 желтоқсанында Kickstarter науқаны ресми түрде қолға алынды, мақсаты – 120 000 АҚШ долларын жинау. Thorium Core Cloud Desktop деп аталған бұлттық есептеу қызметі ReactOS-ті негізгі жүйе ретінде пайдаланатын болды және мобильді құрылғылардан (смартфондар, планшеттер), жұмыс станцияларынан немесе кез келген басқа қосылған құрылғылардан Windows үйлесімді бағдарламаларды қолдануға мүмкіндік беретін еді. 2014 жылдың 21 ақпанында қаржы жинау тоқтатылды, мақсатты сомаға жетпеді, 120 000 доллардың орнына 48 965 доллар жиналды, нәтижесінде қаражат аударылмады.

ReactOS Қоғамдық нұсқасы

2014 жылдың сәуірінде ReactOS жобасы 0.4 нұсқасына негізделген ReactOS Community Edition нұсқасын іске қосу үшін Indiegogo науқанын жариялады. Икемді қаржыландыру науқанының мақсаты 50 000 доллар болды, сондай-ақ одан асып түсетін қосымша мақсаттар да қойылған. ReactOS Community Edition-ның дамуы қауымдастыққа бағытталған болады, ReactOS пайдаланушылары дауыс беру және қаржыландыру арқылы жобаның қандай бағдарламалық және аппараттық драйверлерді қолдауға тырысатынын анықтайды. 2014 жылдың 1 маусымында Indiegogo-дағы икемді жамағатпен қаржыландыру науқаны аяқталды, нәтижесінде қауымдастық нұсқасын дамытуға 25 141 доллар жиналды, ал аппараттық және бағдарламалық қамтамасыз етуді қолдау бойынша дауыс беру процесі одан кейін көп ұзамай басталды.

ReactOS Hackfest (ReactOS) -тің хакерлік мерекесі

ReactOS жобасы 2015 жылдың 7-12 тамызы аралығында Германияның Аахен қаласында хакатон ұйымдастырды. Хакатонның нәтижесінде ReactOS-қа көптеген мүмкіндіктер қосылды. Екінші хакатон 2017 жылдың 14-18 тамызы аралығында Германияның Кёльн қаласында ReactOS жобасымен ұйымдастырылды. Үшінші және төртінші хакатонтар ReactOS жобасымен 2018 жылдың 16-21 тамызында және 2019 жылдың 15-20 тамызында Берлин қаласында ұйымдастырылды.

Шығару тарихы

Жүйелік нұсқасы Шығарылу күні Шығарылу туралы ақпарат 2006 08 27 Желілік қолдауды ресми түрде қамтамасыз ететін алғашқы нұсқа 2007 03 10 Бағдарлама менеджері қосылды, ядроны қайта жазу басталды, тармақ құрылды, бірақ ешқашан шығарылмады, Kernel және win32k жақсартулары 2008 01 22 Тіркелімді қолдауды қайта жазу, қашықтан жұмыс үстелі клиенті және Plug and Play 2008 06 30 Тек қателерді түзету 2008 08 06 RTL қолдау 2008 11 04 Жақсартылған x86 64; MSVC, жаңа стектер 2009 02 04 Тірі CD-де PSEH және көп бөлімді HDD қолдау 2009 04 26 24 МБ ең төменгі RAM, жылдам гиперкеңістік карталау, бастапқы дыбыс қолдау 2009 07 05 Бастапқы SATA қолдау, USB пернетақта/тышқан қолдау, Paint клоны, бастапқы MSVC 2009 12 16 Kdcom қайта жазу; Қытай/Корея шрифттері; үйлесімділік жаңартулары; дыбыс жүйесінің жақсартулары 2010 10 20 Trap handler қайта жазу; таймер және хабарламаларды өңдеуді қайта жазу; NMI қолдау; SxS қолдау; ішінара EMS қолдау 2011 03 22 Heap менеджерді қайта жазу, жақсартылған SATA қолдау, графикалық мәселелер түзетілді 2012 02 07 ACPI әдепкі бойынша қосылды, WiFi қолдау (шифрланбаған және WEP), тақырыптық қолдау, жаңа TCP/IP драйвері (LwIP), MSVC үйлесімділігі, Scatter/Gather DMA операциялары қолдау, shell32 қайта жазу 2013 05 30 USB тышқан, пернетақта және сақтау құрылғылары үшін қолдау; сессия басқаруды қайта жазу; AHCI қолдауы, жаңартылған UniATA драйверімен; баламалы жад басқару модулі барлық жад басқару жауапкершілігін өз мойнына алды; WinDbg арқылы ReactOS компоненттерін түзетуге алдын ала қолдау; AutoHotkey қолданбасының функционалдық тест жинағының нәтижелеріне негізделген жақсартулар; бірнеше жиналған драйверлерде Driver Verifier іске қосылған кездегі қателерді түзету 2014 02 06 CSRSS қайта жазу; тақырыптық қолдау жақсартылды; RTL8139 желілік карта драйвері, ReactOS-қа QEMU-дың жаңа нұсқаларын қосымша орнатусыз қолдауды қамтамасыз етеді 2014 11 05 NTVDM қосылды; шрифттерді жақсарту; қателерді түзету 2016 02 16 USB қолдау жақсартылды, жаңа файлдарды қарау қабығы және тақырыптар, жақсартылған VirtualBox және Virtual PC қолдауы, ext2 оқу/жазу қолдауы, NTFS оқу қолдауы және жақсартылған желілік қолдау 2016 05 17 Жақсартылған Activation Context, Btrfs қолдау, жақсартылған Shell, USB қателер түзетілді, Virtual Machine Shared Folder-лерге қолдау 2016 08 16 Жақсартылған Btrfs және кеңейтілген файл жүйесі қолдауы, ReiserFS және UFS/FFS, NET Framework 2.0 және 4.0 қолдауы енгізілді, Shell түзетулері мен жақсартулары 2016 11 16 Жаңа Winsock кітапханасы, бастапқы бөлімдер қолдауы, әдеттегі қателерді түзету 2017 02 16 Бастапқы басып шығару стегі қолдауы, ұсақ шрифт түзетулері, әдеттегі жақсартулар мен қателерді түзету 2017 05 18 Шрифттер мен шрифт өлшемдерін жақсартылған көрсету, ядро мен драйверлердегі маңызды түзетулер, Microsoft Office 2010 жұмыс істейтіндей сынақтан өткізілді 2017 09 01 Қос жүктеу мәселелеріне бірнеше түзетулер, тақырыптық қолдау жақсартылды, NFS драйвері қосылды, ядро мен файл жүйесінде бірнеше түзетулер 2017 12 06 Қолданбалар менеджері RAPPS-тің жақсартылған нұсқасы, зерттеушіде "Жылдам іске қосу" құралдар панелінің енгізілуі; файлдық жүйе драйверлеріндегі әртүрлі қателерді түзету, RDBSS/RXCE және NFS қолдауында жақсартулар 2018 04 14 Еске салғыш хабарламалар, хабарламалар тақтасы, қабық автотолықтыру, жаңа NTFS драйвері, құлау туралы есеп беру және NT6+ бағдарламалық қамтамасыз етуіне тәжірибелік қолдау 2018 07 23 ReactOS (тағы да) өзін-өзі хостингтейді 2018 11 06 BTRFS жүктеуін қолдайды 2019 03 04 Аккумуляторды басқару драйверлері (онының белгішесі сағаттың жанында, экраның төменгі оң жағында орналасқан), ReactOS орнатылымын жаңартуды қолдау. Жақсартылған SATA қолдауы. 2019 09 23 Ядроны жақсарту, терезелерді жылдам жылғастыру мүмкіндігі, қаріптерді жақсарту, Intel e1000 NIC драйвері, пайдаланушы режимі DLL-дері, жаңа тақырыптар 2020 04 09 Жаңа USB стегі, FreeLoader-ден FAT драйвері оңтайландырылды, жаңа бағдарламалық қамтамасыз ету енгізілді: Accessibility Utility Manager 2021 12 16 "Жіберу" мүмкіндігі және Shell жақсартулары, NEC PC 9800 жүктеу қолдауы, ICMP жақсартулары, Ядроны жақсарту, NetKVM VirtIO іске қосылуы, әртүрлі өзгерістер мен жақсартулар x64 және UEFI қолдауы, тірі CD және жүктеу CD-ді бір GUI-ге біріктіру NTFS файлдық жүйесін оқу және жазуға қолдау, Windows Driver Model-ін қолдау (видео картасы қолдауы да бар), басып шығару подсистемасы мен DirectX Core-ды жақсарту.

ReactOS негізгі құрылымы

ReactOS негізінен C тілінде жазылған, бірақ кейбір элементтері, мысалы ReactOS Explorer және дыбыс жиынтығы C++ тілінде жазылған. Жоба MinGW және Microsoft Visual Studio құралдарын пайдаланып құрастырылады және өз компоненттеріне түзетулер жіберу арқылы қолданылатын құрастыру жүйелерін дамытуға үлес қосады. DirectX қолдауы ReactX арқылы іске асырылады, ол жобаның ішкі әзірлемесі. 2D және OpenGL 3D аппараттық үдетілген рендеринг тікелей жасалады, ал Direct3D сияқты басқа графикалық функциялар уақытша шешім ретінде OpenGL-ге қайта бағытталады, көбінесе WineD3D сияқты Wine кодын пайдалана отырып. Даму прогресіне әзірлеушілер тобының мөлшері және олардың тәжірибе деңгейі әсер етеді. Windows 7-ні іске асыруға қажетті күш-жігерді бағалау үшін Microsoft 25 командаға бөлінген 1000-ге жуық әзірлеушіні жұмысқа алды, әр командада шамамен 40 әзірлеуші болды. 2011 жылы Ohloh-тағы ReactOS жазбасындағы "Өте үлкен, белсенді әзірлеушілер тобы" сілтемесі 12 ай ішінде үлес қосқан 33 әзірлеуші және жобаның басталуынан бері Apache Subversion арқылы кодты қосқан 104 қазіргі және бұрынғы пайдаланушыны тізімдейді. Миландағы 2009 жылғы Hackmeeting-те сөз сөйлеген ReactOS әзірлеушісі Мишель С., көптеген әзірлеушілер Windows архитектурасын ReactOS-те жұмыс істей бастағанда ғана білетінін және бұрыннан білімі болмағанын атап өтті. ARM архитектурасына порттау әрекеті бір кезде "іске қосылған" еді, бірақ ол көптеген мүмкіндіктерді бермеді және PowerPC-ге порттаумен бірге тоқтатылды, ол енді белсенді түрде қолдау көрсетілмейді.

Ынтымақтастық және қайта пайдалану

ReactOS ашық бастапқы кодты бағдарламалық жасақтама ретінде Windows-қа үйлесімді ядроны құруды мақсат етеді, бірақ толыққанды операциялық жүйе құру үшін қажетті көптеген мүмкіндіктер ашық бастапқы кодты кеңінен қолданушы экожүйеде-ақ бар. Сондықтан, мүмкіндігі болғанда және қажет болғанда, ReactOS бұрыннан бар ашық бастапқы кодты жобаларды пайдаланады және олармен ынтымақтаса жұмыс істейді. Керісінше, Wine және Longene сияқты жобалар да ашық бастапқы кодты ReactOS код базасын пайдаланады.

Жабдық драйвері стегі

Жабдықтық драйверлер жағынан, мысалы, UniATA жобасы ReactOS үшін Serial ATA драйверлерін ұсынады. Жоба сонымен қатар FAT орнатылатын файлдық жүйесін жаңартуда FullFAT кітапханасын қолданумен тәжірибе жасады. ReactOS, Haiku жүйесінен USB стекін анықтама ретінде де, өз USB қолдауының негізі ретінде де пайдаланады. Mesa 3D OpenGL рендерингін қамтамасыз етеді. Кейін lwIP ReactOS желілік стегіне енгізілді.

Шарап саласындағы ынтымақтастық

ReactOS және Wine жобалары бинарлық Windows бағдарламалық жасақтамасын түпнұсқалы түрде іске қосуды мақсат етеді, сондықтан көптеген тәуелділіктер мен даму процесін бөлісе алады. Wine-ның NTDLL, USER32, KERNEL32, GDI32 және ADVAPI32 компоненттерін архитектуралық ерекшеліктерге байланысты ReactOS тікелей пайдалана алмайды, бірақ олардың код үзінділері мен басқа да бөліктері екі жоба арасында ортақ қолданылуы мүмкін. Ядроны ReactOS жеке әзірлейді, себебі Wine бұл жерде қолданыстағы Unix сияқты ядроларға сүйенеді. Жеке түрде, Arwinss эксперименталды тармағы Win32 API-нің басқаша іске асырылуы арқылы USER32 және GDI32 қолдауын жақсартудың тағы бір жолы ретінде құрылды. ReactOS-тің бастапқы Win32 кіші жүйесі Windows-тағы осыған ұқсас жүйеге жақын модельде болғанмен, Arwinss осы кіші жүйенің архитектурасын Wine-тағы тиісті іске асырумен біріктіреді. Осы мақсатта Arwinss Wine-ның GDI32 және USER32 кітапханаларын аздаған өзгерістермен қолданады, осылайша Wine-ның қазіргі бағдарламалық үйлесімділігін толыққанды пайдаланады. Arwinss сондай-ақ пайдаланушыға жергілікті дисплейдің орнына қашықтан X серверін пайдалануға мүмкіндік береді.

Басқа

Tango Desktop Project бастамасы үстел ортасындағы қолданбалар үшін ашық бастапқы кодты дизайн ережелері мен ресурстарды (мысалы, иконкалар) ұсынады. FreeType – мәтінді растрлік кескіндерге шығаруға арналған және басқа да қаріптерге қатысты операцияларды қолдайтын ашық бастапқы кодты бағдарламалық жасақтаманы әзірлеу кітапханасы. KernelEx жобасы – Windows API кеңейтуі және үйлесімділік қабаты жобасы, ол кейбір Windows API-ларының ашық бастапқы кодтағы нұсқаларын ұсынады. Сондай-ақ MinGW, SYSLINUX, adns, ICU, GraphApp, Ext2, GNU FreeFont, DejaVu қаріптері және Liberation қаріптері де үлесін қосады.

Қабылдау

Әр түрлі адамдар ReactOS-ті және Windows-ты алмастыруға болатын ашық бастапқы кодтың маңыздылығын мойындады. 2006 жылы Free Software Magazine журналындағы мақаласында Дэвид Шугар ReactOS-тің Windows-тың ескі нұсқаларына тәуелді, бірақ API-лары қолдаусыз қалған қосымшаларды пайдалануға мүмкіндік беретінін атап өтті. Ол сондай-ақ, оның ашық бағдарламалық жасақтаманың орнатылған базасын кеңейту әлеуеті бар екенін және портативті қосымшаларды жазу кезінде құжатталмаған Windows API-лерін білуге ниеттенген әзірлеушілер үшін пайдалы ресурс болатынын мойындады. PC Magazine журналының авторы Джон С. Дворак 2008 жылы Windows NT архитектурасы көбінесе өзгермегенін, оны клондауға өте қолайлы ететінін айтты және ReactOS-тің "Microsoft-тың үстемдігіне Linux-тан да үлкен қауіп" болуы мүмкін деп сенді. 2008 жылы ZDNet технологиялық журналисі Дана Бланкенхорн Дворактың мақаласына жауап ретінде корпоративтік демеушілер мен серіктестердің болмауы жобаны Microsoft үшін қауіпсіз еткенін атап өтті. OSNews-тің Том Холверда 2009 жылы осы пікірді қолдап, ReactOS-ті тек шағын әзірлеушілер тобымен күтілетін хобби операциялық жүйелерінің қатарына жатқызды, оларға негізгі операциялық жүйелердің қаржылық қолдауы мен RISC OS сияқты бұрынғы жүйелердің мұрасы жетіспейді. 2015 жылдың қазан айында Network World журналындағы ReactOS v0.3.17 шолуында "Бұл Windows 2000-ді іске қосу сияқты" делінді және бастапқы Windows-та жоқ қолданба пакеттерінің басқарушысы мақталып айтылды. DistroWatch Weekly басылымынан Джесси Смит ReactOS v0.4.9 нұсқасын қарап шығып, ReactOS-тің "соңғы кезде ұқсас проблемаға тап болғанын: аппараттық қолдау шектеулі" және ол әлі де тұрақты операциялық жүйе емес екенін атап өтті.

Марапаттар

ReactOS жобасы 2011 жылы Seliger Жастар форумында "Ең үздік презентация" сыйлығын жеңіп алды, сыйлықтың көлемі 100 000 ресейлік рубльді (2700 доллар) құрады. Бұл шараға дамыту командасының мүшесі Александр Речицкий қатысты. ReactOS 2012 жылдың 27 ақпаны, 2013 жылдың 25 сәуірі және тағы бірнеше апта бойы SourceForge сайтында ерекше жоба ретінде ұсынылды. Сондай-ақ, ол 2013 жылдың маусымы мен 2019 жылдың ақпанында SourceForge-да "Ай жобасы" атанды.