On Sat, Oct 14, 2017 at 1:32 AM, Steve D'Aprano
<steve+pyt...@pearwood.info> wrote:
> It seems to me that you're not talking about ROM at all, but ordinary RAM.
> Then what do you mean by "read only"? A block of memory with a flag that
> says "unprivileged processes are prohibited from writing here"?
>
> (That's also not a rhetorical question.)

When I first learned about Protected Mode (as defined by the Intel
80386 and used in OS/2), there was a real concept of read-only RAM.
The program loader would fetch up the executable file (data on the
disk) and construct its segments: code, data, and BSS/stack. The data,
BSS, and stack all end up as a single segment (data is what comes
straight off the disk, BSS is all zeroes initially, and stack is
uninitialized initially, but ultimately they're all read/write), and
code is in its own segment. When control is handed to the new process,
its segment table grants it read/write access to the data/stack
segment, but read-only access to its code segment. Within that
process, the code really truly is read-only, unless some magic is
done. And yes, since it is fully readable, constant data CAN be
included alongside actual executable code, but it's never going to be
mutable in any way.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to