Welcome, Guest. Please login or register.

Author Topic: Open Source 3.1 compatible OS?  (Read 3856 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Open Source 3.1 compatible OS?
« on: September 22, 2006, 07:13:08 PM »
You can't have memory protection in AmigaOS. If you add the protection by isolating the applications, you will also isolate the applications from each other, making the whole thing kind of pointless.

Anyway, this has been discussed million times before.

FreeMiNT should have no problem running on Amiga, except that it doesn't naturally run any Amiga apps.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Open Source 3.1 compatible OS?
« Reply #1 on: September 22, 2006, 07:48:09 PM »
Quote
I don't understand why it's impossible to add memory protection.

AmigaOS message passing is passing pointers. To work, both applications must live in the same address space. Also, various resources are allocated by task a, and freed by b or even c. It's common practice to alter variables "owned" by another task. This makes AmigaOS very light and snappy, but means it's practically impossible to impose any kind of memory protection restrictions on it, without breaking most of the apps.

Quote
What is the problem with isolating the applications from each other?

The fact that the tasks would be isolated and the OS/apps would not work at all.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Open Source 3.1 compatible OS?
« Reply #2 on: September 22, 2006, 09:19:16 PM »
@amije
Quote
this could mean too that a more carefull and ''by the book'' programming can give better os/progs stability in a way that memory protection is useless?

It is true that coding for non-protected environment tends to produce programmers that are more careful about error checking and freeing resources.

Yet, some sort of protection is desirable while coding. It reduces the frustration by preventing endless reboot cycles, and it gives nice early trapping of misbehaving program.

For end user the memory protection mostly means some nasty cryptic "segfault" or "This program has performed an illegal operation and will be shut down" message. The memory protection doesn't really benefit the end user much, except that it prevents data corruption between processes (the app can still corrupt its own data as much as it likes!).
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Open Source 3.1 compatible OS?
« Reply #3 on: September 23, 2006, 12:47:52 PM »
@Tomas

No you really can't have any effective memory protection if you intend to use AmigaOS. It's not just applications, it's the OS itself. You'd need to totally rewrite the OS and the apps. Then it wouldn't be AmigaOS anymore, though.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show all replies
    • http://www.iki.fi/sintonen/
Re: Open Source 3.1 compatible OS?
« Reply #4 on: September 23, 2006, 02:48:50 PM »
@Fats
Quote
But I think it should be possible to have one adress space but make some of your memory read-only to other tasks.

This is possible. This is not the problem.

Quote
At least this should make it possible to make the core OS uncrashable.

No it doesn't. The core OS depends on being able to poke things freely.

Also, all apps pass their memory to the OS, and the OS assumes it can poke it. Apps pass memory to each other and assume they can access it freely. It just doesn't work, sorry.

The best semi-protection can be achieved from mmu.library MuLink, but even that only protects the given code segments against alteration. MuProctectModules can protect RAM loaded modules, but again, this is only protecting the code from alteration.