122 lines
4.0 KiB
Plaintext
122 lines
4.0 KiB
Plaintext
$NetBSD: system,v 1.7 2009/09/21 19:41:23 agc Exp $
|
|
|
|
NetBSD System Roadmap
|
|
=====================
|
|
|
|
This is a small roadmap document, and deals with the main system
|
|
aspects of the operating system.
|
|
|
|
The following projects are expected to be included in NetBSD 6.0
|
|
|
|
1. 64-bit time values supported
|
|
2. Better Kernel Modules support
|
|
3. Full kernel preemption for real-time threads
|
|
4. POSIX shared memory
|
|
5. namei() tactical changes
|
|
6. Better resource controls
|
|
7. Improved observability: online crashdumps, remote debugging
|
|
8. Processor and cache topology aware scheduler
|
|
9. namei() strategic changes
|
|
|
|
We currently expect to branch 6.0 in the March 2010 timeframe, with a view
|
|
to a 6.0 release later in 2010.
|
|
|
|
We'll continue to update this roadmap as features and dates get firmed up.
|
|
|
|
|
|
Some explanations
|
|
=================
|
|
|
|
1. 64-bit time_t support
|
|
-------------------------
|
|
|
|
The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
|
|
which use a time_t value are in danger of overflowing at the present time -
|
|
and to address this, 64-bit time_t values will be used to contain the number
|
|
of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
|
|
major bump - kudos and respect), and will be in 6.0.
|
|
|
|
Responsible: christos
|
|
|
|
2. Better Kernel Module Support
|
|
-------------------------------
|
|
|
|
Starting with 5.99.2, the kernel support for modules was enhanced by
|
|
ad, and GENERIC was switched over to be a MODULAR kernel. Support
|
|
from booting from modules, like ffs, was introduced at the same time.
|
|
Some work has been done by Luke Mewburn in this area to define module
|
|
locations and paths so that effective kernel development can be done
|
|
using modules.
|
|
|
|
Responsible: ad, lukem
|
|
|
|
3. Full kernel preemption for real-time threads on non-x86
|
|
----------------------------------------------------------
|
|
|
|
With the revamp of the kernel concurrency model, much of the kernel is
|
|
fully multi-threaded and can therefore be preempted at any time. In
|
|
support of lower context switch and dispatch times for real-time
|
|
threads, full kernel preemption is being implemented. This has been
|
|
implemented already for i386 and x86_64 (and is in 5.0), but needs to
|
|
be extended to support the ARM, MIPS and SuperH ports.
|
|
|
|
Responsible: rmind
|
|
|
|
4. POSIX shared memory
|
|
----------------------
|
|
|
|
Implement POSIX shared memory facilities, which can be used to create the
|
|
shared memory objects and add the memory locations to the address space of
|
|
a process.
|
|
|
|
Responsible: rmind
|
|
|
|
5. Incremental namei improvements, Phase 1
|
|
------------------------------------------
|
|
|
|
In NetBSD 5.99.15, some changes were made to split the namei() routine
|
|
up into logical parts, so that changes can be made to the constituent
|
|
parts in a less intrusive way. This is in the repository now, and will
|
|
be in 6.0.
|
|
|
|
Responsible: dholland
|
|
|
|
6. Better resource controls
|
|
---------------------------
|
|
|
|
A resource provisioning and control framework that extends beyond the
|
|
traditional Unix process limits.
|
|
|
|
7. Improved observability: online crashdumps, remote debugging
|
|
--------------------------------------------------------------
|
|
|
|
XXX crashdumps while the system is running
|
|
XXX firewire support in libkvm
|
|
|
|
8. Processor and cache topology aware scheduler
|
|
-----------------------------------------------
|
|
|
|
Implement the detection of the topology of the processors and caches.
|
|
Improve the scheduler to make decisions about thread migration
|
|
according to the topology, to get better thread affinity and less
|
|
cache thrashing, and thus improve overall performance in modern SMP
|
|
systems.
|
|
|
|
Responsible: rmind
|
|
|
|
9. Incremental namei improvements, Phase 2
|
|
------------------------------------------
|
|
|
|
Building on the namei() split which was introduced in 5.99.15 (see (5)
|
|
above), further changes will be introduced: see the changes to namei
|
|
outlined in Message-ID: <20080319053709.GB3951@netbsd.org> for more
|
|
information. This will simplify the locking and behavior of namei()
|
|
calls within the kernel to resolve path names within file systems.
|
|
|
|
Responsible: dholland
|
|
|
|
|
|
|
|
Alistair Crooks
|
|
Mon 21 Sep 2009 08:39:16 BST
|