Operating System Coded in Assembly and C

Overview

SimpleOS

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

Run

To run the OS, you can download VM software. The iso Image is in the iso folder. Reccomended:

Source

The source is in the src Folder

SimpleOS Documentation

You can find the Documentation here

Issues
  • Small Changes

    Small Changes

    1. Add dir and exit to the about menu
    2. Fix typos
    3. Add dir command (points to ls)
    4. Make power function be able to calculate to the negative power
    5. Allow launching apps from the shell
    6. Move the iso directory and run.sh to the src folder so run.sh actually works.
    opened by Seren541 0
  • Makefile

    Makefile

    Makefile contains the building of file hd.c ( currently it does not exists in the repo as far as i know)

    Also, have some problems with the linker

    /usr/bin/ld -m elf_i386 -T ./config/linker.ld -nostdlib --allow-multiple-definition -o out/SimpleOS.bin obj/asm/entry.o obj/asm/load_gdt.o obj/asm/load_idt.o obj/asm/exception.o obj/asm/irq.o obj/asm/load_tss.o obj/io_ports.o obj/vga.o obj/string.o obj/console.o obj/gdt.o obj/idt.o obj/isr.o obj/8259_pic.o obj/keyboard.o obj/mouse.o obj/kernel.o obj/gui.o obj/ext2.o obj/ide.o obj/tss.o obj/kheap.o obj/pmm.o
    /usr/bin/ld: obj/string.o: in function `malloc':
    string.c:(.text+0x4f4): undefined reference to `__stack_chk_fail_local'
    /usr/bin/ld: obj/console.o: in function `printf':
    console.c:(.text+0xa1d): undefined reference to `__stack_chk_fail_local'
    /usr/bin/ld: obj/mouse.o: in function `mouse_handler':
    mouse.c:(.text+0x3ed): undefined reference to `__stack_chk_fail_local'
    /usr/bin/ld: obj/ext2.o: in function `read_inode':
    ext2.c:(.text+0xd14): undefined reference to `__stack_chk_fail_local'
    /usr/bin/ld: obj/ext2.o: in function `ext2_read_dir':
    ext2.c:(.text+0xede): undefined reference to `__stack_chk_fail_local'
    /usr/bin/ld: obj/ide.o:ide.c:(.text+0x8f9): more undefined references to `__stack_chk_fail_local' follow
    /usr/bin/ld: out/SimpleOS.bin: hidden symbol `__stack_chk_fail_local' isn't defined
    /usr/bin/ld: final link failed: bad value
    make: *** [Makefile:59: all] Error 1
    

    It is solved with adding the -fno-stack-protector in the CC_FLAGS but i dont think its safe. My linker is

    1. GNU ld (GNU Binutils) 2.38

    I dont know if its appropriate to include this in here as its probably a bug with my linker, you can close it if nobody else has this problem

    opened by SwoleDuck 2
  • SSE invalid opcode

    SSE invalid opcode

    Build the script on my computer with the following version

    1. GNU ld (GNU Binutils) 2.38
    2. gcc (GCC) 12.1.1

    My version of gcc creates the kernel with sse instructions, its a minor bug and i already solved by implementing a fucntion "init_sse()" in kernel.c which modifies the cr0 and cr4 registers.

    opened by SwoleDuck 0
Releases(v2.1)
Owner
Hey! I am a avid Linux user, pentester, and especially like coding in C, Python, and Assembly.
null
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window

Asm-Dude Assembly syntax highlighting and code assistance for assembly source files and the disassembly window for Visual Studio 2015, 2017 and 2019.

Henk-Jan Lebbink 4k Aug 6, 2022
Create a Jupyter Kernel for 8085 Microprocessor assembly language that can interpret assembly-level programs right from the Jupyter notebook.

Create a Jupyter Kernel for 8085 Microprocessor assembly language that can interpret assembly-level programs right from the Jupyter notebook.

Sarita Singh 5 May 11, 2022
Slops (SLow OPerating System) | An hobby OS written in C and assembly

slops: SLow OPerating System slops is a simple unix-like operating system, written in assembly and C. BUILD ISO IMAGE 1. sync limine git submodule upd

Slops 5 Dec 22, 2021
Slops (SLow OPerating System) An hobby OS written in C and assembly

slops: SLow OPerating System slops is a simple unix-like operating system, written in assembly and C. How to use Build iso image 1. build the toolchai

null 3 Jan 20, 2022
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 65 Jul 27, 2022
Assembly HellGate implementation that directly calls Windows System Calls and displays the PPID of the explorer.exe process

Custom HellsGate Implementation Assembly HellGate implementation that directly calls Windows System Calls and displays the PPID of the explorer.exe pr

Bobby Cooke 88 Jun 20, 2022
C and Assembly System (protogen uwu)

ProtogenOS C and Assembly System (protogen uwu) Installation for Windows: ------------- git clone Edouard127/ProtogenOS cd ./ProtogenOS curl -O https:

null 3 Feb 17, 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 41 Jul 30, 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
Contribute a Data Structure you coded or solve the problems given in the Description.md file in any language! Happy coding!

Pro Lang Contribute a Data Structure you coded or solve the problems given in the Description.md file (can be found in the both the folders) in any la

IEEE-IAS VIT 1 Jan 16, 2022
Simple mini-shell coded in C Language

Mini Shell Simple mini-shell coded in C Language, i had a lot of informations and experiences on Linux processes and some low level stuff while coding

Sc1r3Cr0w 4 Jun 16, 2022
The given files contains a coded algorithm for a program of "OMR Evaluation" With negative marking below are brief info regarding its feature

OMR-Evalution The given files contains a coded algorithm for a program of "OMR Evaluation" With negative marking below are brief info regarding its fe

Harsh Shrivastava 4 May 14, 2022
Browser and NodeJS Web Assembly audio decoder libraries that are highly optimized for size and performance.

WASM Audio Decoders WASM Audio Decoders is a collection of Web Assembly audio decoder libraries that are highly optimized for browser use. Each module

Ethan Halsall 56 Jul 25, 2022
An x86_64 hobbyist OS written in C and Assembly

KnutOS An x86_64 hobbyist OS made for FUN and LEARNING! It is written in C and Assembly and features a monolithic kernel. Screenshots Features Limine

Yves Vollmeier 27 Jul 28, 2022
OverRide - Binary Exploitation and Reverse-Engineering (from assembly into C)

OverRide Explore disassembly, binary exploitation & reverse-engineering through 10 little challenges. In the folder for each level you will find: flag

Anya Schukin 66 Jul 24, 2022
Tails is a fast, minimal Forth-like interpreter core in C++ with no assembly

Tails is a minimal, fast Forth-like interpreter core. It uses no assembly code, only C++, but an elegant tail-recursion technique inspired by Wasm3 makes it nearly as efficient as hand-written assembly. I created it as a one-day hack to celebrate May Forth 2021 … then kept going because it's fun.

Jens Alfke 63 Jun 13, 2022
PNPASSIST: A “SMART” BUILD PLATFORM FOR MANUAL PCB ASSEMBLY

PnPAssist Description The PnPAssist is an open source innovative CNC table that position the next SMT component with a proper orientation for you to m

MakerStorage 36 Jul 27, 2022
Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities.

Cobalt Strike User-Defined Reflective Loader Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities. B

Bobby Cooke 765 Aug 10, 2022