9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] linking a program to run at a high address
Date: Thu, 15 May 2014 15:42:15 -0400	[thread overview]
Message-ID: <a877460eee41ee469461a7c848180901@mikro.quanstro.net> (raw)
In-Reply-To: <3abad098ea8858c664eda80dd68493e5@felloff.net>

On Thu May 15 15:19:39 EDT 2014, cinap_lenrek@felloff.net wrote:
> that wont work for a.out userspace binary. the kernel loads
> the text segment on fixed base address UTZERO. in the a.out
> header are just longs with the sizes of the segments. theres
> an entry field but it doesnt change where the kernel puts the
> text segment.
> 
> but you probably do not try to produce an a.out?

there is a provision for a 64-bit address in the extended a.out header.  

the problem is the amd64 architecture.  ron actually pointed this out to me
way back, when i thought it would be neater to load the kernel lower
than 0xfffffffff0110000 to allow the kernel to map more than 256mb
of memory, but that's not possible.  if using absolute addressing, the kernel
needs to load at a sign extended virtual address, or below 4g.  if the kernel
were rip-relative, i beleve it could be just about anywhere in the virtual
address space, but i haven't tried this and i may have missed a wherefore
in the intel manual.

it turns out that it's just as easy to load the data at KSEG2, so that's what
is done.  in fact, perhaps KZERO should be moved up to 2⁶⁴-64MB.  then
all the data could be in KSEG2.  clean, if a little unconventional.

- erik



  reply	other threads:[~2014-05-15 19:42 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 19:01 ron minnich
2014-05-15 19:11 ` cinap_lenrek
2014-05-15 19:42   ` erik quanstrom [this message]
2014-05-15 20:16     ` cinap_lenrek
2014-05-15 20:27       ` cinap_lenrek
2014-05-15 20:44         ` ron minnich
2014-05-15 19:17 ` erik quanstrom
2014-05-15 19:18 ` cinap_lenrek

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=a877460eee41ee469461a7c848180901@mikro.quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /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).