This was the third public release of FlingOS™. It was created at the point when FlingOS had reached a stable level of fairly advanced features. These features are detailed below. This version includes a "help" command with command details.
Notes on various details about the system
- Detected disk devices (e.g. ATA hard disks and USB sticks) are assigned drive letters starting from
- File paths have the following format:
- Once you have opened a directory, you can use
./ to specify a path relative to the current directory. For example, if you wish to output a file in the current directory you must execute
file open ./afile.txt
- In a path, you can use
.. to access the parent directory. For example, if you wish to open the parent of the current directory you must execute
dir open ./...
- A kernel which boots (in VMWare or on real hardware from HDD, USB or CD)
- Display text output in a "console" format
- Handle runtime exceptions
- Manage a basic heap and garbage collector
- Handle hardware interrupts
- Handle debug commands / return debug info via serial port
- Setup up paged virtual memory
- String functions and manipulation
- ATA/IDE disk driver
- PIC driver
- PCI driver
- EHCI driver
- Detect UHCI/OHCI/EHCI/xHCI host controllers
- USB driver
- USB Mass Storage Device driver
- PIT driver (inc. Timer0 and Timer2 - PC Beep)
- PS2 Keyboard driver
- Detect MBR or format disk/USB stick to MBR (with 1 to 4 partitions)
- Detect GPT
- Detect FAT32 or format disk/USB stick to FAT32
- Create, rename, edit and delete files in a file system
- Copy files from USB stick to HDD (or vice versa)
- Advanced console output including scrolling and colour.
- Advanced console input including key buffer.
- Shell interface with a range of important commands.
- Automatic initialisation on boot
- Multi-processing / multi-threading
- Per-process virtual memory layouts
- Raw and ELF executable support (including limited ELF Shared Library support)
- Critical and non-critical (/deferred) interrupt support
- System Calls (Currently: Sleep Thread and Play Note)
- Automatic GC cleanup for system tasks
- Auto-detection of attached devices inc. when a USB stick is plugged in
- Auto-detection of all available file systems
- GC Cleanup Task - runs GC in a separate thread
- System Status Task - displays live system info and device messages
Other notes on this release
- Included with the release is a set of demonstration executables. They can be used by copying them to a USB stick and then attaching that USB stick to the OS. You can then either copy the files across or run them directly from the USB stick. The following details the required commands:
- In any of the commands, you can switch
- For Raw (.bin) files:
start a:/test.bin km raw
- For ELF (.elf) files:
start a:/elftest.elf km elf
- If spaces are included in the file path, remember to wrap the path in quotes.
- For the ELF executables,
LibELFTest.a must be included in the same directory as
ELFTest.elf and you must not rename the
- The biggest advance in this release is the addition of multi-process support. This allows multiple processes with multiple threads to run (virtually) simultaneously. This has also led to a big improvement in the UI with the addition of status consoles to display live system info.
- One of the other big changes in this release is the all new Drivers Compiler. It compiles both the OS and in future will compile driver executables and libraries. The compiler is also much faster, cutting the compile time from 25 minutes to just 80 seconds. Lastly, the output .iso file is down from 125MB to just 8MB.
- This release includes a lot of bug fixes and small improvements making for a much more stable OS. The new compiler lead to the entire exception handling subsystem being re-written in C# making it more stable, more effective and easier to maintain.