Skip to content

SubSir/rCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rCore

Implementation

  • Bootloader
    • Initialization
    • Entering S mode for the kernel
  • Allocator
    • Buddy allocator
    • Frame allocator (or any fine-grained allocator for any size of memory)
    • SLAB (Optional)
  • Page table
    • For kernel
    • For each user process
  • Console
    • Read
    • Write
  • Message & data transfer
    • User -> Kernel (syscall)
    • Kernel -> User (syscall)
    • [?] Kernel -> Kernel
    • User -> User (pipe)
  • Process
    • Process loading
      • ELF parsing
      • Sections loading (ref to page table)
    • Syscall
      • Kick off a new process (Something like fork and exec)
      • Wait for child processes (Something like wait)
      • Exit from a process (Something like exit)
    • Process manager
      • Process creation
      • Process termination
    • Scheduler
      • Context switch
      • Scheduling mechanism (must be time sharing)
        • Advanced scheduling mechanism (Optional)
      • Timer interrupt
      • IPI (Optional)
    • IPC
      • Pipe
  • Synchronization primitives
    • Mutex
    • Conditional variables (Optional)
  • File system (Optional)
    • File/directory creation/deletion
    • File/directory renaming
    • File read
    • File write
    • File/directory moving
    • (optional) access control, atime/mtime/…
  • Multicore (Optional)
  • Driver (Optional)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published