#HazelOS (Formerly Noise-v2)

1 messages ยท Page 3 of 1

simple locust
#

It's a very niche request

#

unlike MP Cores or Memmap

sharp hound
#

limine my beloved

inner glen
#

wait

#

does not using requests qualify

sharp hound
#

it dosent

inner glen
#

bruh

sharp hound
#

whats the point of the protocol if u dont use requests

inner glen
#

passing pointers

inner glen
#

wait so that mean the (main) reason for HazelOS creation is defeated

#

you sould definitely go back to noise-v2 ๐Ÿ‘

simple locust
inner glen
simple locust
#

Turns out the only reliable way to get exact TSC count from hardware on KVM, is to lie to the kernel that it's running on HyperV

#

Unless you implement KVM clock

simple locust
#

freq_hz is reported by KVM clock
The other one is fetched from Limine's TSC request

#

Not much difference, ~55k Hz

#

Pro: Now, I've accurate TSC rate

#

Cons: Estimating would've been much simpler

#

I had to write especial processor state helpers for Hypervisor and Microarchitecture

#

Should I submit this as a patch to Limine?

#

I've added Limine's TSC request just in case some weird processor manages to execute it

#

But by default the kernel would work with the one reported by the hardware

#

not the one which is estimated logically

#

Life would've been much simpler if both manufacturers agreed on which is the standard way of reporting TSC freq

sharp hound
#

like XD bit and not NX bit

#

lmfao

simple locust
#

Like using bit 62 instead of bit 63

sharp hound
simple locust
#

But for TSC frequency, I like Intel's way

sharp hound
simple locust
#

I'm talking about calculating 1 second delta in TSC ticks

sharp hound
#

well thats stupid

simple locust
#

yet

sharp hound
#

hpet isnt polling based but its more accurate

#

and requires acpi on some machines

simple locust
sharp hound
#

๐Ÿ˜ญ

#

ig its very smol

simple locust
#

Very small

#

The issue is HPET is mmio-based, which can introduce latency

sharp hound
#

its very smol

#

u dont even notice it

simple locust
#

It adds up overtime

#

But that's not the main issue for me

sharp hound
#

and has wayy less driftoff

simple locust
#

I need TSC frequency for LAPIC's TSC-Deadline mode

sharp hound
#

race conditions my beloved

simple locust
#

I'm sick of them

simple locust
#

Working IPI and IPI dispatcher :)

#

At first, it was triggering #UD

#

After some debugging, I realized that I haven't enabled fsgsbase in cr4

simple locust
#

In other news, I also managed to implement TLB shootdowns :)

simple locust
#

CLion has no plugin for GAS ๐Ÿ˜ญ

safe bramble
simple locust
safe bramble
#

no i mean plugins

#

some plugins that are used for asm can handle gas and other types

#

tho it's only syntax highlighting

simple locust
#

Let's see I've just installed aar10n's plugin

simple locust
safe bramble
#

i'm using this one

simple locust
#

I would've gone crazy with simple plain text

inner glen
#

override file type

#

nasm needs an extension gas does not

simple locust
inner glen
simple locust
#

I'm regretting the microkernel part ๐Ÿ˜ญ

#

I just can't figure out what to do with the scheduler

inner glen
#

isnt it still normal?

simple locust
#

Ik I've to implement a root server

#

But Idk where to start

#

I'm at a point where, I'll just implement memory manager and scheduler in kernel space

simple locust
#

Should I enable x86-64-v2 baseline?

sharp hound
simple locust
sharp hound
#

v2 dosent bring a lot anyway

simple locust
inner glen
#

theres not a true point supporting cpus as cold as you

#

unless you have a very specific reason

simple locust
#

alr libstdc++'s freestanding implementation is broken

#

I can't use std::max() with initializer list because <ranges> library requires a hosted header

#

WTF!

simple locust
#

PMM's fragmentation visualizer:

#

Sorry for the =========

#

It was the best way to separate it from rest of the logs

#

Even tho it may look like LLM generated

inner glen
#

it provies most of the stuff you need

simple locust
inner glen
#

๐Ÿฅ€

#

anyways hows the microkernel

#

btw i made the worst way for bug logging, wdyt? @simple locust ๐Ÿ˜ญ

<?xml version="1.0" encoding="UTF-8"?>
<BugHistory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="scripts/schemas/BUG_HISTORY.xsd">

    <Title>ZXFoundation bug history</Title>
    <LastUpdated>2026-07-14</LastUpdated>

    <BugList>

        <Bug id="BUG-001">
            <FoundDate>2026-07-14</FoundDate>
            <Severity>High</Severity>
            <Description>
                Recursive fault on system check (critical or lower) due to poor DIAG X'288' implementation
            </Description>
            <Behavior>
                If any subsystem of the kernel triggers a system check (critical or lower), kernel will recursively
                fault with Operation Exception, and/or trigger a restart (due to misconfigured timebomb)
            </Behavior>
            <AffectedBuilds>
                <Range>
                    <From>
                        <Branch>26h2</Branch>
                        <Number>1510</Number>
                    </From>
                    <To>
                        <Branch>26h2</Branch>
                        <Number>1643</Number>
                    </To>
                </Range>
            </AffectedBuilds>
            <Status>Closed</Status>
            <FixedIn>
                <Branch>26h2</Branch>
                <Number>1645</Number>
            </FixedIn>
        </Bug>

    </BugList>

</BugHistory>
simple locust
#

I shot myself in the foot

inner glen
simple locust
#

Had to rollback scheduling stuff

inner glen
#

im here making a DGP kernel and enjoying myself

#

(Domain/Gate/Portal)

#

i.e. its a microkernel

#

and sugar

inner glen
#

but i feels its better

#

since you can can view it

#

visually

#

like a drop down menu

simple locust
#

Idk, Maybe I've burn all the motivation in the past couple of days

#

Now I'm just a very tired all day long

inner glen
#

i mean its not a speed run

#

and theres really no need, its just better when its your liking

simple locust
#

It's not specific osdev

simple locust
#

Just life is getting too stressful

#

Which diverts my attention from the things I like

inner glen
simple locust
#

Can't play GTA 6 when it launches :(

inner glen
simple locust
inner glen
simple locust
inner glen
simple locust
#

Now that's my go to stress reliever

inner glen
#

figured there are so much more things todo

simple locust
#

Adulting is so hard

inner glen
simple locust
#

I just want to be a 6 year old, running circles around the park

#

Not worrying about applying for job or paying bills or politics

inner glen
simple locust
#

UEFI org went out of their way to separate low and high bits of NUMA node id in SRAT table ๐Ÿ˜ญ

#

And I understand why they chose this (Fuck xapic)

#

But that doesn't mean, I'm not salty about it

#

Now, i've to write a helper function to get numa id :(

simple locust
#

This is just pure ragebait

simple locust
#

Everything except SRAT type 1 has 4 bytes together for NUMA node

manic furnace
#

btw idk if you know but uacpi has srat in acpi.h

simple locust
#

it does?

#

I thought it was limited to MADT

#

๐Ÿ˜ญ

manic furnace
#

it has most tables yeah