This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: New Cygwin family member


On Feb  6 12:20, Corinna Vinschen wrote:
> On Feb  5 22:14, Yaakov wrote:
> > On Tue, 5 Feb 2013 21:04:11 -0500, Chris Sutcliffe wrote:
> > > I'm guessing we're a ways out from that point yet, but when we get to
> > > the point where Cygwin is officially offered in both architectures,
> > > will the ask be of the various maintainers to produce binaries for
> > > both (I personally don't mind as long as the tools exist to do it).
> > 
> > The problem is that not *everything* can be cross-compiled easily, if
> > at all.  Linux distributions generally use dedicated build
> > machines/farms (e.g. koji for Fedora) for this very reason.  This will
> > certainly need to be addressed when the time comes.
> 
> Yeah.  This will still be a heck of a lot of work.  Given that "Hello
> World" is barely a day old, you may understand that I didn't even dare
> to call fork yet :}

Yay!  I have a running dash and fork works!  <at this point, imagine
the *plop* sound of opening a bottle of finest champagne>

> Another really big problem is entirely unsolved yet:  32 and 64 bit
> Cygwin processes execing each other, as well as working together.

Another problem is the memory layout (the "fork" problem).  Fortunately
we have a 43 bit address space now.  Here's is our current model, still
open for discussion:

- Keep clear of memory from 0x0 up to 0x0:7fffffff, and from
  0x700:00000000 up to 0x7ff:ffffffff since these areas are used
  by the OS for ... everything.

- Cygwin thread stacks will be located between 0x0:80000000 and
  0x0:ffffffff.  With a default stack size of 1 Meg, we have room for
  2048 threads.

- The Cygwin executables will be loaded to 0x1:00040000.

- The Cygwin DLL will be loaded to 0x1:80040000.  That leaves 2 Gigs of
  space for the executable.  The space from 0x1:8000000 up to
  0x1:80040000 will be used for Cygwin's shared memory areas.

- Other Cygwin distro DLLs are supposed to be rebased to the area
  between 0x2:00000000 up to 0x3:ffffffff.  This is an area of 8 Gigs
  for DLLs.  That should be enough for a while, I guess.

- The heap will be located at 0x4:00000000, and it will be 512Megs by
  default.

- Then ... a big void ...

- Eventually, mmap's will be allocated from 0x700:00000000 downwards.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]