Share on Facebook Share on Twitter Email
Answers.com

ReactOS

 
Wikipedia: ReactOS
ReactOS
ReactOS logo.svg
ReactOS-CurrentVersion.png
ReactOS 0.3.10's implementation of the Windows Start Menu
Company / developer ReactOS Foundation
OS family Microsoft Windows-like
Working state Alpha
Source model Free and open source software
Initial release 0.0.7 / July 20, 1998 (1998-07-20)[1]
Latest unstable release 0.3.10 / 2009-07-5; 5 months ago
Update method Re-Installation
Supported platforms x86
Kernel type Hybrid kernel
Default user interface Graphical User Interface
License GNU GPL, LGPL and BSD licenses
Website www.reactos.org

ReactOS is a computer operating system intended to be binary compatible with application software and device drivers made for Microsoft Windows NT versions 5.x and up (Windows 2000 and its successors). A spin off of a previous attempt to clone Windows 95, development started in early 1998, and continues to this day, with the incremental addition of features already found in Windows.

Although the project is in alpha development stage, a few Windows programs already work relatively well. While the ReactOS kernel has been written from scratch, the userland is partially based on the Wine compatibility layer for Unix-like operating systems.

ReactOS is primarily written in C, with some elements, such as ReactOS Explorer, written in C++. Various components of ReactOS are licensed under the GNU General Public License, the GNU Lesser General Public License and the BSD License.[2] Efforts are underway to fully implement Windows API functionality, and porting it to the ARM and AMD64 processor architectures.

Understanding and implementation of the Windows API is done by means of a complete clean room reverse engineering process, with an extensive on-going audit being undertaken to protect against claims made by those outside the project.[3]

Contents

Development

Early Development (FreeWin95 to ReactOS)

Around 1996 a group of free and open source software developers started a project called FreeWin95, to implement a clone of Windows 95. The project stalled in discussions of the design of the system.

While FreeWin95 had started out with high expectation, by the end of 1997 there still hadn't been any builds released to the public. As a result the project members, led by coordinator Jason Filby, joined together to revive the project. The revived project sought to duplicate the functionality of Windows NT. In creating the new project developers decided to select a new name, ReactOS, which the project holds to this day. The ReactOS project began development in February 1998, by creating the basis for the new NT kernel and basic drivers.[4]

Version history

ReactOS project coordinator Aleksey Bragin (left) shows ReactOS functionality to Viktor Alksnis.
ReactOS running AbiWord and ReactOS Explorer

ReactOS's many APIs and ABIs are ready for a higher level of development and a basic GUI is available. ReactOS features ReactOS Explorer (ROSExplorer), a basic shell similar to Windows Explorer.

Colour Meaning Colour Meaning
Red Old release; not supported Yellow Old release; still supported
Green Current release Blue Future release
Versions of ReactOS
System Version Release Date Release Information
0.2.0 2004-01-25 First release with working GUI
0.2.2
0.2.5
2004-04-27
2005-01-02
Bug Fixes Only
0.2.8 2005-10-29 VMWare Detection, CSRSS Rewrite
0.3.0 2006-08-27 First version to officially support networking
0.3.1 2007-03-10 Download! Program Manager Included, Start of Rewrite for Kernel
0.3.2 skipped Branch created but never released
0.3.3 2007-09-12 Kernel and win32k Improvements
0.3.4 2008-01-22 Registry Support Rewrite, Remote Desktop Client and Plug 'N' Play
0.3.5 2008-06-30 Bug Fixes Only
0.3.6 2008-08-06 RTL Support
0.3.7 2008-11-04 Improved x86_64; MSVC, New Stacks
0.3.8 2009-02-04 Intro to PSEH and Multipartition HDD Support in LiveCD
0.3.9 2009-04-26 32MB Minimum RAM, Faster Hyperspace Mapping, Initial Sound Support
0.3.10 2009-07-05 Initial SATA Support, USB Keyboard/Mouse Support, Paint Clone, Initial MSVC[5]
0.4.0 2010 UI effort: New explorer, second stage UI improvements, overall look and feel improvements


Current and future development

ReactOS is primarily written in C, with some elements, such as ReactOS Explorer, written in C++. It relies on a special build of MinGW for compilation, with modifications added to better facilitate the development of Windows-compatible components.[6]

Development is taking place to complete networking, multimedia, plug-and-play hardware support, and improving the GUI system. The developers aim to make the kernel more compatible with Windows NT version 5.2 (Windows Server 2003) and the usermode APIs with Windows NT 6 (Windows Vista)[7], and add support for more applications. Improved USB, networking, and other hardware support may also be available, while support for file sharing services with SMB and NTFS file system support may be added.

Work is also being done to improve 3D gaming support and complete OpenGL support, and progress was being made in developing ReactX, the project's open-source equivalent of DirectX, which has now been regressed.[8]

Architecture support

There are several ports of ReactOS:

