• Specification of the Umsdos file system for LINUX
  • What is UMSDOS
  • General strategy
  • File name mangling
    #Specification: file name / non MSDOS conforming / mangling

    #Specification: file name / non MSDOS conforming / mangling

    #Specification: file name / MSDOS devices / mangling

    #Specification: file name / --linux-.---

    #Specification: file name / non MSDOS conforming / base length 0

    #Specification: file name / non MSDOS conforming / mangling clash

    #Specification: file name / non MSDOS conforming / last char == .

    #Specification: file name / too long
  • --linux-.---: the EMD file
    #Specification: EMD file / record size

    #Specification: EMD file structure

    #Specification: EMD file / empty entries

    #Specification: strategy / in memory inode

    #Specification: strategy / in memory inode

    #Specification: EMD file / spare bytes
  • Hard links
    #Specification: hard link / strategy

    #Specification: hard link / directory

    #Specification: hard link / hidden name

    #Specification: hard link / first hard link

    #Specification: hard link / deleting a link
  • Symbolic links
    #Specification: symbolic links / strategy
  • Special file
    #Specification: Special files / strategy
  • Pseudo root
    #Specification: pseudo root / mount

    #Specification: pseudo root / directory /DOS

    #Specification: pseudo root / DOS hard coded

    #Specification: pseudo root / .. in real root

    #Specification: pseudo root / any file creation /DOS

    #Specification: pseudo root / dir lookup

    #Specification: pseudo root / DOS/..

    #Specification: pseudo root / DOS/linux

    #Specification: pseudo root / lookup(DOS)

    #Specification: pseudo root / reading real root

    #Specification: pseudo root / rmdir /DOS
  • Dual mode
    #Specification: dual mode / introduction

    #Specification: dual mode / rmdir in a DOS directory

    #Specification: mkdir / umsdos directory / create EMD
  • Miscellaneous
    1. UMSDOS_create
      #Specification: file creation / not atomic

      #Specification: create / . and ..
    2. UMSDOS_ioctl_dir
      #Specification: ioctl / acces

      #Specification: ioctl / prototypes

      #Specification: ioctl / UMSDOS_GETVERSION

      #Specification: ioctl / UMSDOS_READDIR_DOS

      #Specification: ioctl / UMSDOS_RMDIR_DOS

      #Specification: ioctl / UMSDOS_STAT_DOS

      #Specification: ioctl / UMSDOS_UNLINK_DOS

      #Specification: ioctl / UMSDOS_CREAT_EMD

      #Specification: ioctl / UMSDOS_READDIR_EMD

      #Specification: ioctl / UMSDOS_UNLINK_EMD

      #Specification: ioctl / UMSDOS_DOS_SETUP

      #Specification: ioctl / UMSDOS_INIT_EMD
    3. UMSDOS_lookup
      #Specification: locating .. / strategy

      #Specification: umsdos / lookup

      #Specification: umsdos / lookup / inode info

      #Specification: umsdos / i_nlink
    4. UMSDOS_notify_change
      #Specification: notify_change / msdos fs

      #Specification: root inode / attributes

      #Specification: notify_change / i_nlink > 0
    5. UMSDOS_readdir
      #Specification: umsdos / readdir

      #Specification: readdir / . and ..

      #Specification: umsdos / readdir / not in MSDOS
    6. mount and UMSDOS_remount_fs
      #Specification: mount / options
    7. UMSDOS_rename
      #Specification: rename / new name exist

      #Specification: rename / new name exist / possible flaw
    8. Data structure
      #Specification: inode / umsdos info
    9. Inode management
      #Specification: Inode / post initialisation
  • Synchronisation problems
    #Specification: create / file exist in DOS

    #Specification: mkdir / Directory already exist in DOS
  • Convention and style
    #Specification: function name / convention

    #Specification: style / iput strategy

    #Specification: convention / PRINTK Printk and printk
  • Weakness and features
    #Specification: weakness / hard link

    #Specification: weakness / hard link / rename directory

    #Specification: weakness / rename
  • utilities
    1. The UMSDOS synchroniser
      #Specification: utility / synchroniser

      #Specification: umssync / default creation mode

      #Specification: umssync / depth

      #Specification: umssync / mangled name

      #Specification: umssync / mount point

      #Specification: umssync / user mode
    2. Other
      #Specification: utilities / udump

      #Specification: umsdos_progs / udosctl
  • Test cases
    1. utstgen
      #Specification: umsdos / automated test / general

      #Specification: utstgen / hard link / cases / across directory boundary

      #Specification: utstgen / hard link / cases / target does not exist

      #Specification: utstgen / hard link / to a directory

      #Specification: utstgen / hard links / case / link 2 link 2 link ...

      #Specification: utstgen / multi task / basic test

      #Specification: utstgen / Rename test

      #Specification: utstgen / Rename test / open file

      #Specification: utstgen / rename / destination exist

      #Specification: utstgen / symbolic links / link 2 link 2 link ...

      #Specification: utstgen / creating . and ..

      #Specification: utstgen / removing a busy directory
    2. utstspc
      #Specification: umsdos / automated test / specific

      #Specification: utstspc / default environnement

      #Specification: utstspc / floppy only

      #Specification: utstspc / what's needed

      #Specification: utstspc / hard link / cases / across directory boundary

      #Specification: utstspc / hard link / cases / target does not exist

      #Specification: utstspc / hard link / in a DOS directory

      #Specification: utstspc / hard link / subdirectory of a dos directory

      #Specification: utstspc / hard link / to a directory

      #Specification: utstspc / hard links / case / link 2 link 2 link ...

      #Specification: utstspc / read write

      #Specification: utstspc / read write / text mode
  • The MsDOS fs

      #Specification: msdos / strategy / special device / dummy blocks

      #Specification: msdos / special devices / mmap

      #Specification: msdos / special devices / swap file

      #Specification: msdos / special device / writing