#EvalynOS

1 messages ยท Page 26 of 1

hazy saddle
#

Or the ram sucked the magic smoke from the management controller

jade olive
#

yes

#

once the magic smoke gets sucked in it can no longer leave

#

or smth like that

hazy saddle
#

It can be transferred though

#

Like what happened here

jade olive
#

do you support yellow mces? /j
why does it have colorsssssssssss

hazy saddle
#

I think this is for decoding only?

#

The MCi are banks iirc

#

Which report what happened

jade olive
#

yea

#

but why color

hazy saddle
#

Prolly similar to the firmware shit

jade olive
#

what if i'm REALLY scared of green and i percieve it as fatal

#

?

hazy saddle
#

For lighting an LED

hazy saddle
#

That you can just iret from safely

jade olive
#

what color is UC? :3

#

unique color?

hazy saddle
#

Unhhh

jade olive
#

uniquely colorful

hazy saddle
#

Ultra cyan

jade olive
#

yesssss

hazy saddle
#

Olo is an imaginary color that can only be seen using specialized tools that exclusively activate the M cone cells on the retina.
It is impossible to view olo under normal viewing conditions, due to the overlapping sensitivities of M cone cells and S and L cone cells in all wavelengths of visible light that evoke them. In other words, there is n...

#

Also known as this

jade olive
#

sure don't have pusha on x64
have 20 MSRs to do the same ๐Ÿ˜ญ

hazy saddle
#

If you get an #MCE you could do some fancy shit with this

#

Like relocate to another CPU

#

And not worry about the status of the stack on that core

jade olive
#

hm
fair enough

hazy saddle
#

Other than the MCE IST

jade olive
hazy saddle
#

UCR is a different class from the kernel getting the error?

#

Which the other bit I think is about?

jade olive
#

the ext_ctl

#

the bit 0

#

the single LAPIC node bit

hazy saddle
#

Yeah

#

Or well this one

#

Which enables MCEs to come to this core iirc?

#

Which should be what I want

jade olive
#

yea

#

i think so?

hazy saddle
#

We should come back to this tomorrow

jade olive
#

it's 3:30AM so already tmrw :3

clear bison
#

Wait

jade olive
#

yes a student graduating on tuesday is not learning stuff and instead cosplaying a military jet airport at 3:30AM

clear bison
#

MCEs will get broadcasted to all processors if the local thing isn't enabled

jade olive
#

hm

#

fair enough

#

though the other cores aren't running i don't think

#

so either way it'd be better for it to be the local core

clear bison
#

Ig so

jade olive
#

oh lookie what intel has blessed us with :3

clear bison
#

But it ain't really needed

jade olive
#

from a quick glance at the manual, seems that any failed memory read due to hw raises a UCR MCE

hazy saddle
jade olive
#

idk anything anymore

#

way too much reading

hazy saddle
#

Letโ€™s sleep ๐Ÿ˜ญ

jade olive
#

fair enough
i have to finish (or i guess moreso start) ATA tmrw otherwise i'll be sad

jade olive
#

didn't read that much into it to be honest

hazy saddle
clear bison
#

So yeah bit 24

#

I still don't get how you do the banks thing

#

Like

hazy saddle
#

i handle thoes just fine acc

clear bison
#

Do you gotta check all of the available ones?

#

And see if these are valid

hazy saddle
#

yes

#

and clear them to zero after decoding

clear bison
#

Ah

jade olive
#

oh
and clear IA32_MCi_STATUS bit 55 - AR action required

#

some UCR have default action to reset CPU if AR = 1

clear bison
jade olive
#

any by some i mean 2 ๐Ÿ˜ญ

hazy saddle
#

i clear all to zero

jade olive
#

enough of chapter 17
time to eep

#

gn y'all :3

hazy saddle
#

whats the extended controll MSR val

#

wait

#

im almost done patching

jade olive
#

k

#

not-yet-gn-but-soon-gn :3

clear bison
#

Maybe when i finish the build scripts and interrupt management system (with IRQLs) for my kernel I'll add MCE handling

hazy saddle
#

this should work

jade olive
#

bet it doesn't show and the last 7 hours or however long this took were wasted ๐Ÿ™

#

but it was fun

hazy saddle
jade olive
#

#when-your-os-goes-crazy message oh if i knew ๐Ÿฅ€

hazy saddle
#

welp TCG has it

#

๐Ÿคž

jade olive
#

oh shit
i don't have colors :c

hazy saddle
#

picocom

#

wait wait

#

minicom

#

should have it

#

in VT 100 mode

jade olive
#

where do i set that

#

very important

#

can't exist without it

hazy saddle
#

@jade olive @clear bison let us pray this works

hazy saddle
#

or vt 200

#

iirc

#

one of thoes

jade olive
#

oh

#

ctrl+a T

#

and i only have VT102 and ANSI

#

ig ansi then

hazy saddle
#

ANSI should be correct

#

?

clear bison
hazy saddle
#

okay yeah

#

๐Ÿ˜ญ

clear bison
#

Lmao

jade olive
#

whyyyyyy sleep when not sleep

hazy saddle
#

why sleep when #MCE

jade olive
#

yesss

#

why sleep when chapter 17 of the Intelยฎ Software Developer Manualโ„ข looks so juicy ๐Ÿคค

hazy saddle
#

REAL

#

unless @tender mantle makes me sleep lol

#

i still havr to take a shower and clean desk tho

clear bison
hazy saddle
jade olive
#

lemme tell you a bedtime story :3

#

