system revision 1.7 1 1.7 agc $NetBSD: system,v 1.7 2009/09/21 19:41:23 agc Exp $
2 1.1 agc
3 1.1 agc NetBSD System Roadmap
4 1.2 jmmv =====================
5 1.1 agc
6 1.1 agc This is a small roadmap document, and deals with the main system
7 1.1 agc aspects of the operating system.
8 1.1 agc
9 1.6 agc The following projects are expected to be included in NetBSD 6.0
10 1.1 agc
11 1.6 agc 1. 64-bit time values supported
12 1.6 agc 2. Better Kernel Modules support
13 1.6 agc 3. Full kernel preemption for real-time threads
14 1.6 agc 4. POSIX shared memory
15 1.6 agc 5. namei() tactical changes
16 1.6 agc 6. Better resource controls
17 1.6 agc 7. Improved observability: online crashdumps, remote debugging
18 1.6 agc 8. Processor and cache topology aware scheduler
19 1.6 agc 9. namei() strategic changes
20 1.1 agc
21 1.6 agc We currently expect to branch 6.0 in the March 2010 timeframe, with a view
22 1.6 agc to a 6.0 release later in 2010.
23 1.1 agc
24 1.1 agc We'll continue to update this roadmap as features and dates get firmed up.
25 1.1 agc
26 1.1 agc
27 1.1 agc Some explanations
28 1.1 agc =================
29 1.1 agc
30 1.6 agc 1. 64-bit time_t support
31 1.1 agc -------------------------
32 1.1 agc
33 1.1 agc The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
34 1.1 agc which use a time_t value are in danger of overflowing at the present time -
35 1.1 agc and to address this, 64-bit time_t values will be used to contain the number
36 1.7 agc of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
37 1.7 agc major bump - kudos and respect), and will be in 6.0.
38 1.1 agc
39 1.1 agc Responsible: christos
40 1.1 agc
41 1.6 agc 2. Better Kernel Module Support
42 1.6 agc -------------------------------
43 1.6 agc
44 1.6 agc Starting with 5.99.2, the kernel support for modules was enhanced by
45 1.6 agc ad, and GENERIC was switched over to be a MODULAR kernel. Support
46 1.6 agc from booting from modules, like ffs, was introduced at the same time.
47 1.6 agc Some work has been done by Luke Mewburn in this area to define module
48 1.6 agc locations and paths so that effective kernel development can be done
49 1.6 agc using modules.
50 1.6 agc
51 1.6 agc Responsible: ad, lukem
52 1.6 agc
53 1.7 agc 3. Full kernel preemption for real-time threads on non-x86
54 1.7 agc ----------------------------------------------------------
55 1.5 agc
56 1.7 agc With the revamp of the kernel concurrency model, much of the kernel is
57 1.7 agc fully multi-threaded and can therefore be preempted at any time. In
58 1.7 agc support of lower context switch and dispatch times for real-time
59 1.7 agc threads, full kernel preemption is being implemented. This has been
60 1.7 agc implemented already for i386 and x86_64 (and is in 5.0), but needs to
61 1.7 agc be extended to support the ARM, MIPS and SuperH ports.
62 1.7 agc
63 1.7 agc Responsible: rmind
64 1.5 agc
65 1.6 agc 4. POSIX shared memory
66 1.6 agc ----------------------
67 1.1 agc
68 1.1 agc Implement POSIX shared memory facilities, which can be used to create the
69 1.1 agc shared memory objects and add the memory locations to the address space of
70 1.1 agc a process.
71 1.1 agc
72 1.1 agc Responsible: rmind
73 1.1 agc
74 1.6 agc 5. Incremental namei improvements, Phase 1
75 1.6 agc ------------------------------------------
76 1.1 agc
77 1.6 agc In NetBSD 5.99.15, some changes were made to split the namei() routine
78 1.6 agc up into logical parts, so that changes can be made to the constituent
79 1.7 agc parts in a less intrusive way. This is in the repository now, and will
80 1.7 agc be in 6.0.
81 1.1 agc
82 1.1 agc Responsible: dholland
83 1.1 agc
84 1.6 agc 6. Better resource controls
85 1.6 agc ---------------------------
86 1.1 agc
87 1.1 agc A resource provisioning and control framework that extends beyond the
88 1.1 agc traditional Unix process limits.
89 1.1 agc
90 1.6 agc 7. Improved observability: online crashdumps, remote debugging
91 1.6 agc --------------------------------------------------------------
92 1.1 agc
93 1.1 agc XXX crashdumps while the system is running
94 1.1 agc XXX firewire support in libkvm
95 1.1 agc
96 1.6 agc 8. Processor and cache topology aware scheduler
97 1.6 agc -----------------------------------------------
98 1.1 agc
99 1.1 agc Implement the detection of the topology of the processors and caches.
100 1.1 agc Improve the scheduler to make decisions about thread migration
101 1.1 agc according to the topology, to get better thread affinity and less
102 1.1 agc cache thrashing, and thus improve overall performance in modern SMP
103 1.1 agc systems.
104 1.1 agc
105 1.1 agc Responsible: rmind
106 1.1 agc
107 1.6 agc 9. Incremental namei improvements, Phase 2
108 1.6 agc ------------------------------------------
109 1.1 agc
110 1.7 agc Building on the namei() split which was introduced in 5.99.15 (see (5)
111 1.7 agc above), further changes will be introduced: see the changes to namei
112 1.7 agc outlined in Message-ID: <20080319053709.GB3951 (a] netbsd.org> for more
113 1.7 agc information. This will simplify the locking and behavior of namei()
114 1.7 agc calls within the kernel to resolve path names within file systems.
115 1.1 agc
116 1.1 agc Responsible: dholland
117 1.1 agc
118 1.1 agc
119 1.1 agc
120 1.5 agc Alistair Crooks
121 1.7 agc Mon 21 Sep 2009 08:39:16 BST
122