Commit Graph

7281 Commits

Author SHA1 Message Date
Eirikr Hinngart
cc3a954652
Merge pull request #69 from Oichkatzelesfrettschen/add-kernel-refactor-doc
Add MINIX kernel refactoring overview document
2025-06-07 02:37:17 -07:00
google-labs-jules[bot]
5dc37f884d Add MINIX kernel refactoring overview document
This commit adds the MINIX Kernel Refactoring: Foundational Overhaul (v0.1 - v0.2) document.

This document provides an overview of the foundational refactoring effort undertaken on the MINIX kernel, detailing the initial problem state, goals, key architectural changes implemented, current state, and guidance for future work.

I have placed the file in `minix/kernel/docs/MINIX_Kernel_Refactoring_v0.1-v0.2.md`.
2025-06-07 09:36:49 +00:00
Eirikr Hinngart
a3bcb454e6 tracking 2025-06-07 02:23:07 -07:00
Eirikr Hinngart
ff62cb1a91 updates 2025-06-07 02:18:54 -07:00
Eirikr Hinngart
f05c947ccd Bootloder_Windowing_Test 2025-06-06 23:30:55 -07:00
Eirikr Hinngart
57fd337d71
Merge pull request #66 from Oichkatzelesfrettschen/kernel-refactor-foundations
Refactor: KASSERT_PLACEHOLDER to KASSERT Migration (Partial)
2025-06-06 21:11:28 -07:00
Eirikr Hinngart
84ad570bb4
Merge branch 'master' into kernel-refactor-foundations 2025-06-06 21:11:07 -07:00
google-labs-jules[bot]
61edfddd25 Refactor: KASSERT_PLACEHOLDER to KASSERT Migration (Partial)
This commit represents the progress I've made on migrating your codebase from
the temporary KASSERT_PLACEHOLDER macro to the new KASSERT macro
defined in <sys/kassert.h>.

**Work Completed:**

*   **`minix/kernel/` (root directory files):**
    *   I processed all 30 `.c` and `.h` files in this directory.
    *   I found and replaced `KASSERT_PLACEHOLDER` with `KASSERT` (and included `<sys/kassert.h>`) in 6 files: `debug.c`, `interrupt.c`, `main.c`, `proc.c`, `smp.c`, and `system.c`.

*   **`minix/kernel/system/` (system call handlers):**
    *   I processed all 38 `.c` files in this directory.
    *   I found and replaced `KASSERT_PLACEHOLDER` with `KASSERT` (and included `<sys/kassert.h>`) in 6 files: `do_copy.c`, `do_fork.c`, `do_mcontext.c`, `do_runctl.c`, `do_safecopy.c`, and `do_vumap.c`.

**Total Progress:**
*   Files processed: 68
*   Files with KASSERT migrations: 12

**Next Steps:**
My original plan was to continue this migration for the `arch/i386/` and `arch/earm/` directories.

**Reason for Current Status:**
This is the last turn allowed for our current session.

**Your Feedback Incorporated into Future Work Considerations:**
You have provided an exceptionally detailed "Technical Review: KASSERT Migration Progress Analysis." I've received this review and it will be invaluable for guiding the continuation of this work. Key points from your feedback include:
*   **Validation:** Implementing post-migration validation steps to ensure completeness and correct include usage.
*   **Arch-Specific Expectations:** Anticipating higher assertion density in specific files within `arch/i386` (e.g., `memory.c`, `protect.c`) and `arch/earm`.
*   **Potential Issues:** Watching for conditional compilation conflicts (`DEBUG` vs. `DEBUG_KERNEL`) and ensuring C-only constructs from KASSERT don't affect assembly-visible headers.
*   **Continuation Protocol:** You recommend proceeding with `arch/i386` using the established methodology, maintaining granular tracking, and flagging anomalies.
*   **Optimization Opportunities:** Considering a migration log and preparing for potential macro expansion issues.

This update captures the state of the KASSERT migration before I address the `arch/` directories and before I fully incorporate the detailed verification and logging strategies from your latest feedback. I will resume based on this feedback in our next session.
2025-06-07 03:49:54 +00:00
Eirikr Hinngart
becbe80f2a
Merge pull request #53 from Oichkatzelesfrettschen/eirikr/recursively-delete-files-referencing-netbsd
Remove NetBSD-related files
2025-06-06 17:13:11 -07:00
Eirikr Hinngart
aee03ed007
Merge pull request #54 from Oichkatzelesfrettschen/z38f4i-eirikr/recursively-delete-files-referencing-netbsd
Remove NetBSD-related files
2025-06-06 17:12:58 -07:00
Eirikr Hinngart
91f18588a5
Merge pull request #61 from Oichkatzelesfrettschen/eirikr/run-grep-for-netbsd-and-delete-files
Clean remaining NetBSD artifacts
2025-06-06 17:12:23 -07:00
Eirikr Hinngart
648f464e70
Merge pull request #65 from Oichkatzelesfrettschen/kernel-refactor-foundations
I've refactored the MINIX kernel for architectural soundness.
2025-06-06 13:12:34 -07:00
google-labs-jules[bot]
c3119ae881 I've refactored the MINIX kernel for architectural soundness.
This commit addresses critical architectural deficiencies in the MINIX kernel build and source structure. The changes are based on a comprehensive technical review and aim to establish a cleaner, more robust foundation for future kernel development.

Key changes include:

1.  **Kernel-Specific Type System:**
    *   I introduced `minix/kernel/include/minix/kernel_types.h`.
    *   I defined kernel-specific types (e.g., `k_size_t`, `k_pid_t`) and fixed-width integer types (e.g., `k_uint32_t`) to replace userspace types.

2.  **Kernel-Space Library (`klib`):**
    *   I created a new kernel library (`klib`) located in `minix/kernel/klib/`.
    *   I implemented basic string functions (`kstrlen`, `kstrlcpy`, `kstrcmp`) in `kstring.c`.
    *   I implemented basic memory functions (`kmemcpy`, `kmemset`, `kmemmove`) in `kmemory.c`.
    *   I added stub implementations for `kprintf`, `ksprintf`, and `kvprintf` in `kprintf_stub.c`, along with a `KASSERT_PLACEHOLDER` macro.

3.  **Purged Userspace Dependencies:**
    *   I systematically refactored all C and header files within `minix/kernel/` and its subdirectories (`system/`, `arch/i386/`, `arch/earm/`).
    *   I removed userspace includes (e.g., `<string.h>`, `<stdlib.h>`, `<stdio.h>`, `<assert.h>`, `<sys/types.h>`, `<signal.h>`, `<unistd.h>`).
    *   I replaced calls to userspace C library functions with their `klib` equivalents or marked them with `FIXME` comments if a direct replacement was not yet available (e.g., `atoi`, `strncmp`).
    *   I replaced userspace types with their `k_` prefixed kernel versions.

4.  **Build System Reconstruction (Meson):**
    *   I replaced `minix/kernel/meson.build` with a new script designed for a proper kernel build.
    *   The new build system defines kernel-specific compiler flags, handles architecture detection (i386, x86_64), sets up correct include paths, and builds `klib` and the main kernel executable.
    *   Assembly file compilation and linkage are noted as TODOs in the Meson script.

**Next Steps & Known Issues:**
The kernel is not expected to build successfully immediately after these changes. A significant number of `FIXME` comments and identified issues need to be addressed in a proper build environment. These include:
*   Defining numerous missing constants (error numbers, signal numbers, etc.).
*   Providing kernel-safe implementations for macros like `offsetof`.
*   Implementing missing `klib` functions (e.g., a real `kprintf`, `kstrncmp`, `kmemcmp`, `katoi`).
*   Developing kernel-space signal handling and ELF loading mechanisms.
*   Adding rules for compiling and linking assembly source files.

This refactoring establishes the necessary structure to tackle these remaining issues systematically.
2025-06-06 20:12:01 +00:00
Eirikr Hinngart
5de8e45726
Merge pull request #64 from Oichkatzelesfrettschen/eirikr/remove-netbsd-code-and-implement-meson-build-system
Introduce x86_64 skeleton
2025-06-04 11:02:52 -07:00
Eirikr Hinngart
8589abd527
Merge branch 'master' into eirikr/remove-netbsd-code-and-implement-meson-build-system 2025-06-04 11:02:43 -07:00
Eirikr Hinngart
a87da82bf4 Add x86_64 architecture support 2025-06-04 10:02:37 -07:00
Eirikr Hinngart
5b50529f8e
Merge pull request #63 from Oichkatzelesfrettschen/eirikr/remove-netbsd-code-and-implement-meson-build-system
Introduce Meson build skeleton
2025-06-03 19:42:49 -07:00
Eirikr Hinngart
c1482c266b Refine Meson build with include paths 2025-06-03 19:42:37 -07:00
Eirikr Hinngart
6e5382efa5
Merge pull request #62 from Oichkatzelesfrettschen/jules_wip_6805400559051994185
Jules was unable to complete the task in time. Please review the work…
2025-05-31 22:19:57 -07:00
google-labs-jules[bot]
e93167d165 Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-01 05:19:20 +00:00
Eirikr Hinngart
8ec311eb7c Remove remaining NetBSD references 2025-05-31 20:53:08 -07:00
Eirikr Hinngart
7d4b5bef59
Merge pull request #60 from Oichkatzelesfrettschen/eirikr/run-grep-for-netbsd-and-delete-files
Clean remaining NetBSD artifacts
2025-05-31 20:21:20 -07:00
Eirikr Hinngart
1b0b27f8d1 Remove remaining NetBSD references 2025-05-31 20:20:57 -07:00
Eirikr Hinngart
03c7b35894
Merge pull request #59 from Oichkatzelesfrettschen/eirikr/remove-netbsd-references-–-batch-2
Remove NetBSD references – batch 2
2025-05-31 20:16:52 -07:00
Eirikr Hinngart
8f10d14297 Remove NetBSD references – batch 2 2025-05-31 20:16:38 -07:00
Eirikr Hinngart
ac723761ad housekeeping 2025-05-31 18:19:17 -07:00
Eirikr Hinngart
da28b3d90f final removal 2025-05-31 17:59:54 -07:00
Eirikr Hinngart
c489c110ad
Merge pull request #57 from Oichkatzelesfrettschen/eirikr/remove-netbsd-references-–-batch-1
Remove NetBSD references – batch 1
2025-05-31 17:06:45 -07:00
Eirikr Hinngart
f6513902aa Remove NetBSD references – batch 1 2025-05-31 17:06:32 -07:00
Eirikr Hinngart
fcf253e1cf
Merge pull request #56 from Oichkatzelesfrettschen/5j6t7o-eirikr/recursively-delete-files-referencing-netbsd
Remove NetBSD-related files
2025-05-31 16:19:03 -07:00
Eirikr Hinngart
e51f3d8934 Remove NetBSD-related files 2025-05-31 16:18:09 -07:00
Eirikr Hinngart
0076fb782e
Merge pull request #55 from Oichkatzelesfrettschen/t4jxqo-eirikr/recursively-delete-files-referencing-netbsd
Remove NetBSD-related files
2025-05-31 12:16:19 -07:00
Eirikr Hinngart
ffcca5f234 Remove NetBSD-related files 2025-05-31 12:15:27 -07:00
Eirikr Hinngart
d18f0e20af re-organization 2025-05-31 09:54:31 -07:00
Eirikr Hinngart
3b4e2f0992 Remove NetBSD-related files 2025-05-31 09:53:08 -07:00
Eirikr Hinngart
58b988c2ac Remove NetBSD-related files 2025-05-31 09:52:59 -07:00
Eirikr Hinngart
263125df20
Merge pull request #52 from Oichkatzelesfrettschen/eirikr/delete-remaining-bsd-files 2025-05-31 01:18:13 -07:00
Eirikr Hinngart
b7c1515188 Remove NetBSD-related files 2025-05-31 01:18:02 -07:00
Eirikr Hinngart
9426366af1
Merge pull request #50 from Oichkatzelesfrettschen/eirikr/delete-netbsd-references-and-reformat-code
Remove NetBSD build files
2025-05-31 01:16:45 -07:00
Eirikr Hinngart
1800558ec2 Remove NetBSD-related build files 2025-05-31 01:16:23 -07:00
Eirikr Hinngart
156d5c3e51
Merge pull request #37 from Oichkatzelesfrettschen/eirikr/delete-netbsd-files
Remove residual NetBSD artifacts
2025-05-30 23:32:15 -07:00
Eirikr Hinngart
93654f7348
Merge pull request #47 from Oichkatzelesfrettschen/eirikr/remove-netbsd-references-from-subdirs 2025-05-30 23:30:57 -07:00
Eirikr Hinngart
ca8805933b Remove NetBSD references from bin 2025-05-30 23:27:30 -07:00
Eirikr Hinngart
97fbaea1dd
Merge pull request #43 from Oichkatzelesfrettschen/eirikr/remove-netbsd-referencing-files 2025-05-30 23:25:29 -07:00
Eirikr Hinngart
b8973501ae Remove NetBSD-referencing build files 2025-05-30 23:25:20 -07:00
Eirikr Hinngart
22f857ece8
Merge pull request #39 from Oichkatzelesfrettschen/eirikr/delete-files-with-netbsd-references 2025-05-30 23:22:47 -07:00
Eirikr Hinngart
9cf969d2e0 Remove NetBSD-referenced files 2025-05-30 23:22:37 -07:00
Eirikr Hinngart
6b41fd71e8 Remove NetBSD-specific leftover files 2025-05-30 23:17:33 -07:00
Eirikr Hinngart
dc3f24def6
Delete lib directory 2025-05-30 23:14:22 -07:00
Eirikr Hinngart
64da542fc6
Create c-cpp.yml 2025-05-30 23:12:52 -07:00