[ARCH EARLY INIT] 16550 UART INIT [OK]
[ARCH EARLY INIT] SMEP Enabled [OK]
[ARCH EARLY INIT] Control Registers Init [OK]
[MCE] CPU has 25 MCE Banks
[MCE] MCE SERP Supported
[[ KERNEL PANIC ]]
#GPF (0x0D) - General Protection Fault
General Registers:
RAX=0x0000000000000022 RBX=0x0000000000000019 RCX=0x00000000000004d0 RDX=0xffffffff800478e8
RSI=0xffffffff80091fd0 RDI=0x0000000000018689 RBP=0xffff8000bdd75fb0 RSP=0xffff8000bdd75f90
R8 =0x0000000000000001 R9 =0xffffffff8002f001 R10=0x0000000000ff55ff R11=0x0000000000000000
R12=0x0000000000000000 R13=0x0000000000000000 R14=0xffffffff80079fe0 R15=0x0000000001000819
Interrupt Frame:
IP=0xffffffff80042ace SP=0xffff8000bdd75f90
SS=0x0000000000000010 CS=0x0000000000000008
FLAGS: 00000000 00000001 00000000 10000110
ERROR: 00000000 00000000 00000000 00000000
Control Registers:
CR0: 10000000 00000001 00000000 00110011
CR4: 00000000 00010000 00000110 00110000
CR8: 00000000 00000000 00000000 00000000
CR2=0x0000000000000000 CR3=0x00000000bdd65000
โ–„โ–„โ–„โ–„
โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„ โ–„โ–„โ–„
โ–„โ–„โ–„โ–„ โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„
โ–„โ–„โ–„โ–„ โ–„โ–„ โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„โ–„โ–„
โ–„โ–„ โ–„โ–„ โ–„โ–„โ–„โ–„ โ–„โ–„ โ–„
โ–„โ–„ โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„ โ–„ โ–„ โ–€
โ–€ โ–„โ–„โ–„โ–„โ–„ โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„โ–„โ–„
โ–€โ–„โ–„ โ–„โ–„ โ–„โ–„โ–„โ–„ โ–„ โ–„โ–„
โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„ โ–„โ–„โ–„ โ–€โ–€โ–„ โ–„โ–„
โ–„ โ–„โ–„โ–„ โ–„โ–„ โ–€โ–„โ–„โ–„โ–„โ–„
โ–„โ–„ โ–„โ–„โ–€ โ–„โ–„โ–„โ–„ โ–„ โ–„ โ–€โ–€โ–€
โ–€โ–„โ–„โ–„โ–„โ–€ โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–„โ–„ โ–€ โ–€โ–€โ–€ โ–„โ–„โ–„
โ–„โ–„โ–„ โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„โ–„ โ–€ โ–„โ–„โ–„โ–„
โ–„โ–„โ–„โ–€โ–€โ–€ โ–€โ–€โ–€โ–„โ–„ โ–€โ–€โ–€โ–€
โ–„โ–„โ–„โ–„
โ–€โ–€โ–€
I fucked up 3:

cunning oracleBOT
hazy saddle
#

GPF

#

wtf

jade olive
#

well CLEARLY you're generally unprotected in your kernel

#

obv

#

and it's your fault

#

obv

hazy saddle
#

this is the rught bit right? #define MCE_CTL_EXT_SERP_EN (1 << 0)

jade olive
#

yes

hazy saddle
#

and MSR #define MSR_MCE_EXT_CTL 0x000004D0

jade olive
#

yes

hazy saddle
#

wtf then???????

clear bison
jade olive
#

maybe :3

#

not the official one though :c

#

i'd be blessed to have that

clear bison
#

Obviously

jade olive
#

though i know a guy from my school that actually DOES have the physical one
back when intel had that funky e in early pentium days
the hardback cover with the shimmering silicon die

clear bison
jade olive
#

nahhhh

#

in case you were wondering
and i don't have 2A and 2B

hazy saddle
#

maybe i did it wrong??

jade olive
#

how though?

#

what is there to do wrong?

#

1<<63

#

trust

#

trust

hazy saddle
#

wtf

#

im not setting SERP?

jade olive
#

IA32_FEATURE_CONTROL is 0x3A before you start looking

hazy saddle
#

thats a seperate thing??

#

that i dont enable

jade olive
#

the feature_control

hazy saddle
#

wait so can i even diddle this msr

#

because the lock?

jade olive
#

assuming the lock is 0

hazy saddle
#

fuck whoever made #MCE shit

#

๐Ÿ˜ญ

jade olive
#

nonzero chance it was intel

hazy saddle
jade olive
#

idk how you'd fuck a corporation

hazy saddle
#

this should always be locked

jade olive
#

well we can see

hazy saddle
#

i think it is

jade olive
#

maybe we'll find some intel microcode vuln ๐Ÿ˜ญ

hazy saddle
#

well chipset only / firmware

jade olive
#

i'm the one with a xeon cpu
might as well test it out

#

do like 187867928718759278 test cases
and i'll make a 1MB capture ๐Ÿ˜ญ

hazy saddle
#

you should test this with your OS later tbh

#

๐Ÿ˜ญ

#

i gotta shower n shit

jade olive
#

i'm strictly IA-32

#

๐Ÿ˜ญ

#

64 bits is way too many bits

#

you know how much bites that is?
i don't want my cpu biting me 8 times

hazy saddle
jade olive
#

that cannot be worth it ๐Ÿ™

hazy saddle
#

steal half my kernel code ad-hoc to test

jade olive
#

mmm steaaakkkk

