The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/hfs/TODO

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 The hfs_fs "to do" list.
    2 ------------------------
    3 Items are broken down into groups and the groups are listed in order
    4 from most important to least important.  The items within each group
    5 are not placed in any particular order.  The order in which items are
    6 listed probably doesn't correlate well with the order they will be
    7 addressed.
    8 
    9 Genuine bugs:
   10 1.      Header files have compiled-in limit (currently 10) on descriptors.
   11 
   12 Missing features:
   13 1.      1k block support is needed for some devices.
   14 2.      An ioctl()-based interface is needed to provide a consistent way
   15         to do things under all of the representations of forked files.
   16 
   17 Possible additional "fork" mount options:
   18 1.      AppleSingle.
   19 2.      The scheme MacOS uses on FAT disks (PC Exchange).
   20 3.      "Flat" (no resource forks or metadata).
   21 
   22 Performance issues:
   23 1.      Use drAllocPtr to speed block allocations.
   24 2.      Keep a real cache of bnodes, rather than just a hash table of
   25         the ones that are currently in use.
   26 3.      Keep a real cache of extent records, rather than just a linked
   27         list of the ones that are currently in use and the one most
   28         recently used.  This is particularly needed to get acceptable
   29         performance with multiple readers on a file.  Perhaps simply
   30         keep them in memory once they've been read until the file is
   31         closed.
   32 
   33 Implementation details:
   34 1.      Allocation scheme could/should be closer to that used by Apple.
   35 2.      B*-tree insertion could/should be closer to that used by Apple.
   36 3.      Magic-number checks on data structures are rarely done.
   37 4.      Error recovery is needed for failed binsert(), bdelete() and rename().
   38 5.      Deadlock detection is needed to make insert_empty_bnode() and
   39         bdelete() less likely to hang on a corrupted B-tree.
   40 6.      Metadata for covered directories shouldn't appear in the filesystem.
   41         Under CAP and AppleDouble it currently does.  However, the obvious
   42         solution is a real performance killer and is not worth implementing.
   43 
   44 Fantasy features:
   45 1.      Access Desktop file/database for comment and icon.
   46 2.      Implement mmap() for AppleDouble header files and CAP info files.
   47 3.      Implement AppleShare client support.
   48 
   49 Suggestions/comments/questions are welcome.
   50 Code addressing any of the issues listed above is especially welcome.
   51 Paul H. Hargrove
   52 hargrove@sccm.Stanford.EDU

Cache object: c5ab02381da1cdbe4233480a1ca4e519


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.