Coder Social home page Coder Social logo

xsspark / dexpros Goto Github PK

View Code? Open in Web Editor NEW

This project forked from domssson/dexpros

0.0 0.0 0.0 366 KB

An experimental x86-64 operating system.

License: BSD 3-Clause "New" or "Revised" License

Shell 0.03% C 98.90% Assembly 0.88% CMake 0.17% C++ 0.02%

dexpros's Introduction

DexprOS

A simple operating system for x86-64 UEFI machines written in C and assembly. Made as an experiment to see if I could actually develop something so low-level as an OS.

DexprOS running under QEMU

What is it capable of?

For now, DexprOS is able to:

  • setup graphics using UEFI Graphics Output Protocol,
  • exit UEFI boot services,
  • set up its own 4-level or 5-level page map,
  • load a working General Descriptor Table and Interrupt Descriptor Table,
  • setup PIC (Programmable Interrupt Controller) and PS/2 controller,
  • handle keyboard input and convert it to unicode characters,
  • process a few commands in a simple shell: echo, clear, help, shutdown, reboot.

Planned features

As DexprOS is just an experiment and my focus goes mainly to other projects, new features may be introduced slowly over time.
Here are my upcoming plans:

  • memory allocation,
  • syscalls,
  • userspace code execution,
  • parsing some ACPI structures.

Compiling

The only officially supported compiler is 64-bit MinGW. Within the cmake/cross-compile-toolchains directory, there is a CMake Toolchain file to easily cross-compile the code on Linux if you have MinGW installed.
You can use CMake directly or execute the build.bash script if you're running Linux.

Running

To run on real hardware, create a bootable FAT32 partition on a USB drive. Then copy the BOOTX64.EFI file from your build directory to /EFI/BOOT/BOOTX64.EFI on your USB.

You can also use the generate-iso.bash script to generate a disk image that you can run under QEMU.

Dependencies

Code:

  • GNU EFI (bundled with the project itself in third-party/gnu-efi-code),

Building:

  • MinGW compiler,
  • CMake build system.

dexpros's People

Contributors

domssson 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.