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