system revision 1.9
11.9Sagc$NetBSD: system,v 1.9 2012/01/15 02:49:12 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.6Sagc2. Better Kernel Module Support 421.6Sagc------------------------------- 431.6Sagc 441.6SagcStarting with 5.99.2, the kernel support for modules was enhanced by 451.6Sagcad, and GENERIC was switched over to be a MODULAR kernel. Support 461.6Sagcfrom booting from modules, like ffs, was introduced at the same time. 471.6SagcSome work has been done by Luke Mewburn in this area to define module 481.6Sagclocations and paths so that effective kernel development can be done 491.8Sagcusing modules. Kernel modules have been moved out of base.tgz and a new 501.8Sagcmodules.tgz has been created. 511.6Sagc 521.6SagcResponsible: ad, lukem 531.6Sagc 541.7Sagc3. Full kernel preemption for real-time threads on non-x86 551.7Sagc---------------------------------------------------------- 561.5Sagc 571.7SagcWith the revamp of the kernel concurrency model, much of the kernel is 581.7Sagcfully multi-threaded and can therefore be preempted at any time. In 591.7Sagcsupport of lower context switch and dispatch times for real-time 601.7Sagcthreads, full kernel preemption is being implemented. This has been 611.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to 621.7Sagcbe extended to support the ARM, MIPS and SuperH ports. 631.7Sagc 641.7SagcResponsible: rmind 651.5Sagc 661.9Sagc 671.6Sagc4. POSIX shared memory 681.6Sagc---------------------- 691.1Sagc 701.1SagcImplement POSIX shared memory facilities, which can be used to create the 711.1Sagcshared memory objects and add the memory locations to the address space of 721.1Sagca process. 731.1Sagc 741.1SagcResponsible: rmind 751.1Sagc 761.9Sagc 771.6Sagc5. Incremental namei improvements, Phase 1 781.6Sagc------------------------------------------ 791.1Sagc 801.6SagcIn NetBSD 5.99.15, some changes were made to split the namei() routine 811.6Sagcup into logical parts, so that changes can be made to the constituent 821.7Sagcparts in a less intrusive way. This is in the repository now, and will 831.7Sagcbe in 6.0. 841.1Sagc 851.1SagcResponsible: dholland 861.1Sagc 871.9Sagc 881.6Sagc6. Better resource controls 891.6Sagc--------------------------- 901.1Sagc 911.1SagcA resource provisioning and control framework that extends beyond the 921.1Sagctraditional Unix process limits. 931.1Sagc 941.9SagcResponsible: TBD 951.9Sagc 961.9Sagc 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.9SagcResponsible: TBD 1041.9Sagc 1051.9Sagc 1061.6Sagc8. Processor and cache topology aware scheduler 1071.6Sagc----------------------------------------------- 1081.1Sagc 1091.1SagcImplement the detection of the topology of the processors and caches. 1101.1SagcImprove the scheduler to make decisions about thread migration 1111.1Sagcaccording to the topology, to get better thread affinity and less 1121.1Sagccache thrashing, and thus improve overall performance in modern SMP 1131.1Sagcsystems. 1141.1Sagc 1151.1SagcResponsible: rmind 1161.1Sagc 1171.9Sagc 1181.6Sagc9. Incremental namei improvements, Phase 2 1191.6Sagc------------------------------------------ 1201.1Sagc 1211.7SagcBuilding on the namei() split which was introduced in 5.99.15 (see (5) 1221.7Sagcabove), further changes will be introduced: see the changes to namei 1231.7Sagcoutlined in Message-ID: <20080319053709.GB3951@netbsd.org> for more 1241.7Sagcinformation. This will simplify the locking and behavior of namei() 1251.7Sagccalls within the kernel to resolve path names within file systems. 1261.1Sagc 1271.1SagcResponsible: dholland 1281.1Sagc 1291.1Sagc 1301.8Sagc10. Ephemeral Mapping 1311.8Sagc--------------------- 1321.8Sagc 1331.8SagcResponsible: rmind 1341.8Sagc 1351.8Sagc 1361.8Sagc11. Multicast DNS and DNS Service Discovery 1371.8Sagc------------------------------------------- 1381.8Sagc 1391.8SagcmDNSResponder (also known as mdnsd on some systems) is a daemon invoked 1401.8Sagcat boot time to implement Multicast DNS and DNS Service Discovery. On Mac 1411.8SagcOS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast 1421.8SagcDNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it 1431.8Sagcwill appear in NetBSD 6.0. 1441.8Sagc 1451.1Sagc 1461.5SagcAlistair Crooks 1471.9SagcSat Jan 14 11:40:49 PST 2012 148