Reactos

NT Kernel

The ReactOS kernel is the only complete implementation of an NT kernel outside of the Microsoft campus, and unless you work on the Windows kernel team, it’s the only way to get involved with the development of an NT kernel and further your knowledge on this remarkable piece of engineering.

The ReactOS kernel currently targets NT 5.2 and supports both x86 and x64 platforms. It contains all of the components you’ve come to expect from an NT kernel, including complete implementations of the Object manager, IO manager, Executive, NT thread scheduler, and many more. We also package various HALs for a number of platforms and our own NT bootloader which is able to boot both the ReactOS and Windows kernels.

At this level, things need to operate in largely the same way as they do in the Windows kernel. So we’re looking for very skilled kernel developers who have a deep understanding of the NT kernel, NT mechanisms and excellent coding practices. If you fit this profile then you likely already know about us and already use our code as a source of documentation. We’d love to hear from you!

[править] Ссылки

Фан-сайты и сообщества

  • — Русское ЖЖ-сообщество (новости и дискуссии на русском языке)
  • Форум поддержки ReactOS (Объединенный Открытый Проект)

Обзоры

  • Interview with Steven Edwards of ReactOS and WINE (WineHQ)
  • Интервью с Алексеем Брагиным (координатором проекта ReactOS)
  • Доклад Алексея Брагина на конференции FOSDEM 2007 (англ. язык)
  • ReactOS — убийца Windows или пустышка? (статья)
ReactOS относится к теме «Программное обеспечение»   

Программное обеспечение позволяет Вашему компьютеру работать

Компании Apple • Microsoft • Soft Xpansion Ukraine • Softmap • TrueConf
Операционные системы Android • FreeBSD • Linux (GNU/Linux, Линуксоид) • Mac OS • iOS • Unix • uOS • Windows ( • • XP • • Vista • • • • Server 2012 • Windows Phone) • ReactOS
Браузеры Google Chrome • Internet Explorer • Firefox • Opera • Rosenfox Portable • Safari • Интернет@mail.ru • Яндекс.Браузер • Амиго • WorldWideWeb • W3m • Chromium
Расширения для браузера Anonymox • CensureBlock • Deepest Sender • Feedly • Ghostery • MR Tech Toolkit • StumbleUpon
Для сайтов Apache (.htaccess) • Denwer • JQuery • MySQL • Nginx • PHP • XAMPP • OpenVZ • МетаМорфный МультиДизайн
Файлообмен Emule • I2PSnark • RetroShare • Shareman • Torrent • Zona • µTorrent
Для работы с MediaWiki AutoWikiBrowser • Huggle (CPS) • WikiHistory
Мессенджеры Clikclap • ICQ • QIP • IRC • Jabber • Mail.Ru Агент • Miranda IM • QIP Infium • Skype • XMPP • MSN • Telegram • WhatsApp • Viber • Cryptocat
Текстовые редакторы AkelPad • ClickHelp • EtherPad • Microsoft FrontPage • Microsoft Word • Notepad • Notepad++
Графические редакторы DNG4PS () • ScreenSender • Photoshop (фотошоп)
Анонимайзеры TOR • I2P • anonymouse
SEO SeoRank • Statist-Motivator
Эпичное BolgenOS • bugoga • Антивирус Иммунитет • Вишмастер • Война редакторов • Fuck You Bill • Pidora
Разное Межсистемность • Пасхальное яйцо • Пользовательское соглашение • Раскладка Ильи Бирмана • СУФД • Экранная Камера • DjVu • Enduro/X • IT happens • IZCITY.com • Piwik • Repl.it • Украинский национальный антивирус • Платформа AggreGate • ArtMoney • biblsoft.ru • Glype • iSafer • teamtools • Voobly • X2Go

Prerequisites

For building ReactOS you will need at least 2 GB of RAM, preferably 4 GB.
If you are building on a cloud server instance having less than 2 GB of RAM, you might find that your SSH connection to the cloud node is forcibly closed during the «./configure» step. This is usually caused by running out-of-memory during the CMake configure step.

Notice: It is recommended to temporarily disable your antivirus before proceeding, because some of them detect some of ReactOS’ system files (in particular, crtdll.dll) as being infected.

