Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / doc / roadmaps / system
blobe566919fdd282fc0bea344f93d514726c649ac5a
1 $NetBSD: system,v 1.7 2009/09/21 19:41:23 agc Exp $
3 NetBSD System Roadmap
4 =====================
6 This is a small roadmap document, and deals with the main system
7 aspects of the operating system.
9 The following projects are already in NetBSD-current and will appear
10 in NetBSD 6.0:
12 1. 64-bit time values supported
13 2. Better Kernel Modules support
14 5. namei() tactical changes
15 10. emap (ephemeral mapping) support for i386 and amd64
16 11. support for mDNSResponder
18 The following projects are expected to be included in NetBSD 6.0
20 3. Full kernel preemption for real-time threads
21 4. POSIX shared memory
22 6. Better resource controls
23 7. Improved observability: online crashdumps, remote debugging
24 8. Processor and cache topology aware scheduler
25 9. namei() strategic changes
27 We currently expect to branch 6.0 in the March 2010 timeframe, with a view
28 to a 6.0 release later in 2010.
30 We'll continue to update this roadmap as features and dates get firmed up.
33 Some explanations
34 =================
36 1. 64-bit time_t support
37 -------------------------
39 The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
40 which use a time_t value are in danger of overflowing at the present time -
41 and to address this, 64-bit time_t values will be used to contain the number
42 of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
43 major bump - kudos and respect), and will be in 6.0.
45 Responsible: christos
47 2. Better Kernel Module Support
48 -------------------------------
50 Starting with 5.99.2, the kernel support for modules was enhanced by
51 ad, and GENERIC was switched over to be a MODULAR kernel.  Support
52 from booting from modules, like ffs, was introduced at the same time. 
53 Some work has been done by Luke Mewburn in this area to define module
54 locations and paths so that effective kernel development can be done
55 using modules. Kernel modules have been moved out of base.tgz and a new
56 modules.tgz has been created.
58 Responsible: ad, lukem
60 3. Full kernel preemption for real-time threads on non-x86
61 ----------------------------------------------------------
63 With the revamp of the kernel concurrency model, much of the kernel is
64 fully multi-threaded and can therefore be preempted at any time.  In
65 support of lower context switch and dispatch times for real-time
66 threads, full kernel preemption is being implemented.  This has been
67 implemented already for i386 and x86_64 (and is in 5.0), but needs to
68 be extended to support the ARM, MIPS and SuperH ports.
70 Responsible: rmind
72 4. POSIX shared memory
73 ----------------------
75 Implement POSIX shared memory facilities, which can be used to create the
76 shared memory objects and add the memory locations to the address space of
77 a process.
79 Responsible: rmind
81 5. Incremental namei improvements, Phase 1
82 ------------------------------------------
84 In NetBSD 5.99.15, some changes were made to split the namei() routine
85 up into logical parts, so that changes can be made to the constituent
86 parts in a less intrusive way. This is in the repository now, and will
87 be in 6.0.
89 Responsible: dholland
91 6. Better resource controls
92 ---------------------------
94 A resource provisioning and control framework that extends beyond the
95 traditional Unix process limits.
97 7. Improved observability: online crashdumps, remote debugging
98 --------------------------------------------------------------
100 XXX crashdumps while the system is running
101 XXX firewire support in libkvm
103 8. Processor and cache topology aware scheduler
104 -----------------------------------------------
106 Implement the detection of the topology of the processors and caches. 
107 Improve the scheduler to make decisions about thread migration
108 according to the topology, to get better thread affinity and less
109 cache thrashing, and thus improve overall performance in modern SMP
110 systems.
112 Responsible: rmind
114 9. Incremental namei improvements, Phase 2
115 ------------------------------------------
117 Building on the namei() split which was introduced in 5.99.15 (see (5)
118 above), further changes will be introduced:  see the changes to namei
119 outlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
120 information.  This will simplify the locking and behavior of namei()
121 calls within the kernel to resolve path names within file systems.
123 Responsible: dholland
126 10. Ephemeral Mapping
127 ---------------------
129 Responsible: rmind
132 11. Multicast DNS and DNS Service Discovery
133 -------------------------------------------
135 mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
136 at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
137 OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
138 DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
139 will appear in NetBSD 6.0.
142 Alistair Crooks
143 Thu Nov  5 07:47:34 PST 2009