We are happy to have an opportunity to talk with Alexey Bragin, the Project Coordinator of ReactOS – an open source Windows analog. ReactOS is getting more and more attention on the Internet and we as a software development company can’t stay behind. We went ahead and asked Alexey questions often arising among potential users and developers.
– Alexey, how did you join the project?
I was developing different software, mostly under Windows. Open source was already quite popular at that time, and, at some point, I had a simple thought: UNIX-like operating systems have many followers with open source code (Linux, FreeBSD), there is a whole GNU infrastructure. Why more modern operating system designed as a replacement for outdated UNIX does not have any open source realization?
After a brief search on the Internet, I have found several such projects, all but one (FreeWin95 recently renamed ReactOS) contained nothing particular – just general ideas. After studying the current state of a FreeWin95/ReactOS project, I found that it really has some interesting developments and, which is more important, there is a small team of enthusiastic people behind.
It was unpractical to start my own project from scratch based on the same kind of ideas, this is why I immediately decided to give my hand to the ReactOS project.
– Alexey, what does your position – Project Coordinator – mean?
It is difficult to give a precise definition, this position became more than just being a formal leader of the project. Just to give you an example: www.reactos.org has more than 5 thousand visitors per day, source code repository gets 10-40 edits, 30 active developers from many countries of the world (for example, USA, Germany, Italy, Spain, France, Russia, Japan) constantly work on different parts of the project. Bug, edits and remarks database contains about 4 thousand records, more than 500 of them are open.
And I do not even mention other administrative issues, such as infrastructure support, developing and updating the website, etc. To stay afloat in this situation a precise hierarchy is a must. I cannot say that I was successful making everything work from the beginning, but now I have been able to organize the project so that everyone is doing its work, ensuring the functioning of the project as a whole.
Another aspect must be taken into account: our project is not commercial, and therefore, the task becomes even more difficult. I cannot simply hire a person to do some routine work, the person should do it for fun! This is one of the main principles of our work.
– As I understand, the kernel of ReactOS is different from XP. Are these differences give advantages to ReactOS, or are they based solely on license and patent considerations?
Well, in reality, the kernel is oriented to Windows 2003 Service Pack 2 as the most modern and having nothing unnecessary (it is possible that Windows 7 kernel is even better, but we need to be sure – take a look how it behaves in reality). We are trying to stay as close to Windows kernel implementation as possible without crossing the line when Windows kernel will be indistinguishable from ReacOS (this would raise suspicions about the honesty of our development).
– Could you name the most perspective or useful differences?
Our policy is to make it “equally well” first, and then try to make it better. As I said, there are differences indeed, but when building the kernel, we are trying to stay as close to NT interface and architecture as possible. Without it, it will be difficult to have compatibility.
One example of a difference is that we have a built-in kernel debugger, which allows us to get maximum information in a critical situation without the use of a second computer, as it would be absolutely necessary in case of Microsoft Windows. Well, of course, it is not very important for an end-user. But here is another example: ReactOS can be ported on an ARM platform. In the case of Windows, it is impossible to do without Microsoft involvement. This is interesting for users since ARM-notebooks and similar hardware becomes more widespread.
– Let us talk about software quality, resource requirements, performance, security, and reliability. Despite the fact that the system is in an alpha stage of development, I know of more than 500 programs including drivers and more than 15% are marked as stable working, among them – archiving software, games and network applets. It is a colossal progress in comparison with the previous build. What can we expect from the next release? How many new application will get a stable working status? In your opinion, what is the most important application stably working under ReactOS?
Yes, the list is large and many software applications are now working. The most recent plans include making work of Mozilla Firefox web browser more stable and reliable, improve user interface (now it looks rather like Windows 2000 than a modern operating system, despite progressive “filling”), and launch more serious applications such as Microsoft Office 2007.
By the way, Open Office is already working and this is quite an important software package, but we still have some stability issues. I think that as a bare minimum, users need a web-browser, instant message exchange client, office package (it is difficult to live without in everyday life, say nothing about office). Providing support for this set is our priority.
– I think that Windows, in some way, endorses user carelessness by giving them maximum rights. It ends up like this: “You’ll get all the possible rights. Deny yourself everything you think may be odd or dangerous”. But the majority of users are not ready for this. Does ReactOS have a different policy? What about access rights in general?
We want to maintain some balance. It is obvious that something should be forbidden. For example, lack of password for administrator account by default under Windows XP leads to a situation when access to the computer can be obtained in 90% of cases by just holding the Shift key during computer start-up. And this is one of many shortcomings which make Windows operating system insecure, while its internal security design is far ahead of Unix-like systems. Thus, naturally, we will not allow such developments in ReactOS. At the same time, it is important not to overreact, like it is done with Vista, or it will lead to problems with compatibility.
– Is it true that every type of virus infecting Windows can infect ReactOS or some types of viruses will not be able to work or at least spread due to architecture peculiarities of the system?
In principle, theoretically, a virus is also just a program under Win API, as, say, Notepad word processor. But practically, viruses use some tricks to hide their presence from the system, hijacking system functions, etc. These tricks are generally linked to specific addresses depending on the operating system kernel version. This “bad programming practice” will not work with ReactOS because its kernel has a different internal structure and even compiler used to make builds are different.
– As I can see, the system does not require a lot of resources. As an experiment, I launched ReactOS in an emulator with 64 Mb of memory. The system consumed 23 MB RAM for code and data, while all remaining memory including cash was ready in 22 seconds after launch. Did you do any specific studies of effective resource use or this is an expected result of quality development?
This was a challenge for developers. Regular modern Windows offered for sale has never demonstrated such results and is considered to be a heavy and resource-consuming system. We have practically shown what are quality architecture, quality realization and lack of pressure from marketing specialists interested in sales of new software. There are no real factors that would lead to such an increase in system requirements currently experienced by operating systems of Windows family.
– My previous experience installing XP on 64Mb RAM was terrible: loading a fresh system took five minutes and there was a significant lack of memory for normal work. Immediately after XP started it required about 90 Mb. Looks like, theoretically, you can use your ReactOS system in pocket devices or embedded systems like card terminals, right?
Exactly! We can go even further and offer OS-application concept. For example, 100% guaranteed secure web browsing. Click on a shortcut and in a couple of seconds, familiar Internet Explorer or Mozilla Firefox window will open. But the difference is what hides under the hood: a virtual machine with pre-installed ReactOS and web browser automatically launched during system start.
Virtual machine ensures complete isolation of system working inside. All this happens habitually, unnoticeable to the user. If we used Windows XP for the same functionality, we would have to buy a license for Windows and wait 5 minutes for “browser window opening” (that is the loading of an operating system), – and this is absolutely unacceptable.
– Alexey, the project will be 10-years-old soon. What goals are you setting for the next 10 years?
World domination. Well, this is a joke of course. Seriously speaking, we set a goal to make our system useful in the shortest period of time and start its advancement into different fields in order to get market niches where it is already difficult to use Windows and impossible to use Linux-based systems.
– Alexey, development of operating systems during several years is a quite costly business. How does this project is financed and supported? How does it attract investors?
At this stage, the project is financially supported by ordinary people and companies. These are quite small sums which are used mainly for infrastructure support of our project. All developers are working for free.
– Why there is an opinion on the Internet that ReactOS is a free Windows? Is this true?
This opinion is widespread among people who do not understand such terms as open source code, free license, etc. Of course, it is not correct to call ReactOS so, this is not a system for poor people. I think that there should be similar qualitative changes in the field of desktop operating systems as in server systems. A regular average user should not pay for an operating system. It should be as unnatural as would be paying for Yahoo Mail, Hotmail or Google Mail. Or, like if in order to place your own Web-server on the Internet you would have to choose between acquiring commercial UNIX or commercial Windows.
The same should apply to an operating system. It must be absolutely free and supplied with every computer for sale! And then a user should have right of choice which system to use. If he has tasks which cannot be performed by ReactOS or he needs guaranteed security then he will choose a product of Microsoft Corporation, IBM, Sun or any other (finally, there will be ReactOS Corporation that will offer specialized solutions based on ReactOS) product that suits him.
– For what user do you target the system?
The largest segment of our potential users is what is now called desktop-oriented. That is the users that need to solve simple everyday tasks like Internet-surfing, reading e-mail or doing office routine (support of office products Open Office and Microsoft Office is a top priority for us), or specialized jobs such as CAD, graphic design and layout. All these tasks can be solved with ReactOS. But these do not cover all potential applications. There is a notebook segment, where Microsoft Windows is now dominating, while sales of notebooks with non-Windows systems (Linux, Android) are relatively small.
ReactOS can be used as an operating system on payment terminals, which now mostly use Microsoft Windows operating system, POS (point-of-sale) systems, where Windows is also widespread, and, therefore they have existing software able to work under ReactOS. In reality, this list can be extended by several pages, but I think this will be enough, for now, to get you some insight into the abilities of our operating system.
– What users can do right now? When the system will stably work for users?
In principle, users can do a lot already: several web-browsers, mail clients, word processors are already working. The only thing lacking is stability. A “when” question is always difficult for us and the answer is usually “as soon as possible”.
– What version is next? When there will be a release? What do you plan to add? What the systems allows right now?
This time, the next release will be 0.3.11, with emphasis on a net subsystem, comfortable work on the Internet with Mozilla Firefox web browser and improvements in other fields such as support of sound input and output, compatibility with hardware (support of a wider range of Serial ATA controllers), etc.
– Do I understand correctly that the more developers are involved in open source system development the faster and more scalable will be the development? What does an ordinary developer need to do if he decides that he wants to contribute to the development of Windows analog with free source code?
In reality, the rule does not work for everybody, but ReactOS can be positively singled out. By itself, ReactOS is a huge set, a package of programs, libraries and different modules that form together what we are used to calling an operating system. And what is especially interesting, development of the majority of ReactOS components can be done independently! This is achieved because development can be carried out in default correct environment, such as Microsoft Windows 2003.
After development is complete a module can be tested under ReactOS operating system. Therefore, development parallelization coefficient is very high. It is very easy to partake in ReactOS development. Despite the fact that ReactOS is a complete operating system, its assembly process is one of the easiest among all open source projects. We purposely designed and support our own easily installable building environment. It makes easy for a person who never compiled a single program in his life to renew source codes, compile them, and get an image of a boot disk.
– As a user, I want to install and test ReactOS right now. What do I have to do? What can I get as a system? Does it already work?
Go to our website, Download section, and download one of the versions we offer. To familiarize yourself with the system I would recommend pre-installed ReactOS as a virtual machine for VMWare, QEMU, or Virtual Box. You will not even have to restart your system to see how ReactOS work. Naturally, you should not expect a lot, but the system will work.
– As I understand, ReactOS developers are valued as professionals? Were where any attempts from commercial companies to lure your developers away?
Of course, we had such cases. Unfortunately, they are not isolated. But, from the other side, we can see this as a positive fact – our developers are held in high esteem. If you look through jobs available on the Internet, you can find some ads stating that participation in the ReactOS project will be a plus during interview. I will not hide that I myself, (I am the developer of this system in additions to the managerial functions) had job offers from my friends. By with all due respect, I had to decline.
I believe that we need to complete this work and make the same revolution in operating systems that Google made in the world of Internet services. Thank you, Alexey, for your time. Our readers have a much more clear understanding of the ReactOS project, its operating mode, current, and future features. We hope that more and more users will use ReactOS as an alternative to paid operating systems. As you said much time – a user should not pay for an operating system when buying a new computer!