GithubHelp home page GithubHelp logo

jjwang / hanos Goto Github PK

View Code? Open in Web Editor NEW
40.0 3.0 4.0 16.92 MB

Microkernel-based General Purpose Operating System #Hobby OS#

License: MIT License

Makefile 1.51% C 96.56% Assembly 1.72% Shell 0.21%
osdev hobby-os x64 limine-bootloader operating-system

hanos's Introduction

HanOS - Microkernel-based General Purpose Operating System

English | 中文

Design as below

  • Bootloader: Limine is used to get the kernel running as quickly possible. Limine boot protocol is chosed by HanOS.
  • CPU mode: x86-64 Long Mode is supported in HanOS. HanOS does not has plan to support other x86 modes.
  • GUI: GUI will not be the 1st priority for HanOS. But HanOS will port some GUI libraries in the future.

Progress update

  • Framebuffer based terminal and kernel log system
  • Initialize GDT and IDT to handle exceptions
  • Physical memory allocator and virtual memory manager
  • Parse ACPI tables and initialize MADT
  • Start up all CPUs
  • Set up APIC(Advanced Programmable Interrupt Controller) interrupt controller
  • Read RTC time from CMOS and configure HPET timer
  • Scheduling driven by APIC timer
  • Keyboard/mouse driver and command line interface
  • VFS, FAT32 and RAMFS file system. RAMFS is for loading and executing program from ELF file
  • Tasks of kernel and user space
  • Background image display for command line interface
  • Implement syscalls for bash and other system tools
  • Simple userspace shell apps ported from xv6

Fonts

bdf2psf gohufont-14.bdf /usr/share/bdf2psf/standard.equivalents /usr/share/bdf2psf/ascii.set 256 gohufont-14.psf

How to run

  • The disk image file - "hdd.img" in release folder can be used for test.

qemu-system-x86_64 -serial stdio -M q35 -m 1G -smp 2 -no-reboot -rtc base=localtime -drive id=handisk,if=ide,format=raw,bus=0,unit=0,file=hdd.img

Screenshots

  • Oct 17, 2023: Userspace Shell Demo

Cool~~~

hanos's People

Contributors

jjwang 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

Watchers

 avatar  avatar  avatar

hanos's Issues

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.