Before building either the tools or ReactOS itself the output location must be created and prepared. This is an easy step and involves only one command. This command is located in the root of recent revisions of the source code and can be run either from the root directory itself or any other directory you want the build your sources in. Please make sure you are running it from within ReactOS BE:

Linux/Unix

First, open the ReactOS Build Environment by executing:

 /usr/RosBE/RosBE.sh /path/to/reactos/repo

Run:

 configure.sh
 cd output-MinGW-i386

Windows or ReactOS

First, open the ReactOS Build Environment from the start menu.

Enter the following commands in there:

 configure.cmd
 cd output-MinGW-i386

After executing, folder output-MinGW-i386 will be created in root of ReactOS tree. You will be redirected to it.
If you want to build in a different folder, cd to that folder first and then execute

 <path_to_source>\configure.cmd

configure.cmd currently supports the following options:

  • displays help
  • creates a CodeBlocks solution
  • creates an Eclipse solution
  • creates (n)make files
  • Uses clang instead of gcc
  • Creates a Visual Studio solution

You can additionally specify any number of cmake command line options, like «-DSYMBOL=VALUE».

Building ReactOS on Windows or ReactOS*

From the build folder (e.g. reactos\output-MinGW-i386) enter the following command:

 ninja COMMANDS

Replace «COMMANDS» with the desired build commands, such as or , listed below:

Building ReactOS on Unix/Linux

 ninja COMMANDS

Combining the above steps together:
Replace «COMMANDS» with the desired build commands, such as or , listed below:

ReactOS 0.4.12: 华为, 你认为这个怎么样?

Нихао, Хабражители!
Чувствую, что в этот раз вы реально заскучали по весточкам от нашего проекта! Целых семь месяцев мы работали, не покладая клавиатур, чтобы вы могли скачать и протестировать очередную версию нашей операционной системы. В ней было исправлено 226 багов, сделано 1140 изменений в исходном коде и специально для вашего удовольствия добавлены новые нескучные темы оформленияСкачать образы системы | Пресс–релиз | Список изменений | TL;DR | Тесты и список регрессий
Несмотря на заявленный оперативный график формирования релизов раз в 3 месяца, окончательная подготовка выпуска 0.4.12, которая по традиции велась в отдельной ветке, заняла на этот раз немногим больше полугода. Причиной столь длительного процесса подготовки было желание нашего перфекциониста и релиз–инженера по совместительству, Иоахима Хензе, исправить как можно больше регрессий, накопившихся за последние несколько лет. В результате Иоахим добился устранения не менее 33 регрессий, что можно назвать впечатляющим результатом.

Package Management

As Linux and MS Windows have developed a method of updating over some time now — are there any shortfalls in currently adopted methods? We should aim to devise an update mechanism that takes the best aspects of Windows Update and Linux package management (such as rpm). The package management utility should have a duty to keep track of orphaned packages/files/libraries. —Rebroad 17:59, 31 Mar 2005 (CEST)

Yes, I would like to be able to apply non-kernel level OS updates without reboot like DPkg/APT and RPM/whatever package management system. Erkinalp (talk) 18:37, 1 February 2014 (UTC)

Possible Method by Packages :

Limitations

The ReactOS itself, setup utility, and boot loader have a number of limitations. The most prominent are:

  • ReactOS is not able to boot from USB devices yet. Except method.
  • the setup utility does not prevent users from performing dangerous and potentially destructive operations.
  • UEFI system firmware is not supported by ReactOS yet, you have to use legacy BIOS mode.
  • some SATA controllers may not work with ReactOS.
  • the boot partition is highly recommended to be the first partition on the first (or even better — single) disk in the system.
  • the setup utility can check the integrity of ONLY FAT16 and FAT32 file systems.
  • HD Audio or use of multiple audio cards at the same time are not yet supported, ReactOS versions and builds prior to 0.4.12 will not boot after setup with this configuration.

Tester

No operating system is usable if it is found to be unstable and prone to crashes. As ReactOS development work involves studying the behavior of an operating system that is not completely documented, testing is of even greater importance in order to fulfill the objective of binary compatibility with Windows.

