Aliasing text and data segments

Scott E. Preece preece%fang at gswd-vms.gould.com
Thu Feb 11 03:29:39 AEST 1988


  From: "Michael J. Young" <mjy at sdti.uucp>
> This happens on many other 80x86 ports as well.  Microport (the only 286
> port I'm familiar with) enforces separation between text and data
> regions as well.  Unfortunately, they don't seem to provide ld(1)
> options to override the protection.  I received an email reply from T.
> Andrews, who said that Xenix/286 provides a service and an ld(1) option
> to support this, but I have no personal experience with it.
----------
As far as I can tell, though the System V ld does provide for loader
directives to specify that defined areas of memory are flagged for
execute or not, the information is not actually propagated into the COFF
image or otherwise made available to the executing system.  And while
shared memory segments do have permission modes attached to them, they
are actually supplanted in the System V interface by flags supplied to
the shmat(2) call, which only distinguish between read-only and
read/write access, so any hardware capability to disable execution is
lost.

As has been pointed out, what you need is a system call to change the
use codes on an area of your address space; there is no standard Unix
definition for such a call yet (though the POSIX real-time committee may
get there someday).

-- 
scott preece
gould/csd - urbana
uucp:	ihnp4!uiucdcs!ccvaxa!preece
arpa:	preece at Gould.com



More information about the Comp.unix.wizards mailing list