#CharlotteOS
1 messages · Page 1 of 1 (latest)
The old one wasn't quite right so I deleted it and made a new one. If that's not allowed, I can take it down.
nah its fine, just curious
A lot has changed in our project lately, primarly the fact that we now have a coherent design that can be explained clearly to any interested people.
I don't recommend you use C23 just yet
Mainly because of compiler support
The versions that some features were added were wonky
Booo
I'm happy to announce that we've recently accomplished some major development goals such that the following components of our kernel, Charlotte Core, are now implemented:
- GDT
- TSS
- IDT
- UART Serial
- Limine Boot Protocol Integration
- Physical Frame Allocator
- Virtual Memory Manager (only enough to support the kernel itself so far)
- Static ACPI table parsing
- APIC and IRQs
- LAPIC timer
- Framebuffer driver (text and basic shapes only)
- Kernel logger (with the Framebuffer and serial as outputs)
- Kernel Monitor (Initial Skeleton)
We have also begun work on zenalloc, a library crate that is designed to be similar to the standard Rust alloc crate but which is guaranteed to never panic.
We are currently actively working on the following components:
- HPET
- Basic kernel monitor commands
- kernel dynamic memory allocator
- PS/2 keyboard driver
- Round Robin thread scheduler
- Adding an automatic semantic versioning system to the project's devops
The following things are desirable but not actively being worked on:
- Full inline documentation for all code using Rustdoc
- Creating a proper automated testing framework beyond just the kernel subsystem self-test batteries
- Replacing GNU Make with Just
- Creating an
extern "C"wrapper module at the top level to allow dynamic kernel modules to interface with the base kernel
@solemn wigeon Thanks.
This is Just: https://github.com/casey/just
i see
CharlotteOS has officially been canceled and we are planning to start a new project in C given the difficulties encountered with Rust.
So we decided not to cancel the project but to basically restart the kernel. Still in Rust but with a better planned design.
Our new kernel is called cbof and it's basically designed to be horizontally modular instead of layered vertically. So each subsystem is fully modular and to the extent possible self contained. There's no single large ISA abstraction, instead each subsystem that needs that has it's own ISA submodule.
In theory this should allow drop in replacement of subsystems.
The kernel module problem is still a decently tough one given Rust's lack of defined ABIs but there are some options Luke using stabby or exposing a module to base system call like interface with a custom ABI that uses assembly glue on both sides.
CharlotteOS is officially dead and disbanded.
I do plan to start a new project from scratch and will make a new post when that happens.
._.
another one bites the dust
We need like a separate dead projects archive
Will obos eventually be abandoned as well
U can
so........
no but my kernel can
Make tons of money, hire other people, then die and they will continue working
Or that
son that bug has been in obos forever
Obos will be stable by generation 6
Lmao
it's a WIP
obos actually booted today
crazy right
You should give all your kids the same name so os name makes sense
Indeed
[ LOG ] Arch_KernelMainBootstrap: Done early boot.
[ LOG ] Currently at 23000 KiB of committed memory (4316 KiB pageable), 8680 KiB paged out, and 18684 KiB non-paged, and 2112 KiB uncommitted. Page faulted 1966 times (0 hard, 1966 soft).```
don't mind the pageable and paged out count
Why is there so much paged out stuff at early boot
8680/4316 KiB pageable memory paged out
if you can be paged out, then chances are you will be paged out
why not make use of available memory though?
Way to dance on this project's grave guys...
Here's the link to the new post for the revived version of this project: