155 lines
4.9 KiB
Plaintext
155 lines
4.9 KiB
Plaintext
$NetBSD: system,v 1.11 2012/01/15 06:53:23 dholland Exp $
|
|
|
|
NetBSD System Roadmap
|
|
=====================
|
|
|
|
This is a small roadmap document, and deals with the main system
|
|
aspects of the operating system.
|
|
|
|
The following projects will appear in NetBSD 6.0:
|
|
1. 64-bit time values supported
|
|
2. Better Kernel Modules support
|
|
5. namei() tactical changes
|
|
9. namei() strategic changes
|
|
10. emap (ephemeral mapping) support for i386 and amd64
|
|
11. support for mDNSResponder
|
|
|
|
The following projects may make it into future releases:
|
|
3. Full kernel preemption for real-time threads
|
|
4. POSIX shared memory
|
|
6. Better resource controls
|
|
7. Improved observability: online crashdumps, remote debugging
|
|
8. Processor and cache topology aware scheduler
|
|
|
|
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. Kernel modules have been moved out of base.tgz and a new
|
|
modules.tgz has been created.
|
|
|
|
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 ARM and other ports. MIPS has this, as does
|
|
PowerPC, but it is not yet enabled.
|
|
|
|
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. Changes were proposed on tech-kern, although
|
|
there were some concerns with the kernel implementation, and so a
|
|
different approach using wrapper functions on tmpfs is being aimed at
|
|
for 6.0.
|
|
|
|
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.
|
|
|
|
Responsible: TBD
|
|
|
|
|
|
7. Improved observability: online crashdumps, remote debugging
|
|
--------------------------------------------------------------
|
|
|
|
XXX crashdumps while the system is running
|
|
XXX firewire support in libkvm
|
|
|
|
Responsible: TBD
|
|
|
|
|
|
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. Code has been written, but did not show any performance
|
|
improvement. We will continue to monitor this area.
|
|
|
|
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
|
|
|
|
|
|
10. Ephemeral Mapping
|
|
---------------------
|
|
|
|
Responsible: rmind
|
|
|
|
|
|
11. Multicast DNS and DNS Service Discovery
|
|
-------------------------------------------
|
|
|
|
mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
|
|
at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
|
|
OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
|
|
DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
|
|
will appear in NetBSD 6.0.
|
|
|
|
|
|
Alistair Crooks
|
|
Sat Jan 14 11:40:49 PST 2012
|