Giter Site home page Giter Site logo

chronos's People

Contributors

chronossystems avatar jdetter avatar mchargo avatar spwilson2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

spwilson2

chronos's Issues

GRUB2 support

Support for chainloading through GRUB2 needs to be added.

Incorportate a build configuration system.

To consider:

  • SCons
  • CMake
  • kconfig (Would need to port from linux kernel or find an existing port)
  • roll our own autotools build

I'll also update this first comment with any other suggestions to consider and leave discussion to comments.

Repeated mallocs/frees causing segfault

This test passes on Linux, however causes a segfault in Chronos. Reproducer program (malloc test in testsuite):

#include <stdlib.h>
#include <testsuite.h>

#define COUNT 0x10000
#define ALLOC_SIZE 0x1000

int main(int argc, char** argv)
{
    int* arr[COUNT];
    int x;
    for(x = 0;x < COUNT;x++)
    {
        arr[x] = malloc(ALLOC_SIZE);
        if(!arr[x])
            TESTFAILURE;
    }

    for(x = 0;x < COUNT;x++)
        free(arr[x]);

    for(x = 0;x < COUNT;x++)
    {
        arr[x] = malloc(ALLOC_SIZE);
        if(!arr[x])
            TESTFAILURE;
    }

    for(x = 0;x < COUNT;x++)
        free(arr[x]);

    TESTSUCCESS;

    return 0;
}

Boot stage 2 memory map revisit

The boot stage 2 has changed significantly recently and has gotten much bigger and will grow much more very soon with the addition of root partition detection. The new boot stage 2 will start at physical address 0x6000 and go to physical address 0x20000, which makes it 88KB in size. I have moved around a lot of the kernel argument stuff (current video mode, start of page pool, ect.) because before we were writing over BIOS data.I have posted the new map as a gist:

https://gist.github.com/jdetter/ca388fce7828420c313f57535a720f13

A large amount of space has been left in the text section because we still haven't added support for root partition detection

EXT2 driver won't work with block sizes other than 4K

Mounting a file system with a block size less than 4K causes the driver not to work properly. I don't think I've noticed a crash but all of the data is nonsense.

System also won't boot with an ext2 system with a non 4K block size.

Support for /etc/fstab and mounting partitions on boot

Right now, Chronos will search for the first EXT2 file system on the disk and use that as the root file system and then mount a memory based file system on /dev (creating /dev first if necessary). Support needs to be added for an fstab file so that different partitions can be mounted at different places in the file system. This will also be a precursor to adding support for booting with GRUB2.

Kernel support for setting errno value

Right now there is no support for the kernel setting the errno value. The errno value should be passed back to the user program in a general purpose register (probably ECX).

Testsuite tests will be provided.

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.