Awesome! Congrats to all involved!

D

On Sep 14, 2011, at 8:41 AM, ron minnich <rminn...@gmail.com> 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.
> 
> - 2 MB PTEs. 4096 byte PTEs are not used in user programs at all.
> 
> - 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).
> 
> - 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.
> 
> - kernel-based Linux system call interface (work in progress)
> 
> - 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
> 
> - Tubes, a new IPC mechanism like pipes that uses the optimistic semaphores
> 
> - A new memory management design which eliminates the huge static
> array of page structs
> 
> - NUMA-aware allocation, such that a process can be co-located with
> its memory. This support is transparent.
> 
> - Kernel can address all of physical memory. No more bounce buffers.
> The kernel maps memory with GiB PTEs.
> 
> - And, finally, standard Plan 9 binaries run unmodified on NIX.
> 
> For now, NIX will only run on 64-bit x86 CPUs which support Gbyte
> PTEs, e.g. K10.
> 
> 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 prompted
> during the build for information to create an nvram file.
> 
> 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.
> 
> 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.
> 
> 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.
> 
> You'll need a 9vx setup to start.
> Checkout the tree, and run 9vx with the tree as your root. You'll find a file
> called BUILDING_AMD64 with further instructions in the root.
> 
> 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.
> 
> Ron
> 

Reply via email to