system revision 1.8
11.8Sagc$NetBSD: system,v 1.8 2009/11/17 21:09:54 agc Exp $
21.1Sagc
31.1SagcNetBSD System Roadmap
41.2Sjmmv=====================
51.1Sagc
61.1SagcThis is a small roadmap document, and deals with the main system
71.1Sagcaspects of the operating system.
81.1Sagc
91.8SagcThe following projects are already in NetBSD-current and will appear
101.8Sagcin NetBSD 6.0:
111.1Sagc
121.6Sagc1. 64-bit time values supported
131.6Sagc2. Better Kernel Modules support
141.8Sagc5. namei() tactical changes
151.8Sagc10. emap (ephemeral mapping) support for i386 and amd64
161.8Sagc11. support for mDNSResponder
171.8Sagc
181.8SagcThe following projects are expected to be included in NetBSD 6.0
191.8Sagc
201.6Sagc3. Full kernel preemption for real-time threads
211.6Sagc4. POSIX shared memory
221.6Sagc6. Better resource controls
231.6Sagc7. Improved observability: online crashdumps, remote debugging
241.6Sagc8. Processor and cache topology aware scheduler
251.6Sagc9. namei() strategic changes
261.1Sagc
271.6SagcWe currently expect to branch 6.0 in the March 2010 timeframe, with a view
281.6Sagcto a 6.0 release later in 2010.
291.1Sagc
301.1SagcWe'll continue to update this roadmap as features and dates get firmed up.
311.1Sagc
321.1Sagc
331.1SagcSome explanations
341.1Sagc=================
351.1Sagc
361.6Sagc1. 64-bit time_t support
371.1Sagc-------------------------
381.1Sagc
391.1SagcThe Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
401.1Sagcwhich use a time_t value are in danger of overflowing at the present time -
411.1Sagcand to address this, 64-bit time_t values will be used to contain the number
421.7Sagcof seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
431.7Sagcmajor bump - kudos and respect), and will be in 6.0.
441.1Sagc
451.1SagcResponsible: christos
461.1Sagc
471.6Sagc2. Better Kernel Module Support
481.6Sagc-------------------------------
491.6Sagc
501.6SagcStarting with 5.99.2, the kernel support for modules was enhanced by
511.6Sagcad, and GENERIC was switched over to be a MODULAR kernel.  Support
521.6Sagcfrom booting from modules, like ffs, was introduced at the same time. 
531.6SagcSome work has been done by Luke Mewburn in this area to define module
541.6Sagclocations and paths so that effective kernel development can be done
551.8Sagcusing modules. Kernel modules have been moved out of base.tgz and a new
561.8Sagcmodules.tgz has been created.
571.6Sagc
581.6SagcResponsible: ad, lukem
591.6Sagc
601.7Sagc3. Full kernel preemption for real-time threads on non-x86
611.7Sagc----------------------------------------------------------
621.5Sagc
631.7SagcWith the revamp of the kernel concurrency model, much of the kernel is
641.7Sagcfully multi-threaded and can therefore be preempted at any time.  In
651.7Sagcsupport of lower context switch and dispatch times for real-time
661.7Sagcthreads, full kernel preemption is being implemented.  This has been
671.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to
681.7Sagcbe extended to support the ARM, MIPS and SuperH ports.
691.7Sagc
701.7SagcResponsible: rmind
711.5Sagc
721.6Sagc4. POSIX shared memory
731.6Sagc----------------------
741.1Sagc
751.1SagcImplement POSIX shared memory facilities, which can be used to create the
761.1Sagcshared memory objects and add the memory locations to the address space of
771.1Sagca process.
781.1Sagc
791.1SagcResponsible: rmind
801.1Sagc
811.6Sagc5. Incremental namei improvements, Phase 1
821.6Sagc------------------------------------------
831.1Sagc
841.6SagcIn NetBSD 5.99.15, some changes were made to split the namei() routine
851.6Sagcup into logical parts, so that changes can be made to the constituent
861.7Sagcparts in a less intrusive way. This is in the repository now, and will
871.7Sagcbe in 6.0.
881.1Sagc
891.1SagcResponsible: dholland
901.1Sagc
911.6Sagc6. Better resource controls
921.6Sagc---------------------------
931.1Sagc
941.1SagcA resource provisioning and control framework that extends beyond the
951.1Sagctraditional Unix process limits.
961.1Sagc
971.6Sagc7. Improved observability: online crashdumps, remote debugging
981.6Sagc--------------------------------------------------------------
991.1Sagc
1001.1SagcXXX crashdumps while the system is running
1011.1SagcXXX firewire support in libkvm
1021.1Sagc
1031.6Sagc8. Processor and cache topology aware scheduler
1041.6Sagc-----------------------------------------------
1051.1Sagc
1061.1SagcImplement the detection of the topology of the processors and caches. 
1071.1SagcImprove the scheduler to make decisions about thread migration
1081.1Sagcaccording to the topology, to get better thread affinity and less
1091.1Sagccache thrashing, and thus improve overall performance in modern SMP
1101.1Sagcsystems.
1111.1Sagc
1121.1SagcResponsible: rmind
1131.1Sagc
1141.6Sagc9. Incremental namei improvements, Phase 2
1151.6Sagc------------------------------------------
1161.1Sagc
1171.7SagcBuilding on the namei() split which was introduced in 5.99.15 (see (5)
1181.7Sagcabove), further changes will be introduced:  see the changes to namei
1191.7Sagcoutlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
1201.7Sagcinformation.  This will simplify the locking and behavior of namei()
1211.7Sagccalls within the kernel to resolve path names within file systems.
1221.1Sagc
1231.1SagcResponsible: dholland
1241.1Sagc
1251.1Sagc
1261.8Sagc10. Ephemeral Mapping
1271.8Sagc---------------------
1281.8Sagc
1291.8SagcResponsible: rmind
1301.8Sagc
1311.8Sagc
1321.8Sagc11. Multicast DNS and DNS Service Discovery
1331.8Sagc-------------------------------------------
1341.8Sagc
1351.8SagcmDNSResponder (also known as mdnsd on some systems) is a daemon invoked
1361.8Sagcat boot time to implement Multicast DNS and DNS Service Discovery. On Mac
1371.8SagcOS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
1381.8SagcDNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
1391.8Sagcwill appear in NetBSD 6.0.
1401.8Sagc
1411.1Sagc
1421.5SagcAlistair Crooks
1431.8SagcThu Nov  5 07:47:34 PST 2009
144