An Operating System made in my spare time.

Overview

DarshOS

Features

  • Shell/Command Line

  • Keyboard Input

Might add in the future

  • File System and Commands for File System

  • IDT

  • Networking

  • GUI

Setup / dependencies

You will need these to run "compile.sh".

Windows

For Windows you will have to Install WSL (Windows Subsystem for Linux) then you can follow the guide for Linux by typing the commands in the WSL terminal.

  • How to setup WSL on Windows:

    1. Go to https://ubuntu.com/wsl
    2. Download Ubuntu WSL from Microsoft Store
    3. Open StartMenu and search "Turn Windows Features on or off" without the double quotes
    4. Click on Turn Windows Features on or off
    5. Scroll down and tick Windows Subsystem For Linux then press ok
    6. Press Windows Key and in "The Recently Added" section click Ubuntu
    7. Then You Will see a Terminal Window saying that ubuntu is Installing
    8. It will ask you to make a Unix account (It will not show the password)
    9. run the command "sudo apt update && sudo apt upgrade" without the double quotes
    10. It will ask for your unix account's password type it and press enter (it wont show the password on screen)
    11. Follow the Guide for Linux By typing the commands in the terminal.

Linux

  • Qemu VM :
 sudo apt install qemu && sudo apt-get install qemu-kvm
  • Nasm (Asm Compiler) :
 sudo apt install nasm
  • GCC cross compiler for i386 systems (might take quite some time).
 sudo apt update
sudo apt install build-essential
sudo apt install bison
sudo apt install flex
sudo apt install libgmp3-dev
sudo apt install libmpc-dev
sudo apt install libmpfr-dev
sudo apt install texinfo

export PREFIX="/usr/local/i386elfgcc"
export TARGET=i386-elf
export PATH="$PREFIX/bin:$PATH"

mkdir /tmp/src
cd /tmp/src
curl -O http://ftp.gnu.org/gnu/binutils/binutils-2.35.1.tar.gz
tar xf binutils-2.35.1.tar.gz
mkdir binutils-build
cd binutils-build
../binutils-2.35.1/configure --target=$TARGET --enable-interwork --enable-multilib --disable-nls --disable-werror --prefix=$PREFIX 2>&1 | tee configure.log
sudo make all install 2>&1 | tee make.log

cd /tmp/src
curl -O https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
tar xf gcc-10.2.0.tar.gz
mkdir gcc-build
cd gcc-build
echo Configure: . . . . . . .
../gcc-10.2.0/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-libssp --enable-language=c++ --without-headers
echo MAKE ALL-GCC:
sudo make all-gcc
echo MAKE ALL-TARGET-LIBGCC:
sudo make all-target-libgcc
echo MAKE INSTALL-GCC:
sudo make install-gcc
echo MAKE INSTALL-TARGET-LIBGCC:
sudo make install-target-libgcc
ls /usr/local/i386elfgcc/bin
echo DONE

Now you will have to do the following to run compile.sh :

  • Make sure that you are in the OS folder to go in the folder run :
 cd os 
  • run this command inside the os folder.
 export PATH=$PATH:/usr/local/i386elfgcc/bin
  • then to compile the compile.sh file run this command.
 sh compile.sh
  • Now there sholud be a popup window with DarshOS running

  • If there is no popup Do this:

    1. Press Crtl + C together in the WSL terminal
    2. Go to The Microsoft Store
    3. Search GWSL in The Microsoft Store
    4. Install GWSL
    5. Run GWSL
    6. Go into the WSL terminal Again and Run these commands again after going in the os directory.
     export PATH=$PATH:/usr/local/i386elfgcc/bin
     sh compile.sh
    1. You Have successfully ran DarshOS.

Resources Used

Issues
  • Not compiling

    Not compiling

    Hello! Electro here. I tried to compile it, but the following error came: kernel.cpp:3:10: fatal error: Kernel_Utils/sound.cpp: No such file or directory 3 | #include "Kernel_Utils/sound.cpp" | ^~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.

    So... Did you like forget to upload sound.cpp? it does not exist!

    opened by ElectroBoy404NotFound 3
Releases(v1.8)
KePOS is a 64-bit operating system. Design and implement your own operating system

KePOS is a 64-bit operating system. The purpose of this system is to combine the theoretical knowledge and practice of the operating system, and to deepen the understanding of the operating system.

null 63 Jun 8, 2022
A unix operating system made from scratch using c++

