#HazelOS (Formerly Noise-v2)
1 messages ยท Page 3 of 1
limine my beloved
same so i made a limime-inspired loader for s390x
wait
does not using requests qualify
bruh
whats the point of the protocol if u dont use requests
uhh you use it the normal way?
passing pointers
wait so that mean the (main) reason for HazelOS creation is defeated
you sould definitely go back to noise-v2 ๐
It was an architectural choice
well see about that
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
freq_hz is reported by KVM clock
The other one is fetched from Limine's TSC request
Not much difference, ~55k Hz
I should've stopped at cpuid 0x15 ๐ญ
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
intel just wants to be different
like XD bit and not NX bit
lmfao
Atleast they didn't change the bit layout
Like using bit 62 instead of bit 63
fun fact: its still called NXE on intel (NX Enable) 
But for TSC frequency, I like Intel's way
are they just rdtsc? the same thing
rdtsc is for tsc count
I'm talking about calculating 1 second delta in TSC ticks
well thats stupid
I forgot that HPET calculates in femtosecond-accuracy
i dont even know what is a femtosecond
๐ญ
ig its very smol
one-quadrillionth of a second (10^-15 seconds)
Very small
The issue is HPET is mmio-based, which can introduce latency
not much tho
its very smol
u dont even notice it
and has wayy less driftoff
I need TSC frequency for LAPIC's TSC-Deadline mode
ahhh smp i see
race conditions my beloved
I'm sick of them
Working IPI and IPI dispatcher :)
At first, it was triggering #UD
After some debugging, I realized that I haven't enabled fsgsbase in cr4
In other news, I also managed to implement TLB shootdowns :)
CLion has no plugin for GAS ๐ญ
some assembly ones can handle it
NASM?
no i mean plugins
some plugins that are used for asm can handle gas and other types
tho it's only syntax highlighting
Let's see I've just installed aar10n's plugin
I just need syntax highlighting
Looks like it's working, thank you
I would've gone crazy with simple plain text
??
override file type
nasm needs an extension gas does not
Cmake does ๐ญ
you mean enable_language?
I'm regretting the microkernel part ๐ญ
I just can't figure out what to do with the scheduler
whar
isnt it still normal?
I just can't figure out how to continue lol
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
Should I enable x86-64-v2 baseline?
no
any specific reason tho?
older cpus dont support
v2 dosent bring a lot anyway
My kernel won't support pre-Nehalem/pre-Bulldozer CPUs anyway
yes
theres not a true point supporting cpus as cold as you
unless you have a very specific reason
alr libstdc++'s freestanding implementation is broken
I can't use std::max() with initializer list because <ranges> library requires a hosted header
WTF!
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
i think stl_ranges.h is a freestanding hdr
it provies most of the stuff you need
There's RangeFormat that for some reason isn't locked behind HOSTED definition
๐ฅ
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>
Why XML?
Just why?
No longer a microkernel
I shot myself in the foot
wat
Had to rollback scheduling stuff
im here making a DGP kernel and enjoying myself
(Domain/Gate/Portal)
i.e. its a microkernel
and sugar
i was asking the same
but i feels its better
since you can can view it
visually
like a drop down menu
Idk, Maybe I've burn all the motivation in the past couple of days
Now I'm just a very tired all day long
suggest you take some time off
i mean its not a speed run
and theres really no need, its just better when its your liking
It's not specific osdev
I wrote a NUMA aware Buddy allocator a few days ago
Just life is getting too stressful
Which diverts my attention from the things I like
so what do you like now
Developing and gaming
Can't play GTA 6 when it launches :(
why?
No PS or xbox
did you used to not playing games
Used to hate PvP stuff
ah, i dont really do games anymore, i quit a long time ago
Now that's my go to stress reliever
figured there are so much more things todo
There are but I just want to escape reality
Adulting is so hard
relatable
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
we all regret not spending our childhood properly
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 :(
Everything except SRAT type 1 has 4 bytes together for NUMA node
btw idk if you know but uacpi has srat in acpi.h
it has most tables yeah