As noted, ReactOS can also be run on software which emulates or virtualizes the above hardware, such as VMware, VirtualBox and QEMU (support for Microsoft Virtual PC is currently unavailable, but may be revived in the future).

As Windows NT 4.0 ran on MIPS, Alpha AXP, and PowerPC architectures in addition to the i386 architecture, and NT-derived operating systems such as Windows XP and Windows Server 2003 have been ported to several architectures (i.e. AMD64, IA-32, and IA-64), ReactOS developers have also taken initial steps in view of portability. For example, support for a variant IA-32 architecture, the Xbox platform, was added to the 0.2.5 release, and efforts toward a ReactOS port on the PowerPC and the Xen architecture were also made in 2005. Working is also being done on a semi-regular basis on porting ReactOS for the ARM platform. [12]

Internal audit

On January 17, 2006 now former developer Hartmut Birr claimed on the ReactOS Developers mailing list (ros-dev) that ReactOS contained code derived from disassembling Microsoft Windows.[13] As a result of this, the project's developers decided to temporarily suspend access to files of the operating system for non-developers while the contributors were contacted to ensure clean reverse engineering. Since ReactOS is a free and open source software development project, this action caused a negative reaction by the free software community. Contributors to its development were not affected by this action, and all access to the software development tools was restored shortly afterward.

The code that Birr disputed involved the function BadStack in syscall.S[14], and other unspecified items.[15] Comparing this function to disassembled binaries from Windows XP, Birr argued that the BadStack function was simply copy-pasted from Windows XP, given that they were identical. Alex Ionescu, the author of the code, asserted that while the Windows XP binary was indeed disassembled and studied, the code was not merely copy-pasted, but reimplemented; the reason why the functions were identical, Ionescu claimed, was because there was only one possible way to implement the function[16]. Parallels can be drawn between this and the lawsuit brought up by Sony Computer Entertainment against Connectix over reverse engineering done in the course of developing Virtual Game Station, where Connectix successfully appealed the initial judgement, saying that direct disassembly and observation of proprietary code was necessary because there was no other way to determine its behavior, and thus counted as fair use.[17]

Consequently, from March 2006 through December 2007, an internally conducted source code audit was carried out to ensure that only clean room reverse engineering was used.[18] All developers were also made to sign an agreement committing them to use only clean room reverse engineering.[19] In September 2007, with the audit nearing completion, the audit status was removed from the ReactOS homepage. Though the audit was completed, specific details were not made public as it was only an internal effort to ensure legally produced code.[20]

In spite of the internal audit's claims to have found no definitive proof, RosAsm's developer, Betov, claimed that the most suspect files were missing from the list of files selected for the audit.[21] In response to this, the ReactOS developers made a public statement where they "agree that the files, pointed by Betov, in the ReactOS sources [...] belong to Microsoft" but also declare that they "are in the opinion that using these materials is legal, and is not a problem."[22] The license covering the code, available here, is the standard EULA that comes with the Windows NT Device Driver Kit, which allows the user to "modify the sample source code ("Sample Code") to design, develop and test your Software Product, and reproduce and distribute the Sample Code with such modifications in source and object code forms".[23]

Concerns have also been expressed about the applicability of specific patents,[citation needed] although this is a issue for many other open source projects.

Despite all the concerns and as yet untested allegations, the source code of ReactOS has since the initial lockout remained available (and thus open for inspection).

Related projects

  • ReactOS utilizes portions of the Wine project so that the ReactOS project can benefit from Wine's progress in implementing the Win32 API.[24] Certain components such as Wine's NTDLL, USER32, KERNEL32, GDI32, and ADVAPI cannot be used by ReactOS because of architectural differences.[25] The other parts of the code can be shared between both projects.
  • A more distant project at the architectural level is Linux Unified Kernel which intend to be binary-compatible with application software and device drivers made for Microsoft Windows and Linux. This kernel imports all the key features of the Windows operating system kernel into the Linux kernel to support both Linux and Windows applications and device drivers.
  • Ndiswrapper recreated a partial Windows NT kernel inside a Linux Kernel making it possible to execute modern Windows drivers inside the NT kernel box. NDISWrapper consists of a NTOSKRNL API, a basic WDM controller, and a set of Windows call wrappers such as Wireless/NDIS/USB/PnP to Linux APIs. NDISWrapper is not limited to execute only NDIS drivers, other WDM drivers can be used as long as the driver doesn't call a non implemented Windows API.
  • Independently of but roughly simultaneously with the NDISwrapper project, Bill Paul of Wind River Systems developed a similar system, known as Project Evil or The NDISulator, for FreeBSD. It has since been ported to NetBSD, but not OpenBSD, due to the latter's anti-binary blob policy. The NDISulator lacks some of the functionality of NDISwrapper, such as USB support.
  • NTFS-3G, NTFS driver for Linux, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku, and other operating systems.

