From mboxrd@z Thu Jan 1 00:00:00 1970 References: In-Reply-To: Mime-Version: 1.0 (iPhone Mail 8L1) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Message-Id: <2D57E907-1C1A-42E4-80B4-A697E6208469@gmail.com> Cc: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> From: Don Bailey Date: Wed, 14 Sep 2011 14:14:54 -0700 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] NIX 64-bit kernel is available Topicbox-Message-UUID: 1e63d258-ead7-11e9-9d60-3106f5b1d025 Awesome! Congrats to all involved! D On Sep 14, 2011, at 8:41 AM, ron minnich wrote: > We'd like to announce the availability of NIX, a 64-bit Plan 9 kernel > with some new ideas. The full set of changes will be covered at IWP9. > For now, here are some highlights. >=20 > - 2 MB PTEs. 4096 byte PTEs are not used in user programs at all. >=20 > - 64 bit address space for processes, backed by 1 Gbyte PTEs for BSS > with addresses > 1 Gbyte. Use of Gbyte PTEs does not require anything > special; it just works. It's possible to have a process with (e.g.) 64 > Gib of memory in use which only needs 66 active PTEs (1 for code, 1 > for date, and 64 for BSS). >=20 > - Core roles. A process can designate that it wishes to run on an > application core (AC). ACs do not run kernel code, and take no > interrupts, not even the APIC timer interrupt. They own the core and > are never pre-empted. They can run all standard system calls however. >=20 > - kernel-based Linux system call interface (work in progress) >=20 > - Optimistic semaphores, a new type of semaphore which lives half in > and half out of the kernel, and which in many cases will never run in > kernel >=20 > - Tubes, a new IPC mechanism like pipes that uses the optimistic semaphore= s >=20 > - A new memory management design which eliminates the huge static > array of page structs >=20 > - NUMA-aware allocation, such that a process can be co-located with > its memory. This support is transparent. >=20 > - Kernel can address all of physical memory. No more bounce buffers. > The kernel maps memory with GiB PTEs. >=20 > - And, finally, standard Plan 9 binaries run unmodified on NIX. >=20 > For now, NIX will only run on 64-bit x86 CPUs which support Gbyte > PTEs, e.g. K10. >=20 > The tree is set up to run under 9vx or on a standard Plan 9 system. We > have tested and it is possible to do a full build of amd64 binaries > and then a build in /sys/src/nix/k10 and boot the kernel. You'll be prompt= ed > during the build for information to create an nvram file. >=20 > A new package manager is included in the tree, written by John Floren > and Nemo. It aims to be fast (downloading packages over HTTP) and > maintainable; development is ongoing, but for now pm(1) gives some > essential information. >=20 > As for the name: we were trying to express the fact that ACs do not > have a kernel, > and after much time spent with the dictionary, came up with nix. >=20 > The code is at http://code.google.com/p/nix-os/. Management > of the code base will be via the standard code review mechanisms > supported by google code; you're going to need mercurial and > the extensions. We welcome contributors. For guidelines on how to > contribute see > http://golang.org/doc/contribute.html. >=20 > You'll need a 9vx setup to start. > Checkout the tree, and run 9vx with the tree as your root. You'll find a f= ile > called BUILDING_AMD64 with further instructions in the root. >=20 > Thanks to Bell Labs, University Rey Juan Carlos, Vita Nuova, the > US Dept. of Energy and Comunidad de Madrid for their support > and efforts in getting this working. >=20 > Ron >=20