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
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nvmd has quit [Quit: WeeChat 3.8]
MiningMarsh has quit [Ping timeout: 245 seconds]
duderonomy has joined #osdev
<heat> zid: 99.2% overextension is based
<zid> That's low
<zid> The events for 100-150% you don't need to be scared of really
<zid> 50 dip, absent merchant, lose 50 dip, etc
lg has quit [Ping timeout: 250 seconds]
<zid> err I said dip twice, adviser resigns
<zid> it's 1 event per year, and with CCR then coring doesn't take that year
<zid> so you at *most* eat one event
<mjg> i like that ia64 is standing out
<mjg> :d
<mjg> of course *that* sucker requires more work
<mjg> interestingly even if they whacked it early this year it would still post date the syroup
<mjg> so they would still have to hack it for stable
<mjg> lo
<zid> like with humanist, 200% OE is just.. fine
<heat> i need to stop warring
<zid> why!?
<heat> im already falling behind on admin
<zid> Do a humiliate
<heat> also my economy is slightly in the shitter
<zid> get some gold per month from some people
<zid> steal people's trade
<heat> and im already almost at the greatest historical extent of the russian empire
<heat> in europe
<zid> what year?
<heat> so my course of action is probably to eat up a bunch of sweden cuz st petersburg is super vulnerable
<heat> 1590
<zid> ah still early then
<zid> 1650 is when you hit hyperdrive
<heat> like seriously that capital is so vulnerable unless you eat up finland
<zid> who cares, you're russia
<heat> i do
<zid> by 1600 you have 200k troops
<zid> and hopefully a good PU or two
<zid> and HRE will be crippled
<heat> i start pushing my whole army thru poland and then there's a cheeky swedish/danish army that just takes my capital
<heat> like BRUH
<zid> just defend capital while murdering sweden
<zid> get them out of the war first for gold
<zid> you're russia, your land fucking murders people just by standing on it
<zid> just defensive edict and laugh
<heat> i got a PU over austria but it's a notoriously shit austria
<zid> good enough
<zid> finland looking very edible
<zid> I wonder what saves survived my hdd crash, none I assume
FreeFull has quit []
<zid> Can you watch streams on linux btw, I know you can't make them
<zid> or are you on THE WINDOWS atm
<bslsk05> ​i.imgur.com <no title>
<zid> -3 unrest, 235% OE ^ :D
<heat> i am on systems not vulnerable to maple syroup
<zid> freebsd?
<heat> linux 2.4
<mjg> openbsd is the o in OG
<mjg> 2.4 is newfag kernel
<zid> ah fuck I don't have my map mode hotkeys :(
<zid> I don't even know what they were, I just instinctively hit q and w and stuff for things
<mjg> i watched a video of some guy reviewing linux on a desktop
<mjg> turns out it sucks if you try to use it like a normie
<mjg> and i thought xorg mostly autoconfig itself is the promisedl and
<geist> XF86Config
<geist> or was it Xconfigurator?
<geist> back in the day!
Matt|home has quit [Quit: Leaving]
<zid> xf86config was the 90s one I ran at least
<geist> yeah asked you a whole series of quesrtions and ran a test
<geist> i remember running through that countless times
<zid> yea was easier to answer questions than edit the config yourself at least
<geist> yep
<zid> I did do my share of editing the config though
<mjg> the bit i like the most about the f-ing xfree86 project is how it died over night
<mjg> curious what geezer personel did not transition to xorg and consequently allowed autoconfig to work
<geist> huh reading the history of xfree86 and didn't realize it shot itself in the foot
<geist> also honestly didn't pay attentoin to the general switch to x.org
<geist> ah i see. xorg was just a fork of xfree86 before the license thing
<mjg> XFree86 runs primarily on UNIX® and UNIX-like operating systems like Linux, all of the BSD variants, Sun Solaris both native 32 and 64 bit support, Solaris x86, Mac OS X (via Darwin) as well as other platforms like OS/2 and Cygwin.
<mjg> tell me the project is dead without saying it is dead
<heat> even xorg is dead
<geist> well, it still runs on them, just not new versions
<mjg> does this make xfree granddead?
<heat> yeah
<bslsk05> ​www.xfree86.org: 404 Not Found
<mjg> 404
<mjg> https://www.xfree86.org/cvs/changes.html feb 2009 last change
<bslsk05> ​www.xfree86.org: XFree86 Changes
<mcrod> i baked cookies.
<mjg> > Move CloseWellKnownConnections() calls into OsCleanup(TRUE) calls.
<klange> The last release of xfree86 was in 2008. X.org was a fork that all development shifted to...
<mjg> are they friends with windows devs
<heat> The last remaining operating system distribution to use it was NetBSD,[4] which shipped some platforms with 4.5.0 by default until removing it as obsolete in 2015
<mjg> 64. Import X.Org fixes for CVE-2008-1377, CVE-2008-1379, CVE-2008-2360 and
<mjg> CVE-2008-2361 security advisories.
<mjg> hue
<klange> It's like OpenOffice and LibreOffice.
<klange> Except inverted .org usage
<mjg> oh?
<mjg> i have no clue what's going on with these
<heat> what's the google docs of this whole situation?
<heat> please, i beg you, we need a good alternative
<heat> >inb4 wayland
<zid> lotus notes is the Xouvert
<klange> The Google Docs of this situation is only using webapps and not caring about the host windowing system you run the browser on
<heat> sanest solution
<heat> hmm, i wonder if chromium supports DRM directly?
<zid> heat: I started an muscovy game, not going to go super hard though, just going to slowly eat people as and when I can I think
<zid> in other news, it's 1448 and novgorod is half dead, got a nice +2 ducats/mo on the trade node out of it, advisers time :p
<heat> i killed novgorod very early too
<heat> the annoying bit is that denmark swept in and took the bits of finland i wanted
<zid> I'm hoping sweden goes disloya
<zid> so I can support independence
<heat> i need the army comp spreadsheet
<zid> flank with horses
<zid> rest infantry
<heat> i've been half-assing it with 10-4-2 (inf art cav)
<zid> artillery is as wide as your stack but you won't be able to afford it
<heat> i'm not exactly spamming inf atm
<zid> 2 cav should be 4 cav in early game, by 1600 you can probably just ignore it tbh, 2 is fine
<heat> because that's really depressing and i've actually invested in troop quality
<zid> If you wanna hyper optimize you run same infantry as them + 4 horses, so you get maximum flank
<zid> rather than having to run inf vs inf in every slot
<zid> quality * their national quantity idea is fine
<zid> quantity also fine, quantity squared!
<heat> i did economic, quality, offensive, humanist
<zid> offensive is an odd pick
<zid> it's great in a WC because of the siege speed bonus
<zid> defensive is the better group overall though
<zid> liberaction act from offensive + humanist is good though
<heat> https://www.reddit.com/r/eu4/comments/rg3smg/draft_eu4_army_comp_guide/ ok i'm right at the point where art becomes important
<bslsk05> ​www.reddit.com: Reddit - Dive into anything
<heat> i always forget, get pounded in a war and then redo all my armies
<zid> quant + econ is 10% force limit and 5% maint
<zid> I'd honestly just have braindeadedly gone quant cus russia
joe9 has quit [Quit: leaving]
<mcrod> wtf are you guys playing
<mcrod> you both sound like 5th graders playing battleship
<mcrod> oh eu4
<mcrod> neat
lg has joined #osdev
MiningMarsh has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
<zid> cocksuckers, threw the war against sweden because they sieged my capital in 4 ticks
<zid> then I rolled nothing 8 times in a row
<heat> come for finland, take the whole country instead
<zid> good idea
MiningMarsh has quit [Read error: Connection reset by peer]
MiningMarsh has joined #osdev
<heat> over time i forgot how good this game is
<zid> when I beat FF12 I'll probably come back to it
<zid> just play a casual game or two, cus no new DLC to play
MiningMarsh has quit [Ping timeout: 264 seconds]
thaumavorio has quit [Quit: ZNC 1.8.2 - https://znc.in]
thaumavorio has joined #osdev
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
eck has joined #osdev
heat has quit [Quit: Client closed]
vinleod has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
eddof13 has joined #osdev
vinleod is now known as vdamewood
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #osdev
osmten has joined #osdev
pog has quit [Ping timeout: 260 seconds]
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
smko has joined #osdev
cultpony has quit [Remote host closed the connection]
smko has quit [Ping timeout: 245 seconds]
cultpony has joined #osdev
plarke has joined #osdev
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
smko has joined #osdev
smko has quit [Quit: Lost terminal]
pog has joined #osdev
slidercrank has joined #osdev
GeDaMo has joined #osdev
smko has joined #osdev
kfv has joined #osdev
awita has joined #osdev
plarke has quit [Ping timeout: 246 seconds]
plarke has joined #osdev
Left_Turn has joined #osdev
danilogondolfo has joined #osdev
bnchs has quit [Quit: ZNC 1.8.2 - https://znc.in]
TheCatCollective has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
pog has quit [Ping timeout: 260 seconds]
gog has joined #osdev
TheCatCollective has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
smko has quit [Ping timeout: 246 seconds]
osmten has quit [Quit: Client closed]
bnchs has joined #osdev
nyah has joined #osdev
osmten has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
puck has quit [Excess Flood]
puck has joined #osdev
smko has joined #osdev
[itchyjunk] has quit [Ping timeout: 264 seconds]
smko has quit [Ping timeout: 246 seconds]
plarke has quit [Remote host closed the connection]
plarke has joined #osdev
gareppa has joined #osdev
ecs has quit [Changing host]
ecs has joined #osdev
antranigv has quit [Quit: ZNC 1.8.2 - https://znc.in]
plarke has quit [Remote host closed the connection]
kfv has quit [Quit: Textual IRC Client: www.textualapp.com]
MiningMarsh has joined #osdev
[itchyjunk] has joined #osdev
antranigv has joined #osdev
puck has quit [Excess Flood]
puck has joined #osdev
FreeFull has joined #osdev
osmten has quit [Quit: Client closed]
osmten has joined #osdev
smko has joined #osdev
gabi-250 has quit [Remote host closed the connection]
gabi-250 has joined #osdev
heat has joined #osdev
osmten has quit [Quit: Client closed]
osmten has joined #osdev
osmten has quit [Quit: Client closed]
osmten has joined #osdev
osmten41 has joined #osdev
osmten has quit [Ping timeout: 246 seconds]
osmten41 has quit [Ping timeout: 246 seconds]
Reinhilde is now known as [Reinhilde]
smko has quit [Ping timeout: 245 seconds]
vdamewood has quit [Remote host closed the connection]
smko has joined #osdev
vdamewood has joined #osdev
dude12312414 has joined #osdev
smko has quit [Ping timeout: 246 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
smko has joined #osdev
SGautam has joined #osdev
smko has quit [Ping timeout: 264 seconds]
<gog> hi
<mcrod> hi
<gog> how are you
smko has joined #osdev
smko has quit [Ping timeout: 246 seconds]
smko has joined #osdev
<mcrod> i am good gog
<mcrod> how are you gog
smko has quit [Ping timeout: 252 seconds]
<gog> i am good mcrod
<mcrod> gog may I pet you
<gog> mcrod you may pet me
* mcrod pets gog
* gog prr
immibis has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
immibis has joined #osdev
heat has quit [Quit: Client closed]
lainon has joined #osdev
heat has joined #osdev
eddof13 has joined #osdev
smko has joined #osdev
smko has quit [Ping timeout: 246 seconds]
puck has quit [Excess Flood]
puck has joined #osdev
slidercrank has quit [Ping timeout: 245 seconds]
gildasio has quit [Ping timeout: 240 seconds]
lainon has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
gildasio has joined #osdev
xenos1984 has quit [Ping timeout: 240 seconds]
xenos1984 has joined #osdev
Matt|home has joined #osdev
lechner has quit [Ping timeout: 246 seconds]
smko has joined #osdev
lechner has joined #osdev
smko has quit [Ping timeout: 246 seconds]
smko has joined #osdev
smko has quit [Ping timeout: 245 seconds]
linearcannon has quit [Changing host]
linearcannon has joined #osdev
smko has joined #osdev
smko has quit [Ping timeout: 246 seconds]
awita has quit [Ping timeout: 246 seconds]
danilogondolfo has quit [Quit: Leaving]
smko has joined #osdev
smko has quit [Ping timeout: 245 seconds]
xenos1984 has quit [Ping timeout: 246 seconds]
gog has quit [Quit: Konversation terminated!]
smko has joined #osdev
smko has quit [Ping timeout: 246 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
sortie has quit [Quit: Leaving]
sortie has joined #osdev
smko has joined #osdev
heat has quit [Quit: Client closed]
heat has joined #osdev
[itchyjunk] has joined #osdev
gog has joined #osdev
<bslsk05> ​hold.abuser.eu <no title>
<gog> what's a banana equivalent dose
<zid> The amount of radiation you get from eating a banana
<zid> they have ELEMENTS in them :o
<gog> oh that's right
<gog> i love radiation
<gog> the more ionizing the better
<zid> It's pretty... rad
<gog> hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
<mjg> eating bananas is bananas
<mjg> change my mind
<zid> Did you read the smallprint btw
<GeDaMo> On the bananas? :|
<zid> It usually says Dolé but I fixed it
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
lainon has joined #osdev
<geist> hello fronds
<heat> hello ghost
<heat> what is up
<gog> meow
<heat> gog have you acquired a copy of the famous video game europa universalis IV
<gog> i have enough map simulators
<heat> no you don't
<heat> there's no limit to map games
<gog> i'm saving myself for cities skylines 2
ih8win8 has joined #osdev
<zid> That's an odd thing to give your virginity to
<heat> for the next paradox game they should call DLCs service packs
<sham1> And not give them actual names, just "service pack 1", "service pack 2" and so on
<heat> absolutely
<heat> they're all needed anyway
<ih8win8> I have a question about USB. If I'm understanding this right, to set the address of a USB device, I send an 8-byte SETUP packet (00 05 0002 0000 0000) to set the device's address to 2. However, looking at Qemu's source code, it only calls usb_device_handle_control (which ends up setting the address) if the direction bit is 1 (meaning from device to host). Why wouldn't it call usb_device_handle_control for a host to device packet?
<bslsk05> ​github.com: qemu/hw/usb/core.c at master · qemu/qemu · GitHub
<ih8win8> oh, wait, that just handles the token packet, I think. When it receives the data packet, it shoud call usb_device_handle_control.
<geist> yeah iirc there's a weird part there where you have to complete the transaction using the old address
<geist> and then the next setup packet uses the new one
<geist> it's kinda a weird edge of the protocol
<geist> some device controllers have a assist for this where they let you latch the new address on one transaction later
<geist> it's more like 'set your address after this is finished'
<geist> or 'new transfers after this one should only respond to this address'
<heat> i dont think i'll ever understand how usb works
<heat> PCI is best!!!
<geist> looking at a usb trace is worth a thousand words
<sham1> So how many traces would that make the USB spec
<geist> at least for old usb, i never fully grokked usb 3, but then i dont have a bus analyser that can deal with those
<geist> sham1: i *knew* someone would instantly say that, you win the prize!
* geist slaps sham1 about with wet trout
* sham1 chomps trouty
<heat> geist i bet there's a way to get a boot pcap for usb in-kernel
<geist> yup
<heat> you can already get one at runtime, you just need to enable it with boot args or something i guess
<geist> wireshark i think maybe has usb capture now?
<heat> yeah
<geist> anyway, it's not too weird, it's just very low level. it's like looking at PCI-e packets
slidercrank has joined #osdev
<geist> so it looks more complicated than it is, but once you grok how the individual packets make up a larger transaction it's fairly straightforward
<geist> and good bus analyzer software can reassemble transfers
<geist> a lot of the complexity is the non bidirectional nature of usb 1/2. there's lots of shared bus going on where one side starts a transaction and then releases the data pins and within N clock cycles the other side puts the response on teh bus, etc
<geist> so until you grok that it's not really obvious which end is sending what
<ih8win8> hmm not sure if I have to manually send token packets, or if the controller is supposed to do that automatically.
<geist> ih8win8: oh the host end i assume? what sort of controller are you using?
<ih8win8> dwc2 on raspberry pi
<ih8win8> in host mode, of course
<geist> ah okay, was gonna say there are various levels of host controller, xhci on the high end all the way down to the dwc2, which is about as bad as it gets
<heat> hahahahaha
<geist> you have to do *everything* manually. it's one level removed from raw bit banging
<ih8win8> I hear uhci is pretty bad, too.
<geist> hell, i think you have to schedule SOF packets manually
<geist> basically dwc2 was a device controller that got extended to also be a host controller, and it's really too low level for that
<geist> sure, but UHCI is also like 25 years old. modern host controllers do most of the heavy lifting for you
<geist> or at least the middle level lifting, you schedule transactions and they deal with the details
<ih8win8> ugh, I'm not looking forward to dealing with scheduling and concurrency issues.
<geist> yeah honestly unles syou really really need to, dont bother with dwc2 ost controller, that's just a whole pile of pain
<ih8win8> It's not like the pi has any alternative.
<geist> sure it does, pi4 has xhci
<ih8win8> yeah, but that's pi 4.
<geist> okey dokey
<ih8win8> I'm dealing with 2 and 3.
<geist> well, there ya go
<geist> anyway, yes you'll almost certainly have to manually do all of the token frame stuff ourself
<heat> what exactly does dw do? just budget controller chips for shit?
<ih8win8> ok, I'll try.
<heat> i remember going thru the fuchsia pci stuff and seeing some hacks for a fucked up PCI controller from them too I think
<geist> not chips, IP. you buy designware 'blocks' to integrate into your designs
<ih8win8> Synopsis is the company that makes it. Not sure what DesignWare is, tbh.
<geist> and they're super cheap
<geist> designware/synopsis are the same company now. i think part of cadence?
<geist> ah, no synopsys has a product line called designware
<ih8win8> I'm guessing that's why it was chosen for the Pi, because it's cheap.
<geist> right, well more importantly broadcomm picked it, and then it's cheap because it's cheap
<heat> the raspberry pi is a high quality system
<geist> like i said pi4 helps immensely, but pi1-3 is using late 2000s era broadcomm SOCs
<geist> which were generally pretty bad back then. things got a lot better in the late 2010s
<geist> dwc3 is what you see a lot nowadays, which is at least a proper XHCI controller
<heat> is it possible to get a serious enough ARM board that is not a server board? and thus does not get you to declare bankrupcy
<geist> and also has a device mode (since XHCI is usually host controller)
<geist> depends on what you mean by serious enough
<heat> like a mid point between the rpi3 and an ampere server with 500000 cpu cores
<geist> there are *tons* of arm boards out there, most are better than PI, but PI is cheap and ubiquitious (when you can find them)
<heat> you know, a CPU beefier than an A57 and stuff
<geist> sure. pi4 is a big jump forward
<geist> it's i'd say 2-3x faster than a pi3
<geist> khadas has some decent boards
<geist> you can get some 8 core a72s or so
<heat> A72 is still really crap isn't it?
<heat> like your avg smartphone will be beefier than that right?
<geist> of course, but A72 is a huge jump oer the A53 class stuff
<geist> since A72 is properly OOO superscalar
<geist> really A7x is a line of marginally better than the previous OOO superscalar designs
<geist> A72 is just the first
<geist> up through A78
<geist> but A72 is pretty decent, like say haswell class
<heat> my 2020 midrange phone has a A77
<geist> sure. high end cores go in phones
<geist> look, you cant get what you want, i'm trying to give you real options
<geist> but if you just wanna bitch about it, i can just stop
<heat> but it's funny how it's literally 2xA77 and 6xA53
<heat> yeah i know
<heat> i'm just looking at them cpus
<geist> i've had this conversation countless times here, where someone whines about this or that, i try to give them real options, but they just want to whine
<heat> oh im not whining
<geist> honestly if you ant a fast ARM machine, get a mac
<geist> get a low end mac mini. it's lightyears ahead of all of those cores you just called out
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<heat> i do whine that my rpi's A53 sucks but it was also 15 bucks so i can't get upset
<geist> and like i said, snag a rpi4, it's much better
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<geist> a rpi4 with 8GB is a fairly proper linux machine
<heat> i'd love for there to be a mid tier fairly-ok-desktop-or-laptop range
<geist> mac mini
<heat> yeah i guess so
<geist> get one used, folks are probably moving on to M2 mac minis now and dumping their M1
<geist> but really at the end of the day you forget the ISA.
<heat> oh yeah sure, i'm not really talking about usability, rather just nerd stuff
<heat> just something cool to poke that could also be fast
<geist> right you could direct boot on an M1 nowadays
<geist> honestly when poking at things, not fast is sort of more interesting to me
<geist> like, doing raw bringup, bcause now whatever you do optimization wise, etc *matters*
<geist> and it's not just infinitely fast
<heat> my rpi struggles real hard doing simple UNIX shit like ./configure
<heat> which yeah, doesn't matter on bringup, matters if you want to do more than that
<heat> (I do kinda wonder if the sd card is to blame, but tmpfs hasn't really helped, and the cpu usage looks high enough)
<geist> yeah i've actually built GCC and whatnot on the rpi4
<geist> and yes sd card matters a *lot*
<geist> i've actually found on a rpi4 you might get better results putting whatever you're doing on an external USB SSD, or even NFS
<geist> but rpi3 has shit usb and ethernet, so probably doens't help
<heat> my rpi does not even have ethernet :v
<geist> rpi4 properly has a real built in eth mac, so can do 1gbe fine, and USB is on the other side of PCI
smko has quit [Ping timeout: 245 seconds]
<heat> is a gcc build on the 4 tolerable?
<geist> sure, i mean it works, just takes some time
<geist> but time is like 30 minutes or so. but it only has 4 cores, which is the real bottleneck
<heat> oh that's ok
<geist> basically it's as fast as a low end core i3 from like 2015
<heat> really decent perf
<heat> your storage probably ends up more expensive than the board itself :D
<geist> i just dont get too fixated on the speed, because it uses like a watt
<geist> so you get good performance for what your'e doing
<geist> whereas right next to it i have a desktop with a 1200W power supply
<heat> yeah
<heat> like honestly 30 minutes is super great
<heat> i was expecting worse
<geist> if i had 1200 pi4s that would probably in aggregate be more horespower: 4800 cores with 9.6TB ram
<geist> i dunno i made that up, it's probalby longer, but it's in that realm
<geist> like start the build, come back a bit later, it's done. not like wait 5 days while it's swaps
<heat> do you think those arm chromebooks could make for good boards too?
<geist> probably not. a lot of those are 32bit
<geist> well, you'd want at least a armv8 one
<geist> i had for a whie a cheapo samsung one which was an a15. was terrible
<geist> but i hadn't paied attention to what the later ones were, probably were qualcomm based, which means they'd be generally a nightmare to fiddle with
vdamewood has quit [Read error: Connection reset by peer]
<geist> anything qualcomm based just stay away from, not worth pulling your hair out over
simpl_e has quit [Remote host closed the connection]
vdamewood has joined #osdev
<heat> why?
<geist> no docs, very complicated booting process, no docs
heat has quit [Quit: Client closed]
<geist> everything is hypoer overcomplicated with anything they do
heat has joined #osdev
<geist> anyway, going to do some work
<heat> you mean linux-code-as-docs? sgtm
nuvls has joined #osdev
<heat> find the passion of putting magic values in magic registers with legally dubious GPLv2 code
simpl_e has joined #osdev
<heat> i looked at some of the exynos code and i was surprised to see they have cute kernel protections
<heat> probably with hypervisor crap
<mjg> nah if code is complicated there has to be a decent reason for it
<mjg> amirite
smko has joined #osdev
<heat> afaik the crap SoC code really is crap and uninteresting, basically just write magic vals to the magic thing
<heat> it may be that you're running under a hypervisor that actually does the thing you wanted to do
<heat> x86 platform code really is scary and complex though, for a variety of reasons
<heat> including {cheap labour, complex problem, legacy code being shared for 2 decades and 5 DDR generations}
<mjg> no no old stuff == good
<mjg> esp. if widespread
heat has quit [Quit: Client closed]
<ih8win8> 32-bit and 64-bit x86 isn't too bad.
<ih8win8> 16-bit segmented mode is awful.
<zid> he said platform code though
<zid> and I don't doubt him
gareppa has quit [Quit: WeeChat 3.8]
heat has joined #osdev
dude12312414 has joined #osdev
<heat> i dont get this
<heat> "turn off my screen" seems to imply some sort of low power mode for a bunch of devices
<heat> even if it's not an actual sleep mode...
<heat> typical micro$hit winblowz
<bnchs> heat: micro$oft managed to turn computers into phones
<heat> heresy
<mjg> referring the ms as m$ is very edgy
<mjg> i was doing that in high school
<heat> FreeB$D
<bnchs> heat: i meant phones that aren't actually phones
<heat> the F in FreeBSD means financial power
<bnchs> but rather a phone that can't phone, and just wastes battery and bandwidth phoning M$
<mjg> careful shitting on windows
<mjg> there is someone on the channel who thinks it is great, as proven by big installation base
<bnchs> big installation base?
<bnchs> more like obese
<geist> well, shitting on things is not what we're here for
<geist> or at least i'd rahter us not shit on things for childish reasons
<mjg> i distinctly rmeember you kept shitting on something
<geist> sure, i think there's a bit of a different, and less childish
<mjg> fwiw i'm all for ranting, provided there is some substance to it
<mjg> and not just being pissed at a thing not being what yo uwanted it to be
<geist> i guess, my only takeaway is we're also trying to be nice for newbies and wahtnot
<geist> and if we go too far it tends to push people away
<geist> so have to temper it a bit
<geist> i think we have a balance, just nice to try to maintain the balance is all
<mjg> #truosdev
<geist> i guess this is one place where discord is nicer because you can just have an #ranting channel that you direct folks to
<geist> since we dont, we have to be able to strike a balance between on top and off topic and silliness and whatnot
<mjg> one could create #osdev-rant or #osdev-offtopic or whatever and tlel people to fuck around over there
<mjg> it is not unheard of
<geist> i'v been sitting on #osdev-offtopic for months, but there's ome bot that's holding it
<mjg> also note most of traffic is people not even saying anything osdev
<geist> that keeps me from getting ops
<geist> mjg: sure but that's also when i wasn't paying attention :)
<geist> geist cop is back!
<geist> stay in line kiddoes or you'll spend a night in the tank
<mjg> #not-discord-osdev
<mjg> how's that
<mjg> #osdev-rant is free
<mjg> :]
<mjg> lol #osdev-social is not
<geist> there used to be a secret osdev lizard council channel
<geist> where folks would be trash talked
smko has quit [Quit: Lost terminal]
<mjg> dude a clique talking shit about other people from the group is human behavior 101
<geist> but it was mostly when we had they-who-shall-not-be-named around
<mjg> if you are not part of a clique, you are part of the joke
<geist> indeed. the fact that i dont know of any such channel means it probably exists and i'm just not invited
<geist> so it goes.
<mjg> there is no inner circle geist
<geist> says the inner circle
* mjg is only saying that because he is in the inner circle
* mjg is however a part of a clique $elsewhere
<geist> so complaint of the day: i started a build, went away to take a shower/eat/etc, came back, build had stopped because i forgot to start something in the background
<geist> hate that, blew 30 minutes of building
<geist> and just this one time i didn't wait for the build to start before walking away, whcih iusually do for precisely this reason
<mjg> personally i "liked" corporate cliques
<geist> whatcha mean?
<geist> ripping on MSFT etc?
<mjg> great proof that capitalism does *not* weed out companies which waste money
<mjg> no, people engaging in organisational jockeying as a team effort
<geist> oh i see what you mean
<mjg> good luck pointing out a project is utter dogshit
<mjg> johny jackass needs his promotion
<mjg> so tony twat is going to "defend" the code by handwaving
<heat> i like how my ironic early 2000s shitting on micro$hit wingarbage led to this
<geist> microslot winblows heat
<geist> next mjg will tell us about slum slowaris
<mjg> macroshaft lossdows
<mjg> sus microsystems can do nothing wrong mate
<mjg> ... cause they dead
<heat> SUS
<geist> OR ARE THEY
<heat> sus macroshitstems
<mjg> intentionally bad machines
<heat> u were shitting on windows but this is actually pretty good
<heat> it works
<mjg> OH
<heat> and that's more than i can say for linux
* mjg unfriends heat on facebook
<heat> >facebook
<heat> boomer behavior
* heat unfollows mjg on tiktok
<zid> freebsd is a sort of speculative biology project, can people survive with no useful software?
<mjg> but ed is on freebsd
<mjg> what more do you want
<sham1> ED IS THE STANDARD EDITOR
<heat> i want microsoft wordump
<mjg> microsoft excess
<geist> bloatpad
* mjg can't help but note how a talk on keeping the channel on topic got off topic
<heat> this is very on topic
<heat> as i was saying, windows is actually ok
<heat> i don't know if it scales for 100 cpus but it scales for normal people
<heat> and you know, usually does things ok
<geist> it got a bit more functional for me when WSL2 got pretty good and the shell started coming with a bunch of things i actually use
<mjg> you sound like a solaris defender
<geist> ssh, scp, etc
<heat> yeah ssh is very useful
<heat> even though i don't really dev on windows
<heat> for sanity reasons
<geist> yeah but using it to ssh into other things without needing a dedicated app feels very linuxy and i like it
<geist> or at least it's in line with what i do on linux and mac all the time. open terminal, ssh
<heat> i really like the new centered start menu
<heat> deal with it losers
<mjg> does windows have virtual desktops now? or however they may call it
<heat> yeah since 10
<geist> i kinda dont care, because i only ever use windows key to bringup a search box
<geist> or put stuff i run on the desktop
<geist> yeah, it's a bit clunkier to move things between desktops, but it works
<geist> win11 kinda broke it for me, but it's a straight up bug that i assume they'll fix
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
<heat> does one need macOS to get a unified UI experience?
<heat> or do they also have their own little 30-years-of-UI-design moments
<geist> arguably, yeah
<geist> though i also tend to stick to fairly plain UI experiences, like cinnamon on linux, so it's pretty much unchanging
<heat> if you go deep enough in windows you get a w98 menu
<geist> but mac is fairly consistent, though i think the window management is somewhat full-screen centric
<heat> by simply using linux you get to experience like at least 2 different UI toolkits with their own different looks and tooling
zxrom_ has joined #osdev
<geist> also recent mac release rearranged all of the settings app, so everything moved around, but they moved around fairly consistently
<geist> macs will move things around between releases, but they're pretty consistent about it, so every new release is a bit of muscle memory relearning
zxrom has quit [Ping timeout: 245 seconds]
<heat> when i used a mac a while back i struggled super hard with the windows management
<heat> very bizarre compared to windows/linux
<geist> yeah, takes a bit of relearning, though i find it to be very consistent with keyboard shortcuts
<geist> which i love
<geist> also notice a lot of one off windows things copy it (ctrl-w for closing window, etc)
<geist> but inconsistently
<heat> also the cmd vs ctrl thing
<geist> yeah that i just deal with and it gives me no problem
<heat> my mind naively mapped ctrl to cmd but then that all went to shit in the terminal
<geist> right
<geist> it helps that when i'm on a mac i'm always using a mac keyboard of some type, so the cmd button is where the alt is
<geist> and being american i never have to use alt key for stuff
<geist> though mac has pretty good direct support for non english characters
<mjg> btw if you check xnu sources they are also... PESSIMAL
<geist> ü õ etc
<zid> disregard diacritics, acquire funny currency symbols
<geist> mjg: one of the things working at apple taught me is no one gives a shit except kernel people
<heat> xnu sources are just netbsd/freebsd sources but with less nerds
<mjg> geist: mate it's the kernel which i looked at and which sucks:p
<zid> One day I will bother to bust out the keyboard layout editor and actually make windows have characters on its keys
<geist> ie, kernel people worry about this stuff, real people dont care as long as it works well enough
<zid> altgr-anything does nothing except for éíáúó€¦
<heat> also they have a lot of interesting ideas in there
<zid> a whopping.. 7 keys
<heat> particularly security stuff, etc
<geist> well, i mean in seriousness, when making a product it mattesr what end users see, not how well the guts work. it's an important engineering lesson
<heat> xnu is probably not particularly scalable nor does it need to be
<geist> because i was grossed out by xnu at the time too, and did what i could to help, but benchmarks didn't mean anything to anyone
<geist> it's tuned for things that a bunch of other systems are
<mjg> it could be mate to eat less battery by not doing wtfs in the kernel
<mjg> but i don't know what % is it
<mjg> s/mate/made/
<geist> very big on real time kernel stuff (audio bits run at super high priority)
<geist> and it uses swap hyper aggressively
<geist> and compressed pages
<mjg> i know it has a bunch of magic for scheduling
<geist> indeed, re power, and yet their laptops are consistently amazing power wise
<heat> i guess for the kernel you don't really have an "end product" as in end users do you?
<heat> /maybe/ battery life, in cases where the kernel matters
<geist> i remember at the time i was there they still sold xserves, which caused some consternation, since for a while there darwin server was directly competing with things like linux servers
<geist> and it would get the shit kicked out of it if you ran things like lmbench
<geist> but that problem sorted itself out when they stopped selling server versions and hardware
<mjg> lmao i remember some attemtps at making xnu into a server
<geist> anyway i'm not apologizing for them, it's more like it taught me that raw performance isn't always the end goal. consumer electronics and embedded and whatnot have more complicated goals
<geist> and i think that can be almost more interesting, since you have to deal with grey area
<mjg> but ye, it is how the end users perceive it, not how it actually is nor how does it look like under the hood
<geist> *especially* graphics performance. they were going nuts at the time about smooth scrolling
<geist> and using every trick in the book
zxrom_ is now known as zxrom
<geist> i remember being completely grossed out and then sort of appreciated that at the time (mid 2000s, dunno about now) XNU would fsync() every file when you closed, it automatically
<geist> so performance was atrocious
<heat> i remember some story of some software where it was loading so fast that they added a sleep() just to look like it was doing things
<geist> but the idea was, you wrote the data, you closed the file, it's on the disk
<heat> windows still does that geist!
<geist> heat: i wonder about that sometimes when you have to look at 3 or 4 logos on some modern game
<geist> like, is it doing something in the background?
<heat> that would be smart, but do they care?
<heat> and if they aren't doing anything, WHY ARE THEY NOT SKIPPABLE
<geist> because you have to look at the logos
<mjg> :/
<mjg> you reminded me of need for speed 2
<geist> corporate mandates at least 5 seconds of looking at their thing
<mjg> EA logo would stay for liek 3 seconds
<mjg> and only then it would start loading
<geist> (they're almost certainly loading assets in the background though)
<heat> PoV: You bought the new assassin's creed
<heat> Inspired by historical events and characters, this work of fiction was designed, developed, and produced by a multicultural team of various beliefs, sexual orientations and gender identities
<mjg> ... none of which got sexually harassed while doing so
<mjg> (check if not blizzard)
<geist> if not the entire games industry
<heat> geist you'd think that but then you see GTA V and their scanf big stupid
<mjg> i don't know man, some shops are male-only
<mjg> :p
<zid> to be faaair
<zid> that bug was only bad because msvcrt was bad, and they just.. never tested how it'd scale
slidercrank has quit [Ping timeout: 245 seconds]
<mjg> will-it-scale gta5_processes
<mjg> when you gonna add the testcase heat
<heat> so clearly they never looked
<heat> "why is sscanf top of the profile?"
<zid> The 'bug' was not rewriting that code well before then
<mjg> what is a profile
<zid> before it was slowing the fuck down so much
<heat> its your facebook account mom
<mjg> i watched a video the other day with some fucking guy benchmarking his code
<mjg> he noted it does not perform like he expected
<mjg> this and that got checked and he is out of ideas
<mjg> guess what he did not do
<geist> hey at kleast it wasn't in the core game loop!
<mjg> he did not fucking profil
<mjg> e
<mjg> gg
<geist> probably that's how that stuff happens too, folks that work in the core game loop are probably the experienced folks. stuff like loading assets, etc are for the interns
<mjg> bet you could trace that scanf to stackoverflow?
<zid> asset loading *is* what a core game loop is these days
<zid> shit's seriously complicated
<zid> This was "getting a toc from the network end for the current multiplayer shop contents, mission list, etc, etc"
<zid> and they'd just mashed it into one giant xml or something
<zid> and it grew a couple of orders of magnitude since release
<heat> json!
<heat> this aint the early 00s
<heat> we're modern!
awita has joined #osdev
<mjg> it's a classic problem
<mjg> they test something at lol scale
<mjg> and then it suddenly blows up due to n^2 or worse
<heat> the scale was always there because gta was always damn slow to load
<heat> it just got progressively worse over time
<mjg> huh
<mjg> then i'm confused how it shipped
<mjg> you would think by that time someone with performance-fu would take a look
<heat> bad code got shipped???
<mjg> ey heat popular game therefore no bugs
<heat> games these days all come with 4K textures just in case you have a 4K display
<heat> so they're all 100+ GB
<heat> do they care? no, so it doesn't get fixed
<mjg> you reminded me of a game, whose name i can't recall, which shipped for PCs and XBOX
<mjg> it looked like semi-shite
<mjg> turns out they were forced to downgrade pc graphics to look like it does on xbox
<mjg> and there were original textures 'n shit still present in install data
<mjg> someone patched the game around and it looked great
<mjg> gg
<mjg> i can google for it
<zid> *that* scale was never there
<zid> O(n^2) just gets real big real fast, from "you can't even tell" at a few hundred bytes, to "this is never going to end before the universe does" at a couple meg
goliath has joined #osdev
<mjg> now this makes me wonder, is there a code analysis tool which detects these kind of problems?
<heat> what problems?
<mjg> bad O
<heat> maybe
<heat> that seems hard to guess though
<heat> hey i wonder if AI could work there
<heat> like train the tool with a bunch of O() examples, then let it guess
<bslsk05> ​'The Contrepreneur Formula Remastered (False Copyright Claim)' by Mike Winnet (00:22:44)
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
dude12312414 has joined #osdev
<zid> You know what would be a cool ML plugin
xenos1984 has quit [Read error: Connection reset by peer]
<zid> colouring code by whether it interacts with user input
<zid> for auditing visually
<sham1> O(n^2)? Just get O(n^2) servers, what's the problem
<sham1> O(money)
<zid> for each user? :P
<zid> "Tokenizing string... uploading to AWS cloud... please wait..."
plarke has joined #osdev
<sham1> Clearly you need serverless functions to scale
<sham1> Also mongodb
<zid> I made more noogles, enjoyed that
<zid> figured out how strong the chili powder I had is (or isn't, as the case is)
<zid> so I dumped a nice amount in this time
awita has quit [Remote host closed the connection]
<sham1> Some of the noodle spice pouches are quite disappointing
LittleFox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
tomith has quit [Quit: tomith]
LittleFox has joined #osdev
lainon has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
xenos1984 has joined #osdev
ih8win8 has quit [Ping timeout: 250 seconds]
linkdd has joined #osdev
<linkdd> hi, quick question. In my hobby osdev project, I do error handling by returning a bool, if it's false then the error code is stored in a global (atomic) variable. Similar to how errno is used in the stdlib. however, i'm concerned that when I implement multiprocessing (with SMP), there might be data-races related to this variable being global. I know that errno on Linux is thread-specific, but I guess in an
<linkdd> osdev project, it would not be as simple as adding the `__thread` keyword to my global variable declaration?
[itchyjunk] has quit [Ping timeout: 246 seconds]
<heat> obviously you'll have corruption yeah
<heat> you'll need percpu variables
<heat> __thread *could* be a way, but it's generally Not The Way
<zid> task->errno? :P
<heat> i put them all in a special section and access them with inline asm
<linkdd> doesn't gcc (or clang) rely on a C runtime for the OS being present (crt.o ?) for __thread to work properly? i'm assuming i don't even have access to it in my kernel
<heat> yeah ofc you'll need to implement everything
<heat> it's the fun of osdev
<zid> it'd be libgcc wouldn't it
<zid> other than the setup code
<heat> no
<heat> this is libc stuff
<zid> oh is it all funcs and not operators?
<heat> PT_TLS program headers plus any pthread function it may implicitly call or something (rare? not worth thinking about)
<zid> __thread a; a = 7; if this needs to generate funky special instructions (lock prefixes, whatever) surely that's on either the compiler, or a callout to libgcc, was my thinking
<zid> or pthreads, yea
<heat> yeah but those get stuck in PT_TLS, which gets mapped and set up to the thread pointer
<heat> in an ABI dependent way
[itchyjunk] has joined #osdev
<zid> I assume you can fake it with your own #define THREAD __attribute__((section(".thready")) / int THREAD b; or whatever
<heat> yes, i "fake" it
<heat> i have a .percpu that gets base addr = 0x0, and then i use asm to access it
<zid> yea that'd do it, I recommend renaming it to threadyboi though
<heat> so mov %gs:pcpu_var, %rax works fine
<heat> but this requires inline asm and is kind of depressing
<linkdd> how does a .percpu section in the elf would make it "data-race free"? i'm not following
<heat> the other idea is to have a struct pcpu { int errno; thread *curr_thread; process *current; ...};
<heat> well, each cpu gets its own copy of that
<heat> just like TLS, but a dollar-store, manual way
<mjg> why on earth would you roll with a global
eddof13 has joined #osdev
* mjg glares at unix
<linkdd> oh right, a different value for each cpu in the "gs" register i guess?
<mjg> just return the error and not bool
<zid> I'd just hang it off the task struct until it became a real problem cus lazy
<heat> linkdd yep
<heat> or in arm64 TPIDR_EL1, or in riscv the tp register
<linkdd> mjg: i'm just trying some things to make my life harder :D
<heat> note that this is all really annoying to get right
<mjg> then write a bootloader
<bslsk05> ​github.com: Onyx/kernel/include/onyx/x86/percpu.h at master · heatd/Onyx · GitHub
<mjg> i think for maximum pain yu should definitely refrain from c and c++
<heat> for maximal pain do NOT refrain from c++
<Griwes> there's things more painful than C++ :P
<linkdd> i said "make my life harder" not "impossible"
<mjg> heat: for a bootloader?
<mjg> try python
<mjg> :d
<linkdd> i wanna try to embed lua in the kernel :S
* Griwes glares in the general direction of Japan
<mjg> not so long ago i saw a video with a fucking claiming all langs are equivalent, as proven by turing
<mjg> and you in particular you can write an OS in any of them
<mjg> liek lol
<mjg> linkdd: are you a netbsd user?
<mjg> linkdd: they did it
<mjg> it may be it got ripped out though
<linkdd> nope, i left the linux as desktop a few years ago
<linkdd> but thanks for the fun fact
<linkdd> (also i said linux, because i never had a bsd for desktop)
<mjg> you are definitely pain-avoidant for a person claiming to love it
<mjg> :]
<linkdd> mjg: i work on windows
<linkdd> but sometimes i cheat and use the WSL or docker
<linkdd> heat: in your percpu.h, any reason why you use macros instead of functions?
<linkdd> alright, i defined `extern void errno_set(int); extern int errno_get(void);` it the platform independant code, and i'll define the symbols in my arch specific code, which will use the percpu var technique you described
<mjg> that's the easy way out
<linkdd> i want a clear separation of platform-independant code and platform-specific code, so I always use `extern ...` when I need to define a "generic interface"
lainon has joined #osdev
<heat> linkdd because functions suck and are expensive
dh` has quit [Read error: Connection reset by peer]
<linkdd> even if you add the inline keyword? :p
<heat> depends
<heat> inline does not mean inline unless you always_inline, and even then it does not mean inline
<Griwes> inline doesn't do much useful beyond manipulating ODR rules
SGautam has quit [Quit: Connection closed for inactivity]
<heat> also macros are literally the only way to do those things generically
<heat> (the things that those macros do, ie take identifier names and access those as symbols)
<linkdd> right
dh` has joined #osdev
immibis has quit [Ping timeout: 240 seconds]
qxz2 has joined #osdev
heat has quit [Quit: Client closed]
immibis has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
night has quit [Quit: goodbye]
night has joined #osdev
heat has joined #osdev
sprock has quit [Remote host closed the connection]
<moon-child> heat: ur a function
<klange> i'm a function with the signature `depression klange(caffeine);`
<heat> i am not a function
<heat> if anything im __always_inline static inline
<heat> klange is caffeine an implicit int or a type?
<klange> that's a signature, so it's a type
<klange> I am a function that takes caffeine as an input and returns depression.
<bslsk05> ​godbolt.org: Compiler Explorer
<heat> that is unfortunately an int, sorry
<klange> you are missing the type declaration for caffeine, obviously
<bslsk05> ​godbolt.org: Compiler Explorer
<heat> this has weirder implications than I thought
<heat> C is so cursed
<heat> i think void foo(a) is essentially equal to void foo();
<heat> (empty parens, not (void))
linear_cannon has joined #osdev
<klange> One of the biggest actual curses of C is how its parsing requires type information.
<Griwes> C23 will make 'void foo();' equivalent to 'void foo(void);'
<heat> clang:
<heat> <source>:2:10: error: a parameter list without types is only allowed in a function definition
<heat> void foo(a);
<Griwes> wg14 has actually been removing some of the more cursed C bits recently
<heat> so they don't even take this
linearcannon has quit [Ping timeout: 246 seconds]
<heat> yeah and clang has been breaking everything autoconf
<Griwes> good
<heat> personally i dont give a shit as im a windows user
<heat> as long as windows.h keeps working, im golden
nyah has quit [Quit: leaving]
<klange> /kickban heat heresy
<heat> #define KLANGE32_LEAN_AND_DEFINITELY_MEAN 1
deflated8837 has quit [Ping timeout: 260 seconds]
<klange> lean and mean? nah I'm slim and outright offensive