klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
galambo has quit [Quit: Leaving]
gog has quit [Ping timeout: 258 seconds]
Turn_Left has quit [Read error: Connection reset by peer]
arminweigl has quit [Ping timeout: 272 seconds]
arminweigl has joined #osdev
voidah has quit [Remote host closed the connection]
vdamewood has quit [Quit: Life beckons]
arminweigl has quit [Ping timeout: 244 seconds]
edr has quit [Quit: Leaving]
Dead_Bush_Sanpai has quit [Read error: Connection reset by peer]
Dead_Bush_Sanpai has joined #osdev
galambo has joined #osdev
arminweigl has joined #osdev
galambo has quit [Ping timeout: 276 seconds]
arminweigl has quit [Ping timeout: 252 seconds]
galambo has joined #osdev
arminweigl_ has joined #osdev
arminweigl_ is now known as arminweigl
arminweigl has quit [Ping timeout: 248 seconds]
arminweigl_ has joined #osdev
arminweigl_ is now known as arminweigl
voidah has joined #osdev
mubluekoor has quit [Remote host closed the connection]
vdamewood has joined #osdev
galambo has quit [Read error: Connection reset by peer]
galambo has joined #osdev
galambo has quit [Read error: Connection reset by peer]
galambo has joined #osdev
galambo has quit [Read error: Connection reset by peer]
galambo has joined #osdev
mubluekoor has joined #osdev
galambo2 has joined #osdev
galambo has quit [Ping timeout: 276 seconds]
Matt|home has quit [Quit: Science is how we better ourselves.]
owenw has joined #osdev
<owenw> just implemented my kernel panic system, feeling kinda good now, I might start to get my own GDT setup soon, its meant to be a RING 0 OS tho, you can access the hardware but you can also use the system API lol
masoudd has joined #osdev
<owenw> hi
<owenw> you still here?
owenw has left #osdev [Leaving]
Arthuria has quit [Ping timeout: 276 seconds]
osdev199 has joined #osdev
owenw has joined #osdev
owenw has left #osdev [Leaving]
Dead_Bush_Sanpai has quit [Read error: Connection reset by peer]
Dead_Bush_Sanpai has joined #osdev
owenw has joined #osdev
owenw has left #osdev [Leaving]
osdev199 has quit [Remote host closed the connection]
agent314 has joined #osdev
goliath has joined #osdev
terrorjack4 has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack4 has joined #osdev
the_oz has quit [Quit: Leaving]
agent314 has quit [Ping timeout: 272 seconds]
galambo3 has joined #osdev
galambo2 has quit [Ping timeout: 260 seconds]
galambo2 has joined #osdev
galambo3 has quit [Ping timeout: 252 seconds]
netbsduser has joined #osdev
galambo has joined #osdev
galambo2 has quit [Ping timeout: 245 seconds]
galambo has quit [Read error: Connection reset by peer]
TkTech3 has joined #osdev
TkTech has quit [Ping timeout: 252 seconds]
TkTech3 is now known as TkTech
gog has joined #osdev
wgrant has quit [Quit: WeeChat 3.5]
wgrant has joined #osdev
wgrant has quit [Client Quit]
wgrant has joined #osdev
GeDaMo has joined #osdev
Left_Turn has joined #osdev
wgrant has quit [Quit: WeeChat 3.5]
wgrant has joined #osdev
wgrant has quit [Client Quit]
wgrant has joined #osdev
gog has quit [Quit: byee]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 248 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<bslsk05> ​www.reddit.com <no title>
<Mondenkind> this has to be a troll right
<kazinsal> it's reddit. without clicking on the link, it's either a troll, a barely functional, or a psychotic
<kazinsal> possibly a combination of all of them
<nikolar> accurate assesment
<GeDaMo> I like "also what is userspaces???!!!" :P
<nikolar> what even is cosmos
<Mondenkind> i mostly like the part where they tell somebody they don't know what they're talking about _and then_ follow it up with a question
<GeDaMo> It's some C# thing, I think
<nikolar> > Cosmos (C# Open Source Managed Operating System) is an operating system development kit which uses Visual Studio as its development environment.
<nikolar> yeah sounded familiar
<GeDaMo> Somebody in here was talking about it
<nikolar> yeah
<Mondenkind> where is gog
<Mondenkind> i want gog
<Mondenkind> goooooog
<nikolar> Mondenkind: :(
<mjg> well i read that OP
<mjg> it's blatant bait
<mjg> hi guys programming is so easy, i literally copied some shit and had a program ready in 5 minutes LOL
<mjg> btw what's a difference between garbage collector and a printf statement
Mireole has joined #osdev
Mireole has quit [Client Quit]
<Ermine> hi guyz webdev is so easy, i literally installed react and had a site ready in 5 minutes
<Ermine> wait
<Ermine> well, it's a troll obv
<GeDaMo> "Do you really wean to know or are you just asking random questions?"
<GeDaMo> "What's a hypotenuse?" :P
<Ermine> > well of course i just install the python interpreter into the cpu
<bslsk05> ​www.reddit.com <no title>
Mireole has joined #osdev
spare has joined #osdev
netbsduser has quit [Ping timeout: 252 seconds]
netbsduser has joined #osdev
TkTech has quit [Quit: Ping timeout (120 seconds)]
TkTech has joined #osdev
krychu has joined #osdev
krychu has quit [Remote host closed the connection]
m3a has quit [Ping timeout: 248 seconds]
m3a has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 248 seconds]
wgrant has quit [Quit: WeeChat 3.5]
wgrant has joined #osdev
wgrant has quit [Client Quit]
wgrant has joined #osdev
d5k has joined #osdev
spare has quit [Ping timeout: 248 seconds]
krychu has joined #osdev
obrien has joined #osdev
edr has joined #osdev
JupiterBig has joined #osdev
d5k has quit [Remote host closed the connection]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 244 seconds]
galambo has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<netbsduser> osdev is when you print in vga text mode
<netbsduser> and the more text you print, the more os is the dev
<nikolar> obviously
<goliath> *ObviOS
<nikolar> kek
<heat> idk dude is the vga text mode code in rust?
<heat> booted with limine
<heat> what's a page table? don't know don't care
<nikolar> you forgot c# cosmos
<heat> no sir i don't see sharp i wear glasses
<kof673> cockatrice by fountain </nethack>
<kof673> *sink
<Ermine> heat: banger
<nikolar> beat: hanger
<heat> heat: linux kernal
FreeFull has quit [Quit: Will never quit for good]
the_oz has joined #osdev
<netbsduser> i have been thinking for a long time about carrying out an experiment/shitpost similar to when i ported systemd to openbsd
<netbsduser> the goal would be to cook up the most ridiculously buzzword-laden os concept, half-bake an implementation of it until i get bored, then post it with loud fanfare to hacker news, reddit, etc
<heat> systemdOS
<heat> you're welcome
<heat> systemDOS hmmm
JupiterBig has quit [Ping timeout: 265 seconds]
<netbsduser> i think a line about the OS being "inspired by the principles of systemd" would be useful in terms of trolling value
<nikolar> netbsduser: llm, web3, crypto, ai
<nikolar> what else
<GeDaMo> Nowadays, it would need to have LLMs :|
<netbsduser> yes, i've accepted that i have no choice but to at least get some LLM running on it, so a certain level of functionality is necessary
<nikolar> i mean that's what all the big guys are doing, right GeDaMo
<netbsduser> i don't do half hearted shitposts
<Ermine> initware initware initware
Starfoxxes has joined #osdev
<netbsduser> this has to be a bad idea but it has to at least be a semi-operational bad idea
<GeDaMo> Encrypted syscalls
JupiterBig has joined #osdev
<nikolar> how would those work GeDaMo
hwpplayer1 has joined #osdev
<GeDaMo> Encrypt all data before jumping to the kernel, can't take chances with security :P
<nikolar> kek
<nikolar> should the libc do that
<netbsduser> as a nod to the unikernel fad i would be proposing not having a traditional distinction between user and kernel land, rather instead something more like netware's protection domains
<GeDaMo> Maybe every process should be its own virtual machine for better separation
<nikolar> GeDaMo: that already exists though :/
<GeDaMo> :|
<nikolar> GeDaMo: https://www.qubes-os.org/
<bslsk05> ​www.qubes-os.org: Qubes OS: A reasonably secure operating system | Qubes OS
JupiterBig has quit [Quit: Lost terminal]
voidah has quit [Ping timeout: 260 seconds]
<kof673> blockchain
<nikolar> That's the one
<heat> i think i need TYPESAFE_BY_RCU
<heat> darn
<heat> by extension i might also implement fucking ctors
<mjg> lol
<mjg> should you do that, do you intend to linux it and not have dtors?
<the_oz> bonzibuddy 2.0
<heat> yes i do intend to linux it i see little purpose in dtors or ctors even
<mjg> :-D
<heat> i read around a bit and ctors seem to be useful only in TYPESAFE_BY_RCU
<heat> now, with an expanded ctor API, something like an iterative ctor or a ctor_begin/ctor_end, that's different
<heat> that might be useful
<mjg> wut
<mjg> wat
<Ermine> why do you need that TYPESAFE_BY_RCU?
<mjg> wet
<mjg> what you want is a ctor which accepts a batch of objs
<heat> yes that's what i said
<mjg> and dtor to match
<mjg> oh that's wyou meant by 'iterative'?
<heat> yes
<mjg> aight
<heat> Ermine, grabbing an object that might be long dead and rechecking under a lock
<heat> basically need the type to remain stable
<mjg> thta's old unix stuff tho
<mjg> 's all i'm saying
<heat> well in this case it's anon_vma
<heat> there's no better replacement here, rcu freeing is too hardcore for this
<mjg> very unix of you
<heat> basically the problem is in page reclaim you might be looking at an anon_vma that might be long dead
<heat> and you need to unfuck yourself out of there
<mjg> how can you end up in a state like that tho
<mjg> should not anon_vma be unlinked to fuck before that happens
<heat> unmap does not take the page lock
<heat> oh you might be missing some context here
<heat> anon_vma is the anon page counterpart of the file mmap interval tree
<heat> it hangs directly off of struct page
<mjg> i got a regrettable idea which i may end up pursuing
<mjg> so i'm not commenting further
<heat> what is it
<mjg> focusing on that instead :s
<mjg> performance primer with multicore focus
<mjg> 's gonna be a lot of shitting on geezers and webdevs there
<mjg> if i write it
<heat> lol
<heat> perfbook but in mjgspeak
<mjg> no
<mjg> perfbook goes into more detail that i intend to, also does not cover the stuff i want to write about
<mjg> and definitely neglects to shit on people who spew bs about the area
<mjg> now writing shit like this a lot of time, so can write it piecemeal
<mjg> instead of ranting on irc
JupiterBig has joined #osdev
mubluekoor has quit [Ping timeout: 276 seconds]
mubluekoor has joined #osdev
goliath has quit [Quit: SIGSEGV]
terrorjack4 has quit [Quit: The Lounge - https://thelounge.chat]
FreeFull has joined #osdev
<mjg> fucking great, one day after i bought a fragrance there is free shipping
* mjg is never going to buy anything again
terrorjack4 has joined #osdev
Arthuria has joined #osdev
chiselfuse has quit [Ping timeout: 260 seconds]
chiselfuse has joined #osdev
goliath has joined #osdev
gorgonical has joined #osdev
<gorgonical> Why does getting a visa take so long
robert_ has joined #osdev
<hwpplayer1> What makes UNIX different from NT ?
<hwpplayer1> I started searching this question
<hwpplayer1> Just wanted you to know ...
<zid> everything?
<hwpplayer1> to me ?
<zid> gorgonical: All the murders you did in the 80s.
<gorgonical> I don't know much about the architecture of NT other than what you can glean from 101-level textbooks, but generally this kind of design information is not presented in a clean way
<hwpplayer1> I belive in fuzzy logic
<gorgonical> zid: damn those time cops catching me out on murders I did before I existed
<hwpplayer1> So I can take some ideas from micro kernel, monolithic kernel and other OSes like NT and others
<gorgonical> I have an unrelated problem: I'm gonna need to ship my electronics across the pond which is neither easy nor particularly safe. I'm thinking about how to pack the desktop to make it safest. I was thinking maybe getting a good foam and... carving it? To fill the insides of the case to prevent motion inside, and then of course good packing inside a larger box
<ZipCPU> Why not use some of that insulation foam you can get at the HW store? It's spray on, and automatically expands to fill the space given.
<gorgonical> I thought about that but seems to me it would be a pain to lay down like a plastic sheet to separate the foam from the components
<gorgonical> It's not a bad idea though
<ZipCPU> You mean, a pain to place things into a garbage bag?
<ZipCPU> Sorry, a "flexible dielectric material"?
<gorgonical> Oh I see. Yeah of course if I disassemble everything that would be very straightforward
<gorgonical> Could do that
<gorgonical> Hmm. I wonder if even I could take the whole motherboard with everything mounted out, place that into a garbage bad and foam-seal the whole thing like that.
<ZipCPU> Why not just screw the mother board down securely, and foam pack the case?
<gorgonical> Like outside the case?
<ZipCPU> Exactly
<gorgonical> Sure but what happens if someone drops the box from waist height? Won't the jolt still damage something like the PCIe connector at the GPU? Maybe not with the case screws, but the CPU cooler could for sure snap off
<ZipCPU> Yeah, I could see that ...
<zid> always remove gpu
<zid> it has a lot of inertia
<zid> gpus biger than ps2s these days >_<
<gorgonical> Yeah I think I might have to remove both the GPU and the cooler. The rest would be fine
<zid> if it's the quad-bolt mount style then cooler would *probably* be fine, it's just a question of how much you wanna risk it
<gorgonical> If the GPU is out of the way it would be a lot easier to jam foam blocks into the rest of the case to stabilize it, too
<gorgonical> Or even, I could spray that expanding foam *into* a garbage bag
memset has quit [Remote host closed the connection]
memset has joined #osdev
xenos1984 has quit [Ping timeout: 258 seconds]
xenos1984 has joined #osdev
<heat> hwpplayer1, UNIX is just completely different from NT in many aspects
<heat> API wise
<heat> it's hard to say how it's different, it just is
<sortie> UNIX is int NT is DWORD
<heat> wrong
<heat> NT is INT
<zid> sortie: LPDWORD
<zid> *watches sortie melt like a witch*
<sortie> zid: *mbsrtowcs*
* zid turns to ash
owenw has joined #osdev
<nikolar> :|
owenw has quit [Read error: Connection reset by peer]
<heat> nikolar: systemd
* nikolar wanishes
* nikolar vanishes
* sortie danishes
JupiterBig has quit [Quit: Lost terminal]
netbsduser has quit [Remote host closed the connection]
netbsduser has joined #osdev
xenos1984 has quit [Ping timeout: 260 seconds]
<netbsduser> hwpplayer1: they are more similar than different
<heat> (X) doubt
<zid> If "made of bytes and runs compooter" makes them similar, sure
<zid> otherwise, no
<heat> at a macro level maybe, but e.g HANDLEs aren't files
<nikolar> zid: indeed
<heat> CreateFile != open
<nikolar> and memory mapping is weird in nt
<zid> it handles literally everything in a different manner
<netbsduser> nt handles can be to both file objects and to some other things, much like most unixes
<heat> ok stat a handle
<zid> Not only is the interface different, the WAY you interface is different too, through a userspace KAL
<netbsduser> if you are interacting with a device or a file it's through a handle to a file object
<zid> It's still however, a program
<zid> so you're going to get things like handles, es
<netbsduser> if you mean the protected subsystems that's an idea from unixland
<netbsduser> they stole it from mach which was contemporaneously adding e.g. a DOS subsystem to complement the dominant BSD subsystem
<heat> mach is not unixland
<nikolar> also the way you interact with the kernel is through the nt32dll.dll
<netbsduser> let the authors of it know then heat
<nikolar> and you don't do syscalls at all
<netbsduser> they even introduced it in a paper called "Mach: A New Kernel Foundation for UNIX"
remexre has joined #osdev
<netbsduser> the mach port might be the fundamental element of mach and they credit the concept to unix pipes in that paper
<zid> nikolar: Yea I can't think of a way to make it much more different
<zid> either in style, or interface
<heat> they can call it whatever they want
<netbsduser> nikolar: like on openbsd then, you are banned from system calls - only libc can do that
<heat> it's not a UNIX
<zid> like, even the way the interface is *described* is different, error handling is different, etc
<heat> they wanted to be the unix kernel but lol look at how that turned out
<zid> I can't think of a single thing where you go "ah, yea, that's identical"
<nikolar> netbsduser: sure, except that you're actually going through the libc, ie normal c stuff
<nikolar> on windows you're going through the winapi which is completely different
<nikolar> zid: exactly
<heat> it's just a weird microkernel for weird microkernel people, with a weird API
<nikolar> maybe some more recent things where there are more similarities zid
<netbsduser> heat: it's a direct derivative, they refitted 4.3bsd, it only became a microkernel extremely late (early 90s) after years of being a refactored BSD
<heat> futexes lol
<netbsduser> nikolar: you are going through a library of code that calls a DLL that makes the syscalls
<nikolar> heat: lol i knew there was something
<zid> "syscall to sys_open with int, char *, etc" vs "userspace call to a dynamic library with a HANDLE and a LPSTR"
<netbsduser> exactly like your favourite web server (apache) does on openbsd
<nikolar> netbsduser: except that one is doing standard c stuff, the other is doing their own completely different api
<zid> quick, name a way you could make those two things *further* apart
<nikolar> zid: but openbsd
<heat> windows, like other good systems, just copies linux now
<zid> even the way the names are written be different, OpenFile
<heat> we're a few years away from windows procfs
<netbsduser> zid: well that's exactly what you do even on gnu/linux
<zid> no, no it is not
<netbsduser> if you are not writing a program in C using traditional posix APIs you are
<zid> you use python on both and the OS is irrelevent then
<zid> and every OS is the same
<nikolar> zid: mostly
<netbsduser> i don't know a great deal about win32 because i don't run windows and i don't have any interest in that side of it whatsoever
<netbsduser> i can only assume the win32 HANDLE is, like the NT native handle, directly equivalent to a unix file descriptor number
<nikolar> it's not
<zid> No
<heat> fstat a HANDLE
<netbsduser> now there are obvious and distinct differences between NT and unix
<heat> it is vaguely an analog but completely different because e.g not every HANDLE can be read and written to
<heat> like a kernel mutex is also a HANDLE
<heat> whereas POSIX mutexes are generally not fds
<netbsduser> the kernels are implemented differently (what a surprise) and there's an async io interface since day 1
<netbsduser> heat: but this is a total nitpick
<netbsduser> it could as easily have been the case in unixes that mutexes would be FDs you couldn't read/write
<nikolar> is it though
<heat> it's not a nitpick, it's a major design difference
<netbsduser> it is trifling
<nikolar> you interact with them completely differently in everything you do
<nikolar> ignoring things nt stole from linux
<heat> in UNIX fds are generally operated with read/write, and maybe ioctl
<nikolar> ^
<netbsduser> you can make this happen on your favourite unix by doing little more than defining a new struct fileops
<nikolar> like when heat, zid and i all agree, it must mean something :P
<netbsduser> heat: and on windows you read, write, and ioctl too, both for devices and files
<heat> you don't have an NtLockMutex(HANDLE hMutex), you have a select call that takes fds
<netbsduser> try telling that to an old VMS had
<netbsduser> he would be shook
Dead_Bush_Sanpa1 has joined #osdev
Dead_Bush_Sanpai has quit [Ping timeout: 258 seconds]
Dead_Bush_Sanpa1 is now known as Dead_Bush_Sanpai
<heat> >both for devices and files
<netbsduser> when he heard that NT had byte based I/O instead of record-based he would denounce it as unix trash
<heat> but not for EVERY OTHER HANDLE TYPE
<nikolar> kek
xenos1984 has joined #osdev
randm has quit [Remote host closed the connection]
<nikolar> except that nt is neither vms nor unix in basically any way
<netbsduser> will you read and write and ioctl your epoll fd then?
randm has joined #osdev
<netbsduser> nikolar: i am convinced that statement can only be made from a position of total lack of perspective
<nikolar> lol sure
<netbsduser> nt and unix appear virtually indistinguishable to a programmer when compared with VMS, or OS/400, or symbolics genera
<nikolar> do they really though
<netbsduser> if NT appears very un-unix then it can do so only from the perspective of someone who only knows unix, and only very particular unixen at that
<heat> you do not read or write or ioctl your epollfd and this can be stated to be tech debt from the UNIX design perspective
<heat> just as e.g futexes not having handles and not being select()'d can also be seen as that
<nikolar> i am not saying that there aren't weirder things than nt relative to unix
<nikolar> i am just saying that even if there are weirder things, that doesn't make nt less weird
<nikolar> it's still far from a unix
<heat> the pure unix design as intended back in the day tends to be byte-wise IO using read/write in plain text
gog has joined #osdev
<netbsduser> that approach was forked into plan 9
<heat> yeah plan 9 is in many aspects more UNIX than current UNIX
<netbsduser> this is probably against the law to say but i prefer actually existing unix
<heat> me too
<nikolar> i don't think there are any laws against that
<netbsduser> and the changes in capsicum i prefer even more
<heat> the unix philosophy is completely garbo
<nikolar> also a lot of plan9 ideas did get into modern unices
<netbsduser> processes not being represented by FDs strikes me as a mistake
<heat> thinking it's the bees knees is like the americans reading the constitution and thinking OH SHIT THIS HAS TO BE PRESERVED FOREVER AND EVER
<heat> even though it was written 250 years ago
<heat> we dont use bayonets anymore and i don't own a PDP11
<heat> netbsduser, pidfd my dude
<heat> unix is back baby!
<heat> thanks to... systemd?
<netbsduser> for me, if there is a rational core underneath the mystic shell of the unix philosophy, it is the file descriptor, and not the text file
<netbsduser> heat: they might have stolen the idea for pidfds from freebsd's procdescs but i think it was original
<heat> i'm sure the original unix authors never thought a UNIX descendent would have 350 system calls
<mjg> a process fd is very much a unix idea
<netbsduser> there are some concepts that you can only see their origins in hindsight
<netbsduser> even the traditional unix philosophy was like that
<netbsduser> ritchie and thompson certainly didn't have any grand ideology
<heat> i follow the sun philosophy
<mjg> you don't
<heat> mutex_enter and mutex_exit are all i need
<raggi> one of the most defining factors of unix for me is fork, which nt doesn't have
<mjg> while sun internals are shite, the user-presentable state makes sense
<netbsduser> raggi: it does
<heat> woah devpoll fan!
<mjg> raggi: who thinks fork was not a mistake tho :p
<netbsduser> they had fork for the benefit of the posix subsystem and then it was revived for wsl1
<heat> maybe unix was a mistake after all
<mjg> if we could restart IT indeed would be better without unix
<mjg> and *definitely* without microsoft assspawn
<mjg> unix is a funky project which got out of hand
<mjg> majority of windows is braindamage intentionally inflicted on the outsiders
<raggi> netbsduser: citation needed
<netbsduser> for better or for worse, as ex sun engineer keith wesolowski said in his public resignation, unix and unix-likes are actually what people turned with much pain into modern systems
aethlas has joined #osdev
<netbsduser> raggi: citation NOT needed because it's extremely well known, but here is microsoft's very own book windows internals on it:
<raggi> mjg: mistake or not, it's still a deeply intertwined behavior with most of the userspace design choices
<mjg> raggi: this is a middle age man yelling at cloud kind of remark
<netbsduser> "NtCreateProcess [...] also supports cloning an address space from another process. This capability was useful at the time to implement the POSIX fork system call. It may also be leveraged in the future to support other Unix-style fork (this is how fork is implemented in Windows Subsystem for Linux in Redstone 1)."
<heat> open returning the lowest fd available was an avoidable mistake
<heat> but the oldies didn't know about SMP :(
<netbsduser> they expected a forked process per connection
<mjg> the fd thing is a great example of an avoidable property coming back to bite
<mjg> i strongly *suspect* it was only added to faclitate people populating 0-2 fds
<mjg> and people perhaps even thought this is elegant
<netbsduser> i don't know if there was that much thought to it
<mjg> well you had to pop 0-2 a lot
<mjg> so this had to come up
<mjg> as in originally it was probably the lowest fd cause that's most feasible to code up
<mjg> but the people started depending on it for fork+exec and it was codified
<heat> mjg, ok here's a real q though: given that "lowest numbered fd" is not really well defined when threads are around, how about switching to batched fd allocation when threads are involved, and going back to lowest when nr_threads = 1?
<heat> it seems like playing with fire but maybe it's fine?
<mjg> but how you know the other threads are allocating anything
obrien has quit [Remote host closed the connection]
randm has quit [Remote host closed the connection]
<mjg> i spawned 420 threads, 419 of which sleep
randm has joined #osdev
<mjg> and one opens 3 fds in a row
<mjg> if you fuck with stuff as described the result is now different
<netbsduser> this is where things fall apart, there is no good way to make it optionally the case that this doesn't happen anymore
<mjg> there is a trivial to do it
<heat> i mean yes but, you know
<mjg> add a flag like O_ANYFD
* Ermine NtFork()s
<mjg> then the caller can waives the requirement
<heat> people that do multithreaded generally dont depend on lowest fd
<mjg> it's a matter of a lot of coding
<netbsduser> if linux does that then freebsd will find another way, and vice versa
<mjg> that's true, but it's not something you can just whack
<mjg> cause a lol lib you are linked to just might depend on it
<Ermine> > 420 threads
<mjg> exept
<mjg> 20:09 < mjg> add a flag like O_ANYFD
<mjg> and there you go
<netbsduser> and i also wonder whether it's not going to be more annoying to code that, where any open might either demand traditional or relaxed semantics, as opposed to a prctl
<heat> i have mixed feelings about O_ANYFD
<mjg> it's very mid difficulty to implement and very easy to use
<heat> the ideal would be O_LOWEST for the exact fds that need it but... too late
<mjg> and fully awkward compatible
<mjg> heat: "too late for that" is the name of the game in computing
<mjg> O_CLOEXEC is also backwards innit
<heat> meh
<netbsduser> assigning specific FDs is rare so i see no reason to retain O_LOWEST at all
<netbsduser> just let people dup2 around if they must
<heat> keeping an fd on exec is classik unix ideas
<mjg> you misspelled classikkK
<heat> 3 k's? hmmm....
<Ermine> > maybe unix was a mistake after all
<mjg> make it 4
<the_oz> typewriters were a MISTAKE
<zid> typewriters were a mistake, but the scelectric is very cool :(
<the_oz> even now it has infected zid
<zid> selectric*
<zid> I want a TYPE BALL
<nikolar> i want a type ball too
<Ermine> --- you don't say?
<the_oz> I was thinking about trying this out: https://youtu.be/q4OEKKMPH48
<the_oz> But I dunno, we'll see
<heat> hmmm... lets say that my allocator forms a linked list with freed objects... whats the most compact+fast way of detecting a double free?
<heat> i'm doing struct {void *ptr; u16 flags;} and filling flags with a known bad pattern but i'm wasting 8 bytes
<heat> hmm i guess my idea is still false-positive-prone :/
<mjg> just rewrite onyx in rust
<mjg> no need to thank me
<mjg> Ermine: top commit to Onyx is mne btw
<Ermine> mjg: I'm still above you in contributors list
<mjg> how many
<mjg> besides it's not a contest!
<Ermine> lel
<heat> send patchen mofers
<Ermine> bad internet here sorry mon
<heat> email patchen mofer
<geist> hi mofers
<mjg> i did git send-email ; rm *
<mjg> i guess the send did not work out and the patchen are lost
<mjg> cba to recreate, sorry heat
<heat> git format-patchen
<heat> git send-email --cc=mjguzik@gmail.com
<nikolar> hello geist
<heat> hello ghost
<geist> boo mofers
masoudd has quit [Ping timeout: 260 seconds]
<mjg> you ok geist
<geist> well it is a monday morning
<mjg> you are not acting like yuorself
* geist rages against solaris
<mjg> next thing you are gonna do is write something negative about soalris
<mjg> aha
<mjg> geist got replaced by llm, except data was mislabeled
<geist> you were too slow, like solaris
<mjg> they used me
<nikolar> lol
<Ermine> you don't need format-patchen if you're doing send-emailen
<heat> i prefer to format-patchen so i can manually editen the emailen and cover letteren
<heat> i used b4 for my last patch set and it seems to be easier to work with
<Ermine> --annotate
<Mondenkind> heat: 'detecting double free' bitmap?
<Mondenkind> also it's fine to have false positives; on positive you were going to die anyway, so go to a slow path where you walk the linked list
<heat> that's an idea but it needs a lock or operation
Mireole has quit [Quit: Konversation terminated!]
<heat> 'lock or' i mean
<heat> hmm, now that is an idea
<Mondenkind> not if your crap is thread local...
<heat> what crap?
<Mondenkind> your allocations
<heat> slabs aren't cpu-local, and even if they were (e.g in SLUB), remote frees are a thing
randm has quit [Remote host closed the connection]
owenw has joined #osdev
<Mondenkind> remote free can go through a different path
randm has joined #osdev
owenw has quit [Remote host closed the connection]
<mjg> what about triple free
<mjg> Mondenkind: your vague suggestions are not helping anybody
<heat> i like the slow path suggestion
<mjg> > slow
<mjg> why do you have a slow path
<heat> also is that an openbsd mailing list reference lol
<Mondenkind> mjg: i don't know the details of heat's allocator. you can do this cheaply with core-owned slab+bitmap and message passing for inter-core frees
<mjg> heat: yes, theo to me
<mjg> Mondenkind: i thnk you might have not read the tread i linked you mon
<mjg> how could you, given that it's openbsd
<heat> yeha that's either an epicc funny reference or rude comment
<heat> risky
<mjg> :o
<bslsk05> ​marc.info: 'Re: fstat sysctl crashes kernel' - MARC
<mjg> shiet i misremembered the exact sentence
<Mondenkind> weh
<Mondenkind> i skimmed a bit and then got bored :s
<heat> jeff xu vs theo deraadt
<heat> make it happen
hwpplayer1 has quit [Ping timeout: 260 seconds]
<Mondenkind> waiii
<Mondenkind> mjg x theoderaadt enemies to lovers slow burn 60,000 words
<heat> you're so welcome
<bslsk05> ​chatgpt.com: ChatGPT
<mjg> i shed a tear
galambo is now known as gambo
gambo is now known as galambo
brynet has quit [Quit: leaving]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<nikolar> how moving
<netbsduser> heat: the dragonfly bsd might require you to free only local slab allocations, i'm not sure
<heat> that sounds like a PITA to track
<netbsduser> matt dillon is a veritable prophet, without a doubt, he predicted in 2005 that fine grained locking a) didn't scale and b) was an atrocity
<netbsduser> so he demanded an approach to scaling based on treating an OS on a multicore as a distributed system
<heat> he didn't prophetize that dragonflybsd would be dead and buried in 2024
<netbsduser> everything as local or replicated as possible, and then if you need to be non-local, send a message with an IPI, and if you really can't localise/replicate to cores, only then lock
<netbsduser> well, he is getting old, unfortunately
<netbsduser> but imagine what would be happening if there were 10 youthful dillons
<heat> they would all be writing linux patches :P
flom84 has joined #osdev
<netbsduser> there is no chance of that whatsoever
<netbsduser> dillon does not tolerate deviations from the righteous path to scaling
flom84 has quit [Remote host closed the connection]
flom84 has joined #osdev
brynet has joined #osdev
<gog> hi
<heat> gog bazinga
<gog> i seem to have stumbled in on an intimate moment between mjg and theo
<heat> how rude of you
<gog> sorry
<Ermine> there's only one way to scale
<Ermine> doing things OPTIMAL
<heat> monogamy does not scale
<gog> that's right
<gog> my thread pool (polycule)
flom84 has quit [Quit: Leaving]
<Ermine> therefore I stand for polygamy
<gog> this is my couroutine, and her coroutine
levitating has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
Turn_Left has quit [Ping timeout: 248 seconds]
<kazinsal> today I learned about M, the Microsoft Editor https://www.os2museum.com/files/docs/msc51/msed-uguide-1988.pdf
<kazinsal> regexes, macros, conditionals, and a plugin API/ABI in a full-screen editor for DOS and OS/2
<Mondenkind> hi gog
<mjg> gog: smut for OS nerds
isabella is now known as izabera
izabera is now known as isabella
<gog> hi Mondenkind
<gog> ao3 here i come
<mjg> ao3?
<mjg> wat.dat
<gog> fanfic posting site
<gog> gonna write #osdev fanfic
<gog> this is a terrible plan
<mjg> i misread it as aoe3
<mjg> now i'm curoius what game is it
<gog> aø3
<mjg> wait is that real
<gog> yes
<mjg> :O
<gog> but also no i'm not actually writing osdev fanfic
<mjg> why are you doing this to me gog
<gog> why what
<mjg> being serious about something other than the keyboard
<gog> the keyboard is fix'
<gog> i have no reasons to be serious anymore
<gog> i can go back to being a clown and a baby
<zid> nikolar puts his masculine hands around heat's throbbing kernel
<gog> zid has to go and outcringe me
<zid> It's what I'm here for
<mjg> ey heat i got something for you
<nikolar> lol thanks for that zid
<mjg> a real doozy
<mjg> wtf where is the share buttom on chatgpt
<mjg> button
<zid> Sorry was that supposed to stay between us
<bslsk05> ​chatgpt.com: ChatGPT
<gog> i hate my life
<gog> i regret being born
<gog> re: this
<bslsk05> ​chatgpt.com: ChatGPT
<bslsk05> ​chatgpt.com: ChatGPT
goliath has quit [Quit: SIGSEGV]
<heat> mjg, hahahaha
003AAA1NQ has quit [Remote host closed the connection]
<nikolar> mjg you've driven heat mad
<heat> you're assuming i was mad to begin with
<heat> wasn't
<gog> you mad
<mjg> showing your age gog
<heat> haha epic trollface moment
<mjg> it's "lol u mad"
<mjg> (i think?)
<mjg> (hello fellow kids?)
<heat> u mad bro
<heat> that was _the shit_ back in 2011
<mjg> 2011?
<mjg> were you still able to run around under the table?
<heat> nah
<gog> i'm not old
<gog> i'm not old
<gog> i don't have one foot in the grave and the other trembling weakly
<heat> yet
<mjg> the message was that she *does*
<Mondenkind> everyone older than me is a senile fuddy-duddy and everyone younger than me is ignant and immature🙏
<mjg> that's millenial attitude
<mjg> not sure if that's what you can borrow
<heat> kernal
<Mondenkind> weh
<Mondenkind> i appropriate what i want
Dead_Bush_Sanpai has quit [Read error: Connection reset by peer]
Dead_Bush_Sanpai has joined #osdev
Arthuria has quit [Ping timeout: 260 seconds]
galambo has quit [Quit: Leaving]
levitating has quit [Ping timeout: 258 seconds]
galambo has joined #osdev
greeb has left #osdev [WeeChat 4.3.6]
netbsduser has quit [Ping timeout: 252 seconds]
levitating has joined #osdev
coolcoder613 has joined #osdev
netbsduser has joined #osdev
netbsduser has quit [Ping timeout: 260 seconds]
<kof673> > <heat> thinking it's the bees knees is like the americans reading the constitution # if you can define the word "american" i will entertain this analogy.
<gog> my knees have bees
<gog> i have bee knees
<heat> my linux has kernels
<gog> gross
<zid> I hope there'sa creme for that
<gog> salicylic acid
<kof673> my point is there are a million problems,,,and deeper problems before that even, but you just end up with 1000s of pirate corporations trafficking people 24/7 otherwise. if anything, it shows contract law is worthless
<kof673> i am all ears for alternatives to contract law
voidah has joined #osdev
Matt|home has joined #osdev
<kof673> > for me, if there is a rational core underneath the mystic shell of the unix philosophy, it is the file descriptor, and not the text file
<kof673> i will see how far FILE * goes lol
<kof673> they at least "broke" somewhat with c89 there (ignoring chronology)
<Matt|home> greetings.
<Ermine> my windows has New Technologies
<Mondenkind> file descriptor? i hardly know her
<heat> do those new technologies include a crippling RCE exploit in the ipv6 stack?
<Ermine> it's definitely new
<Ermine> wait
<kof673> > and not the text file c89 allows text or binary lol
<kof673> so i can agree with that statement that way too
<kof673> i need to implement "backends" still, but i will add read_ready() write_ready() for async at least, just start from c89 and extend from there