
| Pros and cons of rewriting an OS from scratch |
|
Published: 23rd Nov 2006, 21:47:07GMT Source: drobe.co.uk By the Drobe news desk
|
| Page 1 of 1 |
|
| Is it really worth it? |
|
 Rewrite: Could RISC OS be sensibly recreated from scratch? | Several attempts at rewriting RISC OS from scratch to implement modern operating system features have been made by people since the break up of Acorn, yet apart from recent QEMU work, no such projects have come close.
In an article published today on OSNews, the merits and pitfalls of re-creating operating systems from scratch were debated, with references made to OSes including RISC OS and AmigaOS.
The ideal albeit seemingly impossible goal of rewriting RISC OS from scratch would be to introduce features such as full memory protection, full pre-emptive multitasking, proper disc and filesystem caching, compatibility with drivers and applications from other OSes, and so on, all while maintaining the RISC OS API so that existing applications can continue to work, possibly within a compatibility environment.
While some have in the past proposed rebuilding the OS from the ground up, recent work on QEMU has taken a different approach - this has seen the implementation of parts of the RISC OS API within an ARM emulator, allowing native ARM-targeted programs to run on Intel PCs.
See the link below for more.
Links
A critical look at OS re-creation projects
Also, Rewriting RISC OS for Intel PCs from last AugustRelated articles NetSurf bags GBP10K investment from Google Merry Christmas from Drobe How to build RISC OS 5 from shared source
This article has been linked to, or is available in the following formats:
|
| |
|
sa110 (+1.0)
 24/11/06 7:16AM |
Suerly all of these highly talented programers, who seem to think the only way forward for RO is to emulate, should do something constructive and actually develop some new applications/drivers for native RISC OS. Only then wil RO move forward. |
druck (+0.1)
 24/11/06 9:39AM |
Agreed. However a lot of very talented programmers tend not to be very inventive, so end up taking something that already exists and reimplementing it for the technical challenge, rather than coming up with new ideas (which is how GNU and Linux started for example). One way round this is for other people, not necessarily programmers, to come up with the ideas for new applications and write detailed specifications which programmers can implement. |
flibble (-1.7)
 24/11/06 11:11AM |
In reply to druck:
it's called learning, reprogramming a concept that already exists means
a) you know the concept is valid
b) you take away a lot of the design work
c) you have something to test results against to confirm you've programmed it correctly
and of course
d) you become more experienced in the language or technology that the concept is written in
When will people stop making demands of free software authors 'why won't they just do what I want'? Learn to program, discover that often it's about the satisfaction of having something you've written work, not about being paid, or trying to please a bunch of argumentative idiots on newsgroups/forums who can't even themselves agree on what a program should do.
In reply to sa110:
or they could write a program and have it used by more than 5000 people? By definition emulator writers have experience in other platforms, why would they move from those other, often easier to program, platforms to the development dead-end of RISC OS?
... what am I doing here? |
Loris
 24/11/06 2:44PM |
I've just read the referenced article, and it is very interesting.
But do we actually need a rewrite of RISC OS, in one big lump?
As I recall, the main criticisms historically have been the lack of memory protection, and the cooperative multitasking model.
Previously people have explained to me that the two models (cooperative and pre-emptive multitasking) are incompatible, in that a cooperative task cannot reliably have control wrenched away from it. (IIRC the reason is that a program may become confused if 'state' changes between Wimp-polls, ie when it isn't expecting it.)
I wonder if, rather than bullying cooperative programs in this way, it would be possible to add in a pre-emptive slicing mechanism.
Essentially this would be another cooperative item*, but which would call tasks, and recover control with interrupts. It would track how much time elapsed between each call, and assign time 'fairly' on this basis, so programs needn't be slower.
New programs, and those which are actively maintained, could be written to fit to this new API. It might even be possible to add memory protection at the same time.
Apparently pre-emptive programs are easier to write, so there would be an incentive to target this interface.
The OS could then be moved over piecemeal, there wouldn't be a sudden incompatibility issue for the new architecture.
Legacy programs would of course still be running cooperatively, but if there are none running then the machine could run entirely pre-emptively.
*I don't use the word 'task' because it wouldn't necessarily be a task, exactly. |
nijinsky 24/11/06 3:52PM |
"D" the secret hard core coder in Armbase wrote his own OS.
It was for a distributed system of 40 old powerPC's. I think it ran faster than his Origin2000 (okay it was a while ago).
I think it was quite difficult.
Bob |
nijinsky 24/11/06 3:59PM |
THe main problem in creating a NEW OS is apps. SkyOS is a good example.
bob |
Stoppers 26/11/06 12:09AM |
In reply to Loris:
If the underlying OS was properly pre=emptive but the GUI interface was to be kept co-operative (so as to keep the RO look and feel), the API could be extended with a "Detatch" call that can be called when idle and allows other applications to modify the display while your application thinks about what it will display next. When a WIMP event occurs, your application will be signalled and should re-join the co-operative tasks by Polling as soon as possible. That means you don't even have to have multi-threading in your application.
Existing applications could continue as before with newer applications doing non-display work in the background. (The newer applications would have to avoid fiddling with older applications' resources without first becoming co-operative, but I think in practice that wouldn't be a common occurrence.) |
em2ac 30/11/06 6:05PM |
a major advantage to creating a new OS from what I see, is you have the chance to not include the bugs which plague all other OS :@P
another advantage is to include great ideas. Such as Quality Of Service Multitasking (Ref Galilaio).
that would provide a kickass system, imho. |
| |
|
|
|
| Bookmarks!
We have a directory of Companies, User groups and more in our bookmarks section, check it out!
|
|