GithubHelp home page GithubHelp logo

redos's People

Contributors

periecle avatar

Stargazers

 avatar

Watchers

 avatar

redos's Issues

Implement Stack Smashing Protector

What should be done

Add Stack Smashing Protector (SSP) compiler feature support.

Motivation

This serves a dual purpose in making the occurrence of such bugs visible and as exploit mitigation against return-oriented programming.

More can be read on OSDEV

Specify Multiboot 2 header

** What should be done

Add multiboot 2 header. Adhere to reference manual.

** Motivation

To obtain memory map, framebuffer info and meta info of kernel ELF.

Move to Higher Half Kernel design

What should be done

Map kernel to 0xC.

Motivation

After migrating to the higher half kernel we can:

  • It's easier to set up VM86 processes since the region below 1 MB is userspace.
  • More generally, user applications are not dependent on how much memory is kernel space (your application can be linked to 0x400000 regardless of whether the kernel is at 0xC0000000, 0x80000000, or 0xE0000000 ...), which makes the ABI nicer.
  • If your OS is 64-bit, then 32-bit applications will be able to use the full 32-bit address space.
  • 'Mnemonic' invalid pointers such as 0xCAFEBABE, 0xDEADBEEF, 0xDEADC0DE, etc. can be used.

Migrate build system from bash + Makefile to CMake

What should be done

Migrate functionality of shell scripts and Makefiles for building libc/libk and kernel to CMake.
CMake shall generate makefiles for compiling, linking, and producing kernel images.

Motivation

We need a robust and easy-to-use build system. CMake looks like a viable choice.

Implement IDT

What should be done

The Interrupt Descriptor Table (IDT) is a binary data structure specific to the IA-32 and x86-64 architectures. It is the Protected Mode and Long Mode counterpart to the Real Mode Interrupt Vector Table (IVT) telling the CPU where the Interrupt Service Routines (ISR) are located (one per interrupt vector). It is similar to the Global Descriptor Table in structure.

Motivation

IDT is a prerequisite for writing interrupt handlers for handling exceptions and working with devices.
Make sure that GDT has been set up correctly!

Setup Global Descriptor Table

What should be done

Implement GDT.

Motivation

GDT is an essential step before implementing interrupts and working on memory management.

Implement terminal scrolling

What should be done

When terminal caret reached the last line and last row - remove the first line and move the other lines one line before and leave the last line empty.

Motivation

It is hard to operate on a terminal that overwrites the first lines on new entries.

Setup basic Paging without PAE

What should be done

Setup Paging mechanism for x86

Motivation

We need paging to support virtual memory management and begin working on the memory management subsystem.

More details about paging on osdev.

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.