Coder Social home page Coder Social logo

leonardoms / diyos Goto Github PK

View Code? Open in Web Editor NEW
125.0 9.0 10.0 4.91 MB

Operating System from scratch :neckbeard:

License: GNU General Public License v3.0

Makefile 0.95% C 95.32% Assembly 3.73%
osdev osdevschool operating-systems learning-by-doing diy kernel hobby-os

diyos's Introduction

DiyOS - do it yourself Build Status

Small study Operating System

This is a very very very experimental code, no warranties, it's for own study. :rage3:

If want to compile you need a Cross-Compiler GCC.


Latest built ISO @ build/

Latest boot screenshots

Testing GUI Screenshot


What is done:

  • Graphical Server (initial tests)
  • Graphical User Interface (initial tests)
  • Filesystem (/ and /dev)
  • Initial RAM Disk in Tar file format. (mounted on /ram directory)
  • Multitasking
  • Basic Message System (IPC)
  • Memory Manager
  • ACPI Reboot and Shutdown
  • Global Descriptor Table (GDT)
    • Flat memory
  • Interrupt Descriptor Table (IDT)
    • Basic ISR (only print a message and halt)
    • IRQs
  • Paging enabled
    • Low Memory (0 ~ 1MB) identity paging
    • High-Half Kernel (kernel above 0xC0000000)
    • 4MB at 0xFFC00000 fixed for Page Tables (physical memory after kernel location)
  • Drivers
    • keyboard, Timer, Basic Video, PIC
    • Serial added to /dev/com file (write only)
    • Bochs VBE video
    • Basic VGA
    • Network Realtek RTL81xx
    • Network NE2000 (n2k) [working on]

To compile:

make

To create a disk iso file:

make iso

To run with Qemu:

make run

diyos's People

Contributors

leonardoms avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

diyos's Issues

Mouse bug in QEMU for Windows and Ubuntu

The mouse pointer is showing, but moving in an irregular way. It is out of control. Bug both when starting DiyOS in QEMU for Windows and Ubuntu. Please resolve this issue.

How do we write our own apps?

Hi- I was wondering if there was any way of making our own apps for the OS? and as a suggestion- a simple settings manager would really be great in changing wallpapers and stuff like that. Just an idea, good job ๐Ÿ‘

Could DiyOS fit on a floppy?

Even today the floppies are still being used, for example - as virtual floppies inside the coreboot open source BIOS. Just imagine: your wonderful OS could be a part of someone's BIOS build! (for coreboot supported motherboard, maybe you have or could get one - see https://www.coreboot.org/Supported_Motherboards )

@leonardoms , If you already have a coreboot-supported motherboard, or a real chance to get one, - wouldn't it be cool to be able to launch your own OS straight from the BIOS chip? ;) With one simple command its possible to add any floppy to coreboot BIOS build - and then you see it as a boot entry! Multiple floppies could be added this way (as long as you have enough space left inside the BIOS flash chip, luckily LZMA compression could be used for the stored floppies to reduce their occupied size)

I see that the current ISO of DiyOS weights just 2.1MB, which is quite close to 1.44MB. It could be possible to borrow a slimmer build of grub bootloader from Fiwix - https://www.fiwix.org/downloads.html

could DiyOS fit on a floppy?

Even today the floppies are still being used, for example - as virtual floppies inside the coreboot open source BIOS. Just imagine: your wonderful OS could be a part of someone's BIOS build! (for coreboot supported motherboard, maybe you have or could get one - see https://www.coreboot.org/Supported_Motherboards )

@leonardoms , If you already have a coreboot-supported motherboard, or a real chance to get one, - wouldn't it be cool to be able to launch your own OS straight from the BIOS chip? ;) With one simple command its possible to add any floppy to coreboot BIOS build - and then you see it as a boot entry! Multiple floppies could be added this way (as long as you have enough space left inside the BIOS flash chip, luckily LZMA compression could be used for the stored floppies to reduce their occupied size)

Continue please

so we can fix this from the window manager

********************************************************************
*	PID: 1004	NAME: gui
*	PAGEFAULT on address 0xd00098b0 (  Write Super) !
*	EAX=0x606060	EBX=0x1da	ECX=0xc	EDX=0xd00098b0
*	CS:EIP=0x8:0xc00023e7	SS:ESP=0xc01deaf6:0xc030bc48
********************************************************************

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.