You can assist the ReactOS development effort by installing regular nightly (master) builds available here and providing feedback on issues/problems you encountered during and after installing the OS via our bug tracker.
More information regarding debugging is available here and is recommended reading for those who wish to submit a report to our bug tracker.
For this, you need to have basic knowledge in collecting information from a crash like backtraces and crash dumps. Knowledge of using a basic debugger is a plus.

We have several Wiki pages for setting up a debugging environment and building using different compilers too:

  • Setting up a Debugging environment
  • How to create a JIRA Issue

Drivers

NT driver developers will find that developing drivers for ReactOS is no different than developing for Windows, and the majority of interfaces and services provided by the NT kernel and supporting libraries are implemented in ReactOS. The obvious difference is that we don’t work on third party drivers, we work on the drivers that are provided as part of the operating system. This makes working on ReactOS a really interesting prospect for would be driver developers because it’s a chance to work on the modules that make up the operating system, enabling you to acquire a much deeper knowledge of whatever area interests you.

The modules and frameworks that you normally rely upon to create your drivers, modules such as the storage stack, file system drivers, bus, class and miniport drivers, filter manager, etc, these are the areas that you’d be working on.

We’re looking for both seasoned driver developers and talented C developers who want to get started in NT driver development. If you fall into these categories, or anywhere in-between, then you’d be a great fit in our kernel development team.

Kernel Developer

For the ReactOS Kernel and drivers, we are looking for people proficient in C, and it is a big plus if you are proficient in C++ too. C++ proficiency does not equate C proficiency, so do not assume you have the latter if you have the former. Also keep in mind, again, that these are the minimum requirements. On top of these you need to be a good problem solver, believe in the mission of ReactOS, and most importantly, be able to demonstrate that you can work with the ReactOS codebase via a few pull requests.

If you qualify for this position, you’ll be joining the very small and exclusive ranks of people who know how to do NT systems development.
And believe us, those ranks are very, very small so you will be gaining an immense amount of knowledge working with such people.
It’s a great experience to interact with people who have been working in this field for over the years.

Отчет по проекту GSoC 2017: ReactOS Apps Manager

Привет Хабр! Меня зовут Александр Шапошников, я студент Google Summer of Code. Этим летом я работал над проектом «ReactOS App Manager».

ReactOS уже второй год подряд получил слоты для студентов GSoC. Я следил за проектом достаточно давно и подал свою заявку, как только увидел его в списке организаций. К слову, этот проект был чуть ли не единственным, который не требовал пулл реквест, так что я смог сфокусироваться на самой заявке. Мне повезло — я стал одним из четырех студентов GSoC в ReactOS! Это был мой первый опыт в программе, и он был весьма интересным.

Менеджер приложений ReactOS (ReactOS App Manager, RAPPS) это приложение ReactOS для загрузки программ, что были протестированы командой ReactOS и сообществом. Оно так же может использоваться для изменения или деинсталяции любых установленных в системе программ. Цель этого проекта улучшение RAPPS и добавление новых полезных функций. Это — финальный отчет по проекту.

Аудит кода

17 января 2006 года в списке рассылки разработчиков ReactOS (ros-dev) Хартмут Бирр заявил, что он покидает проект, поскольку, по его мнению, код ReactOS содержит элементы, полученные путём дизассемблирования Microsoft Windows. В результате разработчики решили временно отключить доступ всем не-разработчикам к коду ReactOS. Поскольку ReactOS является свободным ПО, эти действия вызвали негативный отклик в сообществе свободного ПО.

Доступ к средствам разработки был вскоре восстановлен. Хотя обвинения не были доказаны, 8 марта 2006 года разработчики ReactOS начали собственный аудит всего кода, отвечающего за совместимость с Windows. Чтобы убедиться, что в ReactOS нет частей, написанных кем-то, кто мог видеть утёкший из Microsoft код или проводил обратную разработку напрямую, ведущими разработчиками ReactOS было отдано распоряжение о полной проверке всего исходного кода.

