Git Product home page Git Product logo

initium's Introduction

Hello World!

Welcome to my GitHub page, I'm Gil Mendes, a passionate software engineer from Portugal ๐Ÿ‡ต๐Ÿ‡น

Here you can find a simple resume of my interests:

initium's People

Contributors

gil0mendes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

initium's Issues

Rewrite Initium to Rust

Objective

I want to implement Initium in a more object oriented style for so long, but none of the options were good enough for me, until now. Rust is my new loved language and was a system language that it is, is an excellent option for this reimplementation.

Rust allows us to simplify our code, making it more readable and easy to maintain. Besides that, Rust comes with a powerful package manager that automate some tasks for us and give us access to a huge repository of packages created by other developers. We also can separate our app by packages and that will make our code more maintainable and easier to read.

Tasks

  • Implement the initial build system.
  • Write the assembly to jump to Rust code.
  • Create a separation between platforms (like BIOS, and EFI)
  • Implement basic memory management for BIOS
  • Check if CPU is supported
  • Implement x86 descriptor table
  • Implement some time functions
  • Implement system to manage the filesystem
  • Implement filesystem functions for BIOS
  • Add support for ISO9660
  • Implement generic memory management functions
  • Implement a repository to keep all the found devices
  • Implement a system to manage the environment
  • Load the config file into de environment (maybe we must replace the old system by YAML)
  • Implement a loader for Linux systems
  • Implement a direct boot mode (no user interaction occurs)
  • Implement a CLI UI for the boot menu
  • Implement a loader for multiboot2
  • Implement a loader for Initium Protocol (our loved protocol ๐Ÿ˜„)
  • Implement a GUI interface for the menu
  • Add support for FAT filesystem
  • Add support for EXT filesystem
  • Add support for compressed (gzip) filesystem
  • Implement basic network for BIOS
  • Implement a generic network device management
  • Add support for EFI
  • Implement memory managment for EFI
  • Implement video for EFI
  • Implement filesystem for EFI
  • Implement basic network for EFI

Compiling error

Hi

Nice project :)

Got this error while compiling

image

I used i386-elf cross compiler, built on WSL Ubuntu 18.04

Could you please help me ?

Typo in submodules, Access Rights etc ...

Hi Gil,

thanks for your great post at:

https://gil0mendes.io/blog/an-efi-app-a-bit-rusty/

I had a really hard time to get in contact with you. Couldn't find any way to drop you an email or chat ...

The command to download the submodules has a typo and should read:

git submodule update --init

(it's in plural in the README.md file). But when downloading the submodules, access is not granted:

Cloning into '/home/schmidtm/prj/Initium/3rd-party/uefi-rs'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:gil0mendes/uefi-rs.git' into submodule path '/home/schmidtm/prj/Initium/3rd-party/uefi-rs' failed

If i clone this submodule sucessfully from it's original location by hand:

git clone https://github.com/rust-osdev/uefi-rs.git

and try to build the load using:

./build.py build

I am running into another issue with dropped features:

` Compiling x86_64 v0.13.6
error[E0557]: feature has been removed
--> /home/schmidtm/.cargo/registry/src/github.com-1ecc6299db9ec823/x86_64-0.13.6/src/lib.rs:5:43
|
5 | #![cfg_attr(feature = "const_fn", feature(const_fn))] // Needed for generic access to associated consts
| ^^^^^^^^ feature has been removed
|
= note: split into finer-grained feature gates

For more information about this error, try rustc --explain E0557.
e`

I really wann use your loader, but running out of options ...

cheers,

Matthias Schmidt

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.