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