Также было решено проверять, какие участки кода могли быть результатом непосредственной обратной разработки, и заставить всех разработчиков подписать соглашение о том, что они будут использовать результаты обратной разработки лишь косвенно. Ожидается, что это замедлит разработку, заставляя разработчиков переписывать уже готовые участки кода, попавшие под подозрение. Проверка будет проводиться путём закрытия «грязных» участков кода до тех пор, пока они не будут полностью проверены.

Поскольку большая часть исходного кода уже проверена, разработка ReactOS в этих областях может продолжаться. Таким образом, проверка кода может производиться параллельно с разработкой и поддержкой проекта, так что темпы развития ReactOS риску не подвергаются.

На сентябрь 2007 года проверка была завершена на 99,5 % (оставалось только 49 закрытых файлов). 23 сентября было решено убрать с главной страницы сайта ReactOS индикатор завершённости проверки. Это было мотивировано тем, что проверка не затрагивает конечных пользователей, тестеров или второстепенных разработчиков, а также тем, что процесс создания прочной и легальной основы для исходного кода ReactOS и стандартов разработки не может быть адекватно отражён обычным индикатором и будет продолжаться всё время существования проекта. Информация о проверке и её история по-прежнему свободно доступны на сайте.

В настоящий момент проверка завершена полностью и все файлы разблокированы.

More information

ReactOS is a Free and Open Source operating system based on the Windows architecture,
providing support for existing applications and drivers, and an alternative to the current dominant consumer operating system.

It is not another wrapper built on Linux, like WINE. It does not attempt or plan to compete with WINE; in fact, the user-mode part of ReactOS is almost entirely WINE-based and our two teams have cooperated closely in the past.

ReactOS is also not «yet another OS». It does not attempt to be a third player like any other alternative OS out there. People are not meant to uninstall Linux and use ReactOS instead; ReactOS is a replacement for Windows users who want a Windows replacement that behaves just like Windows.

Also see the media/doc subdirectory for some sparse notes.

ReactOS Applications

Windows users expect to have certain applications available to them by default. These include anything from notepad to the command prompt, the device manager and even control panel applets. ReactOS re-implements the majority of these applications and packages them with the operating system so our users can find them as expected.

All our applications are written in C or C++ and use only the base win32 APIs (and optionally our ATL library which we package into our code base). If you’re a .NET or python developer looking to improve your skills with the Win32 API, then this is a great place for you to start.

If you’re a proficient Win32 application developer looking for something more challenging, then move onto the next level.

Разбор полётов

Поскольку на данный момент ReactOS нацелен на совместимость с Windows Server 2003, в качестве подопытного кролика был выбран Git версии 2.10.0 — последней, в которой заявлена поддержка Windows XP и 2003.

Тестирование осуществлялось в командной строке ReactOS, внешние симптомы проблемы были довольно неоднозначными. Например, при запуске git без указания дополнительных аргументов, он без каких-либо проблем выводил справочную информацию в консоль. Но стоило попробовать или хотя бы , в большинстве случаев консоль совсем ничего не выводила, либо изредка показывала битое сообщение с assertion:

Исследованию проблемы очень поспособствовало, что клиент git — с открытым исходным кодом, и найти строку, на которой возникало исключение, не составило большого труда:

А значение переменной задавалось данным участком кода:

После выяснения этих деталей я отписался на IRC-канале:

Имя переменной как бы намекает, что значение было получено из — обычно в нулевом индексе этого массива содержится строка с именем команды, которой была вызвана текущая программа. Но в дальнейшем всё оказалось не столь очевидно…

Installing

By default, ReactOS currently can only be installed on a machine that has a FAT16 or FAT32 partition as the active (bootable) partition.
The partition on which ReactOS is to be installed (which may or may not be the bootable partition) must also be formatted as FAT16 or FAT32.
ReactOS Setup can format the partitions if needed.

Starting with 0.4.10, ReactOS can be installed using the BtrFS file system. But consider this as an experimental feature and thus regressions not triggered on FAT setup may be observed.

To install ReactOS from the bootable CD distribution, extract the archive contents. Then burn the CD image, boot from it, and follow the instructions.

Kernel improvements