hazy saddle
#

๐Ÿ˜ญ

jade olive
#

this is like the 4th section we've opened because of the MCE

hazy saddle
#

We gotta beat them all

jade olive
#

i'm gonna beat an intel engineer

hazy saddle
#

But technically that thing faults

jade olive
#

with the printed manual

hazy saddle
#

Is because lock is not set

#

And the bit for this isnโ€™t

#

So the firmware may be doing something????

jade olive
#

i'm gonna add like an interactive msr reader/writer to my kernel

#

surely worth it

#

trust

hazy saddle
#

๐Ÿ—ฃ๏ธ ๐Ÿ”ฅ

jade olive
#

wait no i can't

#

because 32 bits

hazy saddle
#

Oh also MSRs are technically 64bit anyways

#

Even on 32bit

jade olive
#

"Oh also MSRs are technically 64bit anyways"
the naรฏvest intel fan

hazy saddle
#

Well

#

Not all are reserved

jade olive
#

im gonna test out if unstableos even boots on that godforsaken broken server

hazy saddle
jade olive
#

that's not the point ๐Ÿ˜ญ

hazy saddle
#

You could also jump to 64bit mode

#

Then jump back

#

As a trampoline

#

๐Ÿ˜ญ

jade olive
#

that CANNOT be worth it

hazy saddle
#

Reverse bios trampoline tho

jade olive
#

"reverse bios trampoline" ๐Ÿ™

hazy saddle
#

Instead of going to 16

jade olive
#

where's my flash drive

hazy saddle
#

Goto 64

jade olive
#

have you seen it?

hazy saddle
hazy saddle
#

I was hungry

#

Sorry

#

I also ate the ram

jade olive
#

i'm so glad i go to so many rando IT competitions and stuffs
i have soooooo many random <8GB flash drives

jade olive
#

mmmm

hazy saddle
#

But yeah

jade olive
jade olive
hazy saddle
#

๐Ÿ˜ญ

jade olive
#

surely i can control SAS disks with ATA
surely

#

trust

#

oh wait a minute
there's nothing necessarily preventing me from using 32 bit paging on 64 bit, is there?

#

the most scuffed x64 port you've ever seen

hazy saddle
#

Itโ€™s the same as PAE paging

#

But with 2 extra levels

#

Thatโ€™s it

#

Itโ€™s really fucking simple

#

It honestly is not that hard to do a 64bit kernel lol

jade olive
#

but another table :c

hazy saddle
#

I even support 5 level paging

jade olive
#

do i need to just look or actually read? Clueless

jade olive
#

i highly recommend not looking at my code
you'd throw up prolly

hazy saddle
#

๐Ÿ’€

jade olive
#

your code is so pwettyyyy tho

hazy saddle
jade olive
#

mine is meanwhile...

hazy saddle
#

Thank you

jade olive
hazy saddle
#

I try to make it clean

jade olive
#

but i do have CoW fork :3

#

so achievement achieved

hazy saddle
#

That looks fine tbh

tender mantle
#

Meanwhile Iโ€™m on rewrite 9474837373

jade olive
#

if you go into writing an os with the mindset that it's gonna be shit anyway, then you don't need rewrites :3

#

look at mine's name for crying out loud ๐Ÿ˜ญ

tender mantle
#

But I wanna rewrite good code 3:

haughty acorn
tender mantle
#

Maybe I wish my code to be perfect

#

Or Iโ€™m just fucking terrible at designing code ๐Ÿ˜ญ

jade olive
#

i pressed enter on serial and got an RTC alarm, huh? ๐Ÿ˜ญ

#

i need serial to work
no eep
serial fix

#

it took a second to enumerate all VBE modes by jumping to V8086...

hazy saddle
#

(I spent like 8 hours on it)

jade olive
#

but i wanna learn hikey

tender mantle
hazy saddle
#

And not somebody stealing my code I offhandedly shared to make a PR behind my back

#

๐Ÿ’€

jade olive
hazy saddle
#

Without properly following licensure

jade olive
#

oh shit
license
yea i should pick a license

hazy saddle
#

Itโ€™s really easy to have tiny mistakes if each function for a register isnโ€™t contained

tender mantle
jade olive
#

netscape public license ๐Ÿ™

tender mantle
hazy saddle
jade olive
#

it's always so apparent in my codebase what code has been written at 3 AM fueled by enough caffein to feed a blitzkrieg division and what has been carefully thought through during English classes

hazy saddle
#

Minus the thinking

jade olive
#

๐Ÿ™

hazy saddle
#

Itโ€™s amazing what two 2liters of Dr Pepper can do for you am I right @jade olive

jade olive
#

we don't have dr. pepper here :c

hazy saddle
#

Damn

#

No wonder you canโ€™t reach 64bits /j

tender mantle
#

lol

#

He donโ€™t (majorly) have Dr Pepper here

#

And my kernel is better :3

jade olive
#

but we have this energy drink
the most coolant looking, oil tasting, dirt cheap thing i have ever drank

hazy saddle
tender mantle
jade olive
#

woooowwww
chill out

hazy saddle
#

Let me just copy paste my old VFS

hazy saddle
#

We play fight

jade olive
#

take a crazywolf and calm downup๐Ÿ™

#

