The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: bqt@update.uu.se (Johnny Billquist)
Subject: [TUHS] pdp11 UNIX memory allocation
Date: Wed, 07 Jan 2015 00:14:00 +0100	[thread overview]
Message-ID: <54AC6C38.8070904@update.uu.se> (raw)
In-Reply-To: <50E11A72-348F-4391-B444-33DD1B4ED1CC@ronnatalie.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2110 bytes --]

On 2015-01-06 23:36, Ronald Natalie wrote:
> Another quaint bit of history was when we made the jump to actually running the kernel in split-I/D mode.    My good friend Joe Pistritto wrote the JHU boot loader for that.   The 512-byte boot loader that was the standard UNIX one was used to load Joe’s split I/D booter.   It had a better support of the UNIX file system, but the question was how do you get from a non-split I/D program into the split I/D program.    Joe’s solution was rather clever.   He put an instruction that stored the processor status word with the new kernel mode at the top of the boot loader’s address space.    As he did the store the PC rolled over and now it was running at the new mode at location zero.

??? Are you sure you remember that right?
The change from non split I/D to split I/D is not in the processor 
status word. Also, the last address of memory, before you enable the 
MMU, is actually the PSW. You can't have code there.

> Years later I found that others had solved the problem by just setting up the kernel registers and executing a trap which switched the modes.    I always thought Joe’s solution was more elegant.   The kernel started the same way any other UNIX program would start.

I'm probably missing a whole bunch of detail here, as I'm not fully 
following what was done.

Also, I fail to even spot the problem. Enabling split I/D space is just 
a bit in the MMU, but even after, you can have the same memory pages in 
both page tables, in essence making it a noop. Of course, being able to 
have data outside your code means you can have so much more code, in 
addition to more data, that you'd just would want to keep them split.
But that means just setting up the two page tables appropriately, load 
the memory as needed, and then enable the MMU and the split I/D, and 
you're done.

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol



  reply	other threads:[~2015-01-06 23:14 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.149.1420581544.3354.tuhs@minnie.tuhs.org>
2015-01-06 22:20 ` Johnny Billquist
2015-01-06 22:36   ` Ronald Natalie
2015-01-06 23:14     ` Johnny Billquist [this message]
2015-01-07  2:39   ` John Cowan
2015-01-07  2:59     ` Johnny Billquist
2015-01-07  2:18 Noel Chiappa
2015-01-07 16:17 ` Clem Cole
     [not found] <mailman.151.1420584979.3354.tuhs@minnie.tuhs.org>
2015-01-06 23:34 ` Johnny Billquist
2015-01-06 23:52   ` scj
2015-01-07 16:14   ` Clem Cole
2015-01-07 17:27     ` Dave Horsfall
  -- strict thread matches above, loose matches on Subject: below --
2015-01-06 22:45 Noel Chiappa
2015-01-06 22:55 ` Clem Cole
     [not found] <mailman.147.1420574271.3354.tuhs@minnie.tuhs.org>
2015-01-06 20:20 ` Johnny Billquist
2015-01-06 20:33   ` random832
2015-01-06 21:57     ` Ronald Natalie
2015-01-06 22:00       ` Clem Cole
2015-01-06 22:04         ` Ronald Natalie
2015-01-07  1:46       ` Dave Horsfall
2015-01-07  2:00         ` Ronald Natalie
2015-01-07  6:29           ` Dave Horsfall
2015-01-07  6:39             ` Warren Toomey
2015-01-07 10:06               ` Brantley Coile
2015-01-07 13:29             ` Jacob Ritorto
     [not found]     ` <CAC20D2PP1hGyYsep1yNtj9KO55a-V02+QHS+S7bX-4joJy222g@mail.gmail.com>
     [not found]       ` <1420583703.863814.210431037.61D6C6EC@webmail.messagingengine.com>
2015-01-06 22:36         ` random832

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54AC6C38.8070904@update.uu.se \
    --to=bqt@update.uu.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).