Filesystem drivers require a great deal of support to function correctly, and there is arguably no truer test of ReactOS’ FS infrastructure than being able to run Microsoft’s own FS drivers. While the project is not quite there yet, driving towards this goal saw considerable improvements been made. Pierre Schweitzer and Thomas Faber paid particular attention to the common cache, a module with deep ties to the memory manager and which traditionally has been a very troublesome component. General stability saw marked improvement thanks to their contributions, along with that of Hermès Bélusca-Maïto in fixing up ReactOS’ own CDFS driver.

More general progress can be found in Eric Kohl’s progression towards proper device power management, an especially tricky feature that many take for granted these days on Windows laptops. If only people knew just how many steps were involved in putting a device to sleep and then waking it up again in a working state. Then again, anyone who has ever had to hard reboot a machine that won’t wake from sleep can probably attest to the difficulty even the biggest OS vendors in the world still grapple with.

Another feature that is certainly to be of greater interest to power users and IT specialists, Michael Fritscher has managed to fix support for PXE booting with ReactOS. In enterprise or industrial environments where central management of systems is a must, the more network functionality ReactOS provides, the more places it can find a use.

Fixed Kernel-Image-Protection

Security these days is a fundamental requirement of modern operating systems, and the ability for an OS to protect its own files is the foundations upon the rest of its security. To that end, most operating systems will have locks to prevent any random application from going and modifying images that are loaded and executed in the kernel space, such as the kernel itself (ntoskrnl), various feature subsystems (win32k), and of course general device drivers. ReactOS previously suffered from various bugs that prevented it from correctly doing this, but the write-protection functionality was rewritten during the run-up to 0.4.12, enabling its usage and also adding new features like execution protection just waiting for x64 to be fully enabled.

Minimum hardware requirements

The minimum requirements to install ReactOS are:

  • RAM: at least 64 MB, recommended 256 MB, and even 2048 MB if you want to test large software suites or bundles.
  • Processor: x86 or x64 architecture, Pentium or later and compatibles; for more information see ReactOS ports.
  • HDD:

    FAT16/FAT32 primary boot partition.

    IDE/SATA with minimum 450 MB of free space on the primary partition (please note that some SATA controllers may not work with ReactOS):

  • Video: VGA compatible video card (VESA BIOS version 2.0 or later).

Getting ReactOS

Due to the current state of the project, the ReactOS Foundation does not offer official installation media for distribution. Installation CD-ROMs must be created by the user by writing an available image file to a CD-ROM.

Atlas Shrugged, или поворот не туда

Самое дорогое, что есть у каждого человека — его жизнь и время, отпущенное ему. Каждый распоряжается этими ресурсами по-своему. Нет второго шанса, нельзя родиться заново, часы не отмотать назад. Игорь Сысоев день за днем почти 20 лет своей жизни посвящал кропотливой работе над тем, чтобы подарить людям всего Человечества, пожалуй, лучший веб-сервер из существующих. Игорь совершенно не обязан был публиковать исходники NGINX под свободной лицензией, но он поступил так добровольно, это был его вклад в изменение нашего Мира к лучшему.
Вряд ли Игорь думал в тот день, когда публиковал исходники в первый раз, что open source поможет ему стать долларовым миллиардером. Наверное не думал он и о том, как когда-нибудь однажды попадет в один ряд с другими отцами-основателями сети Интернет, такими как Тим Бернс Ли, Пол Бэран или Брюстер Кейл. А сбылось это: на сегодняшний день по данным Netcraft, число сайтов, обслуживаемых nginx, превысило 447 миллионов. И вы тоже можете использовать для своего сайта этот веб-сервер, это произведение современного искусства, причем совершенно бесплатно!
Поэтому в конечном итоге, деньги, которые Игорь Сысоев счастливым образом получил, были честно заработаны его собственными кровью и потом (а не на горе и страдании или рабском труде других людей), он их заслужил! Его Филдсовская или Нобелевская премия Мира если хотите…
В бизнесе всегда возникают конфликты и трения, его суть — в конкуренции. Но сейчас неопределенный круг вполне конкретных людей хочет не конкурента в честной рыночной борьбе победить, а хочет эта группировка заслуги Игоря Сысоева втоптать в грязь, обесценить, филантропа выставить вором, а его награду присвоить себе по праву силы. Причем сделать это пытаются не в порядке добросовестного заявителя — в арбитражном суде, а самым грязным способом в духе 90х, с привлечением ресурса силовых структур.

