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
sortie has joined #osdev
zid has quit [Quit: Client closed]
morgan has quit [Ping timeout: 246 seconds]
zid has joined #osdev
<gog> zid: good job
<zid> on pc brick?
<gog> no
<gog> on keyboard
<zid> well if I ever get a compute ragain I might look at it more
<zid> fun fact the audio on this netbook is super garbo, wow
<gog> audio on all books
<zid> yea most books only have diegetic music
morgan has joined #osdev
<gog> i like the full-calorie music myself
Arthuria has joined #osdev
bradd has quit [Ping timeout: 255 seconds]
Arthuria has quit [Remote host closed the connection]
gog has quit [Ping timeout: 246 seconds]
FreeFull has quit []
Arthuria has joined #osdev
Arthuria has quit [Remote host closed the connection]
Arthuria has joined #osdev
mctpyt has joined #osdev
Arthuria has quit [Remote host closed the connection]
SpikeHeron has quit [Quit: WeeChat 3.7.1]
Arthuria has joined #osdev
fedorafan has quit [Quit: Textual IRC Client: www.textualapp.com]
Arthuria has quit [Remote host closed the connection]
SpikeHeron has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
heat has quit [Ping timeout: 246 seconds]
fedorafan has joined #osdev
bradd has joined #osdev
fedorafansuper has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
bgs has joined #osdev
TkTech9 has joined #osdev
TkTech has quit [Read error: Connection reset by peer]
TkTech9 is now known as TkTech
mctpyt has quit [Ping timeout: 248 seconds]
levitating has quit [Ping timeout: 260 seconds]
levitating has joined #osdev
zaquest has joined #osdev
danilogondolfo has joined #osdev
nyah has joined #osdev
alpha2023 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
craigo has joined #osdev
gog has joined #osdev
gog has quit [Client Quit]
gog has joined #osdev
netbsduser` has quit [Remote host closed the connection]
netbsduser` has joined #osdev
Turn_Left has joined #osdev
<mrvn> I finally ordered my Rock5B. Nearly forgot I still had the coupon from when it was pre production.
Left_Turn has quit [Ping timeout: 248 seconds]
<mrvn> Now I really have to get my AArch64 port going. Running 32bit on a 16GB system becomes ridiculus.
dza has quit [Quit: ]
leitao has joined #osdev
dza has joined #osdev
GeDaMo has joined #osdev
Ram-Z has quit [Ping timeout: 255 seconds]
Ram-Z has joined #osdev
mrvn has quit [Read error: Connection reset by peer]
fedorafansuper has quit [Ping timeout: 248 seconds]
fedorafan has joined #osdev
dzwdz has quit [Ping timeout: 260 seconds]
dzwdz has joined #osdev
leitao has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 248 seconds]
mrvn has joined #osdev
bradd has quit [Ping timeout: 260 seconds]
sinvet__ has joined #osdev
sinvet__ is now known as shinbet
shinbet is now known as shinbeth
barnsy has left #osdev [#osdev]
<mrvn> "The computers don't run themselfg - at least until SkyNet goes active."
heat has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
fedorafan has joined #osdev
fedorafansuper has joined #osdev
fedorafan has quit [Ping timeout: 248 seconds]
dude12312414 has joined #osdev
nur has quit [Quit: Leaving]
slidercrank has quit [Ping timeout: 255 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
gog has quit [Quit: Konversation terminated!]
sauce has quit [Quit: sauce]
sauce has joined #osdev
nur has joined #osdev
zaquest has quit [Quit: Leaving]
joe9 has joined #osdev
<mjg> telling people they are wrong all day is exhausting
<mjg> lemme tell ya
<lav> have you considered just validating everyone's misconceptions?
<heat> mjg, not my fault
<mjg> not if i'm gonnna have to fix it later myself
<heat> after looking at that code for a few hours, i can safely say that sysctl in its BSD state is horrificly bad
<mjg> brah
<heat> truly designed by someone on crack cocaine
<mjg> 1. pick a file
<mjg> 2. claim crap
<mjg> 3. take a look and feel vindicated
<mjg> 3 step bsd classic
<mjg> of course geezers are gonna claim otherwise
<mjg> a lot of this geezer code is what webdevelopers to today
<mjg> for example gross negligence when it comes to big O matters
<heat> dude why is name2oid a sequence of oids onto itself ;_;
shinbeth has quit [Quit: Leaving]
<heat> why is this a useful feature?
<mjg> > geezer
<mjg> > webdev
<mjg> see, originally there was no way to translate names into anything -- it was all accessible only by hardcoded oids
<mjg> then someone figured it is time to whack that and add dynamic entries which are *named*
<mjg> but instead of doing it right, they added a hack on top of the existing lolterface
<mjg> you would call the kernel to translate the name to a bunch of oids
<mjg> and then you would do another syscall to use it
<heat> TIL linux actually had sysctl in its BSD-ish interface
<mjg> it got damage-controlled later by combining the 2 steps into one by making sysctlbyname into a syscall
<heat> it got poorly damage-controlled because sysctlbyname still looks up using oids instead of... calling a function?
<mjg> it was a step forward
<mjg> you can't *just* call the func as you need to copyin the name
<heat> ohno!
<heat> oh god what
<heat> why
<heat> they go through the trouble of resolving the whole MIB path just to discard the result
<mjg> who is discarding the result
<heat> whoever calls name2oid
<heat> kern___sysctlbyname at least
<heat> they do the CTL_SYSCTL_NAME2OID shit just to resolve the oids, instead of, erm, just using the result
<mjg> ?
<mjg> it does this shit to land in name2oid, which builds the lol oid array
<mjg> which is then used in userland_sysctl
<mjg> it is all crap of course
<heat> right, the lol oid array is lol
<mjg> not only it is lol, but ultimartely it is a bug
<mjg> in that time window you may end up with the oid whacked or reused
<mjg> but it is hard to fix that problem without revamping all this shit
<mjg> and not worth the effort since this was buggy since inception
<mjg> i mean great work geezers!
<heat> this is astonishingly bad
<mjg> majority of unix code is of this quality mate
<mjg> despite what certain people may like to claim
<heat> sorry, I do not see code this bad in Linux
<mjg> :DD
<mjg> lol
<mjg> i'm confident i gave examples
<mjg> lemme try again
<heat> despite you coming up with random examples of weird shit in Linux, it is not nearly this bad
<mjg> have you tried looking at linux?
<heat> yes
<heat> i have looked plenty at it
<heat> "lets do the big stupid in a heavily used system call" is not really in linux
<mjg> it is
<heat> where
<mjg> fstat
<mjg> i comlpained about it here
<heat> AT_EMPTY_PATH? fair, but we do not know why exactly they want ""
<mjg> i found an fsdevel thread
<mjg> they concluded checking for "" is cheap bro so not a problem
<heat> that is very stupid
<mjg> and that's part of how the syscall ended up with less than half of original perf
<mjg> well there you go
<mjg> big stupid in a heavily used syscall in linux
<mjg> would you like other examples
<heat> yes
<mjg> getrlimit
<mjg> originally it was just reading 2 fields and leaving the kernel, nice and easy
<mjg> then someoen added prlimit which takes arbitrary task id
<mjg> glibc switched to using it instead of getrlimit
<mjg> and that syscall, apart from funny atomics, was taking tasklist_lock
<mjg> it was like that for about 10 years
<mjg> apparently a year or two ago someone had mercy and fixed it
<mjg> and that's perf only talk, there is correctness talk too
<mjg> see the mount --bind debacle
<mjg> my personal favourite
<mjg> the syscall literally *ignores* all mount flags when passed --bind without 'update'
<mjg> so in particular mount --bind -o ro /foo /bar still mounts read-write
<mjg> in true gnu/linux fashion this got "worked around" in userspace
<mjg> mount("/tmp/foo", "/tmp/bar", 0x55e4dc6d6e20, MS_RDONLY|MS_BIND, NULL) = 0
<mjg> mount("none", "/tmp/bar", NULL, MS_RDONLY|MS_REMOUNT|MS_BIND, NULL) = 0
<mjg> and so on
<mjg> all in all, OL
<mjg> LOL
joe9 has quit [Quit: leaving]
<heat> holding tasklist_lock there seems OK to me
<heat> not the greatest solution but it's a rwlock
<mjg> ? :D
<mjg> i failed
<mjg> i explained numerous times finegrained locking does not scale
<mjg> and htis one is *global*
<mjg> so in particular someone doing getrlimit was completely avoidably blocking thread and proc creation/destruction
<mjg> and getrlimit happens to be done for every binary exec at least once
<heat> yes, i'm not saying this is a great solution
<heat> but it does work
<mjg> you could say the same about he above sysctl code
<mjg> that's some webdev vibes right here dawg
<heat> the problem with prlimit64 is simply an obscure logic error
<heat> the problem with sysctl is that someone chugged 2 bottles of vodka and then designed a "great new idea maaan" on the back of a napkin
<mjg> that's not an obscure logic error
xvmt has quit [Remote host closed the connection]
<mjg> it is a wtf code which should have never looked like that
<mjg> akin to part of the sysctl loller of just doing O(n) scans all over
<mjg> cause youe know, not a great solution maybe, but it does work!
<mjg> maybe you need to mess with multicore for a week to get the appreication for a pain of a global lock
<mjg> past laptop scale
<mjg> any comments on the --bind situation dawg :]
<heat> no
<heat> your standards seem to be much higher when talking about linux
<heat> the prlimit stuff does not seem as clear cut as you make it out to be
<mjg> wtf
<mjg> if osmething like this was in freebsd i would have the same commentary
<mjg> and it is a massive loller
<heat> the prlimit stuff is all about task_struct lifetimes and signal groups and all that crap
<kof123> whatever ye --bind conway's law
* kof123 ducks to avoid "that's a too large application"
<mjg> heat: it is used as getrlimit
<heat> they either made a mistake writing and reviewing the patch or things changed over time
<heat> mjg, yes, that's not the point
<heat> if you go way back to early 2.6.x times, getrlimit did not have it but setrlimit did
<heat> then setrlimit lost the lock, then prlimit popped up with the lock
<heat> and all existing SYS_{get, set}rlimit got redirected to do_prlimit
<mjg> you could litrally make equivalent claims about sysctl
<heat> I don't know enough about this area of the kernel to tell you where the mistake actually is
<mjg> "ye all the linear scans... bam fixed bro therefore not clear cut garbage"
<mjg> anyhow this is clearly not getting anywhere so how about we agree to disagree
<heat> that's fine
<heat> again, i'm not saying linux does not have some stupid, but it's really not widespread
<heat> versus "decipher the runes of ye olde unix geezers and only then may you understand wtf is actually going on"
<heat> I took some hours of hacking in kern_sysctl.c to realize the result is actually absolutely not used
<bslsk05> ​grok.dragonflybsd.org: kern_sysctl.c (revision f394d9c0) - OpenGrok cross reference for /freebsd/sys/kern/kern_sysctl.c
<heat> hint: absolutely fucking nowhere
<heat> and why? there's no good reason for this shit. absolutely none
<heat> things were a function call away from being simpler
<mjg> :]
<mjg> i argued this should be sorted out in initital submission, but the patch author was showing resistance and the patch was a tsep forward anyway
<mjg> so i accepted
<mjg> it was the one to move sysctlbyname into the kernel
<heat> there was literally no resistance
<heat> he just ignored your ass
<mjg> bruh
<mjg> plz
<heat> (looking at https://reviews.freebsd.org/D17282 only)
<bslsk05> ​reviews.freebsd.org: ⚙ D17282 new syscall: __sysctlbyname
<mjg> you must have missed private convos
<heat> "OK, i'll rewrite this." LIE
<mjg> aight done shitting on irc
<mjg> time to order some pizza and write the flamey emails
<heat> literally cannot see why anyone would resist
<heat> "can't bother, might do it l8er, idunno"
<heat> mjg, also please explain why these system calls have leading underscores
<mjg> bsd
<heat> kern___sysctlbyname reads stupid and sounds stupid
<mjg> you know what alos sounds stupid
<heat> is this bsd convention? do other system calls have this?
<mjg> newfstatat
<mjg> replaced with statx
<heat> oh absolutely
<mjg> why not newerfstatat
<heat> should've been fstatat2
<mjg> fstatatng__next
<heat> fstatatEx
<mjg> burp
<mjg> rly tho, i'm back to actual work
<mjg> fuck off until further notice
<heat> there are large problems with linux API design and how everyone is inconsistent and can't figure out how they want to do flags, extensibility
fedorafansuper has quit [Ping timeout: 246 seconds]
Turn_Left has joined #osdev
fedorafan has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
Brnocrist has joined #osdev
* sham1 quietly pulls up Linus' "shut the fuck up Mauro"-email
<sham1> So yeah, can't change things because backwards compatibility
* kof123 utters dark dayings of c89, A measure of octet for a byte, and three measures of bytes for a DSP char
* kof123 makes some trigraphs in the sand with a stick
<heat> mjg, linus is getting sentimental about ia64
<heat> i don't think it's going anywhere
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
knusbaum has joined #osdev
divine has quit [Quit: Lost terminal]
Guest693 has quit [Remote host closed the connection]
alpha2023 has joined #osdev
<moon-child> https://godbolt.org/z/4bEd1EfxM this is rather cute
<bslsk05> ​godbolt.org: Compiler Explorer
<moon-child> even though they couldn't inline f, they both figured out the range of values with which it can be called
<heat> hah that's pretty cool
<heat> doing a lea there is such a compiler move too
bch has joined #osdev
alpha2023 has quit [Client Quit]
<mrvn> How is that correct? What if another compilation unit calls f(5)?
<moon-child> it's static
<mrvn> ups, right.
<mrvn> I would say clangs version is an optimizer fail though
<moon-child> can also -fwhole-program with gcc (though not clang, apparently)
<moon-child> mrvn: it is, but it doesn't demonstrate a structural problem the way eg https://godbolt.org/z/r841WY6ej does
<bslsk05> ​godbolt.org: Compiler Explorer
<moon-child> just a missing or broken late-stage peephole
bch has quit [Ping timeout: 255 seconds]
bch has joined #osdev
alpha2023 has joined #osdev
gog has joined #osdev
xvmt has joined #osdev
<mrvn> moon-child: it's only valid for f(1) and f(2) and for those cases it's bad code.
<moon-child> it's bad code, but it doesn't demonstrate a structural problem, just a missing or broken late-stage peephole
<mrvn> moon-child: what's the fail on your last example?
<moon-child> (also: it's valid for f(3) too!)
<mrvn> f(3) gives 3, not 4.
<moon-child> oh, yes, I got confused with the gcc thing for a second
<mrvn> yeah, gcc is correct for 1, 2, 3
<mrvn> clang misses that (17+18) add+mov can be done with lea like gcc does. But does it make a difference? My guess would be gcc code is faster on some cpus and clang code on others.
<mrvn> ARM code looks even nicer.
<mrvn> Hmm, question: In g() why isn't "int r = x + y;" moved before the "eff();"?
<moon-child> I would expect gcc's code to always be faster
<moon-child> mrvn: what I'm looking for here is not necessarily for the addition to be performed before the function call
<mrvn> moon-child: isn't the mov fused in microcode?
<moon-child> as doing that right in general requires finicky heuristics that aren't reflected in this small example
<moon-child> but the fact that it can tell the difference f and g at all is problematic
<moon-child> because it demonstrates that the ir is baking in too many constraints, which don't appear in the source
<moon-child> (in this case, basic blocks instead of something purely graphical)
<mrvn> In SSA f and g should be the same graph
<moon-child> ssa doesn't imply graphical
<moon-child> I was informed recently that the instructions within a basic block are sequential
<mrvn> right. And that will be the problem why f and g give different code.
<moon-child> if you don't sequence everything, then you need explicit control edges. That's ideal. But without control edges, you need some way to ensure that eg if I say eff1(); eff2(), eff1 and eff2 are called in order
<moon-child> (are sequential--in llvm and gcc; obviously you could do something different)
<mrvn> eff1 and eff2 have unknown side effects so they must have a control edge. But both gcc and clang fail to notice that local variables can't be affected by function calls unless you pass their address. I noticed that a few times.
<mrvn> A function call is somehow a hard barrier. They can do anything so we can't move stuff across it.
<mrvn> https://godbolt.org/z/zoEWeWx91 Notice that when the compiler can look into the function it figures out that x/y won't be touched
<bslsk05> ​godbolt.org: Compiler Explorer
tomaw| has joined #osdev
<mrvn> same with noinline attribute
craigo has quit [Ping timeout: 248 seconds]
nur has quit [Remote host closed the connection]
<mrvn> Oh wait, this is odd. Only on ARM does gcc put the add before the eff(). But they all use the fact that eff won't trash registers it cares about.
bch has quit [Ping timeout: 246 seconds]
<mrvn> big fail on clang.
<bslsk05> ​godbolt.org: Compiler Explorer
<mrvn> Even better would be to put the f/g symbols before eff with "add r0, r0, r1" and let it fall through.
<mrvn> Would save 7 opcodes.
tomaw has quit [Ping timeout: 624 seconds]
tomaw| is now known as tomaw
nur has joined #osdev
<zid> is that hit rapper and artist, dababy!?
<heat> yes
<zid> Oh no just heat
<zid> do I have an 1150 backplate?
<zid> quicker heat, I'm busy
<heat> erm, maybe
<bslsk05> ​coolermaster.egnyte.com: Egnyte
<gog> hi
<moon-child> sup
<zid> oh this isn't the pdf I need
<zid> yea found it, I need a backplate and it should be in the box, k
<mrvn> zid: are those solid copper heat pipes or hollow with some magic fluid?
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
<zid> gog: Can you take both mobos out of their respective cases for me? I'm tired and hungry already
<gog> yes be right over
<zid> thanks babe
<gog> :*
<zid> not sure which case to use, mine which has no buttons or anything, or the one its in which I can't mount drives in..
<zid> saves moving my drives over if I use mine, but I'll have to remove my mobo and stuff
<zid> so I am sat here smoking a cigarette instead, now that the stress of not having a computer is gone
<gog> i have not had a cigarette in 14 days
<zid> You broke or just done with em?
<gog> trying to be done with em
<zid> if you made it past 24 hours you already are done with em
<gog> that's not true
<zid> the rest is just conditioning
<gog> i went 3 months without nicotine and then one night of drinking and i'm smoking a pack a day again
<zid> yea same
<zid> I quit at random once, just randomly started again too
<zid> imo it's important to already consider your self an ex-smoker
<gog> i needed a lighter for other smoking materials last night and it took every ounce of self control not to say "oh and pack of marb lights too please"
<zid> smoking is 99% mental
<gog> i know
<gog> i know that the small pleasure i get from it is nothing compared to how shit i'm going to feel after
<zid> I mean it literally, the actual high from and dependance on nicotine is really tiny
<gog> i know all of that
<zid> people smoke because they convince themeselves they're expensively poisoning themselves for fun, or lowers stress, or whatever
<zid> none of which is true
<zid> so just consider yourself an ex-smoker and feel happy about it
<gog> but smoking makes you look cool and rebellious
<zid> Yea that's the one aspect, it makes me look incredibly daring
<sham1> Ew
<gog> but you are right
<gog> i need to be done with it forever
<zid> I don't smoke real cigarettes though so I look like a hobo instead
<moon-child> no gog you're thinking of meth
demindiro has joined #osdev
<zid> moonchild I've never tried meth, what's it like?
<zid> Don't pretend you don't know with a nick like that
<heat> gog, congrats gog
<heat> keep fighting
<gog> :<
<gog> but i want one
<heat> no
<gog> but i just want one and that's it forever i promise pinky swear cross my heart hope to die
<heat> i dunno how it is in iceland but here the packs have disgusting fucking pics of fucked up lungs and throats
<heat> so think of that
<gog> i already have respiratory problems for various reasons
<moon-child> smokers don't get pets
<gog> so like
<gog> i need to stop
<gog> and stay done
<moon-child> only ex smokers do
SpikeHeron has quit [Quit: WeeChat 3.8]
<heat> look at this shit gog
<heat> you do not want to be this
<moon-child> I heard when they put pictures like that on cigarette boxes, they started selling better
<heat> what
<heat> do they start attracting the people that actively want to die
<moon-child> I think it was just that it drew attention to itself
<moon-child> but don't remember
<gog> i no longer actively want to die. i want to write operateng systen enviroment
dude12312414 has joined #osdev
<lav> i'm proud of ya gog
<moon-child> how is operaten systen forned
<gog> self-loathing and masochism
wootehfoot has joined #osdev
<mrvn> AttributeError: 'robot' object has no attribute 'loathing'
<gog> robot.__class__.__dict__['loathing'] = robot;
SpikeHeron has joined #osdev
wootehfoot has quit [Read error: Connection reset by peer]
heat has quit [Remote host closed the connection]
heat has joined #osdev
<lav> ughh rewriting my physical memory allocator for the third time
<mrvn> lav: how hard is it to implement a linked list?
<lav> not that hard but I went in knowing zilch about memory management lol
zid has quit [Quit: Client closed]
bgs has quit [Remote host closed the connection]
bradd 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!]
elastic_dog has quit [Remote host closed the connection]
elastic_dog has joined #osdev
zid has joined #osdev
<zid> Hello.
<zid> Good news, I got the machine working, it booted succesfully into my windows install.
<zid> Then windows installed all the correct usb drivers, and bricked itself as now I can no longer type :D
<zid> How the fuck do I fix that I wonder
<zid> 10ec:8168 is the missing ethernet driver at least
<zid> H87-HD3
fedorafan has quit [Ping timeout: 252 seconds]
<zid> which I have an exe for that I can't do anything with.. sigh
<gog> oops
<gog> safe mode safe mode
<gog> with networking
<zid> doesn't safe mode, usb still no work
<zid> networking doesn't work because no driver
<gog> oh shit
<zid> driver comes in .exe and I can't do anything wth ti from livecd
<zid> need someone to run .exe and let it extract itself
<gog> heh
<zid> if it gets network access it might fix itself
<gog> do you have a linux nearby
<zid> I am on livecd, no wine
<gog> i think you can use cabextract on those kinds of files
fedorafan has joined #osdev
<zid> or cabextract
<zid> friend would do it but I can't discord either
<gog> can you install it on tmpfs
<zid> I can do whatever, if I can start it off
<CompanionCube> install wine?
<gog> no cabextract
<zid> if there's a cabextract binary that's easy to type the url for I can wget it
<zid> any chance you could just wine it and send me the .sys and .inf? :>
<CompanionCube> zid: what os is your livecd
<gog> i'll cabextract it and get the sys and inf
<zid> h86-hd3 realtek lan w7 64
<zid> /root/mb_driver_lan_realtek_8series_win7.exe
<zid> is called that
<zid> even if I can't fix the usb magically like this I can at least get my network shares online and grab the w7 iso off it :P
gaxar77 has joined #osdev
<zid> the only usb I have is running the livecd atm
<gaxar77> Do I need a special compiler to do OS Dev?
<heat> geist, honey, new riscv spec just dropped!!1!1
<geist> oh yeah?
<zid> what's irssi syntax for second server, /connect +blah right?
<heat> riscv AIA (advanced interrupt architecture)
<geist> nice, so it got ratified, or just a new rev?
<mrvn> zid: no +
<heat> it has the APLIC (advanced PLIC), IOMMU stuff, MSI
<geist> yah qemu also has some sort of support for it, FWIW
<heat> I think it got ratified
<geist> presumably where they're prototyping it
<heat> patches are dropping in the lkml
<demindiro> ooh, RISC-V finally supports MSI?
<heat> also, found this cool podcast by jon masters on the linux kernel: https://kernelpodcast.org/
<bslsk05> ​kernelpodcast.org: Linux Kernel Podcast – Periodic summary of Linux Kernel Development
<heat> demindiro, yeah
<gaxar77> Is knowing assembly, C, and the x86-64 architecture enough for doing OS development?
<geist> yeah PLIC is way too simple, basically my-first-interrupt-controller
<geist> has a bunch of fairly large mistakes basically, so looks like APLIC and whatnot is a real fix for it
<geist> though i haven't had time to sit down and grok it
<heat> gaxar77, ok so answer to your first question: kinda
<gog> ah boo it's a 7zip sfx
<gog> how do i extract that on linux
<heat> you should use a gcc cross compiler to whatever architecture you want
<gog> i should just use wine
<heat> (usually i686-elf, x86_64-elf, aarch64-elf, riscv64-elf, etc)
<heat> gaxar77, answer to your second question: yes
<gaxar77> So, do I have to go through the steps of building a cross compiler?
<zid> it probably pops an extractor up gog, then just don't click anything and rob its extracted files
<zid> that's what I do
<gaxar77> Okay, so I just have to learn assembly and Intel.
<gog> it's not doing anything
<gog> :thonk:
<heat> sidenote: you can also use clang, clang is a cross-compiler by nature, but you will not have some stuff you may want
<zid> what about google searching for a different package
<zid> web barely works in links I am struggle
<gog> yessss
<geist> heat: FWIW they haven't yet generated an official 1.0 on the github repo at least
<bslsk05> ​github.com: Releases · riscv/riscv-aia · GitHub
<gaxar77> How many developers built Windows 95?
<heat> many
<moon-child> at least 5
<moon-child> possibly as many as 95
<zid> realtek's website has a whole shit load of things to download but idk which is right
<gaxar77> lol
<geist> joke answerws aside i'm sure the win95 team was probably at least hundreds at that point
<gog> oh 7z on linux works on this neat
<geist> the number of software engineers that built it, dunno
<zid> oh we good then?
<heat> geist, yeah but they are almost all frozen. and fwiw I think jon explicitly said it was ratified, but he's not a riscv guy so he may be wrong I guess
<gaxar77> So, how do I start an OS Dev team? I want to begin writing an OS once I have learned enough, and then once it has grown somewhat big, invite other developers to help me build it.
<geist> yah probably just defacto frozen but someone hasn't flipped the switch yet
<gaxar77> because I cannot build an OS like Windows on my own...
<heat> gaxar77, that's not happening
<gaxar77> even if I had all that knowledge.
<gaxar77> What do you mean?
<heat> 1) you are not building Windows 2) you are not making a team
<gog> zid i got it
<heat> none of those goals are realistic
<zid> huzzah
<gog> which ones you need?
<demindiro> gaxar77: people will join if they think it is worth it, the chance of which is very, very tiny
<gog> w7 64
<zid> whatever looks like it's for w7/64, if you can read .inf files then 10ec:8168
<gaxar77> Well, it could just be a fun project to build something better.
<heat> but no one is joining you
<heat> keep that in mind
<gaxar77> why?
<heat> because everyone here wants to build their own
<zid> it's about as likely to happen as 140 people deciding to help you build your house
<zid> do all your plumbing and stuff for free
<heat> having 2 or 3 people contribute once to the same project is already a major win
<zid> a friend comes over to help, at best
<gog> zid how do i get this file to you now
<zid> That is a question isn't it
<gaxar77> I'm talking about if I also worked on the OS.
<zid> best for me is wget
<gaxar77> And made a simple kernel to start with.
<heat> sortie has worked on his incredibly successful and complete OS since 2011 and only has 3 people that can actually approve a MR (probably some 10 individual contributors over these 12 years). he does development mostly on his own
<mjg> windows 95?
<zid> if you can figure out how to host it somewhere
<gog> yeh doing that
<heat> hell geist has a kernel that is *actually used* IRL and most of the core code is still probably mostly his
<demindiro> gaxar77: consider the viewpoint of other people, why would they *want* to work with you on your OS?
<heat> getting contributors is very very very hard
<mjg> i think there were attempts at people teaming up
<mjg> to write an os
<gaxar77> because one person can't build one like Windows.
<mjg> major shitshows
<heat> mjg, yep, and flopped
<heat> gaxar77, no one is building Windows pal
<demindiro> But then why *your* OS and not say, another OS that already exists?
<heat> Linux people (many of them on a payroll) can't build windows (they fail massively)
<heat> BSD people can't build Windows (they fail ultra-massively)
<mjg> bro bsd people don't even use windows
<heat> that's true, bsd people use Linux
<mjg> correct
<gaxar77> I figure the vision for the project would attract people, if I could just come up with something cool enough.
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<kof123> "it's about as likely to happen as 140 people deciding to help you build your house" I agree with zid, you must become amish, its the only way
<mjg> gaxar77: no mate, the reality works differently
<kof123> and travel back in time to 1700s -- john titor can help with this
<mjg> does not wiki talk about this?
<kof123> sincerely, kof123
<gaxar77> I don't know if this is answered on OSDev, as I have never found the article, but always wondered about this: How do I store a kernel and other files in an ISO conforming to a file system? Is there a tool on Windows I can use?
<gaxar77> Actually, I must admit that OS Development is intimidating to me, as some basic tasks seem like a lot of work.
<gaxar77> Such as making sure the code is loaded at the right address.
<gaxar77> Well, that's not a lot of work, but I already forgot how to do it. (I don't know assembly langage.)
zid has quit [Quit: Lost terminal]
demindiro has quit [Quit: Client closed]
demindiro has joined #osdev
<gaxar77> Last time I mentioned Cosmos here I was told it was a bad idea. Is anyone here familiar with Cosmos?
<gog> oh yeah i read about that
<gaxar77> Should I use it?
<gog> i was thinking about trying to write a proof of concept in c# but then i saw how much work it'd be lol
<heat> yes, bad idea
<gog> idk go ahead if you want
<gaxar77> Or should I just learn assembly and Intel architecture?
<demindiro> You will need to know assembly sooner or later
<heat> yes
<gog> idk find some starting point and go from there
<gog> assembly is a good start
<heat> I don't know how much more bad idea you can go from "operating system kit written in C#"
<gog> OperatingSystemFactory
<gaxar77> Well, I was never able to learn assembly as a teenager, even though I learned C++ then.
<heat> oh sorry, "written in C# for Visual Studio 2022"
<gaxar77> But writing assembly code doesn't seem difficult.
<gog> it's more tedious and annoying
<gog> and easy to fuck up
<gaxar77> I mean writing things like loops and stuff (doing it my own way) seems easy.
<gog> it's not hard, but it takes a lot of thought and no small amount of "fuck around find out"
<gaxar77> I see,
<demindiro> If you're not familiar with assembly yet I'd start with trying to get some assembly to work in userspace. It's a lot easier to debug at least.
<gog> yes
<gaxar77> Yeah.
<gog> you can write assembly templates with clang and gcc using __asm__
<gaxar77> In OS Dev, do I need to write a lot of assembly?
<heat> no
<gog> i have asome
<gog> it's not a "lot"
<gaxar77> ok
<gog> i'm working on minimizing what assembly i do have
<gog> only the essential
<gog> the less you write by hand the less you gotta glue to a higher-level language somehow
<gaxar77> Do you have to reimplement the standard library?
<gog> you don't have to
<heat> yes and no
<gog> like
<gog> it's a good idea
<demindiro> Also: do *not* copy assembly code from someone else, especially if you don't fully understand it.
<gog> because the idioms that the compilier is going to recognize and optimize are based on the standard
<demindiro> Otherwise you will have a very bad time debugging it
<gog> but you can also bring in an existing implementation of the standard library or some subset of it
<gog> subset is best in kernel
<gaxar77> Can I build a GUI OS given enough time?
<gog> yes
<mrvn> gaxar77: don't write assembler. At most write a few inline assembler macros and the bootstrap code. Even there you can write stuff in C and let the compiler output the assembler as a starting point.
<gog> we have a few people here who have more or less written their won OS with GUI
<gaxar77> ok.
<mrvn> you can take that part from the wiki too.
<gaxar77> Well, I need to learn assembly first. So I think I'll practice assembly in user mode code for a while.
<heat> ok
<gog> i'm going to write a very simple GUI at some point
<gaxar77> I want to build a good OS.
<gaxar77> But I am only one person.
<heat> yeah
<gaxar77> So I probably cannot.
<gog> set your eyes on "one that you can play with"
<gog> nothing is ever going to be as good as some firm with bottomless pits of money can engineer
<heat> wise-gal gog
<gog> i work for a company with a modest supply of money and the best we can do is a web site whose existing code base has made me cry several times
<heat> deep
<gog> yes
<gaxar77> I see.
<heat> i guarantee you my code is 100% all good fuck everyone else
<gog> your code is the best heat
<heat> no joke
<gaxar77> lol
<gog> don't let hte haters bring you down
<gog> i mean i've seen your code it's better than mine
<heat> i am legitimately convinced that my code is overall quite good
<gog> it very well may be
<gog> but i'm not actually a very good progrmamer and don't know what good code looks like
<gog> so i can't judge
<heat> it looks like mine
<gog> lmao
<mrvn> gog: like a locomotive
<demindiro> I hope that everyone considers most their code to be good.
<gaxar77> The problem is, I haven't even built a compiler yet, and I will need to build a user-mode compiler to run on the OS I want to write.
<demindiro> Otherwise that'd imply intentionally doing a sloppy job
<gog> i have decent and clever code
<heat> gaxar77, you're so far from that
<gaxar77> I'm still trying to learn compiler construction.
<sham1> Code isn't good. Code is adequate
<heat> you don't need to write your own compiler?
<heat> actually, don't write your own compiler, please
<demindiro> gaxar77: cross-compiler = existing compiler but configured for your own OS
<gaxar77> Ok.
<gog> the problem is often less my code than it is the code i depend on
<gaxar77> So I would just need to write a back-end?
<gaxar77> Wait...
<gaxar77> No...
<gaxar77> it would just be intel.
<gog> you don't need to write anything just use a compiler that exists
<demindiro> gaxar77: https://wiki.osdev.org/GCC_Cross-Compiler read this
<bslsk05> ​wiki.osdev.org: GCC Cross-Compiler - OSDev Wiki
<gog> compilers are more complicated than a kernel in many ways
<gaxar77> oh I didn't know that.
<gog> as time goes on and the language changes the compiler has to keep working
<gaxar77> I wanted to write an execution engine on top of my OS to run most of the user-mode programs.
<kof123> achievement: the birth of disgust (paraphrase, devils dictionary). that is just to say, it is not necessarily a bad thing to look back on prior-<insert you here>'s old code with disgust. call it fission :D
<gog> if you look at old code and go "eeehhhh no" it means you've grown as a programmer
<kof123> except heat is already perfect, so doesn't have that problem
<gog> yes
<gog> heat is the most perfect boy
<mrvn> but he wants to be a real boy
<heat> im a special boy
<kof123> well, he needs to start lying more then
<kof123> its a process
<kof123> island of misfit oses
<gog> we'll never work on an OS together, just rubber duck debug for one another
<gaxar77> Actually, can someone who wrote a cool GUI OS give me a link to their repository so I can look at it?
<gog> this is a support group for people with a very peculiar obsession
<heat> gog, work on my os
<gog> https://github.com/klange/toaruos this is the repo of one of our users
<bslsk05> ​klange/toaruos - A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc. (459 forks/5419 stargazers/NCSA)
<demindiro> We should take everyone's OS and smash them into one big BorgOS
<gog> heat: ok as soon as i'm done with mine
<gog> demindiro: your syntactic and technological distinctiveness will be combined with our own???
<gog> sign me up
<gaxar77> Will this run in VMWare Workstation Player?
<heat> gog, send me pull request
<heat> i take sophia
<heat> i'll treat her well i promise
<gog> i shouldn't poke fun at you, you're the only other person to ever have contributed :P
<gog> i trust you to make your own branch
<heat> damn right 💯💯 real ones help friends out
<gog> :>
<heat> actually your code is pretty decent tho
<sham1> Programming language design might be the most difficult part of doing language stuff.
<heat> the compiler is also pretty hard
<sham1> Like compilers aren't trivial, but I'd say that the design is more difficult in terms of the process
<heat> now that you can shit out llvm bytecode and get some good codegen it's easier, but building a good frontend is still hard
<gaxar77> That OS looks cool.
<heat> hehe funny sex number ^ funny weed number
<klange> funny weed number? that's my birthday you degenerate
<gaxar77> But why does is resize Window contents when resizing the window?
<heat> 😭
<klange> because that's a feature available in VMWare Workstation (and also VirtualBox, completely different interface - implemented that one first)
<gaxar77> What do you mean?
<gog> haha 69**420
<klange> what do *you* mean?
<gaxar77> I wasn't making fun of the OS..
<heat> gog: gog
<gog> heat: heat'
<gaxar77> I was just wondering if the OS is retaining the graphics drawn on the Window while it is being resized.
<heat> probably
<gog> that's how i'd do it
<heat> no one does window resizing quite as badly as late 90s early 2000s windows
<sham1> The important question is: 69**420 <=> 420**69
<gaxar77> Maybe it's just a cool animation feature.
<sham1> Bah
<sham1> I hate markdown sometimes
<klange> Prior to the most recent release, ToaruOS only had lazy resize, and over the years went through several different approaches.
<gaxar77> oh
<sham1> 69\*\*420 <=> 420\*\*69
<gaxar77> How long did it take to write that OS?
<klange> Originally I did box resize, where you draw a box representing what the new size of the window will be, but it was always a sub-par experience especially since I do client-side window decorations and the border around the window would make the box size confusing.
<heat> i think toaru started in 2011 too?
<klange> So eventually I switched to stretching, where the window is scaled to its new size - and for a lot of windows this looks very close to what the window will actually render as when the resize finishes, plus it's a really cute compositor effect.
<gaxar77> I see.
<klange> Now I have semi-lazy. Resize events are sent as you move the mouse, and if the application is too slow to respond to them it will do the stretchy thing.
<gaxar77> Will I have to write a lot of device drivers?
<klange> (or if the application refuses to accept a size, such as if you try to make the window too small, it'll start to squish and then bounce back when you release.)
<gaxar77> To get my OS to run?
<gaxar77> When I write one.
<klange> To get it to run, no. To get it to support functionality on a lot of devices, maybe.
<gog> target an emulator and write drivers for that
<gaxar77> Ok
<gog> or maybe a computer you already own
<gog> it'll be easier to start on an emulator because you can attach a debugger to that easily
<gaxar77> Well, I don't want to accidently erase everything.
<bslsk05> ​github.com: GitHub - klange/toaruos at ecd4fe2bc170b01ad700ff76c16da96993805355
<gog> ideally the computer you run your OS on is only for that
<heat> "I'm writing an OS because I'm bored and want a massive project to suck up the little pieces of my time for the next few years."
<gaxar77> ok
<heat> old klange was based and accurate
<gorgonical> The gic is making me sad today
<gog> i have a beat up old netbook i'm gonna use for that
<demindiro> "next few years"
<demindiro> Quite an understatement
<klange> "next few years" nope completely off base on that o ne
<gog> the gic makes a lot of people sad
<gorgonical> the timer isn't firing and there are so many interlocking registers I haven't the first clue why lol
<klange> ToaruOS celebrated its 12th birthday last month.
<gog> happy birthday toaruos!
<gog> zid hasn't come back
<gog> i don't think the driver i sent him worked
<gaxar77> Maybe I will stick to working on getting some decently sized .NET applications written in C#, for a while.
<gaxar77> because I haven't really done much over the past several years.
<gog> my almost-kernel is the largest application i've ever developed (myself)
<klange> sham1: 420**69 is a much smaller number; 69**420 is 773 digits, 420**69 is 182 digits.
<gaxar77> Well, I need to be comfortable writing some decent apps first, before attempting to write an OS.
<mrvn> 10097201832880355573875790863214833226896186369872326994250398570376877433686009543845316266007917815719968899072000000000000000000000000000000000000000000000000000000000000000000000
<gaxar77> I'm probably not skilled enough to write an OS right now.
<klange> If you want to hack on stuff with an aim toward writing an OS in the future, I would choose a different environment than writing .NET applications.
<gaxar77> like what?
<gaxar77> WxWidgets?
<gaxar77> In C++?
<gog> c++ is possible with restrictions
<gaxar77> Like what?
<gog> no rtti, no exceptions
<gaxar77> What is rtti?
<mrvn> they are totaly possible, just take some work.
<gog> i mean yeah
<mrvn> wether they are a good idea I leave to the user to judge
* gog shrug
<demindiro> For apps with the aim to do OSDev later I'd go for something that needs to run fast, e.g. a 2D or 3D renderer, an interpreter, ...
<demindiro> You'll learn to read assembly in the process, probably
<gog> i think if you limit the number of ones that can propagate all the way up the call stack
<gaxar77> I only know most of the original C++ language, not including the standard libraries.
<gog> it might be fine
<gorgonical> demindiro: at this point I can read three assemblies and that was on accident
<gaxar77> I want to build GUI applications.
<gaxar77> Desktop apps.
<gog> best work on an existing system
<klange> imma be real with you, I can manage to produce three assemblies, but *read* them? hell no
<gaxar77> But if do it in C++, I don't know if I should use WinUI 3 or WINAPI.
<gog> developing your own OS is like inventing the universe to make an apple pie from scratch
<klange> You should use Qt.
<gog> i like Qt
<gaxar77> I don't have enough disk space.
<gaxar77> I don't think.
<heat> UWP guys!!!!!!111!!!!1111111111
<gaxar77> Well, I have a SSD.
<gog> i'm a qt
<gaxar77> But not enough space.
* moon-child pets gog
* gog prr
<klange> gog: qt is pronounced 'cute', not 'cutie'
<gog> i know
<klange> so you should say 'i am qt'
* moon-child a cute
<gog> the grammatical error was intentional
<gaxar77> I guess I could give learning Qt another try.
<klange> [Man Ray meme, but it's me trying to convince gog to say 'cute' instead of 'a cute']
<gorgonical> you could use tcl/tk for an exercise in computing history
<gog> i remember trying to use tkinter with python
<heat> i am an aqt angle
<gog> pyqt was way easier
<heat> hehehehe
<gaxar77> Why do you recommend against using C# and .NET?
<heat> because no one writes OSes in that
<gaxar77> Is it not a good platform?
<gorgonical> that stuff
<gog> it's a fine platform for enterprise and web applications
<heat> and those languages suck ass
<gaxar77> lol
<gorgonical> Yeah if you just want to write desktop apps then go ahead
<moon-child> ms wrote an os in c#
<heat> </myopinion>
<heat> it's just Microsoft Java
<gog> i write in c# every day
<moon-child> my condolences
<gaxar77> lol
<heat> [*]
<gog> it's harder to shoot oneself in the foot with it
<gog> but i still manage
<klange> There's nothing wrong with C# as a language, and if you want to go down that road there's even a framework specifically for doing so (COSMOS)
<moon-child> c# notwithstanding
<demindiro> There's also an OS written in javascript IIRC
<gaxar77> Well, I'd been having trouble finding documentation on Cosmos.
<klange> But .NET applications are not representative of how COSMOS works, and even if you use COSMOS to write an OS in the future you will not be able to reuse components you built while making those .NET applications.
<mrvn> You could probably port mirage to c#
<gaxar77> I ordered a book called "Inside OLE" so I could learn COM.
<gaxar77> Without ATL.
<klange> You're far more likely to be able to port Qt in 5 years than get a working port of the .NET WinForms.
<gog> are you going to write applications for windows 98?
<gaxar77> Why is that?
<moon-child> hmmm maybe
<CompanionCube> would the haiku port be evidence of this?
<moon-child> I would expect qt to be full of platform crap
<moon-child> whereas .net stuff might be better abstracted
<gaxar77> gog, what do you mean?
<gaxar77> COM is absolete?
<gog> OLE and COM
<klange> Qt is designed to be very portable and is a million times better abstracted than winforms.
<gaxar77> OLE and COM seem cool to me.
<gog> they're not obsolte they're just not the way things are going these days
<CompanionCube> even microsoft has basically given up on winforms, no?
<heat> no one does OLE nor COM anymore
<gaxar77> Then that means no one writes Win32 API code anymore either.
<mrvn> IDL? CORBA?
<heat> except maybe d3d?
<heat> Win32 has nothing to do with COM nor OLE
<gaxar77> Well, people either use Win32 or .NET.
<gog> gaxar77: have you looked at the tutorials?
<heat> gaxar77, wrong
<gaxar77> Yeah, but I want a full understandig.
<klange> If you really want to learn GUIs, you'll skip all of this and write your own.
<gaxar77> I've been wanting to implement my own GUI Toolkit for a long time.
<heat> you can also port Xorg and die of depression
<gog> understand that you understand nothing. embrace the void of your ignorance and strive to fill it with knowledge
<heat> gog, yo you shoot some fire quotes sometimes
<gaxar77> I was going to say, "Or some third party API"
<gog> i'm intoxicated
<heat> do you have a lisp?
<gorgonical> tell me you're sipping brennivin with you're evening hakarl
<heat> or are you just ada hehehehe
<gorgonical> your*
<gog> huehuehue
<heat> brazilian laugh moment
<klange> Learn something very low-level and barebones for getting pixels on screen, like SDL (the older 1.2, that one that only supports one window), and then build a windowing system within it, build your own widget toolkit, and then one day when you have an OS you can port your GUI to it.
<gaxar77> So, you want me to implement a Windowing system that runs inside an SDL Window?
<klange> My current windowing system started outside of the OS, doing exactly that - running in an SDL window on Linux.
* CompanionCube wonders if the new shiny Windows SDK uses COM - the use of https://en.wikipedia.org/wiki/Microsoft_Interface_Definition_Language suggests yes
<gog> that's how i'm gonna do it
<gaxar77> Does XWindows use a network port to receive commands?
<heat> yes
<gog> nice
<heat> it's great and crippling
qubasa has joined #osdev
<moon-child> well
<moon-child> there is xshm and dri
<CompanionCube> do unix sockets count as a network port for these purposeS?
<CompanionCube> since it's common to disable the tcp listener
<heat> pronounce this.
<gog> cooooooooooooom
<klange> I would have to kick myself if I posted my first guess.
<gaxar77> So, no one uses COM or OLE anymore?
<CompanionCube> and X11 doesn't come with a toolkit anyway, and basically nobody uses the toolkit-like bits
<gaxar77> What do they use instead?
<gog> i mean they do
<gaxar77> besides .NET and Qt.
<gog> if they're writing drivers
* CompanionCube sees what WinRT does: wikipedia lists it as using COM.
<gog> and on the back end
<heat> CompanionCube, they all use COM because of legacy garbo
<heat> you cannot have d3d without COM objects
<gaxar77> Well, I was writing a simple application for modifying the file new menu in explorer, and I need to know how to interact with the registry properly.
<heat> hurr durr ->Release()
<heat> great, but that's also very offtopic
<heat> this is not a windows-dev channel
<gaxar77> Also, I've been wanting to write a namespace extenson.
<gog> my offtopics are better
<gog> :D
<heat> gog, in a scale of 1 to 10 how much do you like cwm
<gog> i don't like it
<gaxar77> DO any OSes besides Windows use COM?
<gog> i think there's a sort of implementation for Mac OS 8 and 9 to support Office Mac
<heat> I mean, not really
<gaxar77> Oh
<heat> who would ever subject themselves to fucking COM
<gaxar77> COM is, in fact, an open standard.
<gog> yeah microsoft has a lot of open standards
<gaxar77> lol
<gog> but is conveniently the only one with enough money to pay develoeprs to implement
<gog> or has already implemented and owns the market share for the applications that use it
<gog> either way
<heat> gog, "make a standard so impossibly hard to implement we're the only ones that can implement it" is the classic Wintel standard
<heat> see EFI, ACPI
<gog> yes
<gog> microsoft is profoundly evil
<gaxar77> lol
nyah has quit [Quit: leaving]
<demindiro> Then slap something "secure" on top of it to ensure a monopoly and e-waste
<gog> you don't get to be a multibillionaire without being evil
<heat> they're not evil, they just like GUIDs too much
<gaxar77> lol
<gog> GUIDs are good actually
<gog> you can be evil and still invent something useful
<heat> stop it gog
<gog> no
<heat> this needs to stop here and now
<heat> GUIDs are not good, GUIDs are not cool
<gaxar77> What's wrong with GUIDs?
<gog> well
<gog> there is one problem with them
<gog> they say "globally" unique
<gorgonical> they're awkward to pronounce
<gog> when the earth is flat
<gog> they're discly unique
<demindiro> Hence why I'm in favor of UUIDs
<gaxar77> So sometimes they fail to be unique?
<gorgonical> no silly, planely unique
<gog> it's not a plane a plane continues forever
<heat> they are 128-bit hunks of data that are thrown around by microsoft and Intel like they're the hottest shit in the world
<CompanionCube> hot take: efi is intel nihing the likes of openfirmware
<gog> the earth has a definite demarcation between earth and not earth
<heat> CompanionCube, that's a cold take
<heat> colder take: EFI is Intel NIH'ing the NT kernel
<CompanionCube> "make a standard so impossibly hard to implement we're the only ones that can implement it" applies better to OOXML, no?
<mrvn> gog: but then the horizon would show a curve
<mrvn> And as many flat earthers have shown the horizon doesn't have a curve.
<CompanionCube> heat: more DOS than NT, surely?
<mrvn> ==> plane
<gaxar77> How do you avoid name collisions?
<gog> i mean a gemoetric plain
<gaxar77> I think that's why MS uses them.
<gog> plane
<mrvn> gog: me too
<gog> oh
<heat> CompanionCube, definitely not
<gog> because the atmosphere would curve it upward
<gog> duh
<demindiro> gaxar77: you avoid name collisions by having a sensible standard
<gorgonical> hottest take: both sides are wrong and we live on the inside of a sphere
<gaxar77> lol
<gorgonical> like from halo or something
<mrvn> gog: if the earth were a disc then the horizon would show a curve. If it is a square then it would show corners. Only way the hoirzon appears flat is a plane.
<heat> CompanionCube, the code style was ripped straight from NT, the typedefs too, the GUIDs too, the whole initial prototype for early EFI (IBI - intel boot initiative) was designed by an ex-nt guy
<gog> hm
<heat> i'm fairly sure there were also actual NT folks helping out building the early stuff
<gog> it's a distinctively microsoft-like coding standard
<gog> with sugar macros and everything
<gaxar77> Does anyone here find COM hard to use?
<heat> it is because it's ripped straight from NT
<gog> yes
<gaxar77> Or do they have no trouble with it?
<gog> i've never used COM directly
<mrvn> gog: Hint: the horizin actually shows a curve, you just need a high resolution camera to show it.
<gog> disc world proven
<mrvn> gog: but that also works for a globe.
<gorgonical> or a weather balloon
<gaxar77> So, writing an OS is okay for someone who has trouble with COM?
<gaxar77> I mean feasible.
<heat> what
<mrvn> gog: you also have to consider the curve is the same in all directions (not counting mountains). A disc doesn't have that.
<gaxar77> I'm asking if anyone here finds COM had to use.
<demindiro> I don't even know what COM is
<gaxar77> Component Object Model.
<heat> offtopic
<gog> god is pressing the disc from the edges
<gaxar77> I would think an OS Developer would have no trouble with it.
<gog> so it's bowed opward
<mrvn> gog: but hey, maybe light is refracted upwards due to air temperature or something.
<gorgonical> here's an interesting thought: if you had a weather balloon image of the earth as a disc, could you use the known height of various towers, etc to determine parallax and thus that the disc projection isn't flat?
<bslsk05> ​github.com: Windows-driver-samples/common.c at main · microsoft/Windows-driver-samples · GitHub
<heat> looks stupidly similar
<heat> and yes this is, as far as I can tell, the actual StorAhci driver
<mrvn> gorgonical: but for that you need the r-value and that has been disprooven. :)
<gaxar77> I was asking in relation to OS Dev, whether a poor user of COM would by necessity of his poor usage also be a poor OS Developer.
<mrvn> gorgonical: please ignore the fact that on a disc simple parallax would work without having to correct for the earths radius.
<gorgonical> What value is this? THe one about insulation?
<mrvn> gorgonical: earth radius. For parallax calculations on a globe you need the radius.
<gorgonical> of course right
fedorafan has quit [Ping timeout: 252 seconds]
<gog> gaxar77: bruh just read a tutorial and start writing things that grab your attention
<gog> you're going to make mistakes and get frustrated and give up and start over a few times
<gorgonical> So I guess if you only have one balloon image there's not enough information
<gog> and that's fine
<mrvn> gorgonical: by the way, have fun measuring angles with your GoPro on a weather ballon. The fish eye lense won't give you any problems at all.
<gaxar77> Ok.
* CompanionCube thought microsoft had more involvement, but the efi 1.10 spec only credits them for graphics and another bit
<gorgonical> mrvn: shit you're right lol
<heat> CompanionCube, they did
<bslsk05> ​vzimmer.blogspot.com: Vincent Zimmer's blog: Ghosts of....
<mrvn> gorgonical: fun fact about weather baloons: They drift.
<heat> from one of the main guys behind efi
<gorgonical> mrvn: I only learned that one recently. thanks news
<mrvn> Did you hear about the chinese weather baloon the US shot down? Those flat earth haters just had to terminate the parallax experiment to proove the earth is a disc. right?
<heat> CompanionCube, well, "directly" isn't mentioned. But I've had some conversations about this with some Intel folks and yes, NT people were on it as well for a bit
fedorafan has joined #osdev
<gaxar77> I'll be back at some point.
gaxar77 has quit [Quit: Leaving]
<CompanionCube> makes sense
* CompanionCube doesn't think they'd bother with the whole PE/UTF-16 thing entirely on their own, even as a reaction to BIOS crappiness
<heat> oh yeah, PE too, UCS-2 too
<gog> i don't actually think the earth is flat
<gog> fwiw
<heat> yeah
<gorgonical> just that it's hollow
<gog> i'm a poor os developer heat
<heat> gog, no you're not
<gog> i can't use COM
<heat> also the earth is a rhombus
<mrvn> gog: hopefully nobody here is
<klange> it's hollow and we're on the inside
<klange> "but klange why does the horizon bend downward" gravitational lensing
<demindiro> The earth exists purely in your imagination
<mrvn> klange: and the moon is a projector for the stars?
<heat> life is a myth
<gorgonical> wouldn't lensing require the earth to be substantially massier
<mrvn> gorgonical: there would have to a massive shell around the earth so we don't fall down.
danilogondolfo has quit [Remote host closed the connection]
<heat> actually the earth is the inside of one of those fucked up throats in cigarette packs
<mrvn> the universe is a soap bubble.
<demindiro> The earth is an electron
<klange> The entire universe is a simulation.
<CompanionCube> demindiro: is it at least an updated electron
<mrvn> demindiro: and the sun a proton?
<klange> If you're a good person, the system will extract your consciousness when you die in this simulation and place it in another simulation.
<gorgonical> just like harvester
<gog> do i get access to the character creation screen if i'm really good
<mrvn> gog: you didn't?
<gorgonical> yes but you can only change your skin color to a random RGB value for the next playthrough
<gorgonical> i hear from the seances that the next life is substantially more technicolor
<klange> I noticed this screenshot was only showing 1 core: https://klange.dev/s/Screenshot%20from%202023-02-17%2007-30-45.png
<heat> ugh not technicolor
<mrvn> gorgonical: just like old films / the last loop was B/w.
<heat> their routers suck
<klange> turns out vmware is only presenting an ACPI 2 table in the EFI ConfigurationTable so I was failing to locate the RSD because I only look for an ACPI 1 table :(
<klange> (i fixed it)
<heat> heh
<heat> vmware's firmware is cursed as hell
<heat> the ACPI tables are so so so stupid
<heat> they basically include everything you could ever imagine
bradd has quit [Ping timeout: 246 seconds]
<CompanionCube> so it's an accurate represnetation of ordinary firmware? :p
<heat> i mean, no
<klange> vmware is the most like an actual machine, in all the worst ways
<heat> ordinary firmware dynamically generates your tables and links multiple together
<heat> vmware spits 40 different PCI bus objects while you may only have 3 configured and present
<heat> also had something silly like 20 COM (serial, not the cursed windows thing) objects
<heat> yep look at that crap
<klange> also they still emulate that weird ensoniq audio card
<klange> which I did eventually write a driver for, at least
<heat> i'm fairly sure having a PCI-to-PCI bridge in a sub-function makes no topological sense
<heat> also PCIe with a PIIX4 chipset lol
slidercrank has joined #osdev
<mrvn> crazy idea: Take 2 boards and connect their PCIe buses with something.
<clever> i heard something about a cpu that had 128 pcie lanes, and it could either work as 1 chip with 128 lanes, or 2 chips, with 64 lanes of interconnect, and 64 lanes of pcie each
<klange> oh hey and my audio driver is not working under EFI either... probably missing the interrupt to schedule it...
<clever> but that was specially designed, to repurpose the pcie PHY's as cpu<->cpu interconnect
<demindiro> Isn't that EPYC?
<CompanionCube> subfunction is the last number on lspci, right?
<demindiro> clever: https://en.wikichip.org/wiki/amd/epyc#7001_Series_.28Zen.29 "Each processor has 128 PCIe lanes and non-P models also support two-way multiprocessing utilizing 64 PCIe lanes for this purpose from each CPU. "
<bslsk05> ​en.wikichip.org: EPYC - AMD - WikiChip
<heat> CompanionCube, yep
<CompanionCube> heat: then i present: '00:15.3 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB900 PCI to PCI bridge (PCIE port 3)'
<heat> CompanionCube, how does the rest look?
<bslsk05> ​p.ahti.space <no title>
<heat> oh wow, cool!
<heat> I guess PCIe ports can
<clever> demindiro: ah, that sounds like what i heard
<CompanionCube> yeah, all of them except for 14.4 seem to be pcie ports, and perhaps that one's not surprising given the other functions on 14
xenos1984 has quit [Read error: Connection reset by peer]
<gorgonical> I have IRQS!
<gorgonical> And I don't know why!
<gorgonical> I just kept changing values on the gic until this worked.
<gorgonical> So now I need to figure out why this worked lol
<clever> gorgonical: undo changes until it breaks again, then investigate what the docs claim that change does
<gorgonical> that's what I'm doing at the moment