38 lines
1.5 KiB
Markdown
Executable File
38 lines
1.5 KiB
Markdown
Executable File
# ``loader`` | Nightloader Code Partition
|
|
|
|
The partition of which the creation code is contained in this
|
|
directory isn't formatted in any particular way; the partition
|
|
which is created using this source code contains the instructions
|
|
and data for giving control over to the next stage. More on
|
|
the features of the *loader* can be found [here](#features)
|
|
|
|
## Features
|
|
|
|
The loader partition has to perform the following tasks:
|
|
|
|
1. Perform the general setup
|
|
- Setup a bigger stack
|
|
- Enable the A20 address line
|
|
- Enter 32-bit mode (Protected Mode)
|
|
- Setup Paging
|
|
2. Enable the built-in drivers
|
|
3. Load additional addons
|
|
- Find partitions accessible with the existing drivers
|
|
- Check the path ``/bin/nightloader/`` for addons
|
|
- Load and start those addons
|
|
- If any more filesystem drivers were found,
|
|
repeat the last three steps
|
|
4. Choose the appropriate action of the three following ones:
|
|
1. If no operating system was found,
|
|
- Send an error to any output
|
|
- Halt execution after 30 seconds
|
|
2. If an operating system was found and there is no
|
|
addon to take control
|
|
- Display all options onto the screen and let the
|
|
user choose which operating system to start
|
|
3. If an operating system was found and there is an
|
|
addon which takes the control
|
|
- Give the control to that addon and let it handle
|
|
the task of finding out what to do
|
|
5. Execute the action chosen by the user in the last step
|