periecle / redos Goto Github PK
View Code? Open in Web Editor NEWEducational x86 Monolithic Operating system
License: MIT License
Educational x86 Monolithic Operating system
License: MIT License
** 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.
Map kernel to 0xC.
After migrating to the higher half kernel we can:
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.
It is hard to operate on a terminal that overwrites the first lines on new entries.
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.
IDT is a prerequisite for writing interrupt handlers for handling exceptions and working with devices.
Make sure that GDT has been set up correctly!
Implement valid printf() for kernel purposes.
It will be hard to debug the kernel without printing anything.
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.
We need a robust and easy-to-use build system. CMake looks like a viable choice.
Add Stack Smashing Protector (SSP) compiler feature support.
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
Setup Paging mechanism for x86
We need paging to support virtual memory management and begin working on the memory management subsystem.
More details about paging on osdev.
Implement GDT.
GDT is an essential step before implementing interrupts and working on memory management.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.