#Zinnia
1 messages · Page 28 of 1
A large slab is any slab with objects over 512 bytes
okay so like what 🙃
and the slab size is calculated to minimize fragmentation
also 512 feels weirdly low
It's 1/8th of a page
yeah and you map in units of a lot more than 1 page usually
hm?
Actually I guess the Solaris way would be to resize the hashmap using vmem or something
You may say this of unix domain sockets specifically but how about TCP or UDP? With a ring buffer you'd be compelled to introduce an extra copy
While the natural solution with mblks or mbufs is to adjusy the data pointer of the block past the headers and pass it up to receive queue
oh yeah thats true
hmm
well no i dont think so
you could create a mildly cursed ringbuffer structure which can hand off objects directly on the fast path
and then do some kind of vectored receive on the other side, idk
oh fadanoid I was meaning to ask, how do you avoid making kernel heap frees expensive? Because my physical pages are not contiguous so what I would do on free is free the virtual pages and flush the TLB, but flushing the TLB on every free sounds bad. Can a batching mechanism be used for kernel as well?
for kernel frees, you dont have to do a synchronous TLB shootdown at all
Its even easier for kernel since you can delay making the VA space available
Yeah I thought about that too
and obviously you can also just not free as much
and free in larger batches
(e.g. im planning to use 64k blocks for my slab allocator, so that already means 1/16th of TLB shootdowns)
Do an RCU like thing. The VA space is freed only after each CPU has passed some point where it processes queued kernel VA space invalidation
Why not?
I had this exact idea
because you know that the memory won't be used
I can do some kind of safe memory reclamation trick
Well yeah if I free the virtual memory it may be
The technique is described in the mach "tlb shootdown" paper
It was one of the inspirations for RCU originally
Are you doing arm?
yes but im using 4k pages
Don't you still need TLB flushes for every individual 4k page
well no you can do a bulk tlb flush
also on arm you have broadcast tlb invalidations (but i dont want to rely on that obv)
this does not apply to naming conventions btw 
i have the best naming
@somber solar 
nice
@somber solar ok it's not ppoll
it's the tty handling
bash thinks my tty is not canonical??
interesting
is it supposed to be canonical?
can you show your syscall log
arguments and return values would be useful
wanna join vc?
sure
new screenshot dropped
?
why ?
make it new zinnia logo
idk how to make pixel art
- take a png
- img2ascii
- profit
it looked ass when i tried lol
is img2ascii was your some tool
i dont remember
Ask claude
gib
is it too big
what's that
two plain colors started with $1 and $2
e.g.:
$2.;ldkO0000Okdl;.
.;d00xl:^''''''^:ok00d;.
.d00l' 'o00d.
.d0Kd'$1 Okxol:;,. $2:O0d
.OK$1KKK0kOKKKKKKKKKKOxo:, $2lKO.
,0K$1KKKKKKKKKKKKKKK0P^$2,,,$1^dx:$2 ;00,
.OK$1KKKKKKKKKKKKKKKk'$2.oOPPb.$1'0k.$2 cKO.
:KK$1KKKKKKKKKKKKKKK: $2kKx..dd $1lKd$2 'OK:
dKK$1KKKKKKKKKOx0KKKd $2^0KKKO' $1kKKc$2 dKd
dKK$1KKKKKKKKKK;.;oOKx,..$2^$1..;kKKK0.$2 dKd
:KK$1KKKKKKKKKK0o;...^cdxxOK0O/^^' $2.0K:
kKK$1KKKKKKKKKKKKK0x;,,......,;od $2lKk
'0K$1KKKKKKKKKKKKKKKKKKKK00KKOo^ $2c00'
'kK$1KKOxddxkOO00000Okxoc;'' $2.dKk'
l0Ko. .c00l'
'l0Kk:. .;xK0l'
'lkK0xl:;,,,,;:ldO0kl'
'^:ldxkkkkxdl:^'
would be huge
iirc nyaux used this format with fastfetch
yeah but that's not the intended way
that just prints the ansi sequences
let me try putting it in the sysroot
damn
fastfetch doesnt love to show logos >20 kb
why is there so much empty space between the right side of the logo and the stats
big logo
they are ugly
yeah it needs like 3-4 cleaned pixels
but otherwise doesn't even look that bad
or you could remove the bg entirely
just one color
is this fine
a
a
a
a
a
a
a
a
a
hm
xorg seems to be trying to do modeset
but fails horribly because of the screen res 
that's better
this isn't as cool as i'd want it to be because it's just using fbdev, not drm
it does a modeset, but it stays blank
why are the eyes blue 
nah but based as fuck
@grave peak
Is that 3d accel?
no but modeset
3d accel when
once i have xfce running
It can't be that hard
™
leo couldnt do it for managarm
so it is indeed hard
still pretty hard
no the 3d format is literal mesa ir
okay with plainfb drm, the eyes are black
probably ARGB vs BGRA
inb4 i messed up the buffer setup and mixed the formats
so would you either have to reimplement mesa stuff or somehow pipe mesa outputs into it?
does virtio gpu define its own formats?
eh probably doable with proper fencing and some diligent code review of mesa/virglrenderer
it's just super frustrating to work with really
these days, it's probably nicer to use the venus vulkan thingy instead
at least that uses the official serialized vulkan command stuff
I think, with retrospect, my problem was either messing up to set up some descriptors (possibly for DMA), some fencing meme or forgetting to signal something
what is this code for?
is that a vgpu backend?
allocating a dumb buffer
it's the protocol used by mesa
basically it serializes the opengl/vulkan state, DMAs it over to the host, which then deserializes + executes that
it
's just a lot saner to go the vulkan route these days
yeah but what device does that require in qemu
Doesn't virtio GPU rely on mesa ir
with the vulkan stuff no
Hm
bc it uses the official serialization of it, I think it even works with nvidia-open
is it literally just vulkan? surely not
it is
i mean you cant trust the host vulkan driver to work properly
you can't trust, but iirc people have had this thing running and amgpu and nvo
amdgpu segfaults if you tell it to use a random entrypoint you dont have in spirv
this will even pass spirv-val btw
sure but does it matter if it works 
well i would say crashing the whole emulator and being hopelessly insecure does not, in fact, count as working
???
u still have the host amdgpu driver validate the command buffer
my point is that venus works with multiple drivers
and shaders
well you cant validate that if it operates at the vulkan api level
and you cant make this work reliably at that level because the drivers are too broken either
yes
there is no way to know if a given set of maliciously constructed (but valid) vulkan commands is safe
gpu drivers are not considered attack surface afaiu
u dont submit vulkan commands to amdgpu
u submit amdgpu commands
it's getting validated by some host-side layer before being passed on
yeah but imo thats not really terribly trustworthy
i mean sure like thats cool
any app has the right to make a command buffer and submit it via drm, thats kind of the whole idea. i dont see how adding a vm changes anything here
i love broken devices 🙃
that a vm is [meant to be] a privilege boundary 🙃
yeah maybe its fine
to paraphrase a bit of medical wisdom, "there are no correct drivers, only underdiagnosed ones"
you're worried its untrusted vm output?
but its untrusted either way even if its produced by host userspace
the host userspace side of the gpu driver is more privileged than a random vm userspace process
anyway, if somebody wants to tackle this some day, I'd be happy to help out with a bit of guidance if desired
by gpu driver u mean userspace mesa?
i suppose
but that would be a bug in the driver anyway
like either in userspace mesa or host
(kernel space)
like its not intended that u can make amdgpu segfault from userspace by providing invalid input from userspace
wherever the batchbuffer comes from, the driver has to validate it anyway
from the driver's perspective, I don't think you can really tell the virtio-gpu Venus case apart from just mesa
and the fact that the userspace side then has to validate input is ... obv?
i still think it would be cool to get that working in managarm so u can brag about some 3d accel
sure but I don't think I will have the time to do that in the next few months ngl