(no clue what that means yet, but i'm gonna figure it out dw)

#

when evalynos unicode compliant?

#

i need my ฤ›ลกฤล™ลพรฝรกรญรฉรบลฏ

clear bison
#

Never

jade olive
#

damn :c

clear bison
#

Get that from cp437 trl

hazy saddle
#

I hope

jade olive
#

framebuffer tty console in userspace supporting unicode when?

clear bison
#

Really I don't see the point in kernel-side unicode/ttf support for ttys

#

TTYs are supposed to be a bunch of old crap anyways

jade olive
#

you laugh but i'll be on top when y'alls fancy monitors die and my teletype will keep marching on

hazy saddle
#

So I can run a real GUI terminal

jade olive
#

i have this amazing masochistic idea

#

i wanna write my own X11 server :3

tender mantle
hazy saddle
jade olive
tender mantle
hazy saddle
#

Ehhh 10 months

tender mantle
#

Doubt

hazy saddle
#

Also @tender mantle

#

When vmem

tender mantle
#

Today sometime hopefully

jade olive
hazy saddle
jade olive
hazy saddle
clear bison
#

With 670 upvotes

hazy saddle
#

Nah but

#

I will do x11 first and shit

jade olive
#

u help

#

me go crazy

hazy saddle
#

After x11 Iโ€™m gonna do nvme/ahci prolly

jade olive
#

we do XFree28

hazy saddle
#

And then get some networking

tender mantle
#

x11 servers are the thing that handles the windows and decorations right

#

Or am I confused

hazy saddle
#

Some decent ports

clear bison
jade olive
#

real

hazy saddle
#

A WM runs ontop iirc

tender mantle
#

Ahhhhhhhh

#

You poor thing

jade olive
#

that just so happens to contain all other windows

hazy saddle
#

Iโ€™m sleepy

#

So not the most thinky

#

But

jade olive
#

i haven't slept in like 59 hours

#

:3

hazy saddle
#

After I get networking and USB and other shit

tender mantle
#

God damn

#

Go the fuck to sleep

clear bison
tender mantle
#

๐Ÿ˜ญ

jade olive
#

sleeping's for sleepers

hazy saddle
jade olive
#

or smth

clear bison
#

You're gonna end up as that one server of yours

tender mantle
#

I was up like 22-23 hours last night

jade olive
tender mantle
#

Slept 4 hours

#

Fucking balling

hazy saddle
#

Iโ€™m
Going to bed before I spill my drink on my bed

clear bison
#

Idk I've skipped sleeping at max around 60 hours

hazy saddle
#

๐Ÿ˜ญ

jade olive
#

graduation tuesday
have to read 20 books
and know about their authors and historical context
i'm cooked

clear bison
jade olive
#

cooked???? POSIX GENERAL TERMINAL INTERFACE REFERENCE?????

clear bison
#

And i was starting to go crazy

jade olive
#

my record's something like ~70

#

then again
i sleep in the same room my server rack is in
so
yk
no sleep anyway

clear bison
tender mantle
#

140 ish

#

It was a hard week ๐Ÿ˜ญ

jade olive
#

jesus
now that's peak commitment

clear bison
#

Fun is when you get sleep paralysis

tender mantle
#

โ€œExternal factorsโ€

jade olive
#

such as (if i may ask)?

tender mantle
jade olive
#

ok

#

fair enough

clear bison
#

Idk if i want to fall asleep i just play a few one piece episodes trl

jade olive
#

@hazy saddle so in the meantime i was looking at my code
i'd say the "divisor" field shouldn't house the "baud"

clear bison
#

No but really I usually just fall asleep to watching Factorio gameplays for some reason

#

Or astrophysics stuff

jade olive
#

idk
i either doomscroll reddit until i can't keep my eyes open anymore
or i bunch up my duvet into a random ball of fabric, hug that, and magically fall asleep while listening to the beautiful hum of the HPE Apollo 4200 Gen 9

viral bison
#

Ram still ok on the lappy

#

lol

#

how tf did it get fixed XD

viral bison
#

3 hours in and 8 memtests completed

#

still running fine

jade olive
#

evalynOS-potential-magic-ram-fixer.iso

jade olive
#

i meanwhile completely fixed my serial
there was like 156 wrong things

hazy saddle
#

Did you use my code as reference lol

#

Or what was wrong with it

jade olive
#

i was passing
wrong value for divisor
wrong value for data bits
not waiting any amount of time before reading the loopback
and not correctly reading the recieved bit
:3

jade olive
jade olive
#

@hazy saddle got any more tests?
server's still here with the ram and nmi

hazy saddle
#

@jade olive i ended up editing my allocator a bit

#

wana try some clanker made tests on a huge chunk o' good ram

#

i wana see low long this can live

#

or maybe even with bad memory

#

if it can get into the mem map

#

also that patches bios thing

#

i wonder if we can find our own changes

#

to do funky shit

#

for this testing

hazy saddle
#

Iโ€™ve tossed the tests because

#

They uhhh

#

Donโ€™t fail when I intentionally break the allocator

#

I have no fucking clue why either

#

Iโ€™m gonna do some final code reviews of my shit

#

Itโ€™s probably fine

#

And when I go and work on vmem if itโ€™s buggy il fix it then

jade olive
hazy saddle
#

Should I have a clanker make some new tests

#

๐Ÿ’€

#

Because I CBA to make tests

#

Because Iโ€™m gonna toss them right after lmfao

#

fuck AI for anything serous though

jade olive
hazy saddle
#

does the color on your serial work again?

jade olive
#

well color from my os works
not from yours though

hazy saddle
#

i use normal ANSI shit

jade olive
#

hm

#

interesting

#

shiz cooked
give up
/j

jade olive
hazy saddle
#

welp i burned up two oceans for this

#

๐Ÿ’€

#

it can atleast detect some bullshit

clear bison
jade olive
#

that would be swell, wouldn't it

hazy saddle
#

i just freeload off free AI

#

they dont get a single penny

#

and i drain eery token i can for useless shit

jade olive
#

we're bankrupting openai with these tests ๐Ÿ”ฅ

hazy saddle
#

anthropic but yeah

#

also should i try gnu::malloc atribute for this

clear bison
jade olive
#

nice

#

I MEAN
NOOOOOO
THINK OF THE EXECUTIVES
NOOOOO

clear bison
#

Unless Sam Altman finds out how to create money from thin air or something

hazy saddle
#

i think this technicaly counts for using it

#

as its a malloc type function

jade olive
#

ik that the regular __attribute((malloc))__ can take as an argument the appropriate free function for like static analysis and stuff

#

yea

hazy saddle
jade olive
#

gg

clear bison
hazy saddle
#

but i can still get some better compiler optmizations

jade olive
#

when will -O5 drop? xd

hazy saddle
hazy saddle
#

this should work

jade olive
#

eating lunch rn

hazy saddle
#

ah nice nice

jade olive
#

so like in 10 minutes give or take

jade olive
#

okies i'm back

#

back to disassembling iso files

hazy saddle
#

Canโ€™t you just use ark?

#

It opens them up fine for me

#

And I can get shit out as if it was a zip

jade olive
#

i'm loopmounting it

#

slightly faster

#

if you were my downloads folder
and i just downloaded evalynOS-clauded-spalloc-test.iso
where would you hide that file?

hazy saddle
hazy saddle
#

I would hide it behind the photo of my mom

jade olive
#

hm
i do have a lot of those pictures
but nowhere a evalynOS-clauded-spalloc-test.iso behind them
/j obviously

hazy saddle
#

try using ls -lah | grep

jade olive
#

no yea i found it already

#

also idk why but zsh doesn't have file completion for mount, only special device completion

#

and continues in the memtests

#

test 4 fifo queue or smth

#

now some checkerboard things

#

also doesn't help that it's testing the healthy memory ๐Ÿ˜ญ

#

i'm half thinking whether i should just send you like a ssh key so you can log in and monitor the serial yourself cuz i assume you are at least slightly more knowledgable regarding your own os

#

why did i expect you implemented IXOFF when you don't have serial reading ๐Ÿฅ€

#

doing some lifo_stack bs rn

#

it seems to be just testing 0xFFFF800000100000 - 0xFFFF8000001FFFFF

#

doing test 11 power of 2 sizes

#

oh i'm just tweaking
it's looping isn't it

hazy saddle
#

Yes lol

#

Itโ€™s just a test

#

Though it should cycle though all physical memory though

#

As the freelist gets more and more fragmented

jade olive
#

it doesn't ๐Ÿ˜ญ

hazy saddle
hazy saddle
#

Welp itโ€™s prolly fine then anyways

#

Maybe it just never uses enough ram to do that

#

??

jade olive
#

no clue
but i see the same set of addresses over and over

hazy saddle
#

Well

#

As long as the asserts arenโ€™t tripping

#

It should be working fine

jade olive
#

it actually might've become slightly fragmented
the pointer in the churn step increased from 1ecf00 to 1fc000 or smth

#

so at this speed, we'll reach the bad ram sometime during DDR7 lifecycle

hazy saddle
#

This is a make sure my allocator isnโ€™t fucking everything up test

jade olive
#

OH

hazy saddle
#

Eg no physical mem leaks

jade olive
#

then in that case everything's ok

hazy saddle
#

Not giving bad pointers etc

#

if you wana review the allocator

jade olive
#

spoon alloc? :3

hazy saddle
#

split page alloc

jade olive
#

less fun

#

might steal that later

#

we'll see

hazy saddle
#

wait for me to commit it

#

and use my licence

#

but it works for things less than a page

#

minimum 32b objects

#

and really only for 4kb pages

#

but its good enough for what im gonna use it for

#

its optimized for that

jade olive
#

i'll steal that when my attrocious allocator starts breaking down and being a bottleneck

hazy saddle
jade olive
#

i'm like
"hey why can't i ping my server from 192.168.0.157"
mfw i actually look at the server

hazy saddle
#

๐Ÿ˜ญ

jade olive
#

well
ip rule add from 192.168.0.128/25 lookup table grr prio 0
ip r add 192.168.0.128/25 via 192.168.1.1 table grr

hazy saddle
#

for giving me ssh to the server, would i also be able to net boot shit

#

๐Ÿ—ฃ๏ธ ๐Ÿ”ฅ

#

~~time to mine monero PSP1G_pspTrollar ~~

jade olive
#

nahhhhh

hazy saddle
#

I could make a stub that lets the kernel get a new image over serial and then jump to the stub and then reload its self

#

๐Ÿ’€

jade olive
hazy saddle
#

๐Ÿ”ฅ

#

How secure is X forwarding these days

#

Also the latency

jade olive
#

through ssh? very

jade olive
#

this

#

this

#

so how familiar are you with ssh jump hosts :3
cuz i'm thinking of 3

#

close enough ๐Ÿ˜ญ

hazy saddle
#

๐Ÿ˜ญ

jade olive
#

how does this work
i thought it should prioritize more specific routes?

#

HOWWWWWWWW

#

so this took 18 minutes

hazy saddle
hazy saddle
#

@jade olive im in

#

hopefuly this isnt hacking me

#

Getting in either my yubi key is so nice tho ๐Ÿ˜ญ

#

I just need to use the one password for this

#

And tap the button

viral bison
#

if you store passwords in it

hazy saddle
#

??????

#

Itโ€™s the keys password

#

๐Ÿ˜ญ

#

The password to use the ssh keys on it

#

And ofc it dosnt have unlimited space

viral bison
hazy saddle
#

But it has plenty for ssh keys and shit

viral bison
#

i have one too, lol

hazy saddle
#

im not running out of storage any time soon

#

:p

viral bison
#

i also decided to self host a password manager, lol

#

tho i still need to fully switch to it

hazy saddle
#

this is for 2fa shit lol

viral bison
#

it's very useful for that

#

tho i had a lot of problems making it work on linux

hazy saddle
#

worked fine for me

urban mulch
hazy saddle
#

Since Iโ€™m gonna toss this test right after

#

Before commit

urban mulch
#

ah

hazy saddle
#

This is a โ€œI need to make sure this is somewhat okay rnโ€

#

Not a long term test that runs and shit

tender mantle
hazy saddle
jade olive
#

should i restart into evalynOS?

hazy saddle
#

better UBSAN stuff is added

#

Though I did heavily modify the crap to be my style

hazy saddle
#

Fuck it

#

Poll time

#

#polls message

magic saffron
hazy saddle
#

But itโ€™s on by default and I donโ€™t have an easy way besides editing the makefile

magic saffron
#

yeah ok, I was going to say that UBsan adds a shitload of checks and can blow up the binary size

#

if thats something you care about

tender mantle
#

Considering she crashed out at me not saving 2kb on my Idt stubs I think she cares

magic saffron
#

lol

#

I have it as a compile option defaulting to 'off' for that reason.

tender mantle
#

See Iโ€™m lazy

#

Itโ€™s probably (hopefully) disabled in release builds

magic saffron
#

hopefully

tender mantle
#

Im in the middle of refactoring

#

So nothing works atm

#

And I definitely didnโ€™t nap in between

magic saffron
#

ah yeah thats a rough place to be

tender mantle
#

Iโ€™m sure it will be fine

#

Lowk fighting my build system but im almost done

magic saffron
#

eh just bodge it, leave a //TODO: for later.

tender mantle
#

Well

#

It doesnโ€™t build

#

๐Ÿ˜ญ

magic saffron
#

well

#

means you dont have any bugs thinkong

tender mantle
#

Holy shit youโ€™re right

hushed oracle
hazy saddle
hazy saddle
#

And while Iโ€™m in early development

#

I want to catch any bullshittery

tender mantle
#

Excuses for a bloated binary

#

You see

#

If you used rust you wouldnโ€™t have this issue

hazy saddle
#

Rust makes even more bloated binaries

tender mantle
#

Because the binary is already fucking megabytes in size

hazy saddle
#

๐Ÿ˜‚

hazy saddle
#

this is the binary size without UBSAN/SSP enabled

#

Oh and after stripping it

#

And on -O2

#

still smaller than rust

#

Without stripping and with UBSAN

magic saffron
#

both rated 0/5 trl

hazy saddle
#

Iโ€™m very disappointed in my code you know

#

Once I get vmem done

#

Or some other shit

#

I want to refactor some things

#

Before it gets too messy

#

Mainly my arch abstractionss

#

And maybe change the paging interface a little to be nicer

#

But thatโ€™s probably fine and not too bad?

hazy saddle
#

๐Ÿ˜ญ

#

I had to Iโ€™m sleepy rn

magic saffron
#

go to sleep! ๐Ÿ’ค

hazy saddle
#

I am soon probably

neon karma
#

I periodically run the kernel with it

hazy saddle
#

my old kernel was tripping them on some trivial ass bullshit

#

and i had to make some stupid ahh work arrounds

#

๐Ÿ’€

tender mantle
#

your old kernel also had that nasty ass memory corruption bug

hazy saddle
#

mine hasnt been tripping much tho

tender mantle
hazy saddle
#

i fixed all of thoes

neon karma
tender mantle
#

im not perfect so having ubsan helps

hazy saddle
tender mantle
#

shut the fuck up

#

"oh how dare you ask the compiler to warn you"

#

"oh how dare you use the tools provided to you by llvm"

#

๐Ÿ˜ญ

#

smh

neon karma
hazy saddle
neon karma
#

I know a person who got banned for such jokes

tender mantle
hazy saddle
hazy saddle
#

i do wonder how hard ASAN is

#

compared to UBSAN

#

SSP/UBSAN is mostly piss easy for runtime support

neon karma
hazy saddle
#

so true

neon karma
#

I posted a link in resources not too long ago

hazy saddle
#

that acc isnt too bad it seems

#

though id need heap integration

#

and other stuff etc

sterile plank
hazy saddle
#

Got those changes pushed today, gonna work on vmem ๐Ÿคž

#

Either that or SMP init may work fine?

#

Though Iโ€™d prefer to have vmem so I can have an array for CPUs and shit properly

#

I can use a linked list but :p

#

I could just allocate an array for cores to get pointers to the struts they need and map it down there

#

My SMP init code should also hopefully manage to be PIC so I can just make it work for them to get into 32 bit mode and then to 64 bits and index into an array and jump to C

#

Iirc I can do cs: relative data access? So it should be fine

hushed oracle
#

I jump straight to long mode

#

Wait, ignore me, no

#

I jump to a common 64 bit entry point, and then search the per-CPU struct in there from C++

hazy saddle
#

turns out im not doing vmem but still rbtree bases virtual allocation stuff

#

but im going to make sure it works alot better

#

and try and abstract it out a bit more

#

and i just finished a decent lil bst/rbtree library partly based on the wikipedia code for it with some bug fixes and better abstractions etc PSP1G_pspTrollar

#

im gonna push this to its own repo later and into the main repo soonishโ„ข

tender mantle
#

i will download this random tarball and I will like it

clear bison
hazy saddle
#

But @tender mantle said itโ€™s overkill

#

And didnโ€™t wana code it with me

#

Along with scheduling conflicts PSP1G_pspTrollar

#

So rbTrees it is

#

I need them regardless anyways for other things so eh

clear bison
#

Eh, with all the caches thing it definitely is overkill for most OSes

tender mantle
#

scheduling conflicts undersells it alot

clear bison
hazy saddle
rancid viper
#

scheduling I'm sure @tender mantle calendar is really packed full

tender mantle
rancid viper
#

ok wtf

#

I enter complete ur name and discord picks random guy

#

10/10

clear bison
#

hachimichi.chichichichi

tender mantle
#

vcvtudq2ps

clear bison
tender mantle
#

my twin :3

hazy saddle
#

Whatโ€™s funny is I tried to get Claude to like make sure this shit isnโ€™t broken because I made this half tired in a VC talking about random shit

#

It said I had a UAF bug

#

The reproduction was Claude just miss using the public API and did a free before tree removal

#

๐Ÿ’€

rancid viper
#

lol

hazy saddle
#

The actual library does zero allocations and is freestanding too

rancid viper
#

I once asked claude to review my rbtree impl and it pointed out 12 bugs that werent bugs

clear bison
hazy saddle
#

Lmfao

hazy saddle
#

And the UB technically would have never happened

tender mantle
#

let me know because we basically have the same impl trl

rancid viper
hazy saddle
#

Just make the compiler scream

tender mantle
hazy saddle
#

(Given valid trees are provided)

#

this API syhould be nice though

rancid viper
# tender mantle cool ty

tbh it would be fairly easy to just make a fuzzer that runs a few hundred million random ops on it and compare against a known-good impl

#

but I mean it should be good

hazy saddle
#

These trees should not be getting THAT large

tender mantle
#

if the fuzzer finds a bug at all it's probably not good :p

hazy saddle
#

Well i mean

#

The code is good enough to not need to be fuzzed :p

tender mantle
#

lol

rancid viper
#

I mean u can prolly do a few tests per rotation to cover all edge cases

#

but I'm not totally sure

hazy saddle
#

Talk cheap send patches

rancid viper
#

when I rewrite my impl I'll make a proper test suite

hazy saddle
#

Most code is ripped from Wikipedia and me fixing any bugs that crashed it

rancid viper
#

I can share it then

hazy saddle
#

So it should be fine

rancid viper
#

so expect that in about 6 months

hazy saddle
#

After chariot v7?

rancid viper
#

ur funny

#

u think im finishing v3 in 6 months

hazy saddle
tender mantle
#

finishing v3 or finishing v3 with all of the extra shit ๐Ÿ˜ญ

rancid viper
#

bro im back to fucking reconsidering some of the like first design decisions I ever did

hazy saddle
rancid viper
#

cli I fucking hope is done this month

#

I have a week vacation next month

#

I wanna do osdev then

hazy saddle
rancid viper
#

I have prolly another 3 weeks in august

rancid viper
#

I mean prolly

#

but I wanna have a stable good version out soon

hazy saddle
#

And making LSP work with KATE

#

๐Ÿ˜ญ

rancid viper
#

also @hazy saddle thoughts on my pfp (hover over my message)

hazy saddle
#

I havenโ€™t noticed any changes

#

But itโ€™s good

tender mantle
#

if wux dies before a stable v3 comes out do NOT expect me to maintain it ๐Ÿ˜ญ

hazy saddle
#

Oh yeah cool nix

hazy saddle
#

Unfinished business and all

rancid viper
#

matei will get the access

#

soo

#

@fluid mesa make sure u force @tender mantle to finish chariot because of the tragedy of me getting hit by a bus

rancid viper
#

all that chariot actually does is it runs a given command with the given configuration

#

the python wrapper script thingy just sets good configuration

hazy saddle
#

maybe

#

but im oopid and need documentation

rancid viper
#

I will prolly see about better integration for v3

hazy saddle
rancid viper
#

yeah true

tender mantle
#

god damn it evalyn

rancid viper
#

tbh the actual rest of the system is like fairly well documented

rancid viper
tender mantle
#

thank god ๐Ÿ™

rancid viper
#

I alr have it worked out how running these commands will work nicely

tender mantle
#

sick

rancid viper
#

I should make a non-os-progress-report thread for this

#

maybe when I get to v3.0.0

#

lol

hazy saddle
#

Okay here we go thatโ€™s uploaded

hazy saddle
wide mica
clear bison
#

I know

wide mica
#

realistically youd only use vmem for that

#

so

#

no need to implement it

#

but it's also like really easy?

#

just have a kmem_cache backing a specific size

hazy saddle
#

I am probably gonna have to deal with O(n) search of the tree for allocations with this, but if thatโ€™s ever a bottleneck il end up doing vmem crap and struggling to do that PSP1G_pspTrollar

wide mica
#

vmem is pretty easy, it's a bunch of freelists

hazy saddle
#

But I donโ€™t expect that to really be an issue with how it will work

wide mica
hazy saddle
#

Wait thatโ€™s it

wide mica
#

like importing arenas

#

which isnt that useful if you just wanna allocate virtual memory

#

might wanna read the comment

hazy saddle
#

Can it handle fixed address allocations?

wide mica
#

yea

hazy saddle
#

I will definitely use this as reference and just do vmem PSP1G_pspTrollar

#

This shouldnโ€™t be that bad actually

#

Thank you

#

I will also still be able to use the spalloc and my RBtree crap too for this

wide mica
#

well here I used RB tree because I think using a hashmap gets tricky

#

because to allocate the hashmap you need the allocator itself

#

so you have to do it periodically

hazy saddle
#

Yeahhh I really donโ€™t like that

#

My spalloc just chops up pages from the HHDM for smaller objects

#

Which should be perfect for this

#

RBtree is fast enough anywaysโ„ข

wide mica
#

yeah that's what I figured

wide mica
hazy saddle
#

This is some really nice code too

#

Yeah exactly

wide mica
#

and in my allocator, large allocs go through vmem

hazy saddle
#

I will need to rewrite that allocator to work for non 4kb page systems later tho

#

Maybe have a different backend depending on the page size and use a linked list for non 4kb ones

#

Since I used a bitmap which was more efficient for this

wide mica
#

I did manage to have no hashmap in the slab allocator either, which is pretty cool. and I use the hhdm for small sizes so I can use the slab allocator in vmem itself

hazy saddle
#

My slab allocator is probably always gonna take tiny 16kb chunks from vmem

#

I do wana get smp soon so I can also make CPU local PMM caches

wide mica
#

I probably have the most over engineered slab allocator here

hazy saddle
#

would this be the function thats called here?

        for (&self.freelists) |*freelist| {
            freelist.init();
        }
#

or if there is some other freelist heloer i did not see

#

the code is mostly readable but i dont know all the zig syntax

wide mica
#

init() is List.init()

#

here

#

I need to call it because my lists are circular

hazy saddle
#

ahh so i should be fine

#

mind if i ping you tomorrow if i have any other questions while implementing this if i cant read somthing right

wide mica
#

nah its fine

hazy saddle
#

thank you 33

fluid mesa
hazy saddle
tender mantle
#

i forgot

#

๐Ÿ˜ญ

hushed oracle
#

vmem is some freelists, a bitmap and a hash map

hushed oracle
#

Yes?

#

To know the smallest order you should look at

wide mica
#

huh?

#

you can just do log2(size)

hushed oracle
#

Yes, but you have many freelists, you can just keep a bitmap of which of them have free segments, so you don't have to scan all of them when allocating memory

hazy saddle
#

Oh btw the free lists here are for ones with atleast that amount of memory right?

hushed oracle
#

yes

#

I think this thing is O(1)

wide mica
#

Instant fit is O(1)

#

Best fit is O(N)

hazy saddle
#

Iโ€™m probably only going to implement best fit

#

Along with only using 56 free lists

#

Which should be perfectly fine

#

Given Iโ€™m only at max going to have one half of the address space in it

#

And la57 is the max of any architecture I support

hazy saddle
#

Isnโ€™t it the better one for maintaining the lists shrug

hushed oracle
#

It's just slower for no good reason

hushed oracle
hazy saddle
#

Ah well then that dosnt matter PSP1G_pspTrollar

#

Because il mostly only be grabbing 16kb and whatever else

hushed oracle
#

Or like it depends on how you partition your lists

viral bison
#

my allocator uses freelist best fit

viral bison
#

but is pretty damn fast

wide mica
#

best fit SUCKS

#

it has been shown than instant fit is like

viral bison
#

or well

wide mica
#

always better

hazy saddle
#

๐Ÿ’€

viral bison
#

it's half instant and half best

hazy saddle
#

Then why even implement it

wide mica
#

lemme find the paper

hushed oracle
#

Like for 16KB allocations you can go to "at least 16KB" list or bigger and grab the first entry

viral bison
#

for small allocations, i have instant fit

#

for larger i have best fit

hushed oracle
#

And you're not subjecting yourself to O(n)

wide mica
#

there's a paper from the 1970s or something that proves that best fit sucks

hushed oracle
#

like it's a nice and very fast algorithm

hushed oracle
#

my physical memory allocator is also a instant fit segregated freelist

#

(afaik)

wide mica
hushed oracle
#

unless there's not enough memory, in which case it stitches it from the other lists

viral bison
#

my malloc has a a freelist allocator, with multiple queue for diff sizes

#

and if the size is larger, it just uses best fit on the "infinite size" queue

wide mica
#

idk just sizeof(uintptr_t) * 8 works

hushed oracle
#

You can also constrain it to a smaller number of lists

#

Though idk if it's worth it

hazy saddle
#

true but it lets me save some memory and fit more freelist pointer arrays into one spalloc allocator

hushed oracle
#

Or like matters at all

hazy saddle
#

Since I need to allocate the array, and I need to allocate the free lists themselves for one arena

hushed oracle
#

Actually no, it's probably a tiny bit better for cache

#

I haven't bothered with implementing arenas yet trl

#

Or like per-cpu magazines

#

Idk if it's the same thing

wide mica
clear bison
hazy saddle
#

It means I have lest wasted in one chunk

#

8 * 64 =512

#

I can only fit 3 due to the header

#

If I shrink it a little

#

I can fit 4 and have less wasted with this allocator

hushed oracle
#

But like it's a trivial thing to implement

hazy saddle
#

to implement what?

#

this is my allocator for pre valloc

#

so like eh i dont really wana deal with that when i can shave a few freelists off

hushed oracle
#

Wdym by pre-valloc?

hazy saddle