Giter Club home page Giter Club logo

foxos's Introduction

FoxOS

Hits License: MIT Discord Automatic Release

Our goal is to develop an operation system that focuses on the terminal, performance and reliability. We hope to provide you with a functional, performant and stable OS. And we do that together, everyone can help!

screenshot

Building

Before you build the project, you need to clone the submodules. To do so, run git submodule update --init --recursive.

To build this OS, you need one of these:

  • A 64 bit Ubuntu or Debian based OS so you can install the following packages with apt: sudo apt install graphicsmagick-imagemagick-compat mtools lbzip2 curl bison flex gcc g++ unzip dosfstools automake build-essential nasm qemu-utils gdisk git. We recommend you run toolchain.sh to build binaries that will be compatible with FoxOS.
  • WSL (Windows Subsystem for Linux) with Ubuntu installed and the same things as above.
  • Our Docker image. You can run it like this: docker run -it --rm -v /dev:/dev --privileged ghcr.io/theultimatefoxos/foxos-toolchain:latest. An easy way to have this setup would be to open a command line or terminal window at a directory on your host machine with FoxOS cloned and run this: docker run -it --rm -v /dev:/dev --privileged -v $PWD:/root/FoxOS ghcr.io/theultimatefoxos/foxos-toolchain:latest to mount it at /root/FoxOS.
  • An Intel Mac. You need to make sure to have these commands: curl, zip/unzip, make, brew, and gcc. First run: brew install mtools, brew install gdisk, and then run toolchain_mac.sh.

Then simply run one of the following:

  • make: build the project.
  • make img: package the .img file.
  • make mac-img: package the .img file on an Intel Mac.
  • make docker-img: package the .img file in Docker.
  • make run: To build and run FoxOS. (Will not work on Mac)

The following alias command can be used to make your life easier: alias mkfox="make USER_CFLAGS=\"-DDEBUG -DMEMORY_TRACKING -DBOOTINFO -fsanitize=undefined -DUBSAN_SUPRES_TYPE_MISSMATCH\""

Other make commands

  • make usb: build a bootable USB. The USB must be formatted with FAT32!
  • make losetup: build a script to be able to run losetup without root permissions.
  • make clean: clear all the built files.
  • make debug: build and debug using deno.
  • make run-dbg: start a screen for QEMU so you can debug using gdb.
  • make vmdk: build a .vmdk file.
  • make vdi: build a .vdi file.
  • make qcow2: build a .qcow2 file.
  • make vbox-setup setup a VirtualBox VM (only works on Linux)

Contributing

Feel free to fix a bug, implement a feature or any other change you think would be good. If you want to contact us, join our Discord, we are there to help with any question you may have. Or you can create an issue. If you don't know what to implement you can take a look at our TODO list.

Running

To run this OS, you can either use a VM or a bootable USB. See the building section for more info on how to build them. How to start:

  • QEMU: Use make run to build and launch QEMU with the correct configuration.
  • VirtualBox: Use make qcow2 to build a .qcow2 image file and create a VM to which you add this .qcow2. Then you need to enable EFI under "System" in your VM's config. Then run it!

If you want to add documentation on running this OS on a different emulator, feel free to do so.

Our Discord

Here is the link to our Discord.

foxos's People

Contributors

dependabot[bot] avatar glowman554 avatar imdabigboss avatar jartc0ding avatar kushagra765 avatar v0lun4 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

foxos's Issues

Kernel Panic while trying to load "pc_speaker.o" module

Describe the bug
The Horizon Kernel panics while trying to load the "pc_speaker.o" module.

To Reproduce
Steps to reproduce the behavior:

  1. Download repo
  2. Build and Run FoxOS using the command: make run-bios USER_CFLAGS="-DDEBUG -DMEMORY_TRACKING -DBOOTINFO -fsanitize=undefined -DUBSAN_SUPRES_TYPE_MISSMATCH"
  3. The Horizon Kernel should panic while booting

Expected behavior
The Operating System should be running with no issues.

Screenshot
Screenshot from 2022-05-31 16-04-23

System information:

  • Running Pop!_OS 22.04 on real hardware

Additional context
Debug Log File:
log.txt

Minor spelling issues on the website

Describe the bug
"Performance" is spelled as "performence" on the website

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://theultimatefoxos.dev/
  2. Read the first sentence

Expected behavior
Expected that Performance would be wrote correctly

Additional context
TLDR: Performance isn't correctly spelled in the first sentence
image

There is an issue

There is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issueThere is an issue

error building

Following Readme for Ubuntu:

CPP pci/pci.cpp -> ../lib/.//pci/pci.o
pci/pci.cpp: In function ‘void pci::register_pci_driver(uint8_t, uint8_t, uint8_t, void ()(pci::pci_header_0_t, uint16_t, uint16_t, uint16_t))’:
pci/pci.cpp:173:2: sorry, unimplemented: non-trivial designated initializers not supported
};
^

Docker build fails unexpected

Describe the bug
Running the docker image and running make works properly however make img fails with the error:
sh disk.sh /usr/local/foxos-x86_64_elf_gcc : not found disk.sh: dd: invalid number: '93750\r' : not found disk.sh: : not found disk.sh: sh : not found disk.sh: disk.sh: 59: disk.sh: Syntax error: end of file unexpected (expecting "then") make: *** [Makefile:18: img] Error 2

To Reproduce

  1. Download the repo
  2. Run the supplied docker image.
  3. cd into the FoxOS directory.
  4. Type make and wait.
  5. Type make img and the build fails.

Expected behavior
I would expect that the OS properly build and run.

System information (please complete the following information):

  • Running in a Debian 11 VM

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.