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