An informal explanation of the boot sequence
============================================

Ok, firstly, we've got a three-stage boot sequence. You need to understand
a little of how this functions if you're installing things yourself.

The basic boot sequence runs thus :

* Run Utils:BootRun
  - set up library path (using multiple path entries for each entry in the
    boot sequence)
  - do softload if necessary (will reboot and restart the sequence)
  - load the logging system and other boot sequence modules
  - apply patches if running on RISC OS 4 ;-(
  - set up the choices path
    + Look at hardware configuration and decide what hardware profile to
      use; use 'Disabled' if the profiles are disabled.
    + If !Boot.Choices.!SetUser exists, run it to select a user, otherwise
      select 'Single' as the user (the SetUser tool supplied provides
      user selection).
  - run any 'unclean discs' checks (disabled by default)
  - set up territory, if any
  - boot system, scrap, and fonts so that they are available to all that
    follow
  - predesk progressive boot sequence :
    + run any predesk things in the hardware profile
    + run any predesk things in the default choices
    + run any predesk things in the user choices
    This means that hardware gets set up first, then the 'default' choices -
    those choices that apply to all users, and then finally the
    user-specific choices. In the case that you have all these things as
    default install, these are 'Disabled' for the hardware profile and
    'Single' for the user.
    System variables are set to allow modification of these by reference; you
    needn't know about the actual location, just the variable.
  - start desktop sequence
    + boot resources and plugins (plugins will have been identified by the
      installer)
    + desktop progressive boot sequence
      . run any desktop things in the hardware profile
      . run any desktop things in the default choices
      . run any desktop things in the user choices
      Like the predesk sequence, this is all controlled by system variables
      and so modifying things by reference should be simple.

That covers the ordering.

The structure of !Boot is pretty obvious :

  Choices.
    - main choices directory, now subdivided into the different uses that
      the choices have:
  Choices.Default.
    - the 'Default' choices - these are applied for all users
  Choices.Hardware.
    - hardware profiles configuration
  Choices.Hardware.Blank.
    - a blank hardware profile; this gets copied when a new profile is
      created
  Choices.Hardware.Disabled.
    - the profile used when hardware profiles are disabled
  Choices.Hardware.ID_*.
    - specific hardware profiles
  Choices.Users.
    - all the users choices directories
  Choices.Users.Single.
    - the user used by default (ie when !SetUser does not select a user
      to use)
  Choices.NewUser.
    - a blank user choices directory; this should be copied when a new
      user is created

  Resources.
    - Resources directory, just like before, except...
  Resources.PlugIns.
    - Browser plugins; these are separated to make the management of
      the main resources easier, and such that an installer or management
      plugin may be written for them.

  RO400Hook.
    - Resources, etc for when you boot with no softload. Although using
      the boot sequence with no softload provides a very restrictive
      set of configurations and cannot be guarenteed, it is provided
      as an option.

  RO420Hook.
    - Resources for Select.
  RO420Hook.Apps.
    - Obsolete - Paint and Draw used to live here but are now part of the
      HardDisc build.
  RO420Hook.Res. / RO420Hook.Configure.
    - Configuration tools for Select.
  RO420Hook.Res.!BootSetup.
    - Boot sequence configuration tools
  RO420Hook.Res.!DiscSetup.
    - Discs configuration tools
  RO420Hook.Res.!ExtnSetup.
    - Extension configuration tools.
      This is intended for tools which configure third party patches.
      David Pilling's SpecialFX tool is one such example.
  RO420Hook.Res.!FontSetup.
    - Font configuration tools.
  RO420Hook.Res.!NetSetup.
    - Network configuration tools.
      The network configuration tools have been greatly re-worked. It is
      expected that many other tools will be added here.
  RO420Hook.Res.!ScrnSetup.
    - Display configuration tools.
  RO420Hook.Res.!SndSetup.
    - Sound configuration tools
  RO420Hook.Res.ScrSavers.RISCOS.
    - RISCOS Ltd screen savers
  RO420Hook.Res.ScrSavers.Topix.
    - Topix screen savers
  RO420Hook.Res.ScrSavers.*
    - other screen savers (should really be in author directories)

  Library.
    - The library, holding directories which categorise the use of the tools
  Library.Internet.
    - Internet tools
  Library.Archive.
    - Archival tools
  Library.RISCOS
    - Tools from RISCOS Ltd required for boot and general operations.
  etc, etc...

  Softload.
    - Softload ROM images, controlled by the Softload configuration tool.

  Utils.
    - Boot utilities; changing these is unwise.

  OldBoot.
    - Your old boot sequence, so that we can swap back to that should you
      wish to.

Ok, that's a very brief breakdown.

-- 
Select developers