Проекту ReactOS требуются студенты для участия в Google Summer of Code 2018

Привет, Хабр!

Спешим сообщить, что операционная система ReactOS уже третий год подряд получает слоты на Google Summer of Code!

В случае успешной сдачи работы участник Google Summer of Code получит 3 600 евро.

Что надо сделать, чтобы участвовать?

  1. Зарегистрироваться на https://summerofcode.withgoogle.com/;
  2. Выбрать вариант участия как студент;
  3. Выбрать ReactOS как проект участия;
  4. Описать в свободной форме то, что вы хотите сделать в вашем пропосале. Подробнее об оформлении пропосала можно посмотреть на сайте GSoC, общие рекомендации по пропосалу можно поглядеть у Гугла, и ;
  5. Подписаться на почтовую рассылку разработчиков и продублировать туда текст из пункта 4;
  6. Обговорить в IRC свое участие;
  7. Взять в вашем учебном заведении Proof of Enrollment – бумагу, которая подтверждает, что вы являетесь студентом (или аспирантом) этого учебного заведения на срок Google Summer of Code.

Поторопитесь! Подача заявок закончится 27 марта!

Возможные идеи для участия – под катом.

ReactOS 0.4.6 доступен для загрузки

Привет всем хабра-читателям!
Практически одновременно с развязкой третьего сезона сериала Twin Peaks мы выпустили очередной релиз операционной системы ReactOS с номером 0.4.6. Релиз доступен для загрузки прямо сейчас, и совсем не нужно ждать октября или ноября, как в случае с iPhone X.Скачать | Прочитать официальную новость | Посмотреть список изменений | TL;DR | Тесты
В этом релизе Вас ожидает поддержка распределенной файловой системы NFS, улучшенная поддержка файловой системы UDF, в очередной раз обновленная поддержка тем оформления и значительно исправленный шрифтовой движок.

Explorer File Search Bring-Up

The graphical shell (aka Explorer) is a vital component that allows the user to interact with the system.
The shell itself, though, lacks a lot of stuff which deeply limits the overall ability for the user to interact with the system in an easy and flexible way.
However, with work done during the Google Summer of Code 2019, the shell has seen a new feature implemented — file search.
Thanks to student Brock Mammen, this feature will help the user find the exact location of a file without the hassle of having to search for content manually or to rely on third-party programs.
The screenshot below demonstrates the search feature in action:

Creating the Installation CD

The downloaded file is a compressed archive in ZIP format, containing a single file named «ReactOS.iso». The ISO image contains everything needed to create the CD.

  • Extract the image file from the archive into a temporary directory.
  • Burn the ISO image to a CD-R or CD-RW using any software of your choice.

When burning the ISO to disc, be sure it is written as an image file. Writing to the disc as another type of data will not work and render the Installation CD unbootable. Look for an option similar to «Burn from ISO» or «Write disk image».

Installing ReactOS

Please consider making full backups of any sensitive data before you start any experiments with ReactOS in the production environment!

USB Improvements

USB (Universal Serial Bus) is an important standard adopted throughout the industry and used widely on many devices such as external storage, keyboards, mice, and various other devices.
Notably, there are a great number of computers that do not come with a CD-ROM drive these days, with the only option being USB in order to boot or install an operating system.
The USB stack itself is arguably a very complicated one, the code to support it is complex, and maintaining it is not an easy task.
ReactOS currently lags behind an advanced USB implementation as various bugs and regressions still plague the system.
Despite this, many people have worked hard and contributed code to improve USB functionality in ReactOS.

Vadim Galyant and Victor Perevertkin have brought in a new USB stack which provides many fixes as well as improvements to various areas, improving USB support in general.
Although there is a long journey ahead towards an advanced and perfectly functional USB stack within ReactOS, the new module already supports HID and storage devices.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий