Code Monkey home page Code Monkey logo

raccoon-exok's Introduction

Exokernel

Related to a EPITA System and Security Laboratory conference. This is a research project on opensource exokernels. Contact: [email protected] or [email protected] Related conference link coming soon (in french)

Current status

Build status and execution on various gcc and clang:

Raccon-exok

Basic build / test kernel init

# Generate iso_root
make
# Once you created your elf, edited the limine submodules in iso_root/limine.cfg and put your elf file. defaults hangs all cores.
# This generate the iso $(KERNEL).iso
make iso
# To test in qemu for x86_64
make test

Mostly for developers, to apply a kernel patch without changing files in ramdisk (change only kernel elf)

make regen_kernel

raccoon-exok's People

Contributors

daemononunix avatar superfola avatar d0p1s4m4 avatar supercip971 avatar

Stargazers

imagios avatar  avatar Nathan RABET avatar CL0Pinette avatar Mahal avatar Rémi SEGARD avatar  avatar Alex Lev avatar  avatar TrAyZeN avatar Bryan A. S. avatar  avatar  avatar  avatar  avatar  avatar Quentin avatar XaeLee avatar  avatar  avatar Woomy avatar Keyboard Slayer avatar

Watchers

CL0Pinette avatar  avatar

raccoon-exok's Issues

Writing documentation

Where is the documentation ?

The project is interesting, but without documentation, it's hard to contribute.

Suggestions (necessary)

In order to guide new contributors, it seems necessary to :

  • Create a README.md (or another Markdown file) which explains all the project organisation + current features.

For me, a good example is the README of the Removed Private Publicity project. Because it explains what was done, what are the features and what is the project architecture.

  • Explain how your kernel is initialized.

You need to tell how your project is running => bootloader start here, then the functions defined in the file xxx.h are called for that and that in the initialization of XXX, etc....

  • Writing a summary in all the header files to explain what the following functions are used for.
  • Writing documentation on each function definition.

For me, an example of a good header documentation is in include/net/netfilter in the Linux kernel.

For single function definition, Doxygen seems to be a good documentation tool.

Suggestions (optional)

Also, if you don't want to lose time when someone create a PR, you can create a coding style.

By coding style I include formatting and file organisation.

Maybe drop limine soon, page fault on modules handling.

iso_root.zip

Bug gravity: LOW.

There is a NULL dereference at Raccoon-exok/src/kernel/src/parse_init.c:65

Page fault with:

  • Too much core
  • Dual names for same file

The file init (with 5 cores but 4 on machine) was invalid.
There is dual reference on a file in limine.cfg, Don't know if this is a valid.

[PANIC]  (core 0) arch/x86_64/src/kernel_exceptions.c:24 f. k_page_fault -> Interrupt number : 14 (Page Fault)
[PANIC]  (core 0) arch/x86_64/src/kernel_exceptions.c:25 f. k_page_fault -> Page Fault due to: Not present page | Read Access | Fault in privileged segment
[PANIC]  (core 0) arch/x86_64/src/kernel_exceptions.c:31 f. k_page_fault -> Faulty address is 0x0
[PANIC]  (core 0) arch/x86_64/src/kernel_exceptions.c:8 f. panic_common_stub -> Keep kalm, don't panik. Here is a dump of the registers :
[PANIC]  (core 0) arch/x86_64/src/idt.c:173 f. log_stackframe -> Stackframe :
r15 : 0x5       r14 : 0xffffffffbfc1a02e        r13 : 0xffffffff80217918        r12 : 0xffffffff80216f10
r11 : 0x4b      r10 : 0xffffffffffffffff        r9 : 0xffffffff8020b2a1 r8 : 0x0
rbp : 0x4       rdi : 0x20      rsi : 0xffffffff8020b2a3
rdx : 0x47      rcx : 0xffffffffbfc1a033        rbx : 0x0
rax : 0x0       int_no : 0xe     err_code : 0x0
rip : 0xffffffff8020714c        cs : 0x8        rflags : 0x86
prev. rsp : 0xffffffff80216ed0  ss : 0x10

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.