Hi All,
Before I reach the point where I am thinking the same way as everyone else, which will inevitably happen (The Borg - resistance is futile), I wanted to get some thoughts out:
A question that many have asked is, "Why not port ReactOS to ARM?"
The answer is usually something like, "We cannot afford the resources to port to ARM."
I think on the contrary, the opposite might be true:
1. There is a hoard of developers over on the Raspberry Pi site right now who would enjoy seeing ReactOS on the RaspPi.
2. There are device manufacturers who would like to free themselves from the Apple/Google/Microsoft triumvirate and iOS/Android/Windows Phone 8 lock-in. Samsung recently announced its intent to explore other operating systems. http://news.cnet.com/8301-1035_3-57455054-94/would-samsung-ever-leave-androi d-new-ceo-drops-hints/
3. The operating systems are not exactly easy to develop for. I have read credible articles that Android is a mess from a development perspective. ReactOS would be the operating system of choice for straightforward development.
4. There are embedded systems companies who struggled in vain to get Windows CE to behave like "Big Windows", but were unsuccessful because restrictions in the Windows CE kernel. Many of them switch to Linux, but quite a few still use some form of embedded Windows, and would welcome an open-source Windows-like OS.
5. The United States Military has very large base of software that they would like to put on lower-power systems (ARM) that is written for Windows/i386. They are currently trying to port this software to Linux, with varying degrees of success, not because they like Linux, but because they need as much of the software to be open as possible. They would be particularly attracted by the open-source nature of ReactOS, because the USA national security vetting process requires that certain classes of software be reviewed, line by line, by a certain US security agency. The singular, totally exposed nature of ReactOS makes it attractive in this regard.
6. ReactOS.ORG would likely receive real money from device manufacturers. Even a few dollars per-device would add-up very quickly.
7. There is NO mobile platform right now, among the Big Three, that allows true, native, C/C++ development. Each of these platform plays a game where the native code is invoked by some shell, even in the case of Windows Phone 8, despite Microsoft's claim that Windows Phone 8 supports native development. [It depends on what your interpretation of native development is.]
ARM device manufacturers are all stuck in the same boat. Most of these companies are actually not very good at OS design. Think about it: Nokia was a multi-billion-$US company that was using an operating system (Symbian) that was so broken and toxic to innovation that it almost drowned their company. What did they do to fix this problem? They adopted a closed OS from Microsoft. Manufacturers, actually, do not like having closed software. It eliminates their opportunity for differentiation. If ReactOS were made to run on a single manufacturer's device, the other manufacturers would become nervous, and insist on having the same access as does their competitor. There is nothing wrong with making these manufacturers pay a small fee to support the ReactOS Foundation, and they would gladly pay it, if we developed killer applications for their devices.
Of course, because most of ReactOS, in theory, should be portable, software working on ARM is software working on x86_32/x86_64. I would also like to mention here that there are a lot of developers who would much rather have a stable kernel, and a paucity of user-mode applications, versus an unstable kernel, and a plethora of user-mode applications. User mode applications will be created by the hoard, *if* the kernel is stable. If the kernel is not stable, the incentive to do anything else is greatly reduced.
This is the opportunity I see. My biological clock is telling me that 2013 is the year to pursue this effort. The market is waiting. But an effort like porting to ARM should not be done haphazardly or opportunistically. It should be done with deliberation and intent.
Just my opinion.
-John
** On Fri, Jan 11, 2013 at 4:41 AM, J. C. Jones jaibuduvin@gmail.com wrote:
"*Why not port ReactOS to ARM?"*
IIRC a port is ongoing..... i dont know too much about its status through
Op 11-1-2013 11:36, Javier Agustìn Fernàndez Arroyo schreef:
/__/ On Fri, Jan 11, 2013 at 4:41 AM, J. C. Jones <jaibuduvin@gmail.com mailto:jaibuduvin@gmail.com> wrote:
"/_Why not port ReactOS to ARM?"_/
As was in the news today, start with an already ARM-enabled operating system (Linux, I'd suppose) and run ReactOS under it in a VM. [ https://twitter.com/_peterdn/status/288746654482456576/photo/1 ]
The trick is in getting this as lightweight as possible. Minimal Linux distro including virtualisation/emulation software + (installed) ReactOS. Bochs (plus config file, bios and vga-bios) is under 1MB if using an executable compressor like UPX.
I imagine the various hardware-passthrough options from some virtualisation programs (QEMU/KVM) allows ReactOS to become more compatible with a system. Once that's achieved, a native version of ReactOS would be quite nice :)
Bernd
This is certainly feasible, but is seriously skirting the issue. And when you achieve it, it is like a toy. No "average" user will ever use ReactOS in this way on a regular basis. And even "non-average" users will try it, experiment with it, and say, "Hmm..That's nice!" Then they will push it aside, and use their non-emulated system, or an emulator combination at is actually stable.
Also, there might be a technique to translate an .EXE binary from x86_32 to ARM using a re-compiler. I would rather invest in such a tool than to spend time trying to emulate. There are low-level things that people might like to do with a native port of ReactOS on ARM, that simply would not be possible with emulation. And an OEM is more willing to give money to ReactOS for a true, native ARM port than emulation.
-John -----Original Message----- From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Bernd Blaauw Sent: Friday, January 11, 2013 12:50 PM To: ReactOS Development List Subject: Re: [ros-dev] ReactOS On ARM/Raspberry Pi
Op 11-1-2013 11:36, Javier Agustìn Fernàndez Arroyo schreef:
/__/ On Fri, Jan 11, 2013 at 4:41 AM, J. C. Jones <jaibuduvin@gmail.com mailto:jaibuduvin@gmail.com> wrote:
"/_Why not port ReactOS to ARM?"_/
As was in the news today, start with an already ARM-enabled operating system (Linux, I'd suppose) and run ReactOS under it in a VM. [ https://twitter.com/_peterdn/status/288746654482456576/photo/1 ]
The trick is in getting this as lightweight as possible. Minimal Linux distro including virtualisation/emulation software + (installed) ReactOS. Bochs (plus config file, bios and vga-bios) is under 1MB if using an executable compressor like UPX.
I imagine the various hardware-passthrough options from some virtualisation programs (QEMU/KVM) allows ReactOS to become more compatible with a system. Once that's achieved, a native version of ReactOS would be quite nice :)
Bernd
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
----- No virus found in this message. Checked by AVG - www.avg.com Version: 2013.0.2890 / Virus Database: 2637/6025 - Release Date: 01/11/13
If anyone is porting ReactOS to ARM, I would like to know about it, so there is not any redundancy in effort. J
-John
From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Javier Agustìn Fernàndez Arroyo Sent: Friday, January 11, 2013 4:36 AM To: ReactOS Development List Subject: Re: [ros-dev] ReactOS On ARM/Raspberry Pi
On Fri, Jan 11, 2013 at 4:41 AM, J. C. Jones jaibuduvin@gmail.com wrote:
"Why not port ReactOS to ARM?"
IIRC a port is ongoing..... i dont know too much about its status through
Before you put too much hope on it, ReactOS needs a Memory Managing Unit (basically, virtual memory support), which is present only on ARMv7. Raspberry Pi has an ARM11 CPU, which only implements ARMv6. (yeah, don't be confused with all those numberings...)
Le Thu, 10 Jan 2013 21:41:10 -0600, "J. C. Jones" jaibuduvin@gmail.com a écrit :
Hi All,
Before I reach the point where I am thinking the same way as everyone else, which will inevitably happen (The Borg - resistance is futile), I wanted to get some thoughts out:
A question that many have asked is, "Why not port ReactOS to ARM?"
The answer is usually something like, "We cannot afford the resources to port to ARM."
I think on the contrary, the opposite might be true:
There is a hoard of developers over on the Raspberry Pisite right now who would enjoy seeing ReactOS on the RaspPi.
There are device manufacturers who would like to freethemselves from the Apple/Google/Microsoft triumvirate and iOS/Android/Windows Phone 8 lock-in. Samsung recently announced its intent to explore other operating systems. http://news.cnet.com/8301-1035_3-57455054-94/would-samsung-ever-leave-androi d-new-ceo-drops-hints/
The operating systems are not exactly easy to develop for. Ihave read credible articles that Android is a mess from a development perspective. ReactOS would be the operating system of choice for straightforward development.
There are embedded systems companies who struggled in vainto get Windows CE to behave like "Big Windows", but were unsuccessful because restrictions in the Windows CE kernel. Many of them switch to Linux, but quite a few still use some form of embedded Windows, and would welcome an open-source Windows-like OS.
The United States Military has very large base of softwarethat they would like to put on lower-power systems (ARM) that is written for Windows/i386. They are currently trying to port this software to Linux, with varying degrees of success, not because they like Linux, but because they need as much of the software to be open as possible. They would be particularly attracted by the open-source nature of ReactOS, because the USA national security vetting process requires that certain classes of software be reviewed, line by line, by a certain US security agency. The singular, totally exposed nature of ReactOS makes it attractive in this regard.
ReactOS.ORG would likely receive real money from devicemanufacturers. Even a few dollars per-device would add-up very quickly.
There is NO mobile platform right now, among the Big Three,that allows true, native, C/C++ development. Each of these platform plays a game where the native code is invoked by some shell, even in the case of Windows Phone 8, despite Microsoft's claim that Windows Phone 8 supports native development. [It depends on what your interpretation of native development is.]
ARM device manufacturers are all stuck in the same boat. Most of these companies are actually not very good at OS design. Think about it: Nokia was a multi-billion-$US company that was using an operating system (Symbian) that was so broken and toxic to innovation that it almost drowned their company. What did they do to fix this problem? They adopted a closed OS from Microsoft. Manufacturers, actually, do not like having closed software. It eliminates their opportunity for differentiation. If ReactOS were made to run on a single manufacturer's device, the other manufacturers would become nervous, and insist on having the same access as does their competitor. There is nothing wrong with making these manufacturers pay a small fee to support the ReactOS Foundation, and they would gladly pay it, if we developed killer applications for their devices.
Of course, because most of ReactOS, in theory, should be portable, software working on ARM is software working on x86_32/x86_64. I would also like to mention here that there are a lot of developers who would much rather have a stable kernel, and a paucity of user-mode applications, versus an unstable kernel, and a plethora of user-mode applications. User mode applications will be created by the hoard, *if* the kernel is stable. If the kernel is not stable, the incentive to do anything else is greatly reduced.
This is the opportunity I see. My biological clock is telling me that 2013 is the year to pursue this effort. The market is waiting. But an effort like porting to ARM should not be done haphazardly or opportunistically. It should be done with deliberation and intent.
Just my opinion.
-John
Am 18.01.2013 15:34, schrieb Jérôme Gardou:
Before you put too much hope on it, ReactOS needs a Memory Managing Unit (basically, virtual memory support), which is present only on ARMv7. Raspberry Pi has an ARM11 CPU, which only implements ARMv6. (yeah, don't be confused with all those numberings...)
Ehm... the Raspberry Pi does have a MMU. This can already be seen because it runs full scale Linux which requires a MMU as well (unlike µLinux). MMU support for ARM was introduced at least with ARM9 (see http://en.wikipedia.org/wiki/ARM9E ).
Regards, Sven
Guys, we have a wiki page: http://www.reactos.org/wiki/ARM_Port
The ARM team explicitly states that the ARMv4 and ARMv5 MMUs are incompatible with ROS. They used an ARMv7 chip but do not mention if ARMv6's MMU is of the same type as v4 and v5. Check that first before you expend any more time/effort into this.
On Fri, Jan 18, 2013 at 11:51 AM, Sven Barth pascaldragon@googlemail.com wrote:
Am 18.01.2013 15:34, schrieb Jérôme Gardou:
Before you put too much hope on it, ReactOS needs a Memory Managing Unit (basically, virtual memory support), which is present only on ARMv7. Raspberry Pi has an ARM11 CPU, which only implements ARMv6. (yeah, don't be confused with all those numberings...)
Ehm... the Raspberry Pi does have a MMU. This can already be seen because it runs full scale Linux which requires a MMU as well (unlike µLinux). MMU support for ARM was introduced at least with ARM9 (see http://en.wikipedia.org/wiki/ARM9E ).
Regards, Sven
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
ARMv7 devices are not that expensive.
http://www.aliexpress.com/item/Free-shipping-hot-sale-Brand-new-Android-4-0-... (1.2 GHz Cortex A9 netbook for $69.99)
If you buy at least 100 pieces, you can these for like $30 :D
Thanks Timo!
I really think these devices will have a pro-found effect on the entire computing industry in coming years. Let's make sure at least some of them are running ReactOS!
-John
From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Timo Kreuzer Sent: Saturday, January 19, 2013 6:51 AM To: ReactOS Development List Subject: Re: [ros-dev] ReactOS On ARM/Raspberry Pi
ARMv7 devices are not that expensive.
http://www.aliexpress.com/item/Free-shipping-hot-sale-Brand-new-Android-4-0- 7-WM8850-Mini-Netbook-laptop-Notebook-WIFI/735555888.html (1.2 GHz Cortex A9 netbook for $69.99)
If you buy at least 100 pieces, you can these for like $30 :D
_____
No virus found in this message. Checked by AVG - www.avg.com Version: 2013.0.2890 / Virus Database: 2639/6042 - Release Date: 01/18/13
I am very curious to know where I can find the ARM team.
Cheers,
-John
-----Original Message----- From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Zachary Gorden Sent: Friday, January 18, 2013 12:18 PM To: ReactOS Development List Subject: Re: [ros-dev] ReactOS On ARM/Raspberry Pi
Guys, we have a wiki page: http://www.reactos.org/wiki/ARM_Port
The ARM team explicitly states that the ARMv4 and ARMv5 MMUs are incompatible with ROS. They used an ARMv7 chip but do not mention if ARMv6's MMU is of the same type as v4 and v5. Check that first before you expend any more time/effort into this.
On Fri, Jan 18, 2013 at 11:51 AM, Sven Barth pascaldragon@googlemail.com wrote:
Am 18.01.2013 15:34, schrieb Jérôme Gardou:
Before you put too much hope on it, ReactOS needs a Memory Managing Unit (basically, virtual memory support), which is present only on ARMv7. Raspberry Pi has an ARM11 CPU, which only implements ARMv6. (yeah, don't be confused with all those numberings...)
Ehm... the Raspberry Pi does have a MMU. This can already be seen because it runs full scale Linux which requires a MMU as well (unlike µLinux). MMU support for ARM was introduced at least with ARM9 (see http://en.wikipedia.org/wiki/ARM9E ).
Regards, Sven
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
----- No virus found in this message. Checked by AVG - www.avg.com Version: 2013.0.2890 / Virus Database: 2639/6040 - Release Date: 01/17/13
I was about to say the same thing as Sven.
I had a contract where my client was using the ubiquitous AT91SAM9260 from Atmel, based on ARM926, an ARMv5 architecture, running Linux. I had to circumvent the MMU from user-mode to get real-time control of the system clocks and GPIO ports.
For anyone interested, you can see from the specification of ARMv5, both in a diagram and a statement, that MMU support is available at least since ARMv5:
"The ARM926EJ-S processor features an MMU, allowing for the use of fully featured OS such as Linux, Windows CE, and Symbian."
http://www.arm.com/products/processors/classic/arm9/arm926.php
You can also infer from using Visual Studio 2008 and earlier that Windows CE (Windows Mobile), which requires MMU support, needs no more than an ARMv4 architecture. You can see this by creating a sample Windows CE application using Visual Studio 2008, then looking at the instruction set that the compiler can target, which includes ARMv4/ARMv4i, both providing MMU support.
On a related matter, using the tool at the link below, it is theoretically possible to develop user-mode applications using only Visual Studio 2005/2008/2012 for ReactOS running on Raspberry Pi almost entirely without owning a Raspberry Pi, and, oddly, without having ReactOS installed in anywhere:
http://msdn.microsoft.com/en-us/library/bb630224.aspx
The idea would be to use only those Win32 API functions that are identical between "Little Windows" (Windows CE) and "Big Windows" (95, 98, 2000, etc.), which is surprisingly, quite a bit, including File I/O, Multi-Threading, Synchronization [no waitable timers but mutexes, semaphores, events, etc], GUI, and TCP/IP sockets. Here is the MSDN page for CreateSolidBrush, for example:
http://msdn.microsoft.com/en-us/library/aa931351.aspx?ppud=4
And sendto:
http://msdn.microsoft.com/en-us/library/ms911744.aspx
And here are the MSDN pages for CreateProcess and CreateThread, respectively:
http://msdn.microsoft.com/en-us/library/ms885182.aspx
http://msdn.microsoft.com/en-us/library/ms885186.aspx
Then, once the application is developed, it would simply be recompiled (re-linked technically) against ReactOS libs (kernel32.lib, user32.lib, etc.) instead of the Windows CE API (coredll.lib, etc.):
http://msdn.microsoft.com/en-us/library/aa448387.aspx
This re-compilation (re-linking) could be done very late in the development stage of the mobile application, after the GUI has been perfected, etc...all under the ARM emulator that comes with Visual Studio 2008. Of course, if you are doing robotics, or something like that, and need access to GPIO, etc...:(
To summarize, if anyone is interested in developing Windows-like application for Raspberry Pi, there is no need to wait until ReactOS is fully-ported to Raspberry Pi. Both types of development, OS and applications, can happen in parallel, right now, using Visual Studio. But someone really should streamlines this process, document it, and publish it so that we are all not re-inventing wheels. ;)
Cheers,
-John
-----Original Message----- From: ros-dev-bounces@reactos.org [mailto:ros-dev-bounces@reactos.org] On Behalf Of Sven Barth Sent: Friday, January 18, 2013 11:51 AM To: ros-dev@reactos.org Subject: Re: [ros-dev] ReactOS On ARM/Raspberry Pi
Am 18.01.2013 15:34, schrieb Jérôme Gardou:
Before you put too much hope on it, ReactOS needs a Memory Managing
Unit (basically, virtual memory support), which is present only on
ARMv7. Raspberry Pi has an ARM11 CPU, which only implements ARMv6.
(yeah, don't be confused with all those numberings...)
Ehm... the Raspberry Pi does have a MMU. This can already be seen because it runs full scale Linux which requires a MMU as well (unlike µLinux). MMU support for ARM was introduced at least with ARM9 (see http://en.wikipedia.org/wiki/ARM9E http://en.wikipedia.org/wiki/ARM9E ).
Regards,
Sven
_______________________________________________
Ros-dev mailing list
mailto:Ros-dev@reactos.org Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev http://www.reactos.org/mailman/listinfo/ros-dev
-----
No virus found in this message.
Checked by AVG - http://www.avg.com www.avg.com
Version: 2013.0.2890 / Virus Database: 2639/6040 - Release Date: 01/17/13
-----
No virus found in this message.
Checked by AVG - http://www.avg.com www.avg.com
Version: 2013.0.2890 / Virus Database: 2639/6040 - Release Date: 01/17/13