System requirements

  • x86-compatible processor, Pentium or later
  • 24 MB RAM[26]
  • IDE hard drive of at least 150 MB
  • FAT16/FAT32 Boot partition
  • 2 MB VGA graphics adapter
  • CD-ROM drive
  • Standard keyboard
  • PS/2 Compatible mouse or Microsoft Mouse-compatible serial mouse[27]

See also

References

  1. ^ Versions - ReactOS
  2. ^ ""General Presentation"". "OS Revolution". http://osrevolution.com/os-history/general-presentation-10. Retrieved 2009-11-30. 
  3. ^ ""Audit"". "ReactOS". http://www.reactos.org/wiki/index.php/Audit. Retrieved 2009-11-30. 
  4. ^ Loschwitz, Martin (March 2004), "Projects on the Move", Linux Magazine: 87, https://www.linux-magazine.com/w3/issue/40/Free_Software_Projects.pdf, retrieved 2009-11-18 
  5. ^ "ReactOS 0.3.10 Released". ReactOS.org. http://www.reactos.org/en/news_page_53.html. Retrieved 2009-10-04. 
  6. ^ ""Patches for the ReactOS Build Environment (RosBE)"". ReactOS. http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/. Retrieved 2009-11-30. 
  7. ^ "ReactOS Targets Windows 2003, Vista". OSNews. 2009-03-05. http://www.osnews.com/story/21087/ReactOS_Targets_Windows_2003_Vista. 
  8. ^ Z98 (2007-11-19). "OpenGL and ReactX". ReactOS. http://www.reactos.org/en/newsletter_34.html#sec4. Retrieved 2009-01-03. 
  9. ^ "PowerPC". ReactOS Wiki. ReactOS. http://www.reactos.org/wiki/index.php/PowerPC. Retrieved 2009-01-03. 
  10. ^ "ARM Port". ReactOS. http://www.reactos.org/en/newsletter_37.html#sec4. Retrieved 2009-01-03. 
  11. ^ "64bit Port". ReactOS. http://www.reactos.org/en/newsletter_44.html#sec4. Retrieved 2008-08-06. 
  12. ^ "ros-arm-bringup commit log at CIA.vc". http://cia.vc/stats/author/ros-arm-bringup. Retrieved 2009-11-18. 
  13. ^ Birr, Hartmut (January 18, 2006). "Bye bye". ros-dev mailing list. Reactos.org. http://www.reactos.org/archives/public/ros-dev/2006-January/007389.html. Retrieved 2009-01-03. 
  14. ^ "BadStack in syscall.S". Reactos.org. January 17, 2006. http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/syscall.S?revision=20935&view=markup&pathrev=20935#l_41. Retrieved 2009-11-16. 
  15. ^ Birr, Hartmut (January 18, 2006). "Bye bye". ros-dev mailing list. Reactos.org. http://www.reactos.org/archives/public/ros-dev/2006-January/007393.html. Retrieved 2009-11-16. 
  16. ^ Ionescu, Alex (January 18, 2006). "Bye bye". ros-dev mailing list. Reactos.org. http://www.reactos.org/archives/public/ros-dev/2006-January/007401.html. Retrieved 2009-11-16. 
  17. ^ Sony Computer Entertainment, Inc. v. Connectix Corp., 203 F.3d 596 (9th Cir. 2000).
  18. ^ "Audit". ReactOS Wiki. ReactOS. http://www.reactos.org/wiki/index.php/Audit. Retrieved 2009-01-03. 
  19. ^ Edwards, Steven (2006-01-27). "Reset, Reboot, Restart, legal issues and the long road to 0.3". ReactOS. http://www.reactos.org/en/news_page_14.html. Retrieved 2009-01-03. 
  20. ^ Bragin, Aleksey (September 18, 2007). "Audit". ros-dev mailing list. ReactOS. http://www.reactos.org/archives/public/ros-dev/2007-September/009801.html. Retrieved 2009-01-03. 
  21. ^ Betov (February 13, 2004). "Why ReactOS is dead as a target-OS for RosAsm (RosAsm's developer point of view)". http://betov.free.fr/ReactOS.html. Retrieved 2009-03-03. 
  22. ^ "Official Betov Allegations Clarification/Resolution Thread". ReactOS. August 13, 2007. http://www.reactos.org/forum/viewtopic.php?t=4323. Retrieved 2009-01-12. 
  23. ^ "Window NT Device Driver Kit END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE". Microsoft. August 13, 2007. http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/disk/license.txt?view=markup. Retrieved 2009-01-12. 
  24. ^ "Acknowledgements". Wine. http://wiki.winehq.org/Acknowledgements. Retrieved 2009-11-15. 
  25. ^ "Developer FAQ". ReactOS. http://www.reactos.org/en/dev_faq.html. Retrieved 2009-05-25. 
  26. ^ ReactOS 0.3.9 improves open source Windows clone
  27. ^ ReactOS: Bringing Power to the People

External links


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "ReactOS" Read more