home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.atari.st.tech
- Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!caen!spool.mu.edu!umn.edu!csus.edu!netcom.com!ersmith
- From: ersmith@netcom.com (Eric R. Smith)
- Subject: Re: XBRA and Memory Protection.
- Message-ID: <1992Dec17.184658.3300@netcom.com>
- Organization: Netcom Online Communications Services (408-241-9760 login: guest)
- References: <memo.814282@cix.compulink.co.uk>
- Date: Thu, 17 Dec 1992 18:46:58 GMT
- Lines: 41
-
- In article <memo.814282@cix.compulink.co.uk> apelled@cix.compulink.co.uk writes:
- >>From: Roine Stenberg
- >>To : Adam Pelled
- >>Subj: Re: Xbra on MultiTOS ?
-
- >>If i want to follow a XBRA structure, i MUST peek inside EVERY program in
- >>the XBRA list.
- >>With MultiTOS/68030 programs will have memory protection, and if my program
- >>tries to look into some other programs occupied memory, the MMU of the
- >>68030 will generate a BUS ERROR to my program.
-
- > i have been informed that this has to be done in supervisor mode.
- >What do the panel think ?
-
- Of course it has to be done in supervisor mode, since most of the interrupt
- vectors are in locations that are only accessible in supervisor mode.
-
- Doing it in supervisor mode solves another problem, too: any program
- that changes an interrupt vector must make its memory accessible to
- any other program that is in supervisor mode, since otherwise
- the interrupt will cause a bus error. Hence, you know that you can
- indeed read another program's XBRA structure, as long as you are in
- super mode.
-
- NOTES: (1) Avoid trapping into interrupt vectors. If you don't grab
- vectors, you don't need XBRA, and the whole thing becomes much easier.
- MultiTOS provides a variety of ways to do things without grabbing
- vectors; you can even write a debugger that doesn't grab vectors!
-
- (2) If you can't do (1), then use Setexc() to change vectors. If you
- do, then MultiTOS will automatically grant supervisor access to other
- processes for the memory the vector points to, and everything will
- work transparently.
-
- (3) If you don't do (2), users will have to run a utility to change
- your program's flags so that it will not be protected against supervisor
- access. Users won't like having to do this. So use Setexc(), that's
- why it's in the operating system!
-
- Regards,
- Eric
-