pranaos A unix operating system made from scratch using c++ Dependencies g++ version should be more than 10.0.0 ninja gcc compiler needed prana os is

Krisna Pranav 16 Jan 4, 2022
TencentOS tiny is a real-time operating system developed by Tencent for the Internet of Things

TencentOS tiny is a real-time operating system developed by Tencent for the Internet of Things. It features low power consumption, low resource consumption, modularity, security and reliability, and can effectively improve the development efficiency of IoT terminal products.

OpenAtomFoundation 5.5k Jun 28, 2022
Operating system project - implementing scheduling algorithms and some system calls for XV6 OS

About XV6 xv6 is a modern reimplementation of Sixth Edition Unix in ANSI C for multiprocessor x86 and RISC-V systems.

Amirhossein Rajabpour 20 May 19, 2022
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.

SynnixOS Epic Hobby OS targeting x86_64 CPUs, it includes some hacked together functionality for most essential OSs although, with interactivity via Q

RaidTheWeb 40 May 27, 2022
Updates the Wii's current system time with the real world time.

Fix Wii System Time This is a homebrew tool I made for the Wii a while ago. It updates the current system time with the real world time via worldtimea

Puzzle 2 Dec 21, 2021
Final Assignment for Embedded Real Time Operating Systems at UCSD Extension.

Final Assignment for Embedded Real Time Operating Systems at UCSD Extension. This program is for a certificate in Embedded Software Engineering at UCSD. We used FreeRTOS running on a STM32L475G Microcontroller.

Max Guerrero 2 Jun 26, 2022
Take Damage hook hook made to increase weapon damage, the game I made is Free Fire in version 1.65

Take-Damage Simple Take Damage hook hook made to increase weapon damage, the game I made is Free Fire in version 1.65 Bool bool isTakeDemageBool = fal

Master Games 3 Jan 1, 2022
A simple Unix like operating system from scratch.

HOS-x86 an x86 operating system written from scratch How to Build? Currently you need NASM, GCC and QEMU to build the image file. Install the packages

Jayachandra Kasarla 15 Feb 7, 2021
IbisOS is a custom operating system

IbisOS The IbisOS Source Code Guide Step1, How in the hell do I compile this OS? well you need to install xorriso, clang, nasm and cmake as well as gr

null 0 Feb 6, 2022
🦠 µnix is a UNIX-like operating system for the raspberry pi pico.

The µnix Operating System "µnix", "munix" or, "micro unix" aims to be a micro kernel based operating system targeting the Raspberry Pi Pico. "µnix" is

Sleepy Monax 57 Jun 19, 2022
SerenityOS - Graphical Unix-like operating system for x86 computers. 🐞

SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.

SerenityOS 20.2k Jun 27, 2022
TETRIS-OS: An operating system that only plays Tetris.

TETRIS-OS: An operating system that only plays Tetris.

null 3.5k Jul 14, 2021
Doom port for InfOS - the University of Edinburgh Informatics research operating system used in the UG3 OS course

Doom on InfOS InfOS is the Informatics research operating system, designed specifically for the UG3 Operating Systems course. This project aims to por

Cheng Kai 14 Jun 19, 2022
An x86_64 operating system

Vigil Vigil is a x86_64 operating system. Features Booted by Limine using the stivale2 protocol Physical memory manager Virtual memory manager "Slab"

null 19 Jun 14, 2022
Operating System Coded in Assembly and C

SimpleOS Operating System Coded in Assembly and C. Has a Virtual Filesystem, Simple Shell, GDT and IDT, and more. Planning to add networking functiona

null 73 Jun 2, 2022
KGKernel1 is an operating system written in C

Kernel commands echo: echo 'String' clr shellcolor: shellcolor colorcode cursorset: cursorset cursorcode reboot shutdown calc cursorcodes cursorcode 0

null 25 Nov 22, 2021
🏢 A bold, unapologetic, and honest operating system written in modern C

A bold, unapologetic, and honest operating system written in modern C About Striking modernist shapes and bold use of modern C are the hallmarks of BR

Brutal 817 Jun 25, 2022
🏢 An operating system that combine the desire of UNIX utopia from the 1970s with modern technology and engineering

Striking modernist shapes and bold use of modern C are the hallmarks of BRUTAL. BRUTAL combine the desire of UNIX utopia from the 1970s with modern te

Brutal 818 Jun 28, 2022