  UMSDOS HOW-TO
  Jacques Gelinas, jacques@solucorp.qc.ca
  v1.1, 13 November 1995

  _U_m_s_d_o_s is a linux file system. It provide an alternative to the _E_X_T_2
  file-system. Its main goal is to achieve easier coexistence with _M_s_-
  _D_O_S data by sharing the same partition.  This document explain first
  how to use Umsdos in different configuration, and later explain its
  operation and try to provide some information letting you decide if it
  is a good choice for you (see UMSDOS-WHY-TO at the end).
  ______________________________________________________________________

  Table of Contents





















































  1. UMSDOS: Where is it ?

     1.1 History
     1.2 Availability
     1.3 Distribution supporting it
     1.4 Home site
     1.5 Technical documentation
     1.6 Who wrote it

  2. Umsdos as your root partition

     2.1 The pseudo-root concept.
     2.2 Things to know about the pseudo-root

  3. Different topics about the operation of

     3.1 Mount option
     3.2 How to set defaults for the root
     3.3 To swap or not to swap

  4. How to boot a Umsdos system

     4.1 Loadlin
     4.2 From a floppy
     4.3 LILO
     4.4 How to defragment a
     4.5 Advance tricks

  5. Basic principle

     5.1 Introduction
     5.2 (EM
     5.3 Directory promotion
     5.4 How to promote:
     5.5 Using
     5.6 How to UN-promote
     5.7 What about files created during a

  6. Installation/UN-installation and some tricks

     6.1 The pseudo-root
     6.2 Preparing
     6.3 Making sure
     6.4 Oops releasing pseudo root ...
     6.5 How to UN-install a
     6.6 Moving a
     6.7 About installing 50

  7. Setting a

  8. UMSDOS-WHY-TO

     8.1 The goal of
     8.2 Who needs it
     8.3 Performance issue


  ______________________________________________________________________

  11..  UUMMSSDDOOSS:: WWhheerree iiss iitt ??






  11..11..  HHiissttoorryy


  The _U_m_s_d_o_s project was started in 1992 and made available to the net
  in January 1994 as a patch. It was included in the standard kernel
  distribution in July, starting with kernel 1.1.36.

  _U_m_s_d_o_s was early adopted in the _S_l_a_c_k_w_a_r_e distribution even before it
  was officially included in the official kernel.

  _U_m_s_d_o_s was improved starting at kernel 1.1.60. Its performance has
  been dramatically enhanced, especially for writing. Since 1.1.70
  (around this), it is stable again.

  A major bug was solve in _L_i_n_u_x 1.2.2. This bug was causing some grief
  to users since the beginning (some file were silently renamed, giving
  the sad impression that they were deleted). Beware that _S_l_a_c_k_w_a_r_e 2.2
  is still shipping release 1.2.1 of the kernel, so has this bug.


  11..22..  AAvvaaiillaabbiilliittyy


  It is available as a patch for kernel 1.0.x. It is built-in for kernel
  1.2. It can be compiled in or load as a module.  Beware that for now,
  if you intend to load _u_m_s_d_o_s as a module, you must also use the Ms-DOS
  fs as a module. This come from a limitation in the module system (some
  symbols are only export when the drivers is installed as a module).


  11..33..  DDiissttrriibbuuttiioonn ssuuppppoorrttiinngg iitt


  So far, I think only _S_l_a_c_k_w_a_r_e does support it. I am surely wrong, so
  please send me info to correct this.


  11..44..  HHoommee ssiittee


  The home site for _U_m_s_d_o_s is sunsite.unc.edu. Look in the directory
  /pub/Linux/system/Filesystems/umsdos.


  11..55..  TTeecchhnniiccaall ddooccuummeennttaattiioonn

  There is quite a lot of documentation about the internal of _U_m_s_d_o_s. It
  is available both in HTML and text format at the same location as the
  utilities.

  As far as I know, the HTML version is not available online on any web
  site. You must down-load it and "UN-tar" it and read it locally.


  11..66..  WWhhoo wwrroottee iitt


  Jacques Gelinas jacques@solucorp.qc.ca


  22..  UUmmssddooss aass yyoouurr rroooott ppaarrttiittiioonn





  22..11..  TThhee ppsseeuuddoo--rroooott ccoonncceepptt..

  With _U_m_s_d_o_s, _L_i_n_u_x can be installed in a standard DOS partition. _L_i_n_u_x
  is then installed as a second (or third) OS in the partition. To avoid
  name collision (there is maybe a bin or tmp directory in the drive C:
  already), _U_m_s_d_o_s use a smart trick: The pseudo-root.

  All _L_i_n_u_x files are installed in a DOS subdirectory called linux,
  generally C: LINUX. The normal _L_i_n_u_x_/_U_n_i_x directory structure goes
  there. So you get


  +o

     C:\LINUX\BIN



  +o

     C:\LINUX\ETC



  +o

     C:\LINUX\LIB



  +o

     C:\LINUX\ROOT



  +o

     C:\LINUX\SBIN



  +o

     C:\LINUX\TMP



  +o

     C:\LINUX\USR



  +o

     C:\LINUX\VAR



  When the _U_m_s_d_o_s boot, it probes for the directory linux and then
  /linux/etc. If it exist, it activates the pseudo-root mode.

  Mostly, the pseudo-root mode switch the root of the partition to
  C:\\LINUX giving the conventional _U_n_i_x directory layout

  +o

     /bin



  +o

     /etc



  +o

     /lib



  +o

     /root



  +o

     /sbin



  +o

     /tmp



  +o

     /usr



  +o

     /var



  To this list, it adds a new one called DOS. This one is a virtual
  directory.


  22..22..  TThhiinnggss ttoo kknnooww aabboouutt tthhee ppsseeuuddoo--rroooott


  +o  This mode can only be triggered at boot time. There is no way to
     activate this by a mount command.

  +o  This mechanism is purely a different view of a normal _U_m_s_d_o_s file-
     system. This means that a partition normally used as a root
     partition can be normally mounted. There won't be any pseudo-root
     effect.

     For example, if you boot linux with a maintenance floppy and mount
     your normal root partition in /mnt, you will find all your linux
     directory in /mnt/linux/bin, /mnt/linux/etc and so on.
  33..  DDiiffffeerreenntt ttooppiiccss aabboouutt tthhee ooppeerraattiioonn ooff UUmmssddooss



  33..11..  MMoouunntt ooppttiioonn


  You can use the same mount option as for the Ms-DOS file system.  The
  option conv= is questionable on a _U_m_s_d_o_s system. I suggest to avoid
  it. Mostly the option you may want to look at are


  +o  uid=

  +o  gid=

  +o  umask=

  Just remember that _U_m_s_d_o_s manage non promoted directory the same way
  as the _M_s_-_D_O_S file system. The option above will apply globally to all
  non promoted directory. _u_i_d setup the default owner, _g_i_d setup the
  default group and _u_m_a_s_k setup the default permissions.


  33..22..  HHooww ttoo sseett ddeeffaauullttss ffoorr tthhee rroooott


  umssetup was created to provide at run time default ownership for the
  root partition. For other _U_m_s_d_o_s partition, mount option may be used
  or umssetup. Storing mount option in /etc/fstab is the prefered way
  for non root partition. Here is an example.  Put this in
  /etc/rc.d/rc.S.



                       /sbin/umssetup -u jack -g group -m 0755 /






  33..33..  TToo sswwaapp oorr nnoott ttoo sswwaapp


  Using a swap file is generally slower than a swap partition.  It is
  however much more flexible. You can setup a swap file in a _U_m_s_d_o_s
  partition the same way you do it for any other _L_i_n_u_x file systems. For
  example, to setup a 8 megabytes swap file in the root directory:



                       dd if=/dev/zero bs=1024k count=8 of=/swap
                       mkswap /swap 8192
                       sync
                       swapon /swap





  Once done, you can put the following line in /etc/fstab




                  /swap   swap    swap    default





  And the swap file will be activated at each boot (There is generally a
  "swapon -a" in /etc/rc.d/rc.S).


  44..  HHooww ttoo bboooott aa UUmmssddooss ssyysstteemm



  44..11..  LLooaaddlliinn


  The package lodlin15.tgz available from sunsite.unc.edu in
  /pub/Linux/system/Bootutils. This utility is particularly suited to
  boot a _U_m_s_d_o_s system. Generally all you need to do is



               Boot DOS
               C:>loadlinx zimage root=D:





  where zimage is a normal kernel image (compressed) simply copied
  somewhere in the DOS drive. D: is the DOS drive where you have
  installed _L_i_n_u_x.


  44..22..  FFrroomm aa ffllooppppyy


  Booting a _U_m_s_d_o_s system from a floppy is not different from booting a
  _E_x_t_2 system. You need a kernel zImage file properly initialize to
  locate your root _U_m_s_d_o_s partition. This is generally achieved using
  the command rdev. The following sequence will initialize a zImage and
  put it on a floppy.



               rdev zImage /dev/hda1
               rdev -R zImage 0
               dd if=zImage bs=8192 of=/dev/fd0





  If this looks confusing, just format a boot-able DOS floppy and put
  the following component on it.


  +o  loadlin.exe

  +o  loadlinx.exe

  +o  zimage

  and setup the autoexec.bat like this

               loadlinx zimage rw root=C:






  44..33..  LLIILLOO


  LILO, the official _L_i_n_u_x boot loader can also be used to boot a _U_m_s_d_o_s
  system. I have no experience with it though. Since 1.1.60, it should
  work. Please email if you know something.


  44..44..  HHooww ttoo ddeeffrraaggmmeenntt aa UUmmssddooss  ppaarrttiittiioonn


  It can be done using any popular DOS tool. There is nothing particular
  about file produced by _U_m_s_d_o_s. And _U_m_s_d_o_s do not expect anything
  particular (directory layout, directory entry sequence, etc...) from
  the file system under it.

  As far as I know, there is no _L_i_n_u_x tool to achieve this.


  44..55..  AAddvvaannccee ttrriicckkss

  _U_m_s_d_o_s rely on the --linux-.--- which rely on the _D_O_S directory. Some
  users may want to experiment a bit. The utility udosctl part of the
  umsdos_progs package (containing umssync and umssetup) allows basic
  directory operation (listing, deletion) independently on the
  --linux-.--- and the _D_O_S directory.



  55..  BBaassiicc pprriinncciippllee



  55..11..  IInnttrroodduuccttiioonn


  _U_m_s_d_o_s map _L_i_n_u_x files directly to _M_s_-_D_O_S files.  This is a one for
  one translation. File content is not manipulated at all. _U_m_s_d_o_s only
  works on names. For special files (links and devices for example), it
  introduces special management.

  For each directory, there is a file named --linux-.---.


  55..22..  UUmmssddooss  ccaann rreeppllaaccee tthhee MMss--DDOOSS  ffiillee--ssyysstteemm..


  _U_m_s_d_o_s can be thought as a general purpose superset of the _M_s_-_D_O_S file
  system of linux. In fact this capability or flexibility yields much
  confusion about _U_m_s_d_o_s. Here is why. Try to mount a newly formatted
  _D_O_S floppy like this.



               mount -t umsdos /dev/fd0 /mnt




  And do this,



               ls / >/mnt/LONGFILENAME
               ls -l /mnt





  You will get the following result



               -rwxr-xr-x   1 root     root          302 Apr 14 23:25 longfile





  So far, it seems that the _U_m_s_d_o_s file system does not do much more (in
  fact nothing at all) than the normal _M_s_-_D_O_S file system of _L_i_n_u_x.

  _?_?_?


  55..33..  DDiirreeccttoorryy pprroommoottiioonn


  Pretty unimpressive so far. Here is the trick. Unless promoted a _D_O_S
  directory will be managed the same way with _U_m_s_d_o_s than the _M_s_-_D_O_S
  file-system will. _U_m_s_d_o_s use a special file in each subdirectory to
  achieve the translation between the extended capabilities (long name,
  ownership, etc...) of _U_m_s_d_o_s and the limitation of the _D_O_S file-
  system.  This file is invisible to _U_m_s_d_o_s users, but visible when you
  boot _D_O_S. To avoid cluttering the _D_O_S partition with those file
  (--linux-.---) uselessly, the file is now optional. If absent, _U_m_s_d_o_s
  behave like _M_s_-_D_O_S.

  When a directory is promoted, any subsequent operation will be done
  with the full semantic normally available to _U_n_i_x and _L_i_n_u_x users. And
  all subdirectory created afterward will be silently promoted.

  This feature allows you to logically organize your _D_O_S partition into
  _D_O_S stuff and _L_i_n_u_x stuff. It is important to understand that those
  --linux-.--- file do take some place (generally 2k per directory). _D_O_S
  generally use large cluster (as big as 16k for a 500meg partition), so
  avoiding putting --linux-.--- everywhere can save your day.


  55..44..  HHooww ttoo pprroommoottee:: //ssbbiinn//uummssssyynncc


  A directory can be promoted any time using /sbin/umssync.  It can be
  used at any time. Promoting a directory do the following operation


  +o  Create a --linux-.---.

  +o  Establish a one to one relation between the --linux-.--- and the
     current content of the directory.

  /sbin/umssync maintain an existing --linux-.--- file.  It does not
  create it from scratch all the time. It simply add missing entries in
  it (Files created during a _D_O_S session).  It will also removed files
  which do not exist anymore in the _D_O_S directory from the _-_-_l_i_n_u_x_-_._-_-_-.
  umssync gets its name from that. It put _-_-_l_i_n_u_x_-_._-_-_- in sync with the
  underlying _D_O_S directory.


  55..55..  UUssiinngg //ssbbiinn//uummssssyynncc  aatt bboooott ttiimmee

  It is a good idea to place a call to /sbin/umssync at the end of your
  /etc/rc.d/rc.S if it's not there. The following command is adequate
  for most system:



               /sbin/umssync -r99 -c -i+ /





  The -c option prevent umssync from promoting directories. It will only
  update existing --linux-.---.

  This command is useful if you access _L_i_n_u_x directory during a _D_O_S
  session. _L_i_n_u_x has no efficient way to tell that a directory has been
  modified by _D_O_S so _U_m_s_d_o_s can't do a _u_m_s_s_y_n_c operation as needed.


  55..66..  HHooww ttoo UUNN--pprroommoottee


  Remove the --linux-.--- file using _D_O_S. You will be sorry.


  55..77..  WWhhaatt aabboouutt ffiilleess ccrreeaatteedd dduurriinngg aa DDOOSS  sseessssiioonn ??


  Unless you use umssync on a directory where files have been added or
  removed by _D_O_S, you will notice some problems:


  +o  It won't crash the system nor it won't cause major problems, only
     annoyance :-)

  +o  Files created by _D_O_S.

  +o  They will be invisible in _L_i_n_u_x.

  +o  When trying to create a file with the same name, you will get an
     error message stating that the file already exist.

  +o  This creates more confusion that real problem. It does not harm the
     file system.

  +o  Files deleted by _D_O_S won't cause problem. _U_m_s_d_o_s will notice the
     absence at the first access. A message will be output (and
     generally written into /var/adm/syslog).


  66..  IInnssttaallllaattiioonn//UUNN--iinnssttaallllaattiioonn aanndd ssoommee ttrriicckkss

  The installation of a _U_m_s_d_o_s is not much different from the
  installation of an ordinary (_E_x_t_2 _b_a_s_e_d) _L_i_n_u_x system.

  There are two main differences.


  66..11..  TThhee ppsseeuuddoo--rroooott //mmnntt//lliinnuuxx

  The normal steps for an installation are


  1. Setting a partition with fdisk and formatting it.

  2. Mounting it as /mnt relative to our installation root disk.

  3. Copy all packages into /mnt.

  With _U_m_s_d_o_s, the step 1 is not required (wasn't it the goal of _U_m_s_d_o_s
  not to reformat ?).

  It is possible to install a _U_m_s_d_o_s system just by copying all packages
  into /mnt. This will certainly work. But it will create a bunch of
  subdirectories into your _D_O_S root directory (C:) and you won't like
  it. This is the reason all _U_m_s_d_o_s installation use the pseudo-root.
  And this is the major difference between a normal _E_x_t_2 installation
  and a _U_m_s_d_o_s one: All files are copied into /mnt/linux.


  66..22..  PPrreeppaarriinngg //mmnntt//lliinnuuxx

  /mnt/linux is not an ordinary directory. It has to be promoted so it
  will correctly handle _L_i_n_u_x long file name and special files (links,
  device). The step required to setup /mnt/linux are:


  1. mkdir /mnt/linux

  2. umssync /mnt/linux

  That's it!


  66..33..  MMaakkiinngg ssuurree //mmnntt//lliinnuuxx  iiss ccoorrrreeccttllyy sseettuupp

  Even if the setup of /mnt/linux is pretty simple, there are many
  installation package out there who get it wrong. How can ?

  The biggest installation problem come from an incompatible umssync
  program. _U_m_s_d_o_s has been update in linux 1.1.88 (Can't remember
  exactly) and a flaw was uncovered in umssync. To avoid confusion in
  the _L_i_n_u_x community, it was decided to raise the compatibility level
  required for all _U_m_s_d_o_s tools. Old version of the tools were simply
  rejected.

  It sounds like many distribution did not update their umssync utility
  on the installation disk.

  There are still many distribution like this out there. The net result
  is that the directory /mnt/linux is not promoted at all and will
  truncate all long file name and will reject all special file.

  It is possible to do a test very early during the installation to find
  out if something went wrong. Thanks to the pseudo console mechanism of
  _L_i_n_u_x, you can do that without leaving the installation program. Do
  the following steps:


  1. Press Alt-F2 (Alt key at the same time as the F2 key).

  2. login as root.


  3. cd /mnt/linux

     If this fail, you are trying this too early. A good time to do this
     is at the end of the packages selection.

  4. >TOTO

  5. ls -l

     You should see an empty file TOTO in uppercase. If you see it in
     lowercase, something went wrong. Try to do the umssync step again.
     umssync can be use over and over without problem.

     umssync .

     If there is no error message, try the TOTO test again.  If TOTO
     appears fine, then all is OK. Something is strange in this
     installation, but you just save it. Continue


  6. Press Alt-F1 to get back to the installation screen.

  If the test fail, the best fix is to get a newer installation root
  disk. You can generally fix this root disk by installing a newer
  version of umssync. This is not difficult but required a working _L_i_n_u_x
  system. You simply have to mount the root disk floppy and replace the
  offending umssync with a new one.


  66..44..  OOooppss rreelleeaassiinngg ppsseeuuddoo rroooott ......

  Most _U_m_s_d_o_s installation which fail, do this by printing this strange
  message. This is not a bug in _U_m_s_d_o_s although the message looks
  strange. Here are the known causes.


  +o  The most common one

     The _S_l_a_c_k_w_a_r_e installation try to setup a swap file very early
     during the installation. To do so, it asks you to select a
     partition (dos drive), then mount it and set the swap file.

     When installing a _S_l_a_c_k_w_a_r_e system, you must setup the target
     partition prior to install. This normally mounts the _D_O_S partition
     on /mnt, creates the /mnt/linux directory and applies umssync on
     it.

     This is where most problems come from. Most user just forget the
     "setup target partition" step and go directly to the rest of the
     installation. Since /mnt is already mounted, this mistake goes
     unnotice.  This means that /mnt/linux was not created properly (Not
     promoted). All special files and links and long names can't be
     created properly.


  +o  Invalid umssync utility

     /mnt/linux was improperly setup-ed. Generally caused by an improper
     umssync utility on the installation root disk.

  +o  Old bug in umsdos

     There was a bug in _U_m_s_d_o_s prior to _L_i_n_u_x _1_._2_._2. The pseudo-root
     mode would not activate properly if the file /etc/init was missing.
     init is now located in /sbin. You can fix it by getting a newer
     kernel.  This is recommended because another bug was uncover and
     fixed in 1.2.2.

     If you can't upgrade, do this


     1. Boot from you installation disk.

     2. Login as root.

     3. mount -t umsdos /dev/hdXX /mnt

        where /dev/hdXX is your _D_O_S partition.

     4. cd /mnt/linux/etc

     5. ln -s ../sbin/init init

     6. cd /

     7. Ctrl-Alt-Del

     8. Boot your _U_m_s_d_o_s normally.

  Unfortunatly, the first two (Installation problems) produce a
  completly unusable installation. Uninstall it (See next section) and
  install again.



  66..55..  HHooww ttoo UUNN--iinnssttaallll aa UUmmssddooss  ssyysstteemm

  One neat thing about _U_m_s_d_o_s and its pseudo-root mechanism, is that you
  can UN-install it without pain. You just boot _D_O_S and recursively
  delete the linux directory. That's all. _U_m_s_d_o_s requires no special
  drivers in the config.sys, nor it creates anything special outside of
  the linux directory.


  66..66..  MMoovviinngg aa UUmmssddooss  ssyysstteemm ttoo aannootthheerr DDOOSS  ddrriivvee

  This can be done from _L_i_n_u_x or from _D_O_S.  You just have to copy
  recursively the linux directory from one drive to the other. After
  that you will have to adjust you boot mechanism (generally loadlin
  command) and the /etc/fstab file.

  _U_m_s_d_o_s can live on any _D_O_S drive. There is no need to install it on
  the C: drive, nor it is important to have it on the first hard drive.
  It does not matter at all.

  In fact, one may decide to have several _U_m_s_d_o_s installations on
  different drive just to do experiments.


  66..77..  AAbboouutt iinnssttaalllliinngg 5500 UUmmssddooss  ssyysstteemmss..

  How about installing a bunch of _L_i_n_u_x systems in no time ?

  _U_m_s_d_o_s systems are living in a _D_O_S world. You can take advantage of
  this if you wish to install _L_i_n_u_x easily.

  You can install and configure a _U_m_s_d_o_s system at your site.  When you
  are satisfied with the configuration and the different packages you
  have selected, you can boot _D_O_S and copy the complete linux directory
  to your _D_O_S file server. Then you go to other _D_O_S station and simply
  copy the files on the network drive to the local drive.  That's it.
  Only adjust the boot script (_L_o_a_d_l_i_n_x) and go.
  With minimal adjustment (Host name, IP number), anyone will be able to
  install a _L_i_n_u_x system in a matter of minute.

  Interest readers may note that installing _L_i_n_u_x systems by copying
  running system also works for any other _L_i_n_u_x systems, including _E_x_t_2
  based one.

  One beauty of _L_i_n_u_x is that there is no hidden files which have to be
  install by magic installation program.


  77..  SSeettttiinngg aa LLiinnuuxx  sseeccttiioonn iinn aa DDOOSS  ppaarrttiittiioonn

  _U_m_s_d_o_s has some use even for _E_x_t_2 (Native _L_i_n_u_x file-system) users.
  One common scenario is this:


  +o  _L_i_n_u_x being your _O_S of choice, the _L_i_n_u_x partition start to fill
     and fill and fill.

  +o  Your _D_O_S partition is collecting dust, being half empty.

  +o  You are suddenly out of space in the _E_x_t_2 partition.

  +o  You are still not sure you want to get rid of _D_O_S.

  _U_m_s_d_o_s may save the day here. You can setup a _L_i_n_u_x directory in the
  _D_O_S partition and use it without restriction for _L_i_n_u_x usage. For
  example, say you want to setup a new directory named "extra" in your
  C: drive. And you want this directory to behave as a normal _L_i_n_u_x
  directory. Do this (assuming that C: is /dev/hda1).



               mkdir /c
               /sbin/mount -t umsdos /dev/hda1 /c
               mkdir /c/extra
               umssync /c/extra





  You must be root to do this.

  By setting up /etc/fstab like this, you will always have access to the
  /c/extra directory.



  88..  UUMMSSDDOOSS--WWHHYY--TTOO

  Explaining how to operate or install a _U_m_s_d_o_s system is not enough.
  Most people are seeking some advises about using _U_m_s_d_o_s or not.



  88..11..  TThhee ggooaall ooff UUmmssddooss

  The goal of _U_m_s_d_o_s was to ease the installation of _L_i_n_u_x. An other
  goal was to ease its UN-installation.  The idea here was to promote
  the spreading of _L_i_n_u_x.  Installing a new OS on a system is always
  troublesome. _O_S_/_2 for one will happily pollute your C: root with a
  bunch of new directories. If you are clever like me, it will also
  erase your config.sys and autoexec.bat files :-(

  The pseudo-root feature of _U_m_s_d_o_s avoid this unwanted invasion. _L_i_n_u_x
  can be UN-install without side effect.


  88..22..  WWhhoo nneeeeddss iitt

  If you have a small hard drive, _U_m_s_d_o_s will allow you to share disk
  space between _D_O_S and _L_i_n_u_x. A disk below 300 megs is in my opinion a
  small disk. This opinion is based on the size of the different package
  available today.  One popular word processor may eat as much as 70
  megabytes if you select all features.

  If you have a larger drive, you may consider having a dedicated _L_i_n_u_x
  partition running the _E_x_t_2 file-system. _E_x_t_2 use a smaller cluster
  size that _D_O_S (1k in fact) so installing many small files will eat
  less space than in a _U_m_s_d_o_s partition.


  88..33..  PPeerrffoorrmmaannccee iissssuuee

  The following point apply to _U_m_s_d_o_s compared with _E_x_t_2.


  +o  Directory management is faster on _E_x_t_2. This come from the overhead
     of the double directory structure of _U_m_s_d_o_s.

  +o  File access (reading and writing) is probably faster on _U_m_s_d_o_s than
     _E_x_t_2. This come from the simplicity of the _F_A_T file-system used by
     _D_O_S.

     Beware that this simplicity come with a cost:


  +o  A maximum of around 65,000 files or clusters per partitions. This
     also means that a 500 megabytes partition will use cluster 16k
     large.  In other word, a file containing a single byte will use 16k
     of disk storage.

  +o  Everything is controlled by the FAT located at the beginning of the
     hard drive. The _D_O_S file-system is probably more fragile because of
     this.

  +o  No provision to avoid fragmentation of files. A _U_m_s_d_o_s system will
     generally be used as a single user workstation. In this case, this
     does not matter much. As a multi-user engine, files will get
     spread-ed all around the drive, lowering file access performance.

  +o  Symbolic links are stored in normal file. If you intend to have a
     lot of them, you will find that _U_m_s_d_o_s use quite a lot of disk
     space compared to _E_x_t_2.
















