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