system revision 1.10
11.10Sagc$NetBSD: system,v 1.10 2012/01/15 03:11:13 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.9SagcThe following projects will appear in NetBSD 6.0:
101.6Sagc1. 64-bit time values supported
111.6Sagc2. Better Kernel Modules support
121.8Sagc5. namei() tactical changes
131.9Sagc9. namei() strategic changes
141.8Sagc10. emap (ephemeral mapping) support for i386 and amd64
151.8Sagc11. support for mDNSResponder
161.8Sagc
171.9SagcThe following projects may make it into future releases:
181.6Sagc3. Full kernel preemption for real-time threads
191.6Sagc4. POSIX shared memory
201.6Sagc6. Better resource controls
211.6Sagc7. Improved observability: online crashdumps, remote debugging
221.6Sagc8. Processor and cache topology aware scheduler
231.1Sagc
241.1SagcWe'll continue to update this roadmap as features and dates get firmed up.
251.1Sagc
261.1Sagc
271.1SagcSome explanations
281.1Sagc=================
291.1Sagc
301.6Sagc1. 64-bit time_t support
311.1Sagc-------------------------
321.1Sagc
331.1SagcThe Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
341.1Sagcwhich use a time_t value are in danger of overflowing at the present time -
351.1Sagcand to address this, 64-bit time_t values will be used to contain the number
361.7Sagcof seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
371.7Sagcmajor bump - kudos and respect), and will be in 6.0.
381.1Sagc
391.1SagcResponsible: christos
401.1Sagc
411.10Sagc
421.6Sagc2. Better Kernel Module Support
431.6Sagc-------------------------------
441.6Sagc
451.6SagcStarting with 5.99.2, the kernel support for modules was enhanced by
461.6Sagcad, and GENERIC was switched over to be a MODULAR kernel.  Support
471.6Sagcfrom booting from modules, like ffs, was introduced at the same time. 
481.6SagcSome work has been done by Luke Mewburn in this area to define module
491.6Sagclocations and paths so that effective kernel development can be done
501.8Sagcusing modules. Kernel modules have been moved out of base.tgz and a new
511.8Sagcmodules.tgz has been created.
521.6Sagc
531.6SagcResponsible: ad, lukem
541.6Sagc
551.10Sagc
561.7Sagc3. Full kernel preemption for real-time threads on non-x86
571.7Sagc----------------------------------------------------------
581.5Sagc
591.7SagcWith the revamp of the kernel concurrency model, much of the kernel is
601.7Sagcfully multi-threaded and can therefore be preempted at any time.  In
611.7Sagcsupport of lower context switch and dispatch times for real-time
621.7Sagcthreads, full kernel preemption is being implemented.  This has been
631.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to
641.10Sagcbe extended to support ARM and other ports.  MIPS has this, as does
651.10SagcPowerPC, but it is not yet enabled.
661.7Sagc
671.7SagcResponsible: rmind
681.5Sagc
691.9Sagc
701.6Sagc4. POSIX shared memory
711.6Sagc----------------------
721.1Sagc
731.10SagcImplement POSIX shared memory facilities, which can be used to create
741.10Sagcthe shared memory objects and add the memory locations to the address
751.10Sagcspace of a process.  Changes were proposed on tech-kern, although
761.10Sagcthere were some concerns with the kernel implementation, and so a
771.10Sagcdifferent approach using wrapper functions on tmpfs is being aimed at
781.10Sagcfor 6.0.
791.1Sagc
801.1SagcResponsible: rmind
811.1Sagc
821.9Sagc
831.6Sagc5. Incremental namei improvements, Phase 1
841.6Sagc------------------------------------------
851.1Sagc
861.6SagcIn NetBSD 5.99.15, some changes were made to split the namei() routine
871.6Sagcup into logical parts, so that changes can be made to the constituent
881.7Sagcparts in a less intrusive way. This is in the repository now, and will
891.7Sagcbe in 6.0.
901.1Sagc
911.1SagcResponsible: dholland
921.1Sagc
931.9Sagc
941.6Sagc6. Better resource controls
951.6Sagc---------------------------
961.1Sagc
971.1SagcA resource provisioning and control framework that extends beyond the
981.1Sagctraditional Unix process limits.
991.1Sagc
1001.9SagcResponsible: TBD
1011.9Sagc
1021.9Sagc
1031.6Sagc7. Improved observability: online crashdumps, remote debugging
1041.6Sagc--------------------------------------------------------------
1051.1Sagc
1061.1SagcXXX crashdumps while the system is running
1071.1SagcXXX firewire support in libkvm
1081.1Sagc
1091.9SagcResponsible: TBD
1101.9Sagc
1111.9Sagc
1121.6Sagc8. Processor and cache topology aware scheduler
1131.6Sagc-----------------------------------------------
1141.1Sagc
1151.1SagcImplement the detection of the topology of the processors and caches. 
1161.1SagcImprove the scheduler to make decisions about thread migration
1171.1Sagcaccording to the topology, to get better thread affinity and less
1181.1Sagccache thrashing, and thus improve overall performance in modern SMP
1191.10Sagcsystems. Code has been written, but did not show any performance
1201.10Sagcimpreovment. We will continue to monitor this area.
1211.1Sagc
1221.1SagcResponsible: rmind
1231.1Sagc
1241.9Sagc
1251.6Sagc9. Incremental namei improvements, Phase 2
1261.6Sagc------------------------------------------
1271.1Sagc
1281.7SagcBuilding on the namei() split which was introduced in 5.99.15 (see (5)
1291.7Sagcabove), further changes will be introduced:  see the changes to namei
1301.7Sagcoutlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
1311.7Sagcinformation.  This will simplify the locking and behavior of namei()
1321.7Sagccalls within the kernel to resolve path names within file systems.
1331.1Sagc
1341.1SagcResponsible: dholland
1351.1Sagc
1361.1Sagc
1371.8Sagc10. Ephemeral Mapping
1381.8Sagc---------------------
1391.8Sagc
1401.8SagcResponsible: rmind
1411.8Sagc
1421.8Sagc
1431.8Sagc11. Multicast DNS and DNS Service Discovery
1441.8Sagc-------------------------------------------
1451.8Sagc
1461.8SagcmDNSResponder (also known as mdnsd on some systems) is a daemon invoked
1471.8Sagcat boot time to implement Multicast DNS and DNS Service Discovery. On Mac
1481.8SagcOS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
1491.8SagcDNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
1501.8Sagcwill appear in NetBSD 6.0.
1511.8Sagc
1521.1Sagc
1531.5SagcAlistair Crooks
1541.9SagcSat Jan 14 11:40:49 PST 2012
155