Skip to content

KingVentrix007/AthenX-2.0

Repository files navigation

Sonar Cube Lines of Code Sonar Cube Number of bugs License: GPL-3.0 Completion

Logo

AthenX-2.0

A super simple 32 bit operating system
Explore the docs »

View Demo · Report Bug · Request Feature

Overview

AthenX is an open source 32-bit hobby operating system. It is designed to be simple to use and understand.It is purely a command line OS and is monotasking only.

History

I started AthenX at the beginning of 2023 or mid to late 2022 (I took a pause in OS development and have lost the source code to my original project), since then I have re-uploaded it to github ( due to me not reading the github manual).

What AthenX is

AthenX is and probably always will be a hobby OS, I started it to broaden my coding horizons and so that I can say I have done it.

What AthenX is not

AthenX is not and NEVER will be a replacement for a "real" os, it is simply here to learn.

Getting Started

Prerequisites

  • grub

    sudo apt install grub-common
    sudo apt install grub-pc-bin
  • nasm

    sudo apt install nasm
  • gcc

    sudo apt install gcc
  • qemu

    sudo apt install qemu-system
  • xorriso

    sudo apt install xorriso
  • fdisk

      sudo apt install fdisk

Installation

  1. Clone repo

    git clone https://github.com/KingVentrix007/AthenX-2.0.git
  2. open freshly installed repository with wsl or any other UNIX system and run:

      bash ./build-cross-compiler.sh

    then add /cross/bin

    make run
  3. From this point on you only have to type

    make run

    or

    make
    make run

    in order to run the img

Modifying

Simply add any changes you want then and save them, then type 'make run' and watch you change come to life (or not).

Roadmap

  • Each update changes this Roadmap, something that worked before a commit might not work after the commit.

  • Boot with GRUB

  • VGA mode 13h

  • VESA/VBE graphics driver

  • Basic keyboard driver

  • Basic IDE hard drive driver

  • Custom filesystem called Algea-fs, Greek goddess of pain and sorrows(deprecated),

    • make file
    • delete file
    • list files
    • read files
    • edit files
    • make dictionary
    • rename dictionary
    • delete dictionary
    • set current dictionary
    • different file types
    • super basic superblock
    • format disk function
  • basic login function

  • FAT 12/16/32

  • Basic program loading

  • Basic system calls (implemented as needed)

  • basic text editor

  • [x] Start libc (functions implemented as needed)

  • Full Libc

  • Port some games

  • Make some games

  • network drivers

    • DHCP
    • UDP
    • ARP
    • IPv4
    • TCP
    • HTTP
    • HTTPS
  • Apps

    • web browser
    • chat application
    • Basic utility apps

User programs

Creating userspace programs for AthenX is always encouraged, please read this documentation for more information

Ports

Currently I am attempting to port some software to AthenX-2.0. This is one area where ANY contribution will be almost certainly implemented into AthenX-2.0 Software currently being ported:

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated even if i don't add it to the main project.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Read this
  2. Read this
  3. Fork the Project
  4. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  5. Commit your Changes (git commit -m 'Add some AmazingFeature')
  6. Push to the Branch (git push origin feature/AmazingFeature)
  7. Open a Pull Request

License

  1. This README.md is distributed under the MIT License. See OtherLicenses/MIT.txt for more information.
  2. This operating system is protected by the GNU General Public License v3.0, if you use, redistribute, re-upload or share this code you have to comply with GNU General Public License v3.0 and any other Licenses specified within the source code files. I would also appreciate it if credit would be given to me if you use this project.
  3. Licenses specific to files will be stored in the OtherLicenses folder
  4. If i have missed any copyright licenses, Please tell me and i will try to fix it as soon as possible

Acknowledgments

I would like to say thank you to people and websites that have helped me learn about OS development

  • araujo88 / primus-os: I used his project as a model to learn from
  • GitHub: Free code
  • othneildrew / Best-README-Template This README
  • OsDev.org: Lots if informative pages and articles
  • Logo.com: They made my logo, and it was free
  • And anyone else that I have missed, thanks.
  • OS: I used A LOT of his code, ATA driver, VESA, FPU, etc
  • My mom: she did all my editing and made sure my grammar was correct
  • vaythe(friend from discord): Checked my repo for errors
  • Incon8:The smaller logos
  • MyOS/codeTrevor I used his e1000 driver and his Networ kStack

Images

Logo
Logo
Logo

VERSION 2.0

About

A hobby operating system re-uploaded 3 times

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages