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

You might also like...
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

Simple mini-shell coded in C Language
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

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

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

An x86_64 hobbyist OS written in C and Assembly
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

OverRide - Binary Exploitation and Reverse-Engineering (from assembly into C)
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

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.

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

Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities.
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

Comments
  • 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
  • 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
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 Jan 6, 2023
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 4 Oct 5, 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 Nov 9, 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 90 Oct 18, 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 42 Oct 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 22 Dec 22, 2022