#EvalynOS
1 messages · Page 16 of 1
idk...
i allocate them for the init process and that's it
i leave the rest to handle cloning done by fork or god knows what
no
Or only fork
fork() and exec()
if u use mlibc u shouldnt have to patch bash

except for config.sub
What’s that
-# (just ignore the 4 patches i have for bash to get it to compile)
youll learn

I do wonder if the mods would want this in #curated-resources ?
It’s pretty top quality but I’d have to reword the message
Also when I get my fucking 8tb hard drives
also TCP is funny because you find out what a RST packet and it's like "oh hehe it's like the computer is telling the other to go fuck itself"
Im gonna mirror more bigger stuff
Like the gcc tarballs and stuff
i was gonna make a joke about what you should mirror but nvm
"yo i got some data for you"
"kys"
pov tcp
hjwiusjofchjdskfhjnsdp

Honestly osdev.cc should have a spot here too
[osdev.cc plug btw]
I love osdev.cc
the qemu log analyzer is still broken as fuck because I haven't bothered to fix it
Did you make that site?
Well rb trees from openBSD are really good
Atleast at memory efficiency
So 
After a talk with @cyan bison
I’m going to use two of them
One for free vmemory
And one for used
So allocations are fast etc
And same for finding used regions
Because an O(n) method is bad