maybe marvin is going to beat u to it
I'm happy to help make that happen
nah
i have doubts in myself
the goal i've set for myself with zinnia is to get to xfce4, as that's my fav DE
on paper it just takes correctly piping userspace buffer into the gpu
in theory it's just setting up DMA stuff + handle fences + yeet commands
fences are probably the only like harder thing
I'm not sure what the guest driver side has to do for that even, but even if you have to do a lot of legwork, it's just semaphore + reporting events via a syncobj fd
iirc userspace just puts a fence command into the buffer which generates an irq when reached or something?
might be, but you also have to await all the input data to be available
dunno how that works with venus
yeah idk
on nvidia, you'd just emit a few GPU instructions to do a wait on the semaphore
same for signalling fences, just insert some instructions to advance a timeline semaphore
i doubt that the problem in the past as a fencing issue
it's much more likely that some ABI was broken
wdym by input data?
between host mesa and guest mesa
I did 4 or 5 passes checking all data structures, so I was pretty certain of their correctness
is it really that tied to a specific version?
for fences, I just set a bit to make it run in sync and hoped for the best
no, i mean a mesa-internal ABI
in the serialized IR
due to mlibc differences etc
FUCK I KNOW WHY
FUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCKFUCK
what lol
printf LMFAO
there was a printf bug in mlibc?
it 10000% miscompiled shaders
lol
but then it should have miscompiled them on Managarm as well
rofl
I only ever observed that on skia otherwise
that was when I implemented all the float formatting in frigg
wdym on managarm as well
this is on managarm no?
shaders on Managarm without virtio-gpu work just fine (even back then)
(depending on the codepaths taken)
u mean llvmpipe shaders?
yes
I will 
yeah it could be different codepaths
but it doesn't matter if it's llvmpipe or not since it goes through the same IR
do it
(my kernel is a nothingburger)
you need to lock in first
I am actually fairly certain that printf + fences would solve virtio-gpu
I AM SO FUCKING DUMB
tf you mean lock in I've been writing like 5kloc a week or something
Ok maybe not that much
ah actually it probably doesn't serialize on the non-virtio code path
I wrote like 10k in 3
yeah likely
yeah about that, scanf bugs also bite there
can we do a quick test 
maybe just the printf fixes fixed it
no I don't have the branch any more, and rebasing that also wouldn't be all that feasible
it would be easier to just rewrite from the spec again, esp with vulkan in mind
u nuked the driver code also?
(just enable zink afterwards)
get claude to do a quick and dirty test
fwiw claude is quite good at rebasing branches 
jesus christ
lol
ok so how is it a nothing burget
any kernel without a userspace is a nothing burger 
yes
I'm not even thinking about getting close to userpace atm
I have so much stuff to do first
see the todo list 
did u start the tty
show
it's pinned in the thread
No I commented it out
so what are u working on atm
finishing the allocators so I can start smp
I'm overengineering the allocator and I don't have infinite time so it's not pushed yet
But it's like 95% done I'd say
llfree?
oh ok
i could probably push it already but I wanna clean it up a bit
Honeycomb
???
et tu brutus??
god damn this kernel is hella unstable
there's deadlocks everywhere
does it not work with fork?
well
gcc has a bunch of subprocesses
it must spawn like 5 executables just to compile a C program
ok no maybe like 3
ok but still why would it try to open a file in posix_spawnp
@marsh holly i got bored of openrc 
i got dinit now
bored or it didnt work
?
both
dinit was way easier to get running
and it doesn't use ugly scripts for services
LL
at least then I am a special little boy who runs openrc
I think this happens when you have a weird PATH variable
Mouse?
Twm?
yes
Awesome
wdym
wayland needs a lot of linux apis
isnt there is bsd port for it
then i need to be bsd
these days wayland is runnable on bsd as well
netbsd and i think even openbsd can run it now
yeah and both are actual bsds
so my options are
- pretend to be linux
- pretend to be a bsd
- write my own shitfucked version of libudev and a device manager
didnt you was writing own libudev
yes
or do all 3
no
there was an experimental libudev implementation for netbsd but i don't think it's needed for most comprositors
possibly the path of least resistance is a libudev implementation
i'M already working on one
you can probably patch udev out of compositors rather easily
but it's very hacky atm
it shouldn't need to be very thorough
it's not feasible to remove it from libinput though. although the BSDs may have their own solution for that such that they may not need libinput anyway
Why is Wayland so not portable again
Assumes some linuxisms and uses Linux-specific interfaces
epoll + signalfd + timerfd + libudev for libinput which basically everything depends on
Yes but why
because it's for linux
and linux specific socket stuff iirc
virtio_gpu cursor! (i don't have an actual input driver, this is just qemu doing the display)
very cool
something i noticed, most hobby oses are slightly annoying to use any GUI under qemu since they're using ps/2 mouse and it's got to be captured and generally it feels a bit off when moving it, so if you used virtio-tablet instead, you're onto a winner
does libinput hard depend on epoll et al
wayland can at least be vaguely patched
i guess
i mean if wayland was feasible to do, i'd provide epoll myself
and ofc i'd prefer it over x11
theoretically instead of reimplementing udev you can just patch libinput so that the "udev" backend is just the path backend that adds some hardcoded paths or whatever
but it's just all linux only stuff
Is Wayland the problem or wlroots
epoll <<< kqueue
wayland
wayland the C library is probably the issue
¯_(ツ)_/¯
and you need the c library for mesa (and accel more broadly) to work
so everyone uses it
i have no idea what the diff between the two is so idgaf
i only vaguely know what epoll is used for
well the difference is really big lmao
oh you mean between epoll and kqueue?
yea
kqueue lets you do more shit
and its a bsd api and not a linux api so its also saner
wayland the protocol does not depend on epoll
even though specific implementations may
the wayland protocol does not depend on any linux-isms
wayland = libwayland in this context
Better Wayland impl when
well yes
i'll do my own, lol
i have a pure rust impl which only incidentally depends on epoll (and my older impl didnt even require it iirc)
kqueue can be implemented in terms of epoll+timerfd+signalfd+eventfd+inotifyfd very well, and the converse is also true
modulo oddities which are mostly undesired like continuing to receive epoll notifications after closing an fd
i'm tempted to just implement the devd interface
I should try doing it
but why
just patch libinput so that "udev" really means "path backend with a bunch of hardcoded libinput_path_add_device calls"
until you get hotplug you can just hardcode the list of commands to execute into a file or something
which is what X does 
im pretty sure its not much harder
i could vibe code the libudev thing and just make it use my own interface
that's a bit easier than patching libinput
how
because there's probably multiple consumers of libudev
and there's a lot of places where libudev is used in libinput
marvin@aquaduct ~/r/libinput (main)> rg "udev_.*\(" | wc -l
406
here is a list: https://pkgs.alpinelinux.org/package/edge/main/x86_64/eudev-libs
comment it out 
Could you technically write a more portable libwayland and make the compositors more portable
that still doesn't address libinput
no
libwayland is technically doable
there is complete lockin
I know wlroots isnt
look
i have this https://github.com/marv7000/libudev-freestanding
you need agreement between mesa and libwayland
look at the headers
yeah that works too probably
there's not that many functions to implement
it would be easier to just port libwayland tbh
Is Mesa a linuxism?
I'd say you can avoid epoll and all that stuff and make that portable
no
mesa is accel
mesa is not a linuxism
but mesa needs to talk to libwayland so youd have to patch libwayland
and youd need to patch most things unless you are drop in at which point you are just reimplementing libwayland
Or write your own
yes
I literally asked if it was possible to write a portable libwayland reimpl
And you said no because of mesa
oh sorry i mean you cant have both at once
can't have what
both impls
can't have two libwaylands?
ye
That's not an issue
you can make a wayland stack that's based just on POSIX if you really want to
wayland is just yeeting messages over unix sockets + SCM_RIGHTS
and it can work with ordinary temp files for the buffers
with posix AIO 
yeah
and yeah you can its just not a good idea
memfd is a good api tho i dont have anything against it
epoll is kinda jank
but when i (or anyone else probably) am talking about running wayland that implies porting existing apps
i've looked this deep into the rabbit hole, and if i were to go through with it i'd be better off just contributing to managarm
for my goals with zinnia X is more than enough
well yeah basically you have chose between: "be compatible with another OS" or "patch existing software", there's not really a way around that
yeah
as i said before, once i can run and use a xfce desktop that's basically me done with this
it's just to learn the basics after all (and do the occasional meme like DRM)
Why not try to make a good thing
because managarm
managarm monopoly
?
managarm is a much more complete project
that's actually worth to put time into
my entire kernel is just hacked together with shortcuts left and right
How does that stop you from making your own project but good
well the thing is
in osdev there's never a "you're done now" stage
but i want to move on at some point, i want to feel "done" with something
without a definitive goal it's just always "ah i still need to implement x"
for example i wanted to write a wayland wm at some point
Yeah but you can always have some kind of long-standing goal without taking shortcuts
i guess
doesn't feel very satisfying tbh
there are just things about osdev i don't like to do (none in particular, sometimes it's just cancer to model in your head) and having other people working on a project to help with that is an awesome feeling
i can just focus on the parts that i enjoy
at least xfce is my long term goal
i'll probably end up coming back to it from time to time, once i have it all working right
join Zag 

it requires some dbus pain and gtk pain
or i'll start doing what monkuous is doing, just
spawn in random project
drop 2000 line patch
leave
hello.c compiled on zinnia!
(direct gcc invocation didn't really work yet for some reason)
bro doesnt know that puts already adds a new line
shush

go call fputs if you want to write \n smh
Or printf
imagine doing printf when fputs would do smh
that is how gcc works?
/usr/bin/cc1 is not a thing
it calls like 5 subprograms
not even on my linux
might be because you set it up wrong? idk
ok that wasnt very helpful tbh

/tmp/cc000000.o: file not recognized: file format not recognized
????????
?????????????????????????????????????????????????????????
why is clang doing execve("", ...)
clanger
Clang bug 

Bash ran without a real VFS clang should be able to survive without execve
bash is meant to run on everything
including your mom
so that's not surprising
including OSes without VFS
like Version 7 UNIX and DOS
John Zinnia - pictured above - created Zinnia in 1984
how did you compile it then?
^
i hard linked the cc1 to /usr/bin/cc1
ah
maybe some option in gcc source
the next two drivers I'd like to add are ps2 (via evdev) and virtio net
what about windows 😄
Do e1000 instead 
is it maybe doing fexecve / execveat?
just use -fintegrated-cc1
("Run cc1 in-process")
is that a runtime flag
i wonder why gcc thinks /usr/bin/cc1 is the right location
What syscalls does it do involving cc1?
I dont think thats the issue
i can check all the syscalls later
Maybe you are spuriously returning success on some syscall like access(/usr/bin/cc1, F_OK) or stat or whatever
dig maybe?
can nc do udp? i know socat cat
nc -u
can you show env
it's right in the pic bro
socket() sendto() recvfrom()
Or believe it or not, dhcp client 
why is this mf tryna do udp
bc easy
how about u make xorg work first
maybe setting PATH can help ?
it works
?
Zinnia vs fishix competing on the osdev speedrun
go implement evdev
yeah
and ps2
when xhci
chop chop
i get off work in 2h
i fixed it
just need to push
bruh
also X doesn't crash anymore
Glxgears when
good shout
python3 -c 
If you have it already, it's probably not a bad option to just write a 5 line script
one thing i don't know how to do solve yet is the network stack
sure i could write my own
stuff like routing, dhcp and the sort
yeah just hardcode an ip in the kernel instead
💀
when did i say that
Its quite fun
I don't know what I'm doing tho 
my logic has been
does it work?
- no: kernel is broken
- yes: must be correct then
consider lwip
it's that somewhat complete
ig what i mean is not the kernel side
but interacting with the user
like configuring routes and dhcp
no but this seems like something akin to uacpi
I ported dhcpcd, you get choice of several solutions that way
but that does netlink 
or smoltcp
Or a traditional BSD routing socket
Or solaris's interface
In principle it probably wouldn't be too hard to add your own if you wanted a NIH interface. But either a routing socket or netlink are reasonable I think
SIOCSIFADDR etc
Theres a route add ioctl as well
where is that from?
I dont have netlink or similar on astral
Some linux ioctls I think?
Im not sure if they wte linux only or are in other systems
SIOCSIF{ADDR,NETMASK,FLAGS}/SIOCADDRT and family come from early BSD
4.4BSD introduced the routing socket as the new interface
evtest on PS/2 keyboard with evdev interface :D
amazing
i think sockets are still a bit fucky
i also have no idea of knowing if xorg recognizes evdev inputs
i finally get to do the meme now
port mesa
Ah evdev
Nice
Oh yeah have you looked into doing it in userspace?
Like the nic driver only exposes a few ioctls and operations to read (receive) and write (send) but the processing is done in userspace?
kinda
i meant more configuring routes and stuff
Oh alright
idk i haven't looked into it at all, i just assume I'll have to implement something
i have mesa
i guess i'm doing wayland again
fuck it
we ball
i implemented epoll using some epoll example i found online
this is the code
wdym
If KDE works it works
i also have this

(using my libudev shim)
yes
But you added epoll
Oh ok
and kqueue + epoll shim is on bsd
but yes i will also implement some of the stupid linux *fd syscalls
whatever you need for wayland
this is what libwayland wants
some are cool tho
memfd is nice
timerfd too
hm
i would've liked to port riverwm but it's written in zig
:/
unfortunate
This was a talk I gave at the Software You Can Love 2022
conference. You can find the slides right here
(PDF).
Today I want to tell you a story about the time I ported the Zig compiler to
SerenityOS.
I’m going to tell you a bit about what my motivation was to do this. Then I’ll
explain the steps I took and the various challenges I faced (th...
urgh
that does not sound fun at all
I'd rather port rust
It's probably different now
fixed some ps2 weirdness that caused the input to go bonkers
so now i can actually click stuff
Have you done any real hw tests yet
not yet
iirc the nvme driver hangs because i don't actually wait for any commands to complete during setup
my laptop can do ps2 emulation so i might try that
Wait wdym
you're supposed to wait for a bit to let the controller reset
but i just go on with my day
Lol
QEMU doesn't emulate any delays
oh and i recompiled xorg here with epoll support btw
and i already see it using it
systemd when
i do need to figure out why weston doesn't like my socket
riveting
getting wayland on a posix (+ small extensions) system would be fucking cool
only requires a small amount of bullshit
at least it seems to not crash randomly
even after 4 hours of runtime
which is a new record
U had it running for 4 hours?
yeah at some point
forgot to exit qemu
and it was still pretty responsive
the most glaring issue in the entire kernel is that there's no unmap 
so no tlb shootdowns happening
or anything for that matter
Bed test
Why do you preallocate all GSIs?
These aren't gsis
Well all ioapic inputs
does it matter?
Well yeah you might run out of space quick if you set up msis for a few devices on top
Ideally u want per cpu interrupts also tho
gets further than managarm 
Lol
oh fuck oh fuck
infy
read the error message
do you know what this fuckass kernel just did
or tried doing
What
so safe to say nvme works 
but that's food enough for me tbh
way better than before
let's try my pc
Why does managarm die on it?
they do eager pci enumeration and apparently writing to the GOP while writing the gpus bar makes it stall
Hm
but i only lazily evaluate pci device bar sizes
oops
nvm it does actually boot
insane
now if only i had usb input
Cool
@ iretq 
i tried to use clanker to make a signalfd impl but it was horribly dogshit
ill just do it myself
💀
well nothing really needed it so far
fishix level
and tlb shootdowns are something I don't know how to solve correctly
i have an idt vector allocated for the shootdown ipi but it does nothing rn
yoink
ugh this is going to be horrible with rust types i think
slow tho
if you batch them its not that bad
afaik there's no major kernel actually doing asychronous shootdowns
yeah just have an atomic counter and spin until its == to ncpus
today = same day after sleeping
what what
just have an atomic counter that is incremented (or decremented) by every CPU and spin on it until its complete
oh you mean while waiting for the shootdowns to complete
that makes an insane amount of sense
i wonder if i can encode physical memory allocations in rusts type system
i.e. PhysFrames that are deallocates on drop
it's impressive how many things in zinnia just work without me trying
months ago you would have random shit happening like getting fpu gpfs because the kernel stack was too small and overwrote fpu state
year of the zinnia desktop is upon us
(unless i rewrite again)
in zig this time
iirc someone said that you write rust like c lol
I don't remember who
based
i.e. using traits instead of making vtable structs
zinnia starts with z
yeah I didn't mean that it's bad
z = zig
rinnia
cinnia
based
one really nice thing about rust over c is its strict typing
you can hardly misuse a public api
maybe this says more about me being a shit c developer than a rust developer
what c code I've seen from you looked clean
weston progress
we can talk to seatd!
now i just have to stub my libudev to return the drm device
more things happening
Where do u get these resolutions?
they're static data from EDID
Ah ok
Does Weston start now?

U enosys something looks like
ftruncate 
Yes, that's what I am doing with {phys,virt} {address,lvXBlockAddress}(Handle)
Including using closure with the physical structs that then temporarily map their page to access them from virtual memory
spectre/meltdown + hw that puts ram on the higher end of the address space
besides, my kernel doesnt really need to poke usermemory directly
weston-flower and weston-image with a random xfce image i found
my ptys are a bit broken so no terminal yet 
we dont talk about the broken font
why is it broken?
font config i assume
Managarm larp
?????
Hell yeah tho
😭
Weston = managarm
ofc
based
Based. When KDE
soon tm
inshallah xfce will run soon also
🙏
get KDE first, worry about input later 
i've been praying for times like these 🙏
no fastfetch logo?
@drowsy tendon is fixing that
@near tartan https://github.com/zinnia-os/zinnia/issues/42

how does it overflow
the calculation does
i dont do the division hack with the frequency that managarm does
fonts fixed
@hoary cave
what was the problem?
lol
thx
did you have to implemetn a bunch of linux stuff in the end or not
yes
congrats
epoll, signalfd, timerfd
and i had to stub libudev
but i think this udev will be very useful
you can essentially hard code uevents
you can poll on it and await a signal
idk what the point is
people online seem to be against it
get signal as an event instead of a violent nmi
ah that doesnt seem so bad
its pretty good
yeah i mean its eventfd + glue to set it from a signal
u implement this right? 
fair
i'm trying to get weston to boot with dinit so i can try booting on my laptop
Do u list one single res on real hw?
yes
real hw being plainfbdrm
it also doesn't advertise modesetting
works with Weston regardless
no i couldn't figure out how to get seatd running in dinit

banger
Linux larp or bsd larp, pick a struggle bro /j
say wallahi bro
correct
This message is a month old bruh 💀
fixed some long standing problematic issues





