Home | History | Annotate | Line # | Download | only in roadmaps
system revision 1.9
      1 $NetBSD: system,v 1.9 2012/01/15 02:49:12 agc Exp $
      2 
      3 NetBSD System Roadmap
      4 =====================
      5 
      6 This is a small roadmap document, and deals with the main system
      7 aspects of the operating system.
      8 
      9 The following projects will appear in NetBSD 6.0:
     10 1. 64-bit time values supported
     11 2. Better Kernel Modules support
     12 5. namei() tactical changes
     13 9. namei() strategic changes
     14 10. emap (ephemeral mapping) support for i386 and amd64
     15 11. support for mDNSResponder
     16 
     17 The following projects may make it into future releases:
     18 3. Full kernel preemption for real-time threads
     19 4. POSIX shared memory
     20 6. Better resource controls
     21 7. Improved observability: online crashdumps, remote debugging
     22 8. Processor and cache topology aware scheduler
     23 
     24 We'll continue to update this roadmap as features and dates get firmed up.
     25 
     26 
     27 Some explanations
     28 =================
     29 
     30 1. 64-bit time_t support
     31 -------------------------
     32 
     33 The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
     34 which use a time_t value are in danger of overflowing at the present time -
     35 and to address this, 64-bit time_t values will be used to contain the number
     36 of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
     37 major bump - kudos and respect), and will be in 6.0.
     38 
     39 Responsible: christos
     40 
     41 2. Better Kernel Module Support
     42 -------------------------------
     43 
     44 Starting with 5.99.2, the kernel support for modules was enhanced by
     45 ad, and GENERIC was switched over to be a MODULAR kernel.  Support
     46 from booting from modules, like ffs, was introduced at the same time. 
     47 Some work has been done by Luke Mewburn in this area to define module
     48 locations and paths so that effective kernel development can be done
     49 using modules. Kernel modules have been moved out of base.tgz and a new
     50 modules.tgz has been created.
     51 
     52 Responsible: ad, lukem
     53 
     54 3. Full kernel preemption for real-time threads on non-x86
     55 ----------------------------------------------------------
     56 
     57 With the revamp of the kernel concurrency model, much of the kernel is
     58 fully multi-threaded and can therefore be preempted at any time.  In
     59 support of lower context switch and dispatch times for real-time
     60 threads, full kernel preemption is being implemented.  This has been
     61 implemented already for i386 and x86_64 (and is in 5.0), but needs to
     62 be extended to support the ARM, MIPS and SuperH ports.
     63 
     64 Responsible: rmind
     65 
     66 
     67 4. POSIX shared memory
     68 ----------------------
     69 
     70 Implement POSIX shared memory facilities, which can be used to create the
     71 shared memory objects and add the memory locations to the address space of
     72 a process.
     73 
     74 Responsible: rmind
     75 
     76 
     77 5. Incremental namei improvements, Phase 1
     78 ------------------------------------------
     79 
     80 In NetBSD 5.99.15, some changes were made to split the namei() routine
     81 up into logical parts, so that changes can be made to the constituent
     82 parts in a less intrusive way. This is in the repository now, and will
     83 be in 6.0.
     84 
     85 Responsible: dholland
     86 
     87 
     88 6. Better resource controls
     89 ---------------------------
     90 
     91 A resource provisioning and control framework that extends beyond the
     92 traditional Unix process limits.
     93 
     94 Responsible: TBD
     95 
     96 
     97 7. Improved observability: online crashdumps, remote debugging
     98 --------------------------------------------------------------
     99 
    100 XXX crashdumps while the system is running
    101 XXX firewire support in libkvm
    102 
    103 Responsible: TBD
    104 
    105 
    106 8. Processor and cache topology aware scheduler
    107 -----------------------------------------------
    108 
    109 Implement the detection of the topology of the processors and caches. 
    110 Improve the scheduler to make decisions about thread migration
    111 according to the topology, to get better thread affinity and less
    112 cache thrashing, and thus improve overall performance in modern SMP
    113 systems.
    114 
    115 Responsible: rmind
    116 
    117 
    118 9. Incremental namei improvements, Phase 2
    119 ------------------------------------------
    120 
    121 Building on the namei() split which was introduced in 5.99.15 (see (5)
    122 above), further changes will be introduced:  see the changes to namei
    123 outlined in Message-ID:  <20080319053709.GB3951 (a] netbsd.org> for more
    124 information.  This will simplify the locking and behavior of namei()
    125 calls within the kernel to resolve path names within file systems.
    126 
    127 Responsible: dholland
    128 
    129 
    130 10. Ephemeral Mapping
    131 ---------------------
    132 
    133 Responsible: rmind
    134 
    135 
    136 11. Multicast DNS and DNS Service Discovery
    137 -------------------------------------------
    138 
    139 mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
    140 at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
    141 OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
    142 DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
    143 will appear in NetBSD 6.0.
    144 
    145 
    146 Alistair Crooks
    147 Sat Jan 14 11:40:49 PST 2012
    148