Drobe :: The archives
About Drobe | Contact | RSS | Twitter | Tech docs | Downloads | BBC Micro

Pros and cons of rewriting an OS from scratch

Published: 23rd Nov 2006, 21:47:07 | Permalink | Printable

Is it really worth it?

Hands on a keyboard
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.


A critical look at OS re-creation projects Also, Rewriting RISC OS for Intel PCs from last August

Previous: RISC OS gets transparent windows
Next: TechWriter to get Word 2k export


Viewing threaded comments | View comments unthreaded, listed by date | Skip to the end

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 RISCOS. Only then wil RO move forward.

 is a RISC OS Usersa110 on 24/11/06 7:16AM
[ Reply | Permalink | Report ]

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.

 is a RISC OS Userdruck on 24/11/06 9:39AM
[ Reply | Permalink | Report ]

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?

 is a RISC OS Userflibble on 24/11/06 11:11AM
[ Reply | Permalink | Report ]

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.

 is a RISC OS UserLoris on 24/11/06 2:44PM
[ Reply | Permalink | Report ]

"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. :-)


 is a RISC OS Usernijinsky on 24/11/06 3:52PM
[ Reply | Permalink | Report ]

THe main problem in creating a NEW OS is apps. SkyOS is a good example.


 is a RISC OS Usernijinsky on 24/11/06 3:59PM
[ Reply | Permalink | Report ]


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.)

 is a RISC OS UserStoppers on 26/11/06 12:09AM
[ Reply | Permalink | Report ]

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.

 is a RISC OS Userem2ac on 30/11/06 6:05PM
[ Reply | Permalink | Report ]

Please login before posting a comment. Use the form on the right to do so or create a free account.

Search the archives

Today's featured article

  • Archive magazine reviewed
    A media watch special
     10 comments, latest by diomus on 27/10/07 12:01PM. Published: 23 Oct 2007

  • Random article

  • Cough up the cash, says MW Software
    Gimp-Print project ready to rock and/or roll
     33 comments, latest by wuerthne on 29/01/04 2:58PM. Published: 22 Jan 2004

  • Useful links

    News and media:

    Top developers:
    RISCOS LtdRISC OS OpenMW SoftwareR-CompAdvantage SixVirtualAcorn

    CJE MicrosAPDLCastlea4X-AmpleLiquid SiliconWebmonster


    RISCOS.org.ukRISCOS.orgRISCOS.infoFilebaseChris Why's Acorn/RISC OS collectionNetSurf

    Non-RISC OS:
    The RegisterThe InquirerApple InsiderBBC NewsSky NewsGoogle Newsxkcddiodesign

    © 1999-2009 The Drobe Team. Some rights reserved, click here for more information
    Powered by MiniDrobeCMS, based on J4U | Statistics
    "Drobe is the most frequently updated and has the most content, but apparently they aren't interested in 'special offers'"
    Page generated in 0.1213 seconds.