tiny-x86-os
💽 A simple Intel x86 operating system written in assembly and C++, supporting interrupts, memory paging and heap allocation, disk control, file partition, system calls, thread scheduling, etc.(使用C++和汇编开发的简易Intel x86操作系统,支持中断、内存分页、堆内存管理、磁盘控制、文件分区、系统调用、线程调度等功能。)
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.0%) to scientific vocabulary
Keywords
Repository
💽 A simple Intel x86 operating system written in assembly and C++, supporting interrupts, memory paging and heap allocation, disk control, file partition, system calls, thread scheduling, etc.(使用C++和汇编开发的简易Intel x86操作系统,支持中断、内存分页、堆内存管理、磁盘控制、文件分区、系统调用、线程调度等功能。)
Basic Info
Statistics
- Stars: 33
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Tiny x86 Operating System in C++
Introduction
A simple Intel x86 operating system written in assembly and C++, developed on Ubuntu and Bochs.
- Boot
- The master boot record for system startup.
- Memory
- Memory segmentation and paging.
- Virtual memory mapping based on bitmaps.
- Heap management (
std::mallocandstd::free) based on memory arenas.
- Interrupts
- Interrupt control based on Intel 8259A.
- Timer interrupts based on Intel 8253.
- Threads
- Thread scheduling based on timer interrupts.
- Semaphores and locks based on interrupts.
- Processes
- User processes based on Intel x86 task state segments.
- Fork.
- Graphic
- Character printing in VGA text mode.
- Keyboard
- Keyboard control based on Intel 8042.
- The circular keyboard input buffer.
- Disks
- IDE channel and disk control.
- Disk partition scanning.
- File System
- File and directory management based on index nodes.
- System Calls
- Privilege switching and system calls based on interrupts.
- C/C++
- Basic C/C++ standard libraries.
Contents
Getting Started
Boot
Kernel
References
Structure
console
.
CITATION.cff
Debugging.md
LICENSE
Makefile
README.md
docs
Boot
Images
loader
memory-paging.drawio
memory-paging.svg
page-directory-table.drawio
page-directory-table.svg
Loader.md
Master Boot Record.md
Getting Started
Building the System.md
Development Environment.md
Kernel
File System.md
Images
file-system
directory-entries.drawio
directory-entries.svg
index-node.drawio
index-node.svg
memory
memory-heap.drawio
memory-heap.svg
memory-pools.drawio
memory-pools.svg
threads
thread-block.drawio
thread-block.svg
thread-lists.drawio
thread-lists.svg
thread-switching.drawio
thread-switching.svg
Interrupts.md
Memory.md
System Calls.md
Threads.md
User Processes.md
badges
C++.svg
License-MIT.svg
Linux.svg
Made-with-GitHub-Actions.svg
Made-with-Make.svg
NASM.svg
include
boot
boot.inc
kernel
debug
assert.h
descriptor
desc.h
desc.inc
gdt
idx.h
tab.h
interrupt
intr.h
pic.h
io
disk
disk.h
disk.inc
file
dir.h
file.h
inode.h
super_block.h
ide.h
file
dir.h
file.h
path.h
io.h
keyboard.h
timer.h
video
console.h
print.h
print.inc
krnl.h
krnl.inc
memory
page.h
page.inc
pool.h
process
elf.inc
proc.h
tss.h
selector
sel.h
sel.inc
stl
algorithm.h
array.h
cerron.h
cmath.h
cstddef.h
cstdint.h
cstdlib.h
cstring.h
iterator.h
mutex.h
semaphore.h
source_location.h
span.h
string_view.h
type_traits.h
utility.h
syscall
call.h
thread
sync.h
thd.h
util
bit.h
bitmap.h
block_queue.h
format.h
metric.h
metric.inc
tag_list.h
user
io
file
dir.h
file.h
video
console.h
memory
pool.h
process
proc.h
stl
cstdint.h
syscall
call.h
src
boot
loader.asm
mbr.asm
kernel
debug
assert.cpp
descriptor
desc.asm
gdt
tab.cpp
interrupt
intr.asm
intr.cpp
pic.cpp
io
disk
disk.cpp
file
dir.cpp
file.cpp
inode.cpp
super_block.cpp
ide.cpp
part.cpp
file
dir.cpp
file.cpp
path.cpp
io.asm
io.cpp
keyboard.cpp
timer.cpp
video
console.cpp
print.asm
print.cpp
krnl.cpp
main.cpp
memory
page.asm
page.cpp
pool.cpp
process
proc.cpp
tss.asm
tss.cpp
stl
cstring.cpp
mutex.cpp
semaphore.cpp
syscall
call.asm
call.cpp
thread
sync.cpp
thd.asm
thd.cpp
util
bitmap.cpp
format.cpp
tag_list.cpp
user
io
file
dir.cpp
file.cpp
video
console.cpp
memory
pool.cpp
process
proc.cpp
License
Distributed under the MIT License. See LICENSE for more information.
Owner
- Name: Zhuagenborn
- Login: Zhuagenborn
- Kind: organization
- Location: Ireland
- Repositories: 3
- Profile: https://github.com/Zhuagenborn
Software Development | Artificial Intelligence | Reverse Engineering.
GitHub Events
Total
- Watch event: 24
- Push event: 2
Last Year
- Watch event: 24
- Push event: 2
Issues and Pull Requests
Last synced: 8 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout main composite