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
torresjrjr has quit [Ping timeout: 252 seconds]
xenos1984 has joined #osdev
elderK has joined #osdev
torresjrjr has joined #osdev
<gorgonical> I think I have figured out that it's because if you have security enabled for the gic there are configuration transitions that are "unpredictable" i.e. UB
<bslsk05> ​grok.dragonflybsd.org: kern_xxx.c (revision 6fed89b1) - OpenGrok cross reference for /freebsd/sys/kern/kern_xxx.c
zid has joined #osdev
<zid> Why helo there
<klange> EHLO
<zid> have to take ownership of every file on all my drives now, cus owned by {29302-23... not zid now
zid has quit [Ping timeout: 255 seconds]
<gorgonical> klange: tell me, which has the best chicken. lawson, family mart, or 7/11
<gorgonical> A friend of mine is going to japan soon and I need to inform him of the important things
demindiro has quit [Quit: Client closed]
<klange> Famichiki is the meme, but I honestly prefer Lawson's karaage-kun line.
<klange> A lot of it's down to personal preference and which of the three is closer to you.
<gorgonical> Lawson's the one with the oden in winter, right?
<bslsk05> ​www.lawson.co.jp: おでん|ローソン公式サイト
<gorgonical> I discovered that by accident and was immediately endeared
<gorgonical> A novel and fabulous idea for ~0C windy days
<bslsk05> ​www.lawson.co.jp: からあげクン レッド|ローソン公式サイト
<gorgonical> lol it's actually called karaage-kun
<gorgonical> I thought you were making a joke
zid has joined #osdev
* gog mews
<zid> I stopped crying long enough to install an irc client on this laptop
<gorgonical> oh you installed emacs
<gorgonical> nice
<zid> no I installed an irc client on a laptop
<gorgonical> yeah, what one other than emacs would you use?
<heat> gnu nano
<zid> fuck me I had forgotten how noisy mech drives were
<gorgonical> My main tower still has like four in there. Noisy as hell
<CompanionCube> wouldn't it have been easier to create a user with same id rather than chowning everything, or is that not possible on windows
<zid> CompanionCube: good news, all those files are now gone
<zid> The ssd died mid chown
<CompanionCube> you have the worst luck, don't you
<zid> yes
<zid> I cried
<zid> real fuckin shitty wek
<zid> so I am now reinstalling again, onto a mech drive
<zid> so that I can survive the time it takes mt to get a new ssd
<zid> so I can do it all all over again
<gorgonical> What's the practicality of raid striping on a laptop? Or is that basically a candidate for daily delta backups really
<CompanionCube> should i ask how much data was lost and not backed up?
<zid> most of it was just a windows install
<zid> but maybe I had my github private key on it
<gorgonical> eep
<zid> I lost you know, every single ~/.file equivalent though
<CompanionCube> those are easily replaceable given the password
<zid> probably all my video game saves
<CompanionCube> now *that* sucks
<zid> I still have all the *games* of course, they're nicely organized on my fucking spinning rust
<zid> the reliable storage
* CompanionCube also recently was pissed: tablet died on reboot android decided to wipe my app data for some reason. But for whatever reason not the internal or external sdcards or the apps themselves. Despite two of those being on the same partition so it's not fs corruption.
<zid> ssd said it had tens of TB left
<zid> but it got kinda full after the windows + windows install
<zid> which I know isn't the best for them
<zid> also I keep typing onto the wrong keyboard which is fun
<zid> Just realized I didn't eat today also
<gorgonical> I'd be ordering pizza right quick in your position
<zid> my top tip for a slim beach bod, overwhelm yourself with stress and forget to eat
<kof123> eh, i use #@#$#$#@ microsd card and usb flash off a live cd mostly. but i backup to cdr/etc. lol
<kof123> so kind of do expect them to die
<kof123> *i kind of
<gorgonical> do you have an internal sdcard reader on your laptop?
<gorgonical> or whatever device you do this on
<kof123> lol $1 or $2 usb -> microsd card
gog has quit [Ping timeout: 268 seconds]
[itchyjunk] has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
<gorgonical> So it turns out all that was wrong was assigning the IRQs to secure group 1 and not assigning forbidden bits to the GICD_CLTR
<gorgonical> It was costly to learn this
[itchyjunk] has quit [Read error: Connection reset by peer]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
* geist gets schwifty
joe9 has joined #osdev
ptrc has quit [Remote host closed the connection]
ptrc has joined #osdev
joe9 has quit [Quit: leaving]
heat has quit [Ping timeout: 246 seconds]
bradd has joined #osdev
Arthuria has joined #osdev
elderK has quit [Quit: Connection closed for inactivity]
mahk has joined #osdev
vdamewood has joined #osdev
Arthuria has quit [Remote host closed the connection]
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
eck has joined #osdev
slidercrank has quit [Ping timeout: 248 seconds]
bgs has joined #osdev
zid has quit [Remote host closed the connection]
fedorafan has joined #osdev
fedorafan has quit [Quit: Textual IRC Client: www.textualapp.com]
zid has joined #osdev
craigo has joined #osdev
danilogondolfo has joined #osdev
fedorafan has joined #osdev
elderK has joined #osdev
slidercrank has joined #osdev
fedorafan has quit [Ping timeout: 246 seconds]
gog has joined #osdev
fedorafan has joined #osdev
GeDaMo has joined #osdev
bauen1 has quit [Ping timeout: 246 seconds]
bauen1 has joined #osdev
nyah has joined #osdev
bauen1 has quit [Ping timeout: 248 seconds]
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
xvmt has quit [Remote host closed the connection]
<dinkelhacker> is there a way to restart qemu from gdb?
xvmt has joined #osdev
xenos1984 has joined #osdev
gog has quit [Quit: Konversation terminated!]
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
gaxar77 has joined #osdev
<gaxar77> Hey folks.
<gaxar77> Yesterday it was recommended here that I build some apps with C++ and Qt because I said I wanted to practice some app development before doing OS development.
<gaxar77> I just installed qt last night.
k0valski18891 has quit [Quit: Ping timeout (120 seconds)]
<dinkelhacker> Do you want to write your os in c++?
<gaxar77> No, in C.
<gaxar77> Eventually.
<gaxar77> But maybe in C++.
<gaxar77> I would not need to use new or delete or malloc or free.
<gaxar77> But I don't know how the compiler would handle not having implementations of those things.
<gaxar77> new and delete
<zid> easy, it violently explodes if you try, including if you do things that cause it try internally
<zid> which for C is trivial to avoid, because it doesn't do that
<zid> for C++ you probably need to avoid a whole bunch of things and pass various flags
<gaxar77> So, I guess not then.
<gaxar77> Does MS use C++ in their kernel?
<gaxar77> the Windows kernel?
<gaxar77> I have to be honest, I only know C because I know C++..
<gaxar77> And the language is not exactly the same as C++ without OOP.
<zid> depends heavily on which era of C++ and which features you like to use, as to how different it is in practice
<zid> it's rather a.. large toolbox
<gaxar77> Well, I only use the first standard, as that's mostly what I've learned.
<gaxar77> of C++, that is.
<gaxar77> Has anyone here implemented an execution engine that runs user mode apps in their OS?
<gaxar77> Wouldn't it improve security if all user mode apps ran in an execution engine?
<gaxar77> Or is that a bad idea?
<sham1> What do you mean by execution engine here
jjuran has quit [Ping timeout: 246 seconds]
bauen1 has joined #osdev
<gaxar77> Like the JVM or the CLR.
<gaxar77> Those are called execution engines, I think.
<zid> VM, would be the normal word
<zid> you know, like jVM
<gaxar77> I was trying to avoid confusion with things like VirtualBox.
<sham1> Well not only have people done so, there even are OSes where your "userland" is at the same layer as the kernel and the security is provided by the runtime environment
<zid> looks like it's time to link a certain video
<bslsk05> ​www.destroyallsoftware.com: The Birth & Death of JavaScript
<gaxar77> So, the kernel interprets the programs?
<sham1> Language-based systems
<zid> gaxar77: relevent to your interests
<sham1> An example is Mezzano. You also have other research projects like Microsoft's Singularity and things like various Java OSes
<gaxar77> What makes Linux so immune to malware?
<sham1> Not being targeted as much
<gaxar77> What does Singularity do by the way?
<gaxar77> Oh
jjuran has joined #osdev
<gaxar77> g2g
gaxar77 has quit [Quit: Leaving]
mctpyt has joined #osdev
elderK has quit [Quit: Connection closed for inactivity]
bradd has quit [Ping timeout: 252 seconds]
bauen1 has quit [Ping timeout: 252 seconds]
gildasio1 has quit [Remote host closed the connection]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
mctpyt has quit [Ping timeout: 264 seconds]
gildasio1 has joined #osdev
foudfou_ has joined #osdev
foudfou has quit [Ping timeout: 255 seconds]
Vercas has quit [Ping timeout: 255 seconds]
Vercas has joined #osdev
janemba has quit [Ping timeout: 246 seconds]
SpikeHeron has quit [Quit: WeeChat 3.8]
SpikeHeron has joined #osdev
Vercas5 has joined #osdev
Vercas has quit [Ping timeout: 255 seconds]
gxt has quit [Ping timeout: 255 seconds]
Vercas5 is now known as Vercas
gxt has joined #osdev
<dinkelhacker> zid: lol that talk is great
foudfou_ has quit [Ping timeout: 255 seconds]
foudfou has joined #osdev
<zid> yea it's pretty famous at this point
gildasio1 has quit [Ping timeout: 255 seconds]
<FireFly> it's a good one
dude12312414 has joined #osdev
gildasio1 has joined #osdev
<sham1> I remember seeing a Rust based OS where the idea is to use WebAssembly for applications and drivers
<sham1> I wonder what happened to that
heat has joined #osdev
<zid> The chassis damage was too much to bother repairing
fedorafan has quit [Quit: Textual IRC Client: www.textualapp.com]
<zid> My new squardle and wordle saves are not doing very well
<zid> 5/6 on wordle, stuck on squardle
<zid> GeDaMo what's a four letter word starting with O that isn't OWLR or OWSE or OOHS
fedorafan has joined #osdev
bnchs has joined #osdev
<bnchs> hi people of #osdev
<sham1> Hi
<bnchs> i have a question
<zid> six
<bnchs> it's something complicated
<mrvn> once, otto
<zid> If the answer is six I'm going to look so cool
<bnchs> no it's 65535
janemba has joined #osdev
<mrvn> yes, no, on days that end in y
<zid> our work here is done then, answer foud
<zid> was a pleasure helping you with your question that you totally remembered to ask
<sham1> Maybe they're trying to figure out the question that goes with the answer
<sakasama> zid: Owls ooze okra onto oats over opal ogre oafs.
<zid> sakasama: none of the above
<sham1> Kind of like how 42 is the answer to life, the universe and everything, but they didn't know what the question is
<bnchs> but seriously how do you set apart of a buffer in C to a big-endian integer
* sakasama slimes everyone.
<sham1> Eww
<bnchs> i've tried memcpy, that requires the int to be stored somewhere in memory
<zid> 'set apart of a buffer' is so far from being english I can't even figure out what you might be trying to ask
<heat> huh?
<heat> please explain better
<bnchs> zid: sorry i didn't type correctly
<sham1> How do you have an int if it's not in memory
<mrvn> one is an int, the other a buffer_t
<bnchs> set something (16bit) in a buffer
<zid> still no closer
<zid> why don't you describe what you have, and what you want
<bnchs> i will explain it like this, *((uint16_t*)buffer+200)) = this integer
<zid> rather than what you think the process is
<zid> You want to write the bytes comprising a 16 bit integer to memory in a different order to your natural endian I guess? Write them individually.
<sham1> I'll just leave this here for the off-chance it's relevant: https://commandcenter.blogspot.com/2012/04/byte-order-fallacy.html?m=1
<bslsk05> ​commandcenter.blogspot.com: command center: The byte order fallacy
<mrvn> uint16_t t = this integer; htobe16(t); memcpy(buffer+200, t, sizeof(uint16_t));
<zid> (value>>8)&0xFF and (value>>0)&0xFF
<bnchs> zid: yes
<bnchs> mrvn: the problem with that is waste of stack space
<sham1> No it doesn't
<heat> that will not go to the stack
<bnchs> oh?
<heat> godbolt it and find out
<sham1> The abstract machine doesn't map 1-to-1 to hardware. Your compiler will more than likely optimise it away
<heat> the a b s t r a c t m a c h i n e
<mrvn> bnchs: worst case you waste 4 byte stack. big deal.
<sham1> Yes. The abstract machine
<heat> the a b s t r a c t m a c h i n e
<bnchs> sham1: this is related to a program that's sharing memory with a big endian processor
<bnchs> byte order does matter
<sham1> It's the same if you're dealing with a big endian format or whatever
<heat> the a b s t r a c t m a c h i n e
<zid> The article says to *make* byte order not matter
<zid> by not treating things as though they are multibyte integers
<zid> instead, as individual bytes that you combine in a specific way
<bnchs> oh
<bnchs> sorry i'm a bit retarded
<zid> which is also *exactly* what I already said
<zid> > (value>>8)&0xFF and (value>>0)&0xFF
<bslsk05> ​godbolt.org: Compiler Explorer
<mrvn> isn't that code missing the big endian conversion?
<bnchs> zid: you don't understand, that's how i'm converting values to big-endian
<bnchs> the problem is writing it somewhere in the buffer, without breaking strict aliasing rules
<zid> good news, char does not have aliasing rules
<zid> else it'd be impossible to write things like memcpy
<mrvn> bnchs: char * always alias.
<zid> char * also doesn't have compatible type rules
<bnchs> huh
<heat> sham1, why does that blog post make 0 sense?
<bnchs> thank you for your solutions
<bnchs> i will never show my face here until i need to annoy someone again
<zid> I tend to end up with a #define WORD_AT and U32_READ and other random crap all over the place
gog has joined #osdev
<zid> morning gorg
<heat> gorgning morn
<mrvn> https://godbolt.org/z/s3bo8GczW Why does set() and set2() give different code?
<bslsk05> ​godbolt.org: Compiler Explorer
<bnchs> gi hoh
<heat> anyway the byte advice looks really fucking weird
<sham1> heat: because it's Rob Pike
<mrvn> args, never mind, htobe16 returns the value. *slap*
<heat> could've been barrack obama for all I cared
<heat> s/barrack/barack/g
<heat> sorry mr obama
<mrvn> bnchs: here are the two ways to do it: https://godbolt.org/z/TTvM63K99
<bslsk05> ​godbolt.org: Compiler Explorer
bnchs has quit [Remote host closed the connection]
<sham1> The point being that it being Rob Pike's post is why it makes no sense. After all, he's responsible for Go. And that's all you need to know
<heat> just use a be32tohost or le32tohost and pick consistent byte ordering
<heat> amen
<mrvn> heat: ntoh?
<heat> he's basically saying "just open-code endian conversion and integer reading with a char * and a needle"
<sham1> Well that is indeed what he's saying. Although it's also helpful when you're writing the conversion yourself even if you abstract it away
<heat> it's silly code written by silly UNIX geezers
<sham1> Besides, I think the more important thing there is the sentiment: don't care about your host byteorder, let the compiler worry
<heat> what
<mrvn> Nowaday compilers are smart enought that when you read 2-8 bytes from a stream and assemble an int from it that they just do that as a single read + conversion if needed.
<sham1> Yeah. They can also optimise memcpys into load instructions as needed
<mrvn> Used to be doing the htobe32 or such was faster.
bnchs has joined #osdev
<sham1> So doing unaligned reads and writes is not necessary
* sham1 glares at osdev forum
bnchs has quit [Read error: Connection reset by peer]
<heat> what happened
<sham1> bzt
<mrvn> sham1: the only place you ever should have packed is structs you only ever access once.
bnchs has joined #osdev
<heat> brrrrrrrrrrrrrrrrrt
mimmy_ has joined #osdev
<heat> but seriously, what?
<bnchs> fucking bridge
<bnchs> anyway
mimmy has quit [Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b))]
<bnchs> i mean does it dereference the pointer, set it to b, and then increments the pointer?
mimmy_ is now known as mimmy
<mrvn> bnchs: what?
<bnchs> *(a++) = b
<mrvn> a++ returns a copy of 'a' and increments 'a'
<bnchs> i need to be cautious with code rn
mimmy_ has joined #osdev
<bnchs> oh so just like i thought
<mrvn> bnchs: it's what you thought but not in that order.
<mrvn> bnchs: in c++ that "copy of 'a'" becomes important
<mrvn> poentially<
bauen1 has joined #osdev
<bnchs> okay
mimmy has quit [Quit: WeeChat 3.8]
mimmy_ is now known as mimmy
<GeDaMo> zid: owes
<zid> oh yea
<zid> I dum
<bnchs> i more dum
<zid> there, finished
mimmy has quit [Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b))]
mimmy has joined #osdev
<mrvn> bnchs: you code is easier to read when you don't (have to) use ++
gog has quit [Quit: Konversation terminated!]
fedorafan has quit [Ping timeout: 248 seconds]
mimmy has quit [Quit: ZNC 1.9.x-git-187-32d4a4d5 - https://znc.in]
mimmy has joined #osdev
zid has quit [Remote host closed the connection]
fedorafan has joined #osdev
immibis has joined #osdev
ilovethinking has joined #osdev
<ilovethinking> hey lads, i'm currently stuck on virtual memory, i am 100% sure i map out the framebuffer correctly but for some reason after loading cr3 and trying to print the print pagefaults
<ilovethinking> is anyone willing to look at my initialization code
mimmy has left #osdev [WeeChat 3.8]
<bslsk05> ​gist.github.com: vmm · GitHub
<ilovethinking> to_virt does physical address + hhdm offset
<mrvn> ilovethinking: print the page tables in qemu
<ilovethinking> info tlb righ
<mrvn> and you should be loading cr3 twice. Once to map the kernel to virtual addresses and a second time to unmap the physical addresses after you jumped to virtual.
<ilovethinking> mrvn: info tlb literally froze my qemu
<ilovethinking> since i mapped out the first 4gb
<mrvn> shouldn't freeze. it just prints a lot
<mrvn> are you mapping 4k or 2Mb pages?
craigo has quit [Quit: Leaving]
<mrvn> or even 1G, then it's just 4 entries
<ilovethinking> 4k mrvn
<ilovethinking> it froze cuz there are so many
<ilovethinking> ok it printed
<ilovethinking> after like 3 minutes
<mrvn> do you have qemu output to the terminal or graphics?
<ilovethinking> serial monitor
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
<mrvn> I recommend mapping just 16MB or something. makes it easier to check stuff.
<ilovethinking> wtf
<ilovethinking> there
<mrvn> ideally only map the kernel.
<ilovethinking> i need my fb
<ilovethinking> to print
<mrvn> The video driver would map that.
<ilovethinking> wdym vidoe driver
<mrvn> but for debug leave the FB mapped too.
<mrvn> ilovethinking: at some point you will write some console / video driver.
<ilovethinking> mmm yeah
<ilovethinking> but i wont be able to debug
<mrvn> serial is a great way to debug :)
<mrvn> anyway, your page table looks broken.
<ilovethinking> how come
zid has joined #osdev
<mrvn> If you map 4G then I would expect output for 0-4G and -2G to 0. You seem to have mapped a lot at -16EB and then only 5 pages at -2G for the kernel.
<mrvn> and those mappings have odd physical addresses
<mrvn> The last page even has X and W. you should never have that.
<heat> ilovethinking, where are you page faulting and what error code?
<ilovethinking> 0E at print
<zid> goodish news, seems only two dimm slots on this board are dead
<ilovethinking> when printing
<zid> but it's A2B2 that are dead, A1B1 alive, so no dual channel
dude12312414 has quit [Remote host closed the connection]
<bslsk05> ​gist.github.com: vmm · GitHub
<ilovethinking> here
<heat> 0e is the exception number, not the error code
<ilovethinking> oh where do i find the error code
<heat> "here" is also very vague
<zid> v= vector, e= error code
<ilovethinking> error 0008
<heat> ok now that's up to you to decipher
<heat> exercise left to the reader
<mrvn> ilovethinking: you should map just the bare minimum, set a breakpoint after loading CR3 and then print the table.
<heat> plus cr2 and the IP (which gives you the faulting instruction)
dude12312414 has joined #osdev
fedorafan has quit [Ping timeout: 248 seconds]
<ilovethinking> When set, one or more page directory entries contain reserved bits which are set to 1. This only applies when the PSE or PAE flags in CR4 are set to 1.
<ilovethinking> so that's the error
<ilovethinking> heat: the faulting instructoin is the print lol
<zid> that's not an instruction
fedorafan has joined #osdev
<zid> that's a source line, and not even the right one
<ilovethinking> oh what
<ilovethinking> wtf
<ilovethinking> my printf library is failing
<ilovethinking> kekw
<ilovethinking> wtf
<bslsk05> ​github.com: stb/stb_sprintf.h at master · nothings/stb · GitHub
<heat> glhd
<heat> glhf*
<zid> heat: good news, I have TWO dimm slots to play with
demindiro has joined #osdev
<heat> nice
<heat> did you manage to fix the old board or what?
<zid> no
<zid> I got a spare, that is apparently broken
<zid> i5-4xxx something
<zid> no sata 6
<zid> 2 dimm slots
<zid> my ssd ded
<heat> sounds great
<zid> yea having a whale of a time
<zid> I can't start steam, I gave up after 10 minutes of hard drive noises
<heat> haha
<heat> are you on windows?
<zid> yes
<heat> which one?
<zid> 7 ofc
<heat> really? 7 also sucks with hard drives?
<zid> steam does
<zid> windows 7 is passable
<heat> hmm
<zid> I was on 4GB of ram when I installed and I only have a 4GB flash stick, and it's an ancient i5 and sata3, so it's w7 or bust
<ilovethinking> mrvn: so print the pml4?
<heat> listen, I used 5400rpm drives for YEARS, even on windows 10 and even some days on 11
<heat> it's death by pain
<zid> thankfully I am at least 7200rpm with 32MB cache
<heat> it took an hour to boot
<heat> so tip: just be patient
<zid> steam seems happier now that machine is warmed up
<heat> if you feel like punching the shit out of the computer (you will), go for a walk or something
<heat> or take a nap
<zid> got my disk cache nice and full
<heat> you'll want to see the stupidly long disk seek times and long ass IO queue
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> 32GB -> 16GB, quad channel 1GHz -> single channel 800MHz, 4.5GHz -> 3.8GHz, sata6 -> sata3, ssd -> hdd, good audio -> bad audio (it's quiet and distorts)
<heat> sweeeeeeeeet
bnchs has quit [Remote host closed the connection]
heat has quit [Remote host closed the connection]
heat has joined #osdev
k0valski18891 has joined #osdev
xenos1984 has quit [Quit: Leaving.]
xenos1984 has joined #osdev
xenos1984 has quit [Client Quit]
xenos1984 has joined #osdev
<kof123> "I remember seeing a Rust based OS where the idea is to use WebAssembly for applications and drivers" i dont know, but author in another channel mentioned a week or so ago: https://github.com/turbolent/w2c2 Written in C89 and generates C89 * Support for older operating systems and architectures (e.g. Mac OS X on PowerPC, Mac OS 9, Haiku, Rhapsody, OPENSTEP, Windows XP, etc.)
<bslsk05> ​turbolent/w2c2 - Translates WebAssembly modules to C (17 forks/447 stargazers/MIT)
<kof123> so all you REALLY need is c89 <ducks and covers>
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
<kof123> to understand my statements, you must know another another channel "all you REALLY need is x" (love, raven, crow, bones, fire+water, ...) hence "all you REALLY need is c89" <double ducks and covers>
ilovethinking has quit [Quit: i probably locked my mac and i got disconnected]
SpikeHeron has quit [Quit: WeeChat 3.8]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
gog has joined #osdev
SpikeHeron has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
bnchs has joined #osdev
slidercrank has quit [Ping timeout: 255 seconds]
<zid> why 5800x £146, but 1950x £164
<bnchs> hi
<zid> bnchs tell why immediately
<bnchs> uhhh what?
<bnchs> what did i do?
<bnchs> did i get myself into questionable stuff while i was afk?
xenos1984 has quit [Ping timeout: 246 seconds]
<bnchs> zid: what do you mean by that?
<sham1> He wants you to answer why 5800x is 156 GBP while 1950x is 164 GBP
<zid> sham1 may also answer
<sham1> I don't know
<bnchs> uhhh, because more tax on smaller quantities?
<zid> no tax on ebay
<bnchs> the guy wants you to buy all his shit now
<gog> hi
<zid> hi gog
<bnchs> hi gog
<zid> gog why is a 5800x £156 and a 1950x £164
<gog> hi bnchs
<gog> scarcity and demand
<gog> but also i don't know what those are
<zid> heh
<zid> ryzen 3 cpu, ryzen 1 cpu
<gog> ohh
<zid> both good models of each
<zid> not like one's an i3 and one's an i9
<gog> i don't know enough aout the ryzen series
<gog> i have a 4600 or smth
<gog> ryzen 5 4600h
<bnchs> holy shit i thought you meant 5800x as in 58000 times some shit
<bnchs> 5800*
<zid> tjmax 105C, on a laptop chip? fun
<zid> I've always wanted 3rd degree burns
<nikolar> zid: i got my CPU to 101°C earlier today
<nikolar> There was a kernel update and it had to rebuild zfs modules
<zid> I'm not sure I could get this one above 50C
heat has joined #osdev
<zid> it's too weak and I put my good heatsink on it
heat_ has quit [Read error: Connection reset by peer]
<kof123> re: that w2c2 thing: "[it allowed me to] get Rust programs running on Mac OS 9 on Power PC, and port Python 3.11 to e.g. NeXTSTEP 3.3 on Sparc" c89 light from c89 light, c89 world without end
demindiro has quit [Ping timeout: 260 seconds]
<kof123> (paraphrase, not exact quote)
<gog> zid is your computer workin gnow
<zid> windows installed on mech drive and I am single channe
<zid> but it works
xenos1984 has joined #osdev
<zid> I can download pirated ebooks to read and stuff
<zid> and play my white noise so I can sleep
<gog> nice
<zid> audio's weak and disorted though, this is the most budget mobo ever
<zid> doesn't even have sata6
<zid> forgot to pay the extra $1 for a better controller
<zid> The most advanced feature it has is two bios chips, which just says to me it likes to eat its own bios
<heat> no dark soul?
<heat> gog: hllo gog, how is u
<gog> honestly it was a tough week
<heat> that's what we like
<heat> we eat those for dinner
<heat> LFG no days off
<gog> i would like more days off
<heat> trillionaire sigma grindset
<heat> i had a weird week
<gog> same
<heat> skipped plenty of classes, wrote pretty much only FreeBSD code, now I'm dealing with Ext4Pkg crap
<gog> i started fine but then steadily got worse
<heat> the FreeBSD code is not working well and I feel like ass because of it
<gog> that's too bad
<gorgonical> zid are you feeling better today
<zid> yes muchly
<gog> i am not feeling better today
<zid> do you want an i5-4670 to cheer you up
<gog> no thanks
<zid> it didn't really cheer me up either, sleeping did though
<zid> maybe try that soon
<gog> maybe
<gog> unlikely
<yuriko> I've been sick for like two weeks at this point
<yuriko> nothing bad just annoying
bauen1 has quit [Ping timeout: 268 seconds]
<gorgonical> I think I'm developing tendonitis in my right arm a little. This is not cool
<gorgonical> gog have you been to that soup placey et
<gog> which one?
<gog> the ramen joint?
<gorgonical> the one on laugavegur i believe
<gog> oh
<gog> uhhh
<gog> no
<gog> lol
<gorgonical> lol
<gorgonical> I think they just make a few pots of soup and they stop selling it when they run out. I remember loving the soup a lot
<gorgonical> Maybe that will cheer you up
<gog> i did have soup today
<gorgonical> svarta kaffid it is
<gog> ah yeah i haven't been there
<yuriko> mmm soup time
<gorgonical> I'm a sucker for bowls I can eat after I've finished the soup
<gog> maybe i can convince work people to go there :P
<gorgonical> soupy bread mmmm
<mats1> my coworkers look like soupy bread
<zid> I have sausage rolls
<yuriko> I have dumplings
<zid> basically the same thing right
<gog> we're gonna have veggies and tofu probably
<gog> i had purusteik for lunch
<zid> poor thing, tofu isn't bad though
<zid> is purusteik reindeer steak
<gog> it's a pork belly steik
<gorgonical> pork belly is the greatest thing ever
<zid> huh is puru cognate to pig
<zid> in icelando
<gog> no
<gog> svína
<yuriko> yes
<gog> anyhow it's pork belly
<gog> my american brain saw "steik" and i'm like "oh it must be beef"
<gog> it was fine tho
<dinkelhacker> same here^^
<gorgonical> but we call it tunasteak sometimes
<gog> yes
<gorgonical> because reasons
<gog> but unqualified, steak is almost always beef
<zid> steak is just the cut
<gorgonical> agreed
<gorgonical> "chunk"
<zid> the indefinite 'a steak' is beef though yea
<gorgonical> "im having veggies and chunks for lunch" is highly ambiguous
<zid> I figured reindeer because poro is finnish for reindeer
<zid> and I can't think of anything else that looks like puru
<gog> i don't think icelandic takes any finnish loanwards
<gorgonical> perhaps only sauna
<gog> true
<gorgonical> icelandic doesn't take a lot of loanworks in any case. like computer is tölva because its a coined word
<gorgonical> like number prophet or something
<gog> prophetess
<gorgonical> ah
<gog> computers are feminine
<gog> (the feminine urge to be a computer)
<gorgonical> even american computers were originally women
<gog> yes
<zid> hidden figures and all that
<zid> which is just an amazing title
<zid> 10/10
<yuriko> programming is a woman's job :3
<gog> :3
<lav> :3
<heat> colon three
<bnchs> mew
<lav> PROGRAM CAT_SOUNDS
<yuriko> mew
<zid> :E
<lav> there's a reason it's called fortran
<gorgonical> then what does ocaml tell us
<zid> That camels suck at programming
<zid> leave it to the women
<zid> they seem to have it in hand
<lav> it's when you pray to a humpback
<Ermine> The first programmer evar was a woman
<Ermine> gog: may I pet you
<gog> yes
* Ermine pets gog
<yuriko> may I have pets too?
Turn_Left has quit [Ping timeout: 246 seconds]
<bnchs> may i have pets too?
<zid> ask your landlord
<gorgonical> lol
<lav> akdkgjfjd
<bnchs> my landlord hates me
<yuriko> I would not touch a landlord, nor let them bite me
demindiro has joined #osdev
<lav> extract profit from me UwU -><-
<gog> if a landlord bites you you might become one
* bnchs pets lav
* yuriko pets bnchs
<lav> mewmewmewmew
<lav> chains pats
<gog> lav: i'm starting to get confused about which channel i'm in now
<gog> XD
<lav> the overlap
<gorgonical> how does this relate to kernels or gripes about ergonomics
<gog> it doesn't
<gog> operating system development
<lav> well you need an OS to IRC
<yuriko> tru
<gog> no you don't
<gog> you can bitbang an ethernet adapter to irc
* Ermine . o O (weechatOS)
<lav> is there a bare metal client?
<gog> directly from kernel mode
<lav> o.o
<gog> no but now i want to make one
<lav> dewit
<gog> hell i could just make one in EFI
<yuriko> bang those bits
<Ermine> gog: I guess you need bare metal curses
<heat> lav, the suckless one should be pretty portable
<lav> hi im bits
<gog> Ermine: nah just the raw messages from the server
<Ermine> Brutal
<heat> you just need a socket() + send() + recv() and the suckless should run
<yuriko> Ermine: just use the VGA Buffer
<yuriko> you don't need ncurses
<heat> the "sic" one, not the weirdo bullshit "lets make FIFO pipes for every channel you're on"
<gog> it's easier on uefi, you have ConOut->WriteString
<gorgonical> i like opensbi for that reason
<heat> gog, now i feel like doing that for some reason
<Ermine> heat: there's two (or more) of them, and one does this kind of kink
<heat> Ermine, yeah, the sic one is the plain stupid client, then there's the weird everything-is-a-file one
<zid> I'm not sure you could actually bitbang ethernet btw
<heat> fair enough, very plan9-ish
<gog> and you can hack together send() and recv() i think the network protocols have an async interface
<zid> it doesn't have a clock, you're supposed to wiggle 114 times to train the other end before each packet or something
<heat> gog, totally
<gog> zid: hm yes
<zid> bitbang pci-e instead.
<zid> and talk to the ethernet card via it
* lav wiggles
<Ermine> zid: how does 10Gbps+ work if they train ends before each frame
<zid> what do you mean, it's no different from any other speed
<zid> you wiggle, then go
terminalpusher has joined #osdev
<zid> wiggle wiggle
<Ermine> 114 must take a lot of time mustn't it?
<zid> not compared to the size of the frame
<gog> i can wiggle 114 times in about 21 seconds
<heat> zid, i need english help
<zid> okay heat
<Ermine> okay... I'm still impressed
<zid> at 10Gbit I can wiggle 114 times in 114 1/10 billionths of a second
<heat> "should have been " run or ran?
<zid> ran
<zid> should have died
<zid> not should have die
<Ermine> there should be past participle. Isn't it run?
<lav> it is
<gorgonical> should have ran, should have been run
<lav> ^
<zid> I have eaten
<zid> not have I eat
<lav> i have been eaten
<zid> Yes.
<zid> I should have been run.
bauen1 has joined #osdev
<heat> mkay thanks
<zid> There's dialectical differences here though
* yuriko eats lav
<lav> :333
<lav> owo
<Ermine> Where do I get my C2 certificate?
<yuriko> do not "colon three" at me. :3
<lav> if you say so
<gorgonical> where I am in the US we say "the car needs washed"
<zid> ack
<gorgonical> agreed
<zid> do you also acrost
<zid> instead of across
<gorgonical> yes
<zid> di
<zid> e
<gorgonical> I am a transplant so I don't say that stuff
<zid> pin/pen merger?
<gorgonical> That's where I'm from we do, but here they don't
<zid> okay so you can all die together
<gorgonical> I don't personally have pin/pen merger but my whole family does
<gorgonical> lol
<zid> 'sense' you talk like that
* lav away
<gog> ave, true to cæsar
<gorgonical> SEE-ZIR
<zid> gorgonical: Americans just seem to hate 'ing'
<zid> In general
<zid> fry pan
<Ermine> tsar
<zid> needs washed
<zid> "My fry pan needs washed." Actually works doesn't it.
<gorgonical> also words like wash end up "warsh"
<zid> No that's goofy
<gorgonical> this region's accent is truly awful to me
<zid> gorsh donald
<gorgonical> right
<gorgonical> the best one
<Ermine> How do Canadians speak?
<gog> they honk and growl
<gorgonical> the second person plural, i.e. the y'all equivalent, is yinz
<gog> yinzers
<zid> british english tends to not give a shit about ing in past tense, americans just don't know ing exists
<bnchs> uhhh
<heat> how many yeeeeehaws per hour does y'all's dodge ram do
<gog> 420.69
<Ermine> doge ram?
<gog> wow
<bnchs> os devers
<zid> ya'll'ren't gunna believe thiius
<gog> bnchs:
<gog> are you developing operating sysem
<bnchs> no
<gog> oh
<gog> how did u get here
<bnchs> i am makinga compatibility layer for an OS
<gog> oh right
<zid> I'm not either anymore, I don't have enough ram
<bnchs> it's like making an OS, but reverse engineering one
<yuriko> zid: download more
<zid> time to port my thing to efi?
<zid> so I can dev on windows
<sham1> Swap As A Service
<bnchs> it is pain!
<gog> yes
<bnchs> :3
<Ermine> sham1: swap in the cloud!
<kof123> nfs swap over cloud <runs>
<kof123> the cloud is the computer is the network is the cloud is the ...
<heat> Ping-as-swap
<kof123> what the dns thing...i forget the name...
<yuriko> I saw a video where someone did ping as swap
<heat> no, you saw ping as storage
<heat> harder drives
<heat> from the SIGBOVIK guy
<sham1> Truly a distributed storage model
<bnchs> anyway what OSes are you all making?
<yuriko> oh yeah :<
<zid> tom7
<sortie> Wait we're supposed to make operating systems?
<sham1> I'm currently not doing any OS stuff. There aren't enough hours in a day
<yuriko> I'm making a basic one in Rust to learn the language and also OS dev
<zid> He stole my idea and I want 80%
<zid> uppererest case is the best vid
<bnchs> oh nice
<bnchs> i haven't made an OS before
<sham1> I wish I had the time :/ It's annoying that I don't
* sortie should stop partying with popstars and return to his true passion osdev
<heat> sortie, you should know, you wrote an entire operating system just become a distro maintainer
<sortie> osdev is its own punishment
<sham1> Recreational programming in general just... doesn't work currently. Between studying and working, and having other hobbies, yeah no
<sortie> no good deed goes uncompiled
* sortie once got hooked on 'recreational programming'
<heat> the punishment is maintaining endless lists of patches
<yuriko> recreational programming is fun when your job isn't programming
<kof123> ^
<kof123> do the same thing every day , no matter what it is, you will go insane
<sortie> Hey it's fun to work on things you're not supposed to :)
<heat> i have legitimately thought about not doing this as work so I can keep doing this as a hobby
<heat> it is legitimately an idea I have had
<sham1> The problem with me is that I have very few talents outside of programming
<sham1> That's not a good position to get a non-programming job
<mats1> all you need is confidence
<mats1> i had a CIO once whose sole qualifications were being a delphi programmer and then db admin in the 90s
<yuriko> does having a job in sysadmin and doing programming as a hobby count as not having a programming job
<heat> yes
<mats1> you can just say you have a programming job
<mats1> low level programmers think they're better than the people who write powershell and perl all day
<mats1> its the same shit sandwich at the end
<heat> no one writes perl all day
<heat> those people are all dead
<mats1> do you even have a full time job yet
<yuriko> imagine writing Go all day that would be horrible
<mats1> what do you know about who does what
<heat> yuriko, yeah imagine Going to work and writing Go and then Going home
<heat> hehe
gxt has quit [Remote host closed the connection]
bnchs has quit [Read error: Connection reset by peer]
<yuriko> pokemon go to the polls
gxt has joined #osdev
<heat> Go fuck yourself
<yuriko> wow rude
<dinkelhacker> what's so wrong with go?
<zid> we don't know
<zid> doctors can't figure it out
<zid> so it's beyond us
<bslsk05> ​www.youtube.com: Reversing in action: Golang malware used in the SolarWinds attack. Part 1 - YouTube
<yuriko> treats the programmer like an idiot; one of the people at google who works on it literally said they wouldn't add generics because the people using go at google are dumb
<mats1> programmers ARE idiots
<yuriko> also they're trying to make programmers replaceable so it's hard to unionize
<yuriko> instead of specialized labor they want employees they can fire at any time
<mats1> the real trick to good code is imposing sadomasochist constructs and tools on the programmer so that they are forced to precisely describe to the machine their intent
bnchs has joined #osdev
<yuriko> tech needs unions, etc. etc.
<bnchs> hi
<yuriko> h
<bnchs> i'm thinking of something, hope i'm not annoying
<dinkelhacker> yuriko: so you're saying the whole purpose of go is a huge conspiracy at google that tries to make people replaceable?
<yuriko> if the "huge conspiracy" is how capitalism works, then yes
<yuriko> and it tries to make labor replaceable, not people
<yuriko> swift is better if you want a modern GC lang imo
<dinkelhacker> true..isn't that the purpose of any framework, lib, etc.? Do the hard work once so others don't have to bother.
<yuriko> not all of them are made with the intent to make programming less specialized labor, though
<yuriko> computers are fine capitalism is the problem tbh
<yuriko> okay I'm done ranting about this
<heat> weird ass rant
<yuriko> ¯\_(ツ)_/¯
<dinkelhacker> :D
<bnchs> what if you wanna map a struct to a 32-bit program's space, but that struct has 64-bit pointers, do you rewrite the struct to have 32-bit offsets and force the OS to use a function to dereference them, or do you translate the structs everytime the program wants to access them
<heat> bnchs, obviously you need to get new pointers to 32-bit space
<bnchs> yes
<heat> well, there you go
<bnchs> that s obvious
<heat> there's your solution
<yuriko> translation seems better if there's a lot of memory
<bnchs> but do you rewrite the struct's implementation in the OS, or serve a translation in the memory map
<bnchs> translating the 64-bit pointer to the 32-bit memory space
<heat> you probably want to 64->32 that other struct too
<bnchs> obviously
<heat> then what's the question?
<yuriko> if the memory is being accessed often or there isn't much of it, dereferencing sounds good
<heat> if you want to 64->32 you'll need a new pointer and new memory so you can do the translation for that other struct too
<bnchs> the question is, should the OS keep using a function to dereference the 32-bit pointers to access it
<yuriko> if I understand right
<yuriko> but that's just an opinionnn
<bnchs> if the structs were to be rewritten
<bnchs> or the OS should translate the structs for the program if the program accesses it
<heat> i don't understand what you mean by "function to deref 32-bit pointers"
<bnchs> heat: function to convert 32-bit pointers back to 64-bit pointers
<Amorphia> mjg: does OpenBSD have super crap scaling?
<heat> what
<heat> Amorphia, absolutely
<Amorphia> heat: ohno
<Amorphia> heat: how come?
<heat> Amorphia, my OS beats OpenBSD and NetBSD's ass
<bnchs> the OS has a base address it adds to the pointer to make it accessible to the OS
<heat> huge locks, bad lock implementations
<Amorphia> icic
<Amorphia> thank you for your feedback, heat
<heat> not a problem
<heat> mjg will tell you the same, we routinely shit on OpenBSD
<Amorphia> :D
<Amorphia> good to know
<heat> it is a blast ngl
<yuriko> :D
<bnchs> it's what i meant by that 64-bit pointer thing
<heat> bnchs, yeah i... i have way too little context to actually understand what you're doing
<heat> so i'll just smile and wave
<bnchs> cool
<Amorphia> bnchs: you could provide more detailed context to your current project / present issue
<bnchs> alright
<Amorphia> half of programming is learning how to explain complex problems
<Amorphia> that's why we use rubber duckies
<Amorphia> half the time, if you can explain it, you can already solve it
<bnchs> the OS gives the program a memory map that's 32-bit, that maps to certain structs in the host OS's 64-bit memory space
<bnchs> the layer gives the program a memory map that's 32-bit, that maps to certain structs in the host OS's 64-bit memory space
<Amorphia> what OS, what's the host and what's the program, and what's your goal here?
<bnchs> what i'm trying to do is balance out the processing load of either translating whenever the program is trying to access the struct
<bnchs> or the structs having 32-bit pointers and the OS having to convert it back to 64-bit everytime
<bnchs> Amorphia: the host is a standard Unix-like machine, i should have elaborated that it's a compatibility layer
<bnchs> so me saying OS is wrong again, dumb me
demindiro has quit [Ping timeout: 260 seconds]
<bnchs> the program is a.. program that runs on a 32-bit emulated processor
<bnchs> like i KNOW that i can do either, but i'm just trying to see which is best for less processing load
<Amorphia> tbh im still not sure if im understanding what you're up to, but im far from the most knowledgeable about osdevvy things here
<bnchs> can you tell me what you wanna know?
<Amorphia> nope. i am too inexperienced to formulate well-crafted questions about your problem space
<Amorphia> heat: are you making any sense of bnchs explanations?
<bnchs> the pointer translation method may also need double the memory to store the translated struct
<yuriko> Probably just use a LUT for translating the 32-bit struct to the 64-bit OS memory?
<yuriko> I might be forgetting what a LUT is
<bnchs> also i could have a flag to tell that the structs have been modified to translate it again in the cache
<yuriko> I think that would be too resource intensive
<bnchs> yeah that's the problem
<bnchs> also a lookup table?
<heat> Amorphia, no i was taking a shit
<Amorphia> heat: was it a good shit tho
<heat> but I also don't get it
<heat> yes, very good
<Amorphia> great, im happy for you :3
<heat> this is a certified colon three moment
<bnchs> then i am bad at explaining problems
<heat> colon in many different ways
<yuriko> a dictionary is what I mean I think. Key-value store, with the key being the 32 bit address and the value being the 64 bit address
<yuriko> And yes I did mean lookup table, I’m just not entirely sure what that means
<zid> it's a table
<zid> that you look things up in
<zid> they're real physical things
<yuriko> There’s also the LUTs in FPGAs
<zid> behold, the lookup table
<zid> it's even 0 indexed
<yuriko> Woah
<bnchs> the memory map is basically just a list of maps that has 3 proporites, the 64-bit host pointer, the 32-bit memory space pointer, and the size of the map, whenever the program tries to access something in it's memory space, it looks through the list to see where it's trying to access
<bnchs> well, the layer looks through the list
<yuriko> Use the memory map and don’t cache or rebuild I think
<bnchs> uhh what do you mean by that
<yuriko> When a 32 bit program requests the memory, the layer should search the memory address in the key value store, get the 64 bit actual address, get the value from that address, and pass it to the 32 bit program
<bnchs> sorry, if i didn't explain my problem correctly, since your answer was out of scope, but what i meant by translating a struct's pointers is that, imagine if there was a struct with a 64-bit host pointer on it, that the layer can easily access, but if the program tries to access the struct via the memory map, it'll see that it has a 64-bit pointer that it can't access
<bnchs> there's either translating the struct, which is resource-intenstive, or rewriting the struct itself but forcing the layer to use a function to access it
<yuriko> Oh I see
<bnchs> all should give the program a structure that has the 32-bit pointer on it instead of that pesky 64-bit pointer
<bnchs> in the most efficient way
<yuriko> I understand what you’re saying but idk which would be faster
<bnchs> yeah that's the problem :3
* gog looks up and sees a table
<gog> how did i get here
* yuriko cuts the wire holding up the table
* gog crushed
<zid> Look up the look up table? But I hardly know her
* Amorphia emits Talking Heads - Once in a Lifetime https://www.youtube.com/watch?v=5IsSpAOD6K8
<bslsk05> ​www.youtube.com: Talking Heads - Once in a Lifetime (Official Video) - YouTube
<gog> haha
<gog> i was thinking about that song when i said that
<Amorphia> gog: :3
<gog> :3
<gog> bnchs: lazy dispatch
<gog> first lookup hits a function, second gets a cached result
<yuriko> bnchs: translating the struct is best for memory, rewriting the struct is best for cpu. I think.
<gog> that has drawbacks because you'll have to know when to invalidate the cached copy
<gog> on the host side
<yuriko> Or what gog said yeah
<gog> yes
<gog> memoization
<gog> you rememo it
<yuriko> himememo
<gog> memeoization
<gog> wow, much cache, very response, wow, such optimize
<gog> just stack your techniques
<heat> dynamic programming time oh yeh
<zid> I've solved silimar memoization problems before
<zid> so I just memoize it
<zid> I can now solve every problem in O(1)
<zid> which is handy
<moon-child> ;o
<moon-child> hax
<sham1> Dynamic programming? I'm actually reading up on it (exam tomorrow... halp)
<gog> O(1) over time
<FireFly> sham1: just slice the problem into subproblems and sove them in the right order
<FireFly> (or just memoize)
<gog> memoize your exams
<sham1> Yeah. I just need to go ahead and remember some of these algorithms. Especially network flow
<gog> write the answer on your hand
<heat> I top-down'd your exam professor
<FireFly> do you need to know algorithms by hand?
<sham1> And NP completeness proofs like how to prove 3SAT in various ways. Ugh
<FireFly> well, graph algorithms
<sham1> Well knowing some pseudocode is most likely going to be useful
<heat> ngl that course sounds like depression
<sham1> Masters courses be like
<heat> you can say those courses are a sham
<heat> haha
<heat> kill me
<sham1> <.<
<zid> sham going to publish scheduler whitepapers for you heat
<zid> and you'll implement them and tell him they sucked
<zid> the circle of life
<bnchs> yuriko: for translating the struct, you need somewhere to store that translated struct
<bnchs> rewriting the struct is the one that's good for memory
<bnchs> and now i just realized, i also have to translate the endianess of all the integers
<bnchs> ughhhhh.. fuck my life
SpikeHeron has quit [Quit: WeeChat 3.8]
SpikeHeron has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
Left_Turn has joined #osdev
<sham1> zid: speaking of scheduling... the knapsack problem
<sham1> Or the subset sum problem. Oh well. Both should work if one wants to find a good subset of processes to distribute quanta to
<sham1> Both are NP-complete though. Therefore no perfect scheduling. Sad
<zid> you can't perfect sched no matter what though
<zid> unless your scheduler runs in 0 time
<zid> you can come up with a perfect solved alg for it if you want
<zid> but it has to run, and then breaks all that perfection :p
<sham1> Optimality has to be reached in other ways like heuristics. Of course one needs to determine said heuristics and that seems to be a pain
<sham1> Well, near optimality
<zid> optimal is a crutch
<zid> that's why we decided on FAIRNESS
<zid> because it's much more arbitrary
<zid> "I tried" -- Every scheduler ever
<bnchs> i found a solution, translating the structs onto an array that is accessed by the memory map and marking the changed structs in a seperate array of pointers for the translator (i know this isn't Stack Overflow, but i didn't wanna keep a open question for too long)
<sham1> If this was Stack Overflow, we would have rudely closed the question eons ago
<sham1> Seriously though, SO is trash
<bnchs> SO would have done wonders for my self-esteem :3
<sham1> And I dislike how it comes up when I google things
<zid> SO is an amazing resource
<zid> if you're a nitwit
<zid> if you're a serious programmer it is infact, mostly just clutter
<sham1> I do sometimes look whatever search result came up from there. But for example I haven't answered questions there for years
<sham1> I do find some of the sister sites under StackExchange interesting, like the UNIX one
<sham1> And the code golf one
MrPortmaster has joined #osdev
<MrPortmaster> Hi, just testing hexchat on Managarm real quick. Good to see that IRC is working!
* kof123 updates dictionary of computing terms, optimal, optimum ....pessimal, most pessimum .... fairish, most fairinum... and this is how snow white computing was invented
<heat> oh no
<heat> not a microkernel
<MrPortmaster> why not a microkernel?
<heat> because it's not the one true way obviously
<MrPortmaster> might be, but it works and running gtk2 applications with wayland (and XWayland) is still quite impressive IMHO
<heat> was joke
<MrPortmaster> yeah I'm just joking along, no worries
wootehfoot has joined #osdev
MrPortmaster has quit [Remote host closed the connection]
<sortie> https://gitlab.com/sortix/sortix/-/commit/69576266bee5e23cd25318da84e8201625e00492 ← Just one of those days writing a dhclient for my operating system [correction: actually worked on this since 2016 and today I finally finished the draft version woohoo]
<bslsk05> ​gitlab.com: Add dhclient(8). (69576266) · Commits · sortix / Sortix · GitLab
<zid> nice
danilogondolfo has quit [Remote host closed the connection]
gaxar77 has joined #osdev
<gog> compiler compiler in the machine
<gog> who's the uh
<gog> ¯\_(ツ)_/¯
[itchyjunk] has joined #osdev
<gaxar77> Should I make a new Windows GUI toolkit using SDL and exposed through COM?
<gaxar77> I feel like doing that.
<heat> no
<gaxar77> Why not?
<heat> because the COM bubble burst back in 2000
<gog> gaxar77: yes do that if it captures your fancy
<zid> heat good news, I plugged that new usb cable back in
<zid> which is what I was doing when my PC died
<gaxar77> So, then, should I write it in C++/CLI, exposing it to .NET languages?
<zid> and this PC survived
<gog> yes do that
<gog> do whatever you want to do most
<zid> and now I can wave the controller around without it disconnecting
<heat> zid, dark soul time?
<gaxar77> The problem is, there is already a WinForms, and a WPF, and a UWP, and a Win UI 3
<zid> so glad I wasted 4 days, all my files, my SSD, and several hundred pounds, to get my controller plugged in
<gaxar77> which Microsoft built...
<gog> why don't you write a new toolkit with qt and expose it to sdl with com
<gaxar77> Also, all those APIs besides WinForms support 3D.
<gaxar77> gog, I'm not sure what you mean.
<gog> there's a book about it, it was published in 2004
<zid> heat: need to instal
<gaxar77> What is it called?
<gog> "writing graphics toolkits with qt, sdl and com"
<heat> the da vinci code
<gog> by dan brown
<gaxar77> A graphics toolkit is not the same as a GUI toolkit.
<geist> gaxar77: i guess the question is why do you want to do these tasks?
<geist> then work backwards from that to figure out what to do
<geist> what are you trying to accomplish?
<gaxar77> I just want to build something like a GUI toolkit in C++.
<geist> then build one. as gog said
<geist> go design it and implement it
<gaxar77> Yeah the design part is the problem, as I don't know how to design anything. I just think and code.
<gog> design by doing
<geist> ah so then lets revise the 'what do you want to accomplish'
<heat> gog, are u unix
<gaxar77> What do you mean?
<geist> so now what you want to accomplish is 'i want to rebild an existing gui toolkit in c++'?
<geist> because you dont want to design a new one
<geist> trying to narrow down what the ask is to something concrete
<gaxar77> Well, can't I just let the design emerge as I go?
<gog> yes
<gog> you can absolutely do that
<geist> because you said you dont know how to design anything
<gaxar77> ok
<geist> as if that was an insurmountable problem
<heat> if you like GUIs so much why don't you become a symbologist like robert langdon
<heat> from the 2008 hit show, "The Simpsons"
<geist> it's okay not to know something, etc. just trying to narrow your focus to something concrete
<geist> and ideally something achievable
<gog> you can learn how to do something by just doing it
<gog> your results are gonna be poor but you'll learn valuable lessons
<gog> the beauty of programming is you can just delete everything that you hate
<heat> ada labeouf
<gaxar77> Is it acceptable to make character objects for a text widget, rather than doing all the calcating and drawng in one paint event?
<geist> yah, though my experience is there's a sweet spot. if you take on something wayyyy over your ability you probably wont learn as much as if you take on something jut a few steps beyond your ability
<gog> yes
<geist> ie, sitting down to build a space shuttle with a hammer is probably not going to yield a lot of results
<gog> the soviet union did it
<geist> haha
<geist> Buran. had to look at up again
<heat> yeah those damn soviets, they really liked their hammers and sickles
<gaxar77> I have a feeling that the key to implementing something like Word is to have objects in the document, even for each character.
<gaxar77> document view*
<gog> that's not really an operating systems question
<geist> trouble here is you're so in far over your head you're just grasping at straws
<geist> suggestion: start with something a bit lower and work up
<gaxar77> Well, I think I'll attempt a GUI toolkit.
<geist> it's okay to start that way, everyone starts with zero knowledge
<gog> arguably i still have zero knowledge
<gog> head empty only meow meow
<geist> well, frankly a gui toolkit is still pretty advanced
<gaxar77> Well, I'm not necessarily a total beginner.
<kof123> i think there is something about that object per word in my design patterns book
<geist> huh the buran wikipedia page makes you belive that either it was the most amazing thing ever, or... you can fill in the blanks
<gaxar77> I'm probably going to use Atl.
<gog> what's the smallest element of a gui?
<heat> quark et al probably
<gaxar77> A rectangle control?
<geist> hm, what is Atl?
<gog> no that's elementary particle physics
<gog> no, more abstract
<heat> triangle
<gog> the euclidian point
<gaxar77> Active Template Library. It's for building COM components.
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
* heat . o 0 {Trianglix time}
<gog> tranglix is the future
<gog> trianglix*
<zid> Sorry PC too new, who is this?
<gog> tranglix is my fork
<geist> I AM COMPUTAR
<zid> I have to install directx it's so new :(
<zid> geist: I got a new computer!
<geist> NEW COMPUTAR!
<heat> world renown symbologist robert langdon
<gog> he got a new computar!
<zid> It's worse than my last one! by a lot!
<zid> yay!
<geist> a new computer!
<geist> new old computer!
<zid> It's broken out the box this time
<zid> I don't even have to break it myself
<CompanionCube> gog: fully embrace modernity, embrace the 3-dimensional power of the pyramid!"
mavhq has joined #osdev
<gaxar77> Once, I was either following a tutorial or a chapter in a book, and I wrote an simple Direct 3D application that drew a bunch o rotating 3D triangles.
<heat> CompanionCube, WHAT
<heat> NO 3D HERE
<gaxar77> That's the furthest I got before getting lazy.
<heat> GO BACK TO YOUR GAME ENGINE CRAP, TRIANGLIX 2D ONLY BABY, YOU ONLY NEED 2 DIMENSIONS
<gaxar77> That wasn't the exercise.
<CompanionCube> ah, so the 3rd dimension is bloat?
<geist> yay rotating file viewer!
<morgan> for viewing rotating files
<geist> in 3d tianglix has pyramid poer
<gaxar77> Windows XP is said to have been the best Windows OS.
<bnchs> hi
<gaxar77> I like its appearance.
<moon-child> 3rd dimension is a scam made by lizard people
<heat> CompanionCube, the 3rd dimension is entirely redundant
<geist> a pyramid being a triangle with a flat arse
<bnchs> CompanionCube: can i fall in love with you
<CompanionCube> bnchs: yes
<CompanionCube> Results may vary.
<gaxar77> I miss the Luna theme.
<bnchs> i will not throw you down the aperture science incrinator
<geist> zid: so you reverted to an even older computer to get it done?
<gaxar77> Or XP theme.
<geist> heh the default XP theme. AKA Tellitubbies theme
<gaxar77> Why did they call Windows XP a fisher price OS?
<gog> oh damn i want some of that tubby custard
<geist> because it looks like it
<geist> i aways immediately reverted it to the win2k theme
<gog> same
<bnchs> i liked the windows xp theme
<bnchs> am i weird?
<CompanionCube> bnchs: approved.
<geist> the default windows had these big blue plastic looking things with rounded corners
<gog> i only got xp because i lost the key for my copy of 2k
<gaxar77> Why did Microsoft abandon the XP theme?
<geist> like it was big plastic toys so your kid doesn't poke their eye out
<geist> it was bold and stupid
<gog> it wasn't very attractive really
<gog> the icons were ok
<CompanionCube> the real bad theme was the windows 8 one
<gaxar77> I prefer that to Windows 10 and 11 look.
<heat> CompanionCube, w8 was fine
<heat> xp was always crap
<gog> i unironically like the new flat theme
<geist> yeah really it was the window decoratios that irked me on xp. and the blue theme being so bold. outside of that the icons and whantnot were fine
<heat> vista probably peak theming in the 2000s
<geist> which is why i always switched to win2k windows
<gog> i hated the start button
bgs has quit [Remote host closed the connection]
<gog> why did it have to be so green and obnoxious
<heat> everything was obnoxious, it was the 2000s
<gaxar77> XP was the first NT OS with Win 95 shell code.
<geist> yah i like that modern stuff has finally reverted back to fairly tasteful and minimal
<heat> windows 11 looks great
<heat> it also works great
<gog> it's fine i guess
<gog> i don't like the context menu
<geist> same on mac to be clear. early 2000s macosx was similarly gaudy
<geist> it was very candy looking, etc
<lav> I miss it tbh
<geist> it was just the trend of the times, design goes through these cycles
<gog> y'all remember when kde-look.org had like 3 different os x glassy themes
<heat> you know what's real bad?
<heat> default linux DE/toolkit theming
<geist> default gnome now
<heat> always looks like a really cheap knockoff
<heat> gnome is actually probably better than the other ones
<heat> at least better than KDE
<gaxar77> How does XWindows know what to draw? It received draw commands or bitmaps?
<geist> yah that's true, i haven't looked at most of the really bad ones
<heat> KDE's existance is basically to be a cheap Windows dwm.exe
<gaxar77> receives
<gog> i like plasma shut up
<geist> work is trying to force everyone to the new gnome ui, but i'm holding onto cinnamon with my cold dead hands
<gaxar77> Are Microkernels inherently slow?
<gog> yes
<gaxar77> There is no solution to the IPC problem?
<heat> geist, try gnome, its actually Good(tm)
<geist> heat: uh. no.
<gog> there are no solutions to any problems, only temporary fixes
<geist> it has a whole list of things that irk the fuck out of me, including the big one: lack of desktop icons
<geist> because 'nobody wants that'
<gaxar77> What do yo mean?
<heat> geist, lol
<gog> all problems are subsets of the real problem: that the universe we know will no longer exist one day
<geist> wasn't always the case, but theys eem to be doubling down on some particular design paradigm that i'm not down with
<heat> geist, just hope goobuntu doesn't cut cinnamon packages or whatever
<geist> yes, i know.
<heat> or glinux or whatever you're calling it these days
<geist> yep
<gog> glinux sounds naughty
<geist> the desktop is so important to me. i use the shit out of it as my medium term space
<CompanionCube> i mean, being a dwm.exe knockoff is better than being a knockoff of something worse, like GNOME is
<geist> icons organized by how my brain works, etc
<gaxar77> I read that you have to design an OS before beginning to code, and that no other way will work.
<geist> i store docs on it temporarily etc
<heat> CompanionCube, what's GNOME a knockoff of?
<gog> gaxar77: lmfao what
<CompanionCube> heat: mac?
<gog> you can just do it
<gog> if you're an amateur just do it
<heat> CompanionCube, hmmmmmmmmm. not quite IMO
<gaxar77> I have a book on UML.
<geist> gaxar77: quit reading about it, and do it
<geist> oh god, throw that immediatle in the trash
<gaxar77> I haven't finished it.
<geist> dont. stop and throw it away
<gaxar77> Why?
<heat> hahahahahahaha
<gog> UML is not going to help you write an OS
<heat> yes it is use UML
<heat> and all the design patterns
<heat> GoF, SOLID, whatever the fuck
<heat> use them all
<geist> oh heat, you silly person
<gog> i like me a good proxy object
<gog> oooh oooh
<gog> PIML
<CompanionCube> heat: and do it in Java/C#!
<gog> PIMPL
<heat> GRASP
<gaxar77> So what's wrong with UML?
<gog> nothing, only that it's not going to help you, a rank amateur, actually get to business writing anything resembling a kernel
<gog> UML is for large teams engineering large systems
<gog> and coordinating their work
<gaxar77> ok
<geist> right. ts a bunch of tools that software engineering uses when hypothetically dealing with thousands of people on a large project
<gaxar77> oh ok
<geist> it has very little to offer an indivudual
<gaxar77> oh ok
<CompanionCube> or for making fancy diagrams in your documentation, i guess?
<geist> and it has a bunch of nonsense that'll just slow you down if you try to use it yourself
<heat> UML and OOP design patterns are only good for real programmerssoftware engineers working on REEL BIZNESS PROGRAM
<gaxar77> I see.
<gog> gaxar77: find a hello world tutorial and figure out how to make interrupts fire or something
<gog> that's how i started
<geist> and somewhat more dangerously it can sort of lead you astray to what you should be doing right now
<gog> i now have what is almost nearly a kernel
<geist> which is getting hands dirty and learning
<geist> by *doing*
<geist> right exactly what gog suggests. get in there and start doing, then you'll start seeing what really matters and you'll have more knowledge to know what to learn next
<gaxar77> Shouldn't I learn a lot of assembly first?
<geist> dont think of any of this as a series of linear tasks
<geist> do A then B then C
<gog> you can learn some assembly as you go
<klys> if you read the wiki it'll teach you the tricky assembly you want to konw
<geist> it's all at the same time, you start learning assembly by writing assembly, reading it, etc
<gaxar77> ok
<heat> can you use UML with assembly?
<gog> sure
<gog> but why
<heat> because it's good
<geist> problem is when you get started you dont know what you dont know
<klys> user mode linux or unified markup language
<geist> so everything seems equally important
<gog> klys: latter
<gaxar77> OS Dev has a tutorial on writing a bootloader, loading a kernel, and switching to protected mode and stuff, right?
<geist> but once you start doing things you start to get an idea of what matters and what doesn't then you can focus on what matters
<gog> yes
<gog> osdev wiki has all of that
<geist> because it'll become more obvious over time what the next steps are
<gog> it's of varying quality and coherence
<heat> klys, unified markup linux
<klys> haha
<gaxar77> I've been having trouble getting MinGW.
<gog> and some of it is deliberately broken to prevent people from just copying it without understanding it
<gog> you don't need mingw
<gog> use clang
<heat> gog, yes haha deliberately
<gog> heat: :3
<gaxar77> Do the OS Dev tutorials take clang into account?
<gog> i mean the task switching code example is broken
<heat> COLON THREEEEEE
<gog> i know because i cribbed the whole thing and had to make it work
<gog> and i'm going to write my own at some point
<gog> yes colon three
<heat> hello im gog and welcome to my mtv crib
<gog> gaxar77: not all of them no
<gaxar77> oh
<gog> but the point is
<heat> do you have a pinball machine and arcade games in your womancave
<gog> that if you're going to come in here and talk about programming stuff we're eventually going to expect that you have something to show for it
<gog> heat: no i fucking wish
<heat> shouldn't have called mtv into your crib then
<heat> what a disappointment
<gaxar77> Well, I'm having a hard time staying focused.
<gog> i'm neurodivergent too
<gog> it's fine
<gog> you'll find something that holds your focus eventually
<gaxar77> I have schizophrenia and I probably need certain meds.
<gaxar77> I take antipsychotics.
<klys> gaxar77, you may need an outliner? http://hnb.sf.net
<bslsk05> ​redirect -> hnb.sourceforge.net: hnb - www
<gaxar77> What do I use this for?
<klys> keeping notes in editable hierarchies
<gaxar77> oh ok
<gaxar77> What's not fair is that I started a Java app that does that and someone told me it was probably a waste of time.
<gog> that's unfortunate
<gog> it's not a waste of time if you use it and like it
<klys> I would recommend keeping your code because it's yours and you may want to extend the functionality in the future
<gaxar77> ok
<gaxar77> I don't have the motivation to do that much coding.
<klys> shelf the old stuff and back2basics
<gog> one step at a time
<gaxar77> How do you make the ISO according to your own custom file system?
<klys> mkisofs xorriso or genisoimage have man pages you can read, you might want joliet rockridge and el torito
<gaxar77> ok thank you.
<gaxar77> Well, I think that I should probably still make the GUI toolkit first for an existing operating system.
<klys> are you looking for an operating system to hack? what features do you need?
<gog> i don't remember what i was working on last night
<gog> and it's already almost midnight :'(
<klys> # history | less
<gog> hm
<gog> maybe tomorrow when i'm more fresh
<gaxar77> Actually, I wanted to expand Minux with a runtime environment for apps, and GUI if it doesn't already have one.
<gaxar77> But I never used Minux..
<klys> how did you learn about minix? were you studying a book?
<gaxar77> I just watched a youtube video about it.
<gaxar77> I don't remember, but I was lead to a video.
<klys> if you read the wiki page for Minix you might be able to point out its salient qualities as you understand them
<gaxar77> Does Minix have a GUI?
wootehfoot has quit [Quit: Leaving]
<gaxar77> All I know about Minix is that it's a Microkernel.
<gog> xorg runs on minix
<gaxar77> What' that?
<klys> freedesktop
<gaxar77> oh.
<gaxar77> Is it a full desktop environment?
<gog> no
<klys> Xorg (or X.org or freedesktop.org or X11 or X11R6) is an X-licensed protocol-centric system for graphics communications and supports the use of terminals and third party window managers and compositing systems.
<gog> it's an implementation of X11
<gaxar77> That's what I thought it was.
<gaxar77> So, are there any GUI toolkits written for it?
<gog> many
<gaxar77> oh
<gaxar77> Are there any VMs written for Minux, like the .NET CLR?
<gaxar77> Minix
<gog> i mean you can try to get mono running on it
<gog> maybe asp.net core
<gog> that'd be a lot though
<gaxar77> I see.
<gaxar77> Well, there's nothing I can do with Minix then.
<CompanionCube> inb4 go retro and run Xaw/Motif on MINIX X11
<gog> lesstif
<klys> the java runtime environment and the common langauge runtime and the llvm are bytecode layers built on top of existing native systems.
<gaxar77> I know.
<kof123> twm. you may minimize programs to "desktop icons"
<heat> CompanionCube, cwm or death
bradd has joined #osdev
<klys> anymore qemu's tcg is also a popular bytecode commonly referred to a a virtual machine
<gaxar77> Is there actually an interrupt on Windows that creates a Window, raised by CreateWindowEx, or is that functionality implemented in user mode?
<gog> interrupts are captured by the io subsystem
<gog> the uh the HAL
<gog> it has nothing to do with window creation
<gaxar77> interrupts are used to provide functions to user mode apps, aren't they?
terminalpusher has quit [Remote host closed the connection]