#CharlotteOS

1 messages · Page 1 of 1 (latest)

young pasture
#

why make a new thread?

sage sparrow
#

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.

young pasture
#

nah its fine, just curious

sage sparrow
#

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.

noble viper
#

I don't recommend you use C23 just yet

#

Mainly because of compiler support

#

The versions that some features were added were wonky

noble viper
#

Booo

sage sparrow
#

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
#

congrats

#

what's Just?

sage sparrow
solemn wigeon
#

i see

sage sparrow
#

CharlotteOS has officially been canceled and we are planning to start a new project in C given the difficulties encountered with Rust.

solemn wigeon
#

lol good luck

#

i liked the name charlotteOS tho

sage sparrow
#

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.

sage sparrow
#

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.

crystal dagger
#

._.

noble viper
#

another one bites the dust

gaunt brook
#

We need like a separate dead projects archive

noble viper
#

And another one gone, and another one gone

#

Another one bites the dust

gaunt brook
#

Will obos eventually be abandoned as well

noble viper
#

well I can't work on it forever, can I

#

I can't really predict the future

gaunt brook
#

U can

noble viper
#

so........

noble viper
gaunt brook
#

Make tons of money, hire other people, then die and they will continue working

noble viper
#

I'll make my children work on obos

#

Dad I found a new bug!

gaunt brook
#

Or that

noble viper
#

son that bug has been in obos forever

gaunt brook
#

Obos will be stable by generation 6

gaunt brook
noble viper
#

it's a WIP

noble viper
#

crazy right

gaunt brook
#

You should give all your kids the same name so os name makes sense

gaunt brook
noble viper
#
[  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

gaunt brook
#

Why is there so much paged out stuff at early boot

noble viper
#

8680/4316 KiB pageable memory paged out

noble viper
sage sparrow
#

Way to dance on this project's grave guys...

sage sparrow
#

Here's the link to the new post for the revived version of this project: