Skip to content

Add Limine support#835

Draft
vinc wants to merge 36 commits into
feature/memory-mapfrom
feature/limine
Draft

Add Limine support#835
vinc wants to merge 36 commits into
feature/memory-mapfrom
feature/limine

Conversation

@vinc

@vinc vinc commented Apr 18, 2026

Copy link
Copy Markdown
Owner

This PR is quite experimental! The goal is to see what is needed to support Limine with its native protocol and/or multiboot2.

Limine with its native protocol doesn't support VGA Text Mode but it places the kernel in higher half memory, which is interesting and something that the bootloader crate can't do with the 0.9 version.

Limine with the multiboot2 protocol does support VGA Text Mode, but doesn't enable long mode.

@vinc vinc added the experiment Experiment that might never be merged label Apr 18, 2026
@vinc vinc mentioned this pull request Apr 19, 2026
dependabot Bot and others added 15 commits April 22, 2026 09:32
Bumps [object](https://github.com/gimli-rs/object) from 0.39.0 to 0.39.1.
- [Changelog](https://github.com/gimli-rs/object/blob/main/CHANGELOG.md)
- [Commits](gimli-rs/object@v0.39.0...v0.39.1)

---
updated-dependencies:
- dependency-name: object
  dependency-version: 0.39.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add asm script

* Add case function

* Parse comments

* Fix mutate function

* Fix = function

* Add labels

* Fix test

* Add str instr

* Add lea instr

* Remove debug output

* Parse params

* Add 64-bit registers

* Use brackets for memory access

* Add bitwise operators

* Add encode-mode function

* Add bitwise operations to big int

* Add copy from register

* Add copy from memory

* Fix usage output

* Add more instructions

* Add jmp

* Add xor reg reg

* Add examples

* Refactor code with helper functions

* Update changelog
Bumps [smoltcp](https://github.com/smoltcp-rs/smoltcp) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/smoltcp-rs/smoltcp/releases)
- [Changelog](https://github.com/smoltcp-rs/smoltcp/blob/main/CHANGELOG.md)
- [Commits](smoltcp-rs/smoltcp@v0.13.0...v0.13.1)

---
updated-dependencies:
- dependency-name: smoltcp
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps chumsky from 0.12.0 to 0.13.0.

---
updated-dependencies:
- dependency-name: chumsky
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Rename trunc to number/int

* Fix doc

* Redefine and/or to take more than 2 params

* Rename bit operators

* Rename arithmetic operators

* Rename comparison operators

* Update doc

* Merge = into equal? and add stricter number/equal?

* Update changelog

* Shorten everything

* Update doc

* Rewrite exec to improve errors

* Update changelog

* Fix type output

* Add lisp function doc

* Remove sh alias

* Update doc

* Remove slice with only one arg

* Use rev for def in doc

* Add file examples

* Add network example

* Document truthiness

* Add doc on listen and accept

* Fix typo

* Update doc

* Move head and tail to core lib

* Reorder doc

* Use first and rest in core lib

* Fix evaluation order of eval_cons_args

* Update scripts

* Fix typo

* Remove rev from doc example

* Add Exp::Dict to eval

* Remove apply

* Move BUILTINS from eval to env

* Rename legacy to compat lib

* Update examples

* Add mac example

* Add dict/pairs primitive

* Add docstring to doc

* Add nil to doc
* Add ProcId device

* Add ProcDir device

* Add shell builtin echo command

* Fix compilation error

* Add missing device file

* Use sleep syscall in game of life

* Add ProcEnv device

* Replace env program with shell builtin set --env

* Add ProcUser device

* Remove pub exports

* Rename env functions

* Check buffer length before copy

* Update changelog
* Replace function_env and macro_env by bind

* Allow zero variadic args

* Dry code

* Add apply special form and apply helper

* Add fold special form

* Rewrite reduce to use fold

* Add more tests

* Use first and rest in core lib

* Update doc

* Update changelog
Bumps spin from 0.10.0 to 0.12.0.

---
updated-dependencies:
- dependency-name: spin
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Use double quotes in pkg command

* Use double quotes in commands

* Use double quotes in lisp

* Use double quotes in user boot

* Use double quotes in beep

* Fix test

* Update changelog
* Bump version to 0.13.0

* Update changelog

* Rebuild binaries

* Update screenshot

* Bump lisp to 0.9.0
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps spin from 0.12.0 to 0.12.1.

---
updated-dependencies:
- dependency-name: spin
  dependency-version: 0.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
vinc added 8 commits July 12, 2026 13:04
* Add KeyboardBuffer to keyboard module

* Add KbdBuffer to Device

* Rename variable

* Update changelog
* Add KeyboardBuffer to keyboard module

* Add KbdBuffer to Device

* Rename variable

* Add KeyboardLayout device

* Remove keyboard command

* Update doc

* Update manual

* Update changelog
* Add SEEK syscall

* Update syscall doc

* Update changelog
* Add realpath to kernel FS module

* Update changelog
* Move user memory to a dedicated L4 entry

* Update nasm entry point

* Simplify page fault handler

* Remove dynamic process address

* Clear frame after flush

* Fix free_pages

* Rebuild binaries

* Increase process memory size

* Fix unaligned segments

* Clean up process memory on error during creation

* Reorder exit

* Remove pub keyword

* Catch more loading errors

* Extract binary parsing and loading

* Add mem::create_mapper

* Refactor loading error

* Add BitmapFrameAllocator#used_frames

* Add load test

* Update readme

* Update changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

experiment Experiment that might never be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant