ababo / toy Goto Github PK
View Code? Open in Web Editor NEWSimple OS-like program for x86-64 and AArch64
Simple OS-like program for x86-64 and AArch64
Simple OS-like program for x86-64, which dreams to become a real OS. Design vision (to be implemented): 1. Single address space OS. All available external memory is mapped into it. 2. Persistent applications. They not only survive reboot, but also can be transferred to another machine (with a same architecture) and resumed there. 3. Virtual machine for memory protection and security. Already implemented: 1. Multiboot specification support (for GRUB2 or patched GRUB). 2. Textual VGA-mode (16 colors, limited kprintf). 3. CPU topology detection (sockets, cores, threads) for Intel and AMD CPUs. 4. Convenient page mapping interface. 5. Support of interrupts written in C. 6. Simple preemptive scheduler with SMP support. 7. Synchronization primitives: spinlock, mutex. Supported compilers: 1. GCC 2. CLang Build environment: 1. Linux (known to work on recent Ubuntu).
We need to implement a memory pool (for fixed-sized blocks) on top of kmalloc, kfree, etc. The current memory pool functions (create_mem_pool, alloc_block, free_block, destroy_mem_pool) have no real implementation; they are just stubs which redirect calls to kmalloc and kfree.
Now the scheduler uses fixed priorities, we need an additional support for dynamic ones. Practically most of the implementation should be located inside the function:
static inline void update_priority_quantum(struct thread_data *thread);
Seems that local APIC registers are not mapped to RAM.
We need to adopt an existent memory allocator to implement stubs: kmalloc, kfree, etc. Such allocator should be under BSD license.
We need really hard concurrent tests to check them against deadlocks and race conditions.
This situation is reproduced in ~25% of launches.
Host machine: Mac OS X; virtual machine (under VMware): Ubuntu 12.04.
Will be nice.
Guru Meditation -1153 (VERR_EM_INTERNAL_DISAS_ERROR)
Works OK in qemu.
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.