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操作系统,支持中断、内存分页、堆内存管理、磁盘控制、文件分区、系统调用、线程调度等功能。)

https://github.com/zhuagenborn/tiny-x86-os

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

assembly cpp20 disk-management interrupt kernel memory-management opertaing-system thread-scheduling
Last synced: 6 months ago · JSON representation

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
  • Host: GitHub
  • Owner: Zhuagenborn
  • License: mit
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 184 KB
Statistics
  • Stars: 33
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
assembly cpp20 disk-management interrupt kernel memory-management opertaing-system thread-scheduling
Created about 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Tiny x86 Operating System in C++

C++ NASM Make GitHub Actions Linux License

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::malloc and std::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

  1. Development Environment
  2. Building the System

Boot

  1. Master Boot Record
  2. Loader

Kernel

  1. Interrupts
  2. System Calls
  3. Threads
  4. Memory
  5. File System
  6. User Processes

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

Software Development | Artificial Intelligence | Reverse Engineering.

GitHub Events

Total
  • Watch event: 24
  • Push event: 2
Last Year
  • Watch event: 24
  • Push event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 56
  • Total Committers: 1
  • Avg Commits per committer: 56.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 53
  • Committers: 1
  • Avg Commits per committer: 53.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Chenzs108 c****8@o****m 56

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

.github/workflows/make.yaml actions
  • actions/checkout main composite