Git Product home page Git Product logo

panicos's Introduction

PanicOS

A simple operating system for 32-bits x86 PCs.

PanicOS

Features

Kernel

  • 32-bits x86 support
  • Legacy BIOS and UEFI booting with GRUB2
  • SMP
  • PAE paging (see pae branch)
  • ELF file loading
  • Loadable kernel modules
  • Parallel ATA IDE Controller and Disk driver
  • QEMU Bochs display driver
  • PCI Bus support
  • PCI Express ECAM support
  • PCI MSI and MSI-X interrupt support
  • PS/2 keyboard and mose driver
  • USB Bus support
  • USB Hub driver
  • UHCI USB controller driver
  • VirtIO block device and GPU device driver
  • PC platform RTC and UART driver
  • Virtual filesystem
  • FAT32 filesystem support
  • Master Boot Record partition table support
  • Hardware abstraction layer abstracts block device, display device and HID device
  • Reboot and shutdown

User Space

Build Instructions

A build of gcc and binutils with i686-elf target triplet is required. dosfstools and mtools are also required for creating disk image. QEMU with target i686 or x86-64 is required for emulation

Run make to create disk image and kernel image, run make qemu to start qemu emulation.

Directory Structure

  • /boot Disk image boot sector
  • /ext Utility for building out-of-tree kernel modules
  • /kernel Operating System Kernel
  • /kernel/arch/x86 x86 architecture specific code
  • /kernel/common kernel common used code
  • /kernel/core Kernel core
  • /kernel/drivers Kernel built-in device drivers
  • /kernel/filesystem Kernel build-in filesystem drivers
  • /kernel/hal Kernel hardware abstraction layer
  • /kernel/proc Kernel process management
  • /library User space libraries
  • /library/crt C Runtime (crt0 and crt1)
  • /library/ld Dynamic linker
  • /library/libc C Standard Library
  • /library/libcpp C++ Standard Library
  • /library/libcpu CPU abstraction library
  • /library/libgui C++ GUI widget toolkit library
  • /library/libposix POSIX emulation library
  • /library/libsys System call library
  • /library/libwm Window manager library
  • /module/edu QEMU EDU device driver
  • /module/hello Hello World kernel module example
  • /module/modlib Kernel module support library
  • /module/virtgpu VirtIO GPU driver
  • /programs/about Graphical About program
  • /programs/cat A program to display context of a text file
  • /programs/date A command line utility to display date and time
  • /programs/desktop Graphical desktop environment
  • /programs/devmgr Device manager
  • /programs/dir A program to list files in a directory
  • /programs/init Init program
  • /programs/kmod A tool to load kernel modules
  • /programs/lscpu An utility to display CPU infomation
  • /programs/lspci An utility to list PCI (Express) devices
  • /programs/mkdir A program for creating directories
  • /programs/reboot A program to reboot computer
  • /programs/rm A program to delete files
  • /programs/sh Shell
  • /programs/shutdown A program to shut down computer
  • /programs/termemu Graphical terminal emulator
  • /programs/wm Graphical window manager
  • /share Non-code data
  • /tools Tools used in the compiling process

panicos's People

Contributors

jasonbrave 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

Watchers

 avatar  avatar

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.