Drobe logo
Beta! | About us | Contact | Submit news | RSS | Twitter Webspace | Tech docs | Downloads | BBC Micro | Gallery | Wallpaper

Pros and cons of rewriting an OS from scratch

Published: 23rd Nov 2006, 21:47:07.

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.

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

Discussion

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

Bob

 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.

bob

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

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

 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.

Login

Username

Password

Create a new account
Forgot your password?

Search this website

This week's poll

Recent developments have left me feeling...
Assured ROS will appear on new hardware Assured ROS will appear on new hardwareAssured ROS will appear on new hardware 55%
Pleased OS desktop features are being developed Pleased OS desktop features are being developedPleased OS desktop features are being developed 10%
ROL and ROOL will eventually kiss and make up ROL and ROOL will eventually kiss and make upROL and ROOL will eventually kiss and make up 5%
App developments are critical App developments are critical App developments are critical 10%
Dave Holden sleeps easy at night Dave Holden sleeps easy at nightDave Holden sleeps easy at night 19%
Discuss this | Archives

Featured articles

  • Wakefield 2009 wrap-up, photos and video
    The weekend's RISC OS event has been and gone and we've got the rest of our lives to look forward to. Here's a round-up of extra news and Drobe's show-related coverage and some photos taken from Wakefield 2009 - plus a video from the show floor.
     16 comments, latest by AW on 29/4/09 7:41PM. Published: 27 Apr 2009

  • RISC OS 5 pictured running on ARM Cortex-A8 kit
    Picture exclusive - This grainy photograph shows a port of RISC OS 5, sourced from the RISC OS Open project, running on a Beagleboard - a device powered by a 600MHz ARM Cortex-A8 processor with a built-in graphics chip. The port, developed by Jeffrey Lee with help from Uwe Kall and ROOL staff, is seen as a major breakthrough for the shared-source project as it proves the OS can be ported to new hardware without the need for a large team of engineers.
     75 comments, latest by rjek on 30/4/09 3:15PM. Published: 25 Apr 2009

  • Open documents from Windows-using pals with handy online tool
    It can be a pain when someone sends you a file that can only be opened on Windows, Mac OS X or Linux - but with the help of a free-to-use website and NetSurf, Paul Stewart reveals how these documents can be viewed on RISC OS.
     6 comments, latest by AW on 8/5/09 12:12AM. Published: 19 Apr 2009

  • Useful links

    News and media:
    IconbarMyRISCOSArcSiteRISCOScodeANSC.S.A.AnnounceArchiveQercusRiscWorldGAG-News

    Top developers:
    RISCOS LtdRISC OS OpenMW SoftwareR-CompAdvantage SixVirtualAcorn

    Dealers:
    CJE MicrosAPDLCastlea4X-AmpleLiquid SiliconWebmonster

    Usergroups:
    WROCCRONENKACCIRUGSASAUGROUGOLRONWUGMUGGAGRISCOS.be

    Useful:
    RISCOS.orgRISCOS.infoFilebaseNetSurf

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


    Recently logged in: DaveW is a RISC OS User DaveW • VinceH is a RISC OS User VinceH • bluenose is a RISC OS User bluenose • egel is a RISC OS User egel • rjek is a RISC OS User rjek • bavison is a RISC OS User bavison • bucksboy is a RISC OS User bucksboy • jmb is a RISC OS User jmb • hubersn is a RISC OS User hubersn • Grek1 is a RISC OS User Grek1 •  Stats
    © 1999-2009 The Drobe Team. Some rights reserved, click here for more information | Powered by MiniDrobeCMS, based on J4U
    "Please give the Castle bashing a break... please!"
    Page generated in 0.1292 seconds.