how did u get cool role
she implemented FRED
https://files.evalyngoemer.com/share/manuals/fred9.pdf
@sterile plank its this btw
hmm
5 or 6 nights at freddy
copyparty ftw
Damn you support a lot of arches
Oh this is not your os
nope this is my manual archive
(i gave the powerpc manuals
)
Though I will be supporting them one day 😇
I'll add arm support this time trust me
(I haven't touched arm support since paging)
for virtual memory allocations
with POSIX mmap
can i clamp them down to page sizes?
is there a rule for clamping them etc
If addr is NULL, then the kernel chooses the (page-aligned) address at which to create the mapping
If addr is not NULL, then the kernel takes it as a hint about where to place the mapping; on Linux, the kernel will pick a nearby page boundary
from man 2 mmap on my system
For fixed mappings that require overriding? Wait wouldn’t that trigger an error because it enforces such
Ahh yeah it does
So my VMA can safely just store ranges of address of the allocation and not worry about them being funky and overlapping
Il make ends of ranges be -1 of a page?
So 0x1000 to 0x2000
Is stored as 0x1FFF?
Or is my brain fucking up?
That way range 0x2000 to 0x3000 can be sorted cleanly?
make sure you can't map_fixed over the kernel :P
Well no shit :p
I’d ensure it’s a user pointer
Banning the last page before non canonical
To prevent sysret bug
wdym
why the fuck would you allow the user to alloc up there anyway
If the program can’t ever map that last page
They can’t trigger the bug
The user program can do whatever the fuck it wants
It just can’t use the final page
they shouldn't beable to map in the kernel memory anyway
Not that edge of memory
The upper page of user memory
That’s where the bug can happen
If you have code on the end of that page
And syscall
RCX becomes non canonical
That’s the silicon bug etc
Just ensuring it’s NX always
I forgot 0x0000800000000000 is also "non canonical"
Though that’s risky imo
and you just broke some random 40 year old application that tries to allocate memory up there

That program can go fuck its self
And il send patches
you can't
that program is under government nda
(this program may or may not be an nsa exploit ngl)
Then they can pay me 100 thousand dollars for a military support contract version of my kernel with that feature enabled
Okay so I’m making the VMA today

Two RB trees
One for free memory
One for used memory
To allocate you take from the free one and insert it into the used memory
And you do the reverse for freeing memory
And I’m not going to do fixed mappings right now
And if the VMA allocate can’t get a large enough node at the part it will just goto the next node
And traverse it like a free list
But this allows fixed mappings to be good and fast because I can go right to the right node
chat dont kill me 
i actually do

for elf loading
i have to suport them

ooooooo
well how does that work o_O
like
what do the tree nodes describe here
pages or regions or whar

vmm freelist 
they describe ranges
and then the sort function that i 100% DID NOT STEAL FROM @cyan bison
sorts ir properly
sorting algorithm moment
oo
but wait u sort them by size or by address
it wasn't sort it was compare

both
o
wrong, they are sorted by address
😭
mods, electrocute everyone who answered wrong
I do something similar for an early boot allocator
tho using lists
but now I do vmem
cuz constant time >>>> logarithmic 
but this is vmem no

or somthing
idk
does proper vmem make things easier for fixes mappings @hollow crater
pls tell me
also what is vmem and how do you do it
because O(1) i need
its
THE
VMEM
idk whether its been superseded by more sophisticated stuff
well ig it did
afaik linux has 74748346356272 mechanisms for managing memory or something rn
that linux slub allocator is another hot shit out there
lads had slab, slob and slub
not even joking 🥀
vmem isnt an object allocator tho its just a general purpose range allocator
im scared mommy
tho its kinda similar
or idk not really
well basically its like buddy allocator but instead of strict sizes it relies on lists of more sparingly sized blocks
but for this i need to alloacte huge ass regions of virtual memory
so idk if struct sizes works
mm yes..
well allocate the virtual bit
also this O{1}
as long as the size the prgram wants
is at the front
and its per program / address space
so as long as the program isnt goin buck wild
it should be fine
mmmm
what are you saying, you would allocate 2gb from a slab?
because no
im dumb :P
like
shouldnt u have somewhere to allocate kernel memory from
which is separate from managing the rest of the address space
then have the rest be managed by an external allocator for memory objects
be it a program segment or per subsystem stuff
address spaces for mmio? do you mean like regions or something
So I can get a free address in virtual space? To map to
one address space is generally like
the entire address space is what people mean by it
so one pml4/5 == one address space
yeah

Just fucking hell
Idk if there is a better way to do this
other than a free list
or some such
wdym
and then im gonna remove it split it and then put it back in
and then also put it in the used list
seems fine
ye it will work
eh ig astral survived with its vmm being based on a list of regions or somethign so basically like
🔥
or so I heard 
btree of regions (and holes like u do) is a pretty common way to do it
totally fine
Is that better or worse than mine
well idk about the specifics of it but urs should be better in principle I think O_o
And for fixed mappings
I can go right to the range
And split it there
Or deny it if it’s not there for no replace mappings
And then I will use the used tree @hollow crater
So I can free all the mappings
By digging the PTEs for them etc
aha
well sounds good actually
now that im thinking about it i might keep my used ranges in an rbtree too lel
idk if it'll be an overkill I was gonna do a hashmap :P
Honestly rbtree is better tbh
Because you can go directly to a used region to free it
And iterate easily
And you don’t have to deal with buckets
Just steal the openBSD one too @hollow crater
Look how data efficient these are too lmao
Think with a hashmap you have to do the hash function and then a % operator to pick the bucket. You have to store every bucket and a linked list for it and stuff
well yea but I meant that for only the structure holding the used nodes
where i wouldnt need to do any coalescing or anything
so it would work no worse than a tree o_O
I am failing to see how a hashmap would work well for this
worst case for a hashmap is O(n)
I suppose if you have a good hash function u might be able to get some good perf for some amount of ranges
I had buddy from the start but it was the way i implemented it that was wild
like
super wild
super super super wild
but was efficient
sad it had to go
now its still efficient but eh
less beautiful
much faster tho 
Yeah rbtree is o log n and o(n) for finding a free range when using it as a free list
well u cant really get away from the O(n)
Idk maybe I could do an rbtree sorted by size and have three trees
tbh its not a stance I can reason about
I just didnt have a reason to do anything else :P
So for allocation I go by the one sorted by size
yeah but even then worst case is always O(n)
actually no its not
mb
lol
But then I can just instantly find one big enough o(1)
At the cost of more ram usage
I will consider that for later
If it becomes an issue*
Finding the first node though?
I always would just need the first node that’s the largest
well then there is no reason to do an rbtree

lol
like
for just keeping track of descriptors of allocated regions i cant see why a hashmap would be problematic
I could have a varrible for pinning the largest known allocation?
didnt say it was problematic, just I dont see how its better
Nah it would still be o logn
Because I have to find the node in the original tree anyways
I dont know the fancy math but worst case with a hashmap is all the entries fall into the same bucket and u just have a linked list
and when u can achieve binary search because the key is just a number that seems like the clear choice
but a good hash function and large enough buckets wouldnt have pathological patterns being common?
and for an address space ig a very large number of buckets is justified
welp idk
like I might as well just place the load of keeping track of allocated regions on the callers anyway
like
return a pointer to the bookkeeping structure instead of a pointer to the start of the region
simce the use of that layer is internal anyway
a vm_object could as well hold references to its own region
idk 🤷♂️
The rbtree does hold book keeping objects tho @hollow crater
You can put anything else you want in here
yea im aware
but its like
im not sure if traversing that used regions structure (regardless of what it is) is actually necessary
especially since unlike object allocations where it'd be totally unreasonable to have the callers hold pointers for their allocations other than just yk, the pointers
vm regions are usually allocated for a much longer time and arent used directly
afaik reference counting for like
shared objects isnt done at that level either
aight its 1am already ig im hallucinating rn
@hollow crater POSIX requires that you are able to map fixed regions and when unmapping it can be in the middle of a region

mmmmmmmmmmmm
welp thats crazy 🥀
I mean
I can still do it that way 
fair lmao
I basically thought i can force callers to store the handles as list heads instead to get around this 
and therefore unmapping a partial region will have the list head passed to vmm
vmm would split the region and gut out the part being unmapped and thus the region (well list of subregions regions) would be returned
beaware from fragmentation tho 
there is 128TiB of virtal space

if it cannot find memory
kill it
last time I checked chrome uses half as much for a single about blank tab

well then chrome can go suck a lemon
LMFOA
well looks good 
this is better lol
idk if variable alignment >= page_size is a requirement for anything but for a starter it looks fine to me
wuh?
it has to be page aligned
so i ensure all allocations happen on that
I was wondering if there's anything that may require allocations being a multiple of that
for some reason
but i'll take this as no 
page size is the minimum

so like
it has to be rounded
fair
i uhh also now need to just put a chunk of free memory in there
and let her rip
atleast for the kenrel
i need to implement these after
i thinkin for the kernel
i could put 8 terrabytes after 16 terrabytes offset of the HHDM?
the heap starts here

well idk i just leave the higher half entirely for the kernel subsystems
barring the hhdm and the pfndb
with kernel non contiguous heap so that i dont have to care about the spacing
same
for that I just let both manage their own structures internally 
this's basically where I left that part and I havent fully figured it out yet tbh lol
this's the point where everything fell apart that I had to rewrite my pmm kekw
well i can presume the HHDM wont be over 8 TiB right
atleast for 4 level paging systems
well ig u can make it as small as u want then have it fall back to temporary mappings and shit for accessing out of its bounds
or even shifting hddm coverage on demand
tho that'd be crazy lel

well
guess it cant 
or wait idk
is there any cpu out there with 48bit pa width that lacks 57bit address space


anyways imma just
eep
😴
wait one sec

HHDM 0xffff000000000000 - 0xffff080000000000 (08TB)
VALLOC 0xffff080400000000 - 0xffff480400000000 (64TB)
HEAP 0xffff810000000000 - .................. (????)
KRNL 0xffffffff80000000 - 0xffffffffffffffff (02GB)
@hollow crater hows this look
for the mem map
o
well the heap doesnt need too much vm space does it
like
ig even some 256mb would be an overkill
how about
HHDM 0xffff000000000000 - 0xffff080000000000 (08TB)
VALLOC 0xffff080000000000 - 0xffff480000000000 (64TB)
HEAP 0xffff480000000000 - .................. (????)
KRNL 0xffffffff80000000 - 0xffffffffffffffff (02GB)
uhh err
that heap GPFs

wtf
real
0xffff8
errm what the sigma
all i did was
#define KERNEL_HEAP_START 0xFFFF810000000000
to
#define KERNEL_HEAP_START 0xffff480000000000

what is being mapped 
booo lowercase hex
im not even using my valoc
shame on thee
bc
the latter isnt canonical
calculator
There's a reason kernel heaps are typically in the HHDM

fuck im gonna have to redo my god damn heap
because the person i took this from
fucking made this mess


well then uhh idk :P
So uhhh I just allocate some free list nodes from the PMM and HHDM it
🥀
And then that’s enough to bootstrap
Or some crap
is hhdm higher half mapping or something
Yes
real
real
How should I do this fucking heap 🥀
whats the heap for
Been meaning to redo it anyways
malloc()
@hollow crater any tips 🥀
pmm allocate it, make it a linked list or something idk 
well waiaiaiaiiaiiat a sec
I think yea
its not canonical
sign extension here should match the last pml4 bit
Oh 🥀
is the address signed??? 
well as I told u I haven't fully figured out the cyclic dependence part 🥀 (I still belive i can do it WITH dependance)
I do slab + magazines tho 
I mean 🥀

I could use a
Bump allocator
To bootstrap it
🥀
To get the starting freelist nodes
ohhh
I do that
yall's virtual memory structures look like a total mess ngl
I could also just use the PMM to allocate one free list node 
Wait
FUCK
I have to make a buddy allocator for this too
realization
Don’t I
if this is for the kernel then why does your kernel need a malloc, i mean its memory efficient but in that case just dont allocate a lot 
Osdev summed up
Every kernel needs a malloc
Linux has a malloc
but why 
Dynamic memory allocation
what you were doing was fine, just pick a canonical address next time 😛
obviously

But I want to rewrite anyways
actually whatever every kernel needs a malloc
allegedly
for physical memory
so yea 3 allocators for memory
pmm
vmm
and then one for heap
thank fucking u paging
all hail good old segmentation
scary

now do a 3 hour OSdev session
im taking a break today
already done
ok return to sleep
please beware that there's maintenance performed on the houses of evil monsters
they chose to sleep under your bed if thats fine
👍
I just cant
skewl is starting again next week and all in all I havent done shit in this break so im sprinting in hope that I can achieve something before im back into the grind 💔 🥀
nah i dont mind them monsters 🙏
theyre
welcome
WHAT CAN I SAY EXCE-
oH mAn YoUr gOnNa LoOk So StUpId In a BaJilLioN yEArs wHeN AI FiXeS tHe RaM sHoRtAgE
~ some dumbass probably
Well damn
ram shortage solved everyone
Time to pack it up
Openai can have all their ram now
Everyone say thank you Evalyn for solving economics
HHDM 0xFFFF800000000000 - 0xFFFF900000000000 (16TB)
VALLOC 0xFFFFA00000000000 - 0xFFFFE00000000000 (64TB)
HEAP 0xFFFFF00000000000 - .................. (????)
KRNL 0xFFFFFFFF80000000 - 0xFFFFFFFFFFFFFFFF (02GB)
this mem map should be correct

Lol
What's the limit for ram with canonical addressing anyway?
It can't be too much more
512TiB total for 4 level paging
256 for each region
so i got room to shmoove this
if needed
I was just thinking if you support 8tib physical ram there's only so much more you can get before you need a CPU that doesn't even exist
tf you mean lmao?
thats HHDM
so if it dosnt exist it wont be mapped
its just the range im reserving for it
it wont need it
infact i support features that only exist on CPUs that came out last month

Oh yeah no just thinking about reasonable maximum memory limits
"16TiB ought to be enough for anybody.”
I mean realistically 8mb ought to be enough for anybody but then someone invented emacs
I mean realistically 4gb ought to be enough for anybody but then someone invented chrome
😭 I use chrome on my work laptop and rn the average tab ram usage is like 500MB per tab
i think it may be time to retire this tbh
i need a smaller panic logo
and maybe switch to a better font
(il make it a compile option for the legacy one)
- i may make a compile option for these
as its bloating the binary a little
or maybe have it in the initramfs?

god i love overloading
now clang just add templates to C
and then its perfect
you can do NASTY things with them
and i wana do it
thowback to the time i put C++ shared/raw pointers into lua
I do wonder what these names are in the object
wdym
iirc it is
Clang provides support for C++ function overloading in C. Function overloading in C is introduced using the overloadable attribute.
well obv you can't have 2 symbols with the same name
Given these declarations, one can call tgsin with a float value to receive a float result, with a double to receive a double result, etc. Function overloading in C follows the rules of C++ function overloading to pick the best overload given the call arguments, with a few C-specific semantics:
yeah they are just c++ named
btw why are u using that old nasty attribute syntax
```c
int attribute((overloadable)) test(int a) {
return x;
}
float attribute((overloadable)) test(float x) {
return x;
} resolve to
_Z4testi
_Z4testf
when [[clang::overloadable]] exists
: )
thank u
no worries
I despise the gcc attribute syntax
and since C23 has a well defined attribute syntax might as well
Based take, gcc has so many outdated design choices
And stallman can eat a drain pipe
i need to free memory to have a working system
then you will OOM
super fast
Just wana make sure I’m not gonna shoot my self in the foot right as I try and use this lmfao 
well i diddnt sleep
and im open sourcing my riscv emulator finnaly
il test the other code today after i sleep
God honestly once this is done along with the proper VFS and fork and exec and a few others
And then il do a final pass of code quality and do the last two rewrites I’ve been meaning (buddy allocator and SLAB)
Il be so happy to have beta1-rc1 working
But then

I have to make SMP work
So Much Processors™
So many problems*
im fighting the urge to say the other p word
that's gotta be POSIX 
nah powerpixel
pp
cool acronym
just use swap lol
is it really a good OS if it cant survive a fork bomb?
what OS can survive a fork bobm
one of them
ohh
not that it actually survives
and is usable
tbh if u can detect what executable a process is then u can detect if there are more than some limit of processes of the same executable and if so kill all copies
Linux 
windows 95 
lets fuckin gooo
huh wtf
trying to do 1gb mappings
hats not right
and its the exact same with less
hm?
im testing by making mappings to see if it works
its doin somthing
not right
im doin the paging like this now
it was working a bit ago
but REALLY slow
and then crashing
well that's not right :P
whats not
It’s working now!
I’m queen of the world
And it’s 2:30am
And I should sleep

But also it seems program loading times are heavily reduced using 1GB pages
then sleep 
I get a physical page and I use the HHDM to write to it
Because it may be read only in user mappings
- it reduces TLB misses with way using the big ass pages
Which I may call internally big CHUNGUS pages
I see you like my naming of 1GB pages

clangers
talk is expensive, send bugs
What bugs do you see
i dont see any bugs thats the thing
add bugs
anyways the code looks fine
from my understanding
if it doesnt work then im sorry im tired
(as in my brain doesnt work straight up)
put a ladybird emoji or something in a comment
if you put all the bugs in yourself intentionally there won't be space for any other bugs
better a bug in the hand than two in the bush or something
okay so
i need to get this commit ready
and then work on exit()
which should just be stop it from sheduling
and have a repear thread clean the thing up
go through the free list and clear all thoes nodes
go through the used list and the PTEs and free thoes pages
then free all the nodes
then free the last few structures and cleanup the shceudling linked list
then tasks wont be
while (1) {} ing
then il do a leak test
and PRAY i dont have a leak
💀
then its time to FORK
or well rather
il need to fix up how i spawn processes
THEN fork
(and then exec which will do a partial exit() and then reload the process but keeping the needed things)
then i can get bash
cleanup some code
ans then its uhh
well ofc x11
but thats a bit off from just bash + coreutils
What
time to push this
then get the reaper thread and exit() workin nicely
maybe il even make my schedular aware of a "work buffer" type where it will check if it has work to have it never get scheduled if it has nothing to do?
but that should fix all leaks
which means VFS time and tmpfs
and then
threek 
im doing a real fork()
im stealing this
well ive stolen that other one too already 
oh I already stole it lol
the internet is a lawless wasteland smh
twok 

well x11 requires it to be pretty darn stable.
Would need to work on stability.
and port more drivers
Well of course
fork bomb
when you accidentally decrease the instruction pointer on fork
Okay so. I’m going to need to add processes. I’m thinking it’s a structure with of course the FDs and thier information and the other stuff. Then they contain pointers to all the threads they contain which have the actual stuff the scheduler works on.
And then processes have pointers to the parent and the children
Which would be a liked list of “siblings” and a linked list of “children”
Or I can use a non intrusive linked list
And then do it properly
Okay so question is
How long can I avoid this rework
I only need it for waitpid
And fork()
I think I can do the exit() and VFS shit without this
And then just make exit() zombie you later
Which would be really easy
I think I’m gonna take a break today
To goto sleep on time
And be able to work proper tomorrow
Gonna try and get exit() working properly and not leaking anything
Gonna do a test of spawning threads and having them die and see etc
Then fix the VFS
And then it’s just get fork() exec() and waitpid()
Then bash and core utils
This should work
Then cleanup the code and then start working on SMP
so for reclaiming all memory in a processes page tables i am going to dig for all pages in the lower levels and iterate through the entire thing skipping zeroed entires
and on seeing a valid page i will check the PFNdb and if its ref count is = 0 (non CoW) or its = 1 (last referer) free it otherwise decrement the ref count and move on
should be a basic ahh function
lookin good so far
just have to properly reclaim & track all memory
But the system call is getting gotten
And the schedular notices said thread needs to be reaped
And then sends it over
This is really fucking thread unsafe
But I think I may implement lock free algorithms with 128 bit CAS pointers
Which means I have to drop support for CPUs from 2006

the fuck
this line of all things?
and it goes away if i remove this free
the fuck

okay this one is a race condition
and i need to get proper locks added to shit
this is coprution when sending things to the reaper
the fuck
this causes the crasf faster
just acting as if it were asleep
why the FUCK is this causing it
still

i may or may not be dumb
I never initialized any of the RBtrees
For user processes
I uhhh
Would think that’s very undefined behavior

No wonder the kernel is shitting it’s pants
When it’s fucking with unintalized shit

So when I tried to ya know allocate from them
With nothing to allocate from at all

That’s uhhh
Not really good exactly
Well they were corrupted
But then I tried to fix it
And then somthing else is blowing the fuck up
I have no fucking idea
ohh mb
that was me
also like
if it ain't locked
idk why u expect it to work in a multithreaded environment
i put a ton of stis and clis and crap to test that

i should add some spinlocks
lmao
well u at least have spinlocks implemented right
im makin a minimum repdrofuction
cro is not smp safe 🥀
trust me ur gonna die when u try to add smp
Not a good mentality.
no
I wasn’t zeroing the memory
Of the RBtrees

I have now added zalloc() to my kernel
So I can just use that
And not need to manually zero the shit
what do you know
undefined behavior
makes shit crash

well lets go
gonna leave this on
and hope it wont OOM
But I think my reaper is doing its job
Will need some extra work for CoW to not delete those pages etc
Maybe some optimizations too
BUT
Oh and I will have to turn them into zombies before a full clear
But good enough for now
100k runs
no crash
this is with 64mb total ram and ~47mb detected by the kernel as usable
well
now its time to fix the VFS
and then
and then bash
thread reaper
Yeah it’s the grim reaper
When a thread exists it’s put into a reaping state
If the scheduler attempts to run it it will instead put it into the reaping queue
And then all of its memory gets reclaimed
exists?
i got it you just said exists
im just evil and hate everybody ig 
everyone who uses snake_case needs to be studied
I use them all
I use every kind of case
Whenever I feel like it

snake react this guy he's asking for it!!
Excellent my meme is spreading
i made my own 
Alright maybe we should get back on topic
And don’t post AI stuff in my channel please
i did a false negative 😔
my dumbass thought it was just a recreation
wdym happy now
where your spinlocks not atomic
oh
I don't use stdatomic
or inline asm :P (cli, sti, and pause are all arch functions, (disable/enable)_interrupts and arch_pause)
you can use stdatomic
it's just I don't
Ah
I use the builtin compiler intrinsics
Well is this safe 
__atmoic_exchange_n & __atmoic_store_n
Is there even compiler intrinsics for pause and sti/cli
make sure you don't take an ipi while locking :P
well
it depends on how you implement ipis
my ipi code is terrible and has had deadlocks
An IPI would be a normal maskable interupt no

And then once they are enabled
It will pop up back
yeah
This spinlock should be fine as long as I don’t hold it for long right
And it should work cross core
I switched to only using async ipis because sync ipi caused too many problems

and since shit like forcing other cores to die and tlb flushes can be async it's fine
Now where should I slap this lock
But this will make my kernel slower

It will no longer be lock free /s
Okay so @rotund furnace I should maybe add one to
- every VMM instance
- the PMM
- the heap
- the reaper queue
I think that’s everything that’s cross thread?
stdatomic <3
i can SMELL modularus is gonna do something as similar but to an extreme
and frequent level
mo
no
it should save the previous interrupt state and restore it on spinlock release
Yeah I fixed that
Still
Fucked
Check the secret group chat
Lmfao
secret group chat 🤔
who is 4 people
The chat was originally made because @rotund furnace Played 19 hours of rust straight
It kinda just stuck around lmao
And got renamed
A few times
shut the fuck up
lemme use my free time how I want
Hey I’m just sharing the backstory
Have fun playing your games
@wanton grove btw since your in here. Any idea why the fuck this is happening 💀
what you did
after what you get this
😭
Honestly
I’m lowkey impressed it’s fucking up that bad
And adding locks made it worse
so are you running this with >1 core (with smp)
1 core
No SMP
Just normal threading
what is tries to print this random memory
send src ill compile this
@rotund furnace Do you have your fucked up patch
That’s based on my fucked up patch
The corrupted frame buffer is mainline dev though on the repo
and they have crashes on that
That I can’t reproduce
💀
LMK if you need the compiled userspace apps to drop into the initramfs folder if you don’t wana build GCC
wdym broken patch
wait you have own .com domain
how much it costs
10 15 bucks a year
They are cheap as shit if you don’t need a short or fancy one
rich
wdym
My aunt pays it for me
I have a userspace
And the build system compiles it
And stuff
And if you don’t wana spend 40 minutes compiling GCC and binutils
I can give pre compiled binaries
yes i dont


