- Hello!
- This is my Operating System from scratch, my goal is to make a fully functional Operating System with a GUI and a lot of features.
- I'm working on this project alone, but I'm open to any kind of help, if you want to help me, you can contribute to the project on GitHub.
- I have a Discord server too →
+
About
+
+
+
+
+
+
+
+
+
+
+ Hello!
+ This is my Operating System from scratch, my goal is to make a fully functional Operating System with a
+ GUI and a lot of features.
+ I'm working on this project alone, but I'm open to any kind of help, if you want to help me, you can
+ contribute to the project on GitHub.
+ I have a Discord server too →
+
+
+
+
+
Compiling Instructions
+
+
Requirements
+ First of all, you need to install the required packages to build the cross-compiler, bootloader, OS,
+ etc.
+
+ • Ubuntu 22.04
+ For cross-compiler:
+ sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo libzstd-dev libisl-dev autoconf m4 automake gettext gperf dejagnu guile-3.0 guile-3.0-dev expect tcl autogen tex-common sphinx-common git ssh diffutils patch
+
+ For bootloader:
+ sudo apt-get install make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
+
+ For QEMU you'll have to follow this page here
+ For OS:
+ sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen
+
+
+
+
+
+
Building The Cross-Compiler
+ The cross-compiler is used to compile the OS, the bootloader and the kernel.
+
+ All you have to do is to write this command in the terminal:
+ make tools
+ You'll have to wait a while, but when it's done, you can jump to the next step.
+
+
+
+
Configuring your kernel
+ If you want to build different architecture, use other QEMU binary or change kernel name you can find in
+ Makefile.conf file.
+
+ DEBUG • If it's set to 1, the kernel will
+ be compiled in debug mode.
+ TESTING • Enable unit testing.
+ OSNAME • The name of the kernel. This can be anything.
+ OSARCH • The architecture of the kernel. Supported values are: amd64i686aarch64.
+ KERNEL_VERSION • The version of the kernel. This can be anything.
+ BOOTLOADER • The bootloader to be used. If set to other, the bootloader will be Limine for 64-bit,
+ or with GRUB if 32-bit. lynx it's still under development.
+ COMPILER_PATH • The path of the cross compiler. If you want to use
+ your own cross compiler, change it to the path of the compiler.
+ LIMINE_FOLDER • The path of the Limine bootloader.
+ QEMU_PATH • Qemu path. If you want to use the one you have installed
+ in your system, change it to /usr/bin/qemu-system- (do not include x86_64 or i386, it will be added
+ automatically)
+ That's all you can change in this file.
+
+
+
+
Building The Operating System
+ The fun part!
+
+ Now that you have the cross-compiler, you can build the OS.
+ There are a few commands that you can use to compile the OS:
+ make build • Builds the entire OS and creates an ISO image.
+ make run • Same as make build but starts
+ the QEMU too.
+ make clean • Clean all files (object files, ISO, etc...).
+ make doxygen • Generate the documentation in directory doxygen-doc.
+
+
+
+
+
Running With Other Virtual Machines
+
+
+ • On VirtualBox and VMware, you can use the ISO image to run the OS.
+ • HDD/SSD are not required.
+ • The minimum RAM required is 4G. You can run with lower memory, but sometimes can cause issues
+ (I don't know why).
+ • UEFI required. BIOS sometimes doesn't work properly.
+ • Serial Port (COM1) is recommended.
+
+
+
+
+
Reporting Issues
+
+
+ You can report bugs or crash issues to Issues
+ tab.
+
+
+
+
+
-
-
-
Compiling Instructions
-
-
Requirements
- First of all, you need to install the required packages to build the cross-compiler, bootloader, OS, etc.
-
- • Ubuntu 22.04
- For cross-compiler:
- sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo libzstd-dev libisl-dev autoconf m4 automake gettext gperf dejagnu guile-3.0 guile-3.0-dev expect tcl autogen tex-common sphinx-common git ssh diffutils patch
- For bootloader:
- sudo apt-get install make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64
- For QEMU you'll have to follow this page here
- For OS:
- sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen
-
-
-
-
Building The Cross-Compiler
- The cross-compiler is used to compile the OS, the bootloader and the kernel.
-
- All you have to do is to write this command in the terminal:
- make tools
- You'll have to wait a while, but when it's done, you can jump to the next step.
-
-
-
-
Configuring your kernel
- If you want to build different architecture, use other QEMU binary or change kernel name you can find in Makefile.conf file.
-
- DEBUG • If it's set to 1, the kernel will be compiled in debug mode.
- TESTING • Enable unit testing.
- OSNAME • The name of the kernel. This can be anything.
- OSARCH • The architecture of the kernel. Supported values are: amd64i686aarch64.
- KERNEL_VERSION • The version of the kernel. This can be anything.
- BOOTLOADER • The bootloader to be used. If set to other, the bootloader will be Limine for 64-bit,
- or with GRUB if 32-bit. lynx it's still under development.
- COMPILER_PATH • The path of the cross compiler. If you want to use your own cross compiler, change it to the path of the compiler.
- LIMINE_FOLDER • The path of the Limine bootloader.
- QEMU_PATH • Qemu path. If you want to use the one you have installed in your system, change it to /usr/bin/qemu-system- (do not include x86_64 or i386, it will be added automatically)
- That's all you can change in this file.
-
-
-
-
Building The Operating System
- The fun part!
-
- Now that you have the cross-compiler, you can build the OS.
- There are a few commands that you can use to compile the OS:
- make build • Builds the entire OS and creates an ISO image.
- make run • Same as make build but runs the QEMU too.
- make clean • Clean all files (object files, ISO, etc...).
- make doxygen • Generate the documentation in directory doxygen-doc.
-
-
-
Running With Other Virtual Machines
-
-
- • On VirtualBox and VMware, you can use the ISO image to run the OS.
- • HDD/SSD are not required.
- • The minimum RAM required is 4G. You can run with lower memory, but sometimes can cause issues (I don't know why).
- • UEFI required. BIOS sometimes doesn't work properly.
- • Serial Port (COM1) is recommended.
-
-
-
Reporting Issues
-
-
- You can report bugs or crash issues to Issues tab.
-