summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat: Add documentation for atomic operations and memory order, standardize ↵Richard Qin2026-04-212-1/+82
| | | | lock-free programming requirements
* feat: add .clang-format and .clang-tidy configuration files for code ↵Richard Qin2026-04-213-2/+84
| | | | formatting and linting
* feat: add initial RISC-V architecture support and core kernel functionalityRichard Qin2026-04-1724-8/+1618
| | | | | | | | | | | | | | | | | - Implement MMU hardware primitives for RISC-V SV39 in mmu.h - Create trap vector control primitives in trap.h - Define trap frame structure for RISC-V in trapframe.h - Add assembly routines for context switching in swtch.S - Implement trap vector entry/exit in trap_vector.S - Introduce basic error number definitions in errno.h - Provide placement new/delete operators in new.h - Define kernel panic handler in panic.h and implement in panic.cc - Establish basic type definitions in types.h - Create the kernel main entry point in main.cc with global initialization - Add synchronization primitives using spinlocks in spinlock.h and spinlock.cc - Define per-CPU state tracking for interrupts in cpu_state.h - Create a linker script for the kernel in linker.ld - Update module makefiles for kernel and library components
* docs: add global initialization, linker and entry specifications, and ↵Richard Qin2026-04-174-0/+834
| | | | | | | | spinlock documentation - Introduced global initialization sequence documentation outlining the objectives, dependencies, core data structures, public APIs, concurrency contracts, error paths, and state machine for LumeOS. - Created linker and entry documentation defining early memory layout and assembly startup sequence compatible with multiple bootloaders, including API specifications and error handling. - Added spinlock documentation detailing the implementation of spinlocks, concurrency synchronization, memory ordering guarantees, and error handling mechanisms.
* feat: add project conventionsRichard Qin2026-04-171-0/+367
|
* docs: update README to reflect architectural changes and project goalsRichard Qin2026-04-171-46/+11
|
* feat: implement FDT-based memory discovery and add comprehensive debug ↵Richard Qin2026-04-1425-380/+1256
| | | | logging to exec syscalls
* Merge pull request #7 from Richard-Qin-001/dev/shellRichard Qin2026-01-05101-3270/+845
|\ | | | | Important: License changed from MIT to GPL.
| * Important: License changed from MIT to GPL.Richard Qin2026-01-05101-3270/+845
|/ | | | Rewrote the README based on the actual project.
* Merge pull request #6 from Richard-Qin-001/dev/shellRichard Qin2026-01-0471-83670/+421
|\ | | | | A basically complete operating system has been implemented
| * dev(shell): implement basic shell toolsRichard Qin2026-01-0471-83670/+421
|/ | | | fixed(file-system): fixed read and write bugs
* Merge pull request #5 from Richard-Qin-001/dev/file-systemRichard Qin2026-01-0469-15880/+77423
|\ | | | | feat(file-system): implement read and write FAT32 File System and basic shell
| * feat(file-system): implement read and write FAT32 File System and basic shellRichard Qin2026-01-0469-15880/+77423
|/
* Merge pull request #4 from Richard-Qin-001/dev/shellRichard Qin2026-01-03125-1067/+36090
|\ | | | | | | | | Rebuilt the system's underlying structure; it is now stable enough to merge. The system now supports a read-only file system and has a simple shell implemented.
| * Fix: critical malloc size calculation bugRichard Qin2026-01-0322-8596/+8703
| | | | | | | | | | | | | | | | | | | | Summary: - Fixed an integer arithmetic error in malloc() where 'nunits' was initialized to 0, causing incorrect heap sizing. - This bug caused malloc to return pointers pointing to unmapped memory pages, leading to Store Page Fault (scause 15) at process boundaries. - Switched memory allocator logic to use byte-based size calculation instead of K&R style units to prevent off-by-one errors. Improvements: - Shell now starts successfully without segfaults.
| * dev(sell): add simple libc and implement shellRichard Qin2026-01-0266-1279/+28717
| | | | | | | | please see the log for detail.
| * dev(file-system): establish VFS and Read-only FAT32 File SystemRichard Qin2026-01-0243-682/+2253
| |
| * dev(device): implement VirtIORichard Qin2026-01-0142-619/+1897
| | | | | | | | See dev log for detail
| * dev: PILC implementationRichard Qin2025-12-316-0/+94
| |
| * dev logRichard Qin2025-12-311-0/+37
| |
| * dev:Refactor Memory Management and Process ManagementRichard Qin2025-12-3152-924/+2090
| |
| * dev(spinlock): refactoring the implementation of locksRichard Qin2025-12-304-116/+257
| |
| * dev(pmm.h): refactor header fileRichard Qin2025-12-301-4/+44
| |
| * feat(types): defined a type aliasRichard Qin2025-12-301-15/+20
| |
| * Merge branch 'main' into feature/stdlibRichard Qin2025-12-291-73/+115
| |\ | |/ |/|
* | feat(README): Update README fileRichard Qin2025-12-291-73/+115
| |
| * feat(stdlib): standard I/O ImplementationRichard Qin2025-12-285-0/+3146
|/
* fixed(vm): page allocation errorRichard Qin2025-12-283-1/+1
|
* fixed(proc):Fix the page table mapping error during process forkRichard Qin2025-12-285-5/+11
|
* feat(syscall): implement functional sys_write using copyin for user console ↵Richard Qin2025-12-283-6/+24
| | | | output
* feat(user): add user-space build system and init process to test fork/waitRichard Qin2025-12-2816-16/+391
|
* feat(syscall): Implement syscall dispatch and process lifecycle ↵Richard Qin2025-12-2821-128/+633
| | | | (exit/wait/sleep)
* feat: Implement the first user program of the lume OSRichard Qin2025-12-2720-82/+593
|
* feat: Encapsulates the low-level hardware details of the RISC-V ↵Richard Qin2025-12-251-0/+400
| | | | | | architecture, providing interfaces for the rest of the kernel to operate CPU registers and manage memory Copied from the xv-6 source code.
* Add the README to provide a detailed explanation of the projectRichard Qin2025-12-144-1/+95
|
* feat: add preemptive scheduling, SBI timer support and FDT parser.Richard Qin2025-12-1323-62/+249
|
* feat:Cooperative MultitaskingRichard Qin2025-12-1115-52/+294
|
* feat: Add initial Supervisor Mode Trap HandlerRichard Qin2025-12-1012-17/+310
| | | | | | | | | | Implement the initial mechanism for handling traps and exceptions in Supervisor Mode. Set up the stvec Control and Status Register (CSR) to direct all S-Mode Traps (Interrupts and Exceptions) to a unified assembly entry point. Implemented assembly code for saving and restoring the Trap Context (register state). Provides the foundational framework necessary for future Timer Interrupts and System Calls.
* feat: Initial PMM implementationRichard Qin2025-12-0921-185/+376
| | | | | | Introduce the foundational Physical Memory Manager (PMM) and restructure the project for modularity. Implemented basic PMM and related memory management headers (mm/pmm.h, mm/vm.h). Updated Makefile and build process to support new modular structure.
* The start of the project -- A MicroDOSRichard Qin2025-12-0815-0/+307
feat: Initial bare-metal RISC-V boot with UART