<moon-child>
sortie: I scoff at the filthy unix peasantry
<sortie>
Join the Unix fifthist sect
<sortie>
mbsnrtowcs! wcsnrtombs! wcsxfrm_l!!
<sortie>
Become like the stars!
* kazinsal
begins to manifest signs of Berkeley Syndrome
<heat>
oh no, no comments D:
<sortie>
Description: This implementation is ''new curses'' (ncurses) and is the approved replacement for 4.4BSD classic curses, which has been discontinued.
<moon-child>
honestly the userspace stuff is fine. Just cruft
<moon-child>
and no worse than lptcstr
<moon-child>
I reserve my hatred for ioctl
<moon-child>
and mmap
<heat>
mmap is great lol
<heat>
brk is for nerds, mmap 4 lyfe
heat has quit [Remote host closed the connection]
<gog>
what if my design converges on on unix oh god oh fuck
<gog>
unix is the carcinification of hobbyist osdev
<gog>
become crab
<moon-child>
in hebrew, the words for crab and cancer are the same
<kazinsal>
it all returns to unix
<gog>
in icelandic cancer is "krabbameins" crab disease
<epony>
cursor and screen addressing libraries exist and get improved as long as there are such text mode / screen interfaces
<epony>
no such thing as 'discontinued' ever
zaquest has quit [Remote host closed the connection]
<epony>
moon-child, anti-UNIX sentiment is just commercial "rebranding" and "resale" of incomplete applications
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
zaquest has joined #osdev
scoobydoo has quit [Read error: Connection timed out]
scoobydoo has quit [Read error: Connection timed out]
scoobydoo has joined #osdev
rustyy has quit [Quit: leaving]
bradd has joined #osdev
ElectronApps has quit [Remote host closed the connection]
wleslie has joined #osdev
rustyy has joined #osdev
sonny has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
sonny has quit [Ping timeout: 256 seconds]
rustyy has quit [Ping timeout: 256 seconds]
sonny has joined #osdev
rustyy has joined #osdev
scoobydoo has quit [Read error: Connection timed out]
scoobydoo has joined #osdev
sonny has quit [Remote host closed the connection]
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
the_lanetly_052 has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 240 seconds]
ElectronApps has joined #osdev
GeDaMo has joined #osdev
<gog>
mewe
* moon-child
pets god
<zid>
matsuri is here!?
* gog
curls up in moon-child's lap
dennis95 has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
gog has quit [Ping timeout: 252 seconds]
the_lanetly_052 has quit [Ping timeout: 250 seconds]
<sham1>
I hope that curl was enabled with HTTPS
<zid>
finding curls built with the right options is annoying unless you do it yourself/gentoo
gog has joined #osdev
scoobydoo has quit [Ping timeout: 256 seconds]
sdfgsdfg has joined #osdev
<kazinsal>
it's four in the morning, I'm drunk, I'm on the internet, and I've realized that I really want to pet a penguin
scoobydoo has joined #osdev
<moon-child>
kazinsal: go to sleep
<moon-child>
also penguins are cute
<sham1>
They really are
ThinkT510 has quit [Quit: WeeChat 3.4]
Burgundy has joined #osdev
ThinkT510 has joined #osdev
netbsduser has quit [Quit: Leaving]
biblio has joined #osdev
gog has quit [Read error: Connection reset by peer]
terminalpusher has joined #osdev
gog has joined #osdev
Oli has joined #osdev
mctpyt has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
the_lanetly_052 has joined #osdev
<terminalpusher>
When I use `-hdd fat:rw:.`, how do I silence the `WARNING: Image format was not specified for [...] the 'raw' format explicitly to remove the restrictions.` warning? Where do I specify `format=raw` there?
<zid>
,format=raw?
<zid>
suboptions are comma delimted in qemu I know
<zid>
what the options are for hdd idk
<gog>
i do -drive file=blah.img,if=ide,format=raw
<zid>
I do.. -cdrom file=output/blahblah.iso :p
<zid>
like I have an ahci driver in order to give a shit about a hdd
<zid>
or a filesystem
<zid>
or a vfs
<zid>
or any programs to do useful work
<gog>
those things are totally unnecessary anyway
<zid>
agreed
<zid>
tbh my plan was just to give another grub module to act as a ramfs later, when I wanted to add vfs
<zid>
then splat it to a drive and get the same code working that way
<gog>
i'm supposed to be working on something or other rn but i'm gonna have coffee and shitpost instead
<zid>
nice
<terminalpusher>
none of those work for me
<zid>
deifne 'work'
<terminalpusher>
I don't seem to be able to specify a raw format for a fat HDD
<zid>
fat?
<terminalpusher>
`-hdd fat:rw:.`
<terminalpusher>
it doesn't accept suboptions
<zid>
-drive does, -hdd is just for specifying files directly
<zid>
if you want the drive to emulate special shit you need special commandses
<zid>
not sure what fat *and* raw is supposed to mean tbh
<terminalpusher>
yeah but -drive doesn't work for me
<zid>
did you.. give it decent suboptions?
xenos1984 has quit [Read error: Connection reset by peer]
<kazinsal>
the -hdX fat: stuff is a bodge that won't do what you want it to
<gog>
raw just means qemu accesses it as a raw disk image instead of a qcow or some other format
<zid>
`fat` doesn't appear in my manual
<zid>
fwiw
<terminalpusher>
I did `-drive file=dir,if=ide,format=raw`
<zid>
or format=
<gog>
the file has to be an image, not a directory
<gog>
afaik
<terminalpusher>
how do I pass a dir?
<zid>
and yes, files are files not dirs
<zid>
mount it loopback and raid it with a flat file ;)
<gog>
virtio maybe
<zid>
(I have done this lol)
<kazinsal>
zid: -hdX fat:/path/to/dir is a wonderful, horrible hack that presents a directory as a read-only device with a single FAT32 partition on it
<zid>
my firefox profile was slow off a hdd so I made it a software raid array between a ramfs and the directory
<zid>
with --write-mostly onto the ramfs
<kazinsal>
the reason it's so horrible is because writing to the directory on the host while it's "mounted" on a guest is undefined behaviour
<zid>
I seem to remember some thing for this, but it wasn't that
<zid>
it had some silly protocol like ata it used
<zid>
9p?
<kazinsal>
9p is a mega-protocol of sorts from plan 9 but that tracks
<bslsk05>
github.com: Onyx/vm.cpp at master · heatd/Onyx · GitHub
<heat>
in this case you just need to be clever with the nodes and try to check if the gaps between nodes are properly sized for your allocation
<heat>
doing lots of rb lookups all across a range of address space until you get something totally free is not ideal
<gog>
no my plan was to keep a pointer to the lowest free address and start checking from there
<gog>
if that address is free, check if that address + size is free
<gog>
that doesn't mean there's a gap tho
<gog>
hm
<gog>
because size could skip over something in between
<heat>
yes, the algorithm I described deals with that
<heat>
but you'll still need to find the next lowest address if you go with that route
<heat>
eventually you need something like the gap algorithm I described, because having the lowest free address always means you'll need to find the next free address
dude12312414 has joined #osdev
<gog>
i'm concerned i'm too stupid to understand this :|
<sham1>
Oh, you went with RB trees for the memory management
<sham1>
Neat
<gog>
haven't yet
<gog>
working on grasping how it works
<gog>
then i'm going to write the actual code
<heat>
gog, any question in particular?
<gog>
no, i think i'm just tired and need a break
<gog>
it's almost dinner time anyway
<heat>
ACK
<zid>
RB trees are hard to write and I still don't get how you're supposed to allocate it without an allocator :p
<heat>
zid, you can have an allocator, it just can't use the rb tree
<heat>
aka
<heat>
BRK TIME
<zid>
so I guess, a NODE POOL
<zid>
and do the 'swap to end' trick to delete
<heat>
brk or no deal
<zid>
I use it for mapping FDs to pointers a lot
<gog>
this is for vm space
<gog>
at the point in time this is being initialized everything the vm allocator needs is ready to go
heat has quit [Remote host closed the connection]
<zid>
right but it's a tree
<zid>
so nodes get added and removed all the time
<gog>
nevermind
<zid>
I guess you could loop it back into the real allocator once it's booted up though
<zid>
and it should be bootstrappable
<gog>
it is bootstrappable i already have it set up like that
<gog>
i sort of have a clue here
<zid>
sick
<zid>
I have absolutely no idea how you figure out how the tree should look while the tree is representing.. itself..
<zid>
so gj
<gog>
i have the nodes i know are going to be at fixed locations during runtime statically allocated
<zid>
will free work on them correctly, like that?
<gog>
it's not written yet, but the way i intend on it working that an attempt to free() any fixed memory location is a panic()
<zid>
like, to boostrap my bitmap I had to do the math to figure out that each page can represent 128MiB so I had to subtract that from my total memory, then steal that many pages, and create the bitmap so that that many bits were already unfree etc to bootstrap it
<zid>
bootstrap bootstrap
<zid>
harder when it's.. list nodes
<zid>
but probably doable once you write the code
<zid>
just make it represent blah, see how much memory it uses, add that to the base address you're wanting it to represent in the first place in the code as a magic constant
<gog>
well for physical page frames, if that's what you're talking about, the init code just has a basic bump allocator that'll steal pages from the memory map passed to the entry routine
<zid>
those pages aren't mapped? :)
<gog>
i use a trick to map them to a temporary virtual address
<gog>
it's kinda hacky
<zid>
ah if you're temp mapping then everything is free af yea
<gog>
so like the kernel space is 2GB, so before boot i make two PD's, insert them in the last two entries of the higher PD
<gog>
the temp space is the third to last
<gog>
and i just map the whole 2MB that a 4KiB page lives in and find the offset
<zid>
oh I have 128TB of kernel space so I tend to just.. map everything
<gog>
idk what it is about my psychology but i just don't want things mapped that don't need to be mapped
<j`ey>
gog: thats normal
<gog>
even if there is virtually unlimited address space
<zid>
hey if it makes free/malloc faster, I'll do it np
<j`ey>
although, linux maps the entirety of memory heh
<zid>
I do for the sole reason of writing 0s to my freelist
<gog>
whatever linux does i want to do the opposite so maybe i shouldn't keep track of my allocated vm regions with an rb tree :p
<gog>
i guess by not having a working kernel i'm doing exactly the opposite of linux
<gog>
good job me
<j`ey>
lol
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 252 seconds]
blockhead has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
sdfgsdfg has joined #osdev
<gog>
ok in struct rb_itor
<gog>
err rb_node
<gog>
you have key and datum
<gog>
@heat
<gog>
for its use in your vm allocator, is that roughly equivalent to base and length or am i misreading?
<Ermine>
Happy new year!
<sham1>
It's gonna be so weird to have to start saying 2022
<bslsk05>
'Taylor Swift - 22 (Taylor's Version) (Lyric Video)' by TaylorSwiftVEVO (00:03:51)
Burgundy has quit [*.net *.split]
blockhead has quit [*.net *.split]
the_lanetly_052_ has quit [*.net *.split]
dennis95 has quit [*.net *.split]
bauen1 has quit [*.net *.split]
jjuran has quit [*.net *.split]
x88x88x has quit [*.net *.split]
zid has quit [*.net *.split]
Terlisimo has quit [*.net *.split]
skipwich has quit [*.net *.split]
wgrant has quit [*.net *.split]
Piraty has quit [*.net *.split]
simpl_e has quit [*.net *.split]
doppler has quit [*.net *.split]
shan has quit [*.net *.split]
basil has quit [*.net *.split]
ZipCPU has quit [*.net *.split]
kernelspace has quit [*.net *.split]
Mikaku has quit [*.net *.split]
Ameisen has quit [*.net *.split]
kaichiuchu has quit [*.net *.split]
<geist>
eep, netsplits ville
zid has joined #osdev
<zid>
beeg split
<geist>
eep
<geist>
well looks like only about 20 of you left my side of the shard at least
<geist>
so probably just one server
<zid>
I should register zid`
<geist>
but that woulda been big for you
<zid>
when I reconnect I never log in and can't join channels
bas1l is now known as basil
zid is now known as zid`
zid` is now known as zid
<zid>
okay that was fairly easy
<zid>
just /nick to it and /msg nickserv group
jjuran has joined #osdev
kaichiuchu has joined #osdev
Burgundy has joined #osdev
x88x88x has joined #osdev
blockhead has joined #osdev
Piraty has joined #osdev
skipwich has joined #osdev
simpl_e has joined #osdev
kernelspace has joined #osdev
shan has joined #osdev
Ameisen has joined #osdev
ZipCPU has joined #osdev
Mikaku has joined #osdev
<geist>
yah dunno when nickserv added the group thing but it's nice
<geist>
may have picked that up with the new network
<zid>
freenode had it fairly sure
<gog>
it did
<blockhead>
the group thing?
<gog>
you can group your nick with another
simpl_e has quit [Remote host closed the connection]
<blockhead>
interesting. i didn't know that. ty.
wgrant has joined #osdev
<geist>
yah i think on freenode i had just separately registered them, but then i had done it like 15 years prior, so if the feature was added later i wouldn't have seen it i guess
gog has quit []
gog has joined #osdev
scoobydoo has quit [Read error: Connection timed out]
scoobydoo has joined #osdev
sdfgsdfg has joined #osdev
immibis has quit [Read error: Connection reset by peer]