Introduction:-
Starting slides about fling os.How we used it as a base to create our own operating system
Nclear Os.
Fling Os:-
C# is not a low-level language. So making it work as a language for OS development
seems like both a crazy and impossible idea. However, we've shown in our Why C#
article that there are a fair few good reasons for doing it.
Advantages we get by using a high level language like C# instead of assembly
language:-
Ahead-of-Time Compilation:
● Custom AOT compiler for C#.
● Converts C# directly to readable machine code.
● Supports MIPS and x86 for cross-platform development.
Managed Memory:
Implementing your own Garbage Collector with a ref-count based approach is a
practical choice. While it may not be as sophisticated as some other garbage collection
methods, simplicity is often beneficial, especially in a teaching context.
Assembly Code Integration:
● Plugging mechanism for inline assembly.
● C# attributes specify assembly code replacement.
● Prioritizing attribute for controlling output order.
The assembly language used for the fling os is x86 architecture.
The disk partition used for the fling os is GPT partition.
The device compiler converts IL ton object code and elf code.
Working of device.compiler which is a ahead of time compiler for C#.
Loading
Conversion of IL Ops to ASM Ops
Conversion of ASM Ops to ASM text
Conversion of ASM text to Object files
Conversion of Object files to ISO/ELF
The specification of each file is given below:-
Kernel.Hardware.CPUs Contains specific implementations
of the CPU class.
Kernel.Hardware.Devices Contains classes for generic types
of hardware device e.g. DiskDevice.
Kernel.Hardware.Exceptions Contains exceptions used by the
hardware drivers.
Kernel.Hardware.Interrupts Contains hardware-specific code for
managing interrupts.
Kernel.Hardware.IO Contains classes for managing I/O
devices.
Kernel.Hardware.IO.Serial Contains classes for handling Serial
ports.
Kernel.Hardware.Processes Contains classes for managing
processes and threads including
scheduling.
Kernel.Hardware.Processes.Synchronisati Contains implementations of
on synchronisation primitives (that are
not needed by FOS_System level
classes) such as mutexes.
Kernel.Hardware.Tasks Contains specific implementations
of Tasks which are related directly
to the hardware or hardware
classes; They are built-in
sub-processes of the main kernel.
Kernel.Hardware.USB Contains classes for managing
USB devices.
Kernel.Hardware.USB.Devices Contains implementations of drivers
for USB devices.
Kernel.Hardware.USB.HCIs Contains classes specifically for
managing USB Host Controller
Interfaces.
Kernel.Hardware.VirtMem Contains specific implementations
of virtual memory management for
different architectur
Now using this Fling Os we will create our own new operating system based on
c#.Which we give the name Nclear Opearting system.
Nclear Operating System.