From mboxrd@z Thu Jan 1 00:00:00 1970 From: paul.winalski@gmail.com (Paul Winalski) Date: Tue, 28 Nov 2017 14:45:19 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <2E06126D-C247-4D2B-97A2-DE0A449594E4@tfeb.org> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <2E06126D-C247-4D2B-97A2-DE0A449594E4@tfeb.org> Message-ID: On 27 Nov 2017, at 16:11, Noel Chiappa wrote: > > Along those lines, I was wondering about modern OS's, which I gather for > security reasons prevent execution of data, and prevent writing to code. They do by default, at least, in that modern linkers create executable images where the executable program segments are read-only and read/write segments (including the stack) are not executable. But modern OSes have system services for changing page protection, so an application such as an interpreter or JIT can compose code and then change the page protection to make it executable. -Paul W.