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
gog has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.3]
<rustyy> i have cheap redragon rgb kbd, i am lazy to programm it, but i do like it quite a bit, it is such a game changer, it takes me back to 1996, PC im Informatikunterricht, warcraft2 =)
[itchyjunk] has joined #osdev
<nshp> WASD keyboards are top notch, so customizable
<zid> $180 base price
<zid> lol
<geist> yah thats why i think there are far more affordable things for 1/2 or 1/3 of that that are pretty good
<rustyy> i got mine for 20$ off of craiglist
<rustyy> 20$ canadian, heh
<kazinsal> I just buy whatever the cheapest full size keyboard with MX Browns is every time I need a new keyboard
<kazinsal> usually ends up being like $110-120 CAD
<kazinsal> so far I've only had one die on me in twelve years
<zid> mine has lovely tactileness and is almost completely silent, they should charge a premium
<zid> it uses a revolutionary technology known as 'rubber' ;)
<geist> that being said i was going to point out my old cm storm (cooler master) mx brown tenkeyless as being a great option
<geist> but.... i can't find anything cooler master makes now that isn't RGB :)
<geist> but the RGB version of it is basically $50
<zid> I need iso and full, just fwiw
<geist> have heard good things about keycron
<geist> ah.
<zid> not ansi and 27%
<nshp> zid: how do you keep your coworkers away from you then?
<geist> okey dokey
<nshp> I use the sweet sound of cherry blue to drive them all away
<zid> nshp: Incredibly bad body odour
<nshp> ah
<nshp> very old fashioned
<geist> that's basically why i always have a mx brown keyboard of one way or another. thats acceptable for the office, IMO
<zid> Also small attack animals living in my hair
<geist> but then the office was from The Before Times
<geist> now i bang on a type M all day
<kazinsal> yeah, my current one is the one I had at the office
<geist> cause fuck it
<kazinsal> my previous home keyboard died about three minutes into a game of League of Legends and that was "exciting"
<kazinsal> scrambling to find my old work keyboard and a working USB port to jam it into
<kazinsal> oh wow I just plugged in the dead one and it's working again
<kazinsal> alright, time to go clean this thing out on the deck and put it back into service
<zid> usb ports, and windows controlling them, is super sensitive to usb devices freaking out
<gog> i was just playing stellaris but i'm boxed it
<gog> boxed in*
<zid> it likes to blacklist the device:vendor pair for that port until a reboot
<AmyMalik> wow
<zid> gog: Have you considered murdering them all with purple techs?
<kazinsal> it was bizarre when it died, felt like a hardware issue
<kazinsal> one row of keys just stopped working
<zid> may be a short in the matrix?
<gog> zid: it's gestalt consciousness empires on two of three routes into my territory :|
<kazinsal> which is a problem when you're playing a game that uses QWER for your main hotkeys
<gog> and it's very early game not even 2100 yet
<gog> err 2300? idk
<zid> go full tech?
<gog> gonna have to
<zid> I've played a *bit* of stellaris
<zid> but I am a bit of a wiz at eu4
<gog> i'm already researching terraforming. i'll need to expand internally
<klange> I have Archiss ProgressTouch RetroTKL. Archiss is one of two "local" keyboard makers here [actually made in Taiwan], the other being Filco. Cherry Browns and a US layout.
<gog> but i gave it a rest for the night so my wife could play some fallout 3 :p
<klange> I also have the tenkey version in blues.
<zid> gog: I'm sure there's a weird wormhole or other spacemagic fuckery that'll come along and bail you out, unless you cranked the difficulty
sprock has joined #osdev
<gog> nah, i'm gonna have to prepare for war with at least one of the entities. the problem is my third neighbor/ally seems to be friendly with the one that's most threatening which is weird
<kazinsal> man keyboard gunk is the stuff of nightmares
<zid> washing machine gunk is worse
<zid> which is what I've been dealing with
<zid> some cheap part slipped or broke or whatever so the drum would no longer sit where it should, completely totalled
<kazinsal> on the plus side when you clean out your dryer vent it's like having a brand new dryer
<zid> chewed up its own insides, had to diagnose it, remove it, install the new one, level the new one, etc
<zid> Only broke half a dozen toes or so
<zid> and got wet feet 4 times
<junon> I have `__asm__("out %%al, %%dx" :: "a"(value), "d"(port));` - is there something wrong with this?
<junon> the disasm results in ` out %al,(%dx)`
<junon> which doesn't look right, it should be `out %al, %dx` right?
<zid> here's a top trick if you want?
<zid> use nasm to assemble out dx, al
<zid> use objdump to disassemble it
<junon> good idea
h4zel has joined #osdev
<junon> should just be a single byte instruction 0xEE
<junon> which, yes that's right.
<junon> that's what's there
<junon> thanks xD
<zid> okay so they've just disguised it as a memory operand for.. no reason? fucking as
<junon> yep
<moon-child> meh all assemblers and disassemblers are terribly broken
<moon-child> keep your expectations low
<geist> Yah that’s just now its written in that syntax.
<geist> It’s effectively a ‘memory’ access so i guess they decided to make it look like one by putting a () around it
<junon> weird haha
<geist> Trying to be consistent with mov basically
<junon> mrh still can't get any of the IRQs to fire (namely, keyboard).
<junon> Going to take a break though and head to bed.
<junon> Thanks for all the help today :)
<kazinsal> comedy option: ignore the keyboard/monitor and only accept serial console and SSH
<junon> Well if the keyboard irqs aren't firing, serial irqs wouldn't be either :|
<junon> So there's something definitely wrong.
<zid> kazinsal: taht was almost exactly my plan btw
<zid> I have a network driver that responds to pings, but no keyboard
sdfgsdfg has joined #osdev
<junon> oh nvm I'm dumb, I wasn't halting in my kernel main (hadn't gotten that far) so execution jumped back out to the bootloader which `cli`'d then halted.
<junon> okay now to sleep.
gog has quit [Ping timeout: 240 seconds]
<clever> junon: yep, ive made the mistake of not having a `b .` after the call to main() as well
isaacwoods has quit [Quit: WeeChat 3.3]
dutch has quit [Quit: WeeChat 3.3]
dutch has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
h4zel has quit [Ping timeout: 252 seconds]
h4zel has joined #osdev
m3a has joined #osdev
h4zel has quit [Ping timeout: 240 seconds]
h4zel has joined #osdev
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
h4zel has quit [Ping timeout: 240 seconds]
h4zel has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
h4zel has quit [Ping timeout: 252 seconds]
h4zel has joined #osdev
h4zel has quit [Ping timeout: 240 seconds]
h4zel has joined #osdev
srjek has quit [Ping timeout: 252 seconds]
h4zel has quit [Ping timeout: 252 seconds]
h4zel has joined #osdev
h4zel has quit [Ping timeout: 240 seconds]
h4zel has joined #osdev
h4zel has quit [Ping timeout: 265 seconds]
h4zel has joined #osdev
h4zel has quit [Ping timeout: 252 seconds]
h4zel has joined #osdev
Burgundy has joined #osdev
h4zel has quit [Ping timeout: 265 seconds]
ElectronApps has joined #osdev
<kingoffrance> rgb keyboard seen there: https://www.youtube.com/watch?v=HluANRwPyNo
<bslsk05> ​'What people think programming is vs. how it actually is' by Jombo (00:00:30)
sdfgsdfg has quit [Quit: ZzzZ]
Alpha2023 has quit [Ping timeout: 265 seconds]
Alpha2023 has joined #osdev
YuutaW has quit [Ping timeout: 240 seconds]
YuutaW has joined #osdev
<rustyy> kingoffrance: great video) exactly what i do when i need to figure out something i don't care about, like proprietary software))
<rustyy> i google and swear
<geist> It’s certainly different from when I initially learned stuff. Back then you had to find a book on the topic
<geist> I enjoyed reading computer books and learning stuff from them, and I think you can get a fairly deep understanding of a topic that way, but it’s clearly not as efficient
<klange> Books also have that pesky legacy issue of being terrible difficult to download updates for ;)
<klange> Though I am aware there was a time when you could actually get errata for academic books delivered as an insert.
<geist> Yah I think the tech world moved slower back then anyway, so it was easier to keep up via books
catern has quit [Ping timeout: 245 seconds]
sdfgsdfg has joined #osdev
xing_song has quit [Read error: Connection reset by peer]
xing_song has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
the_lanetly_052 has joined #osdev
xenos1984 has quit [Quit: Leaving.]
lleo has joined #osdev
<kingoffrance> " pesky legacy issue of being terrible difficult to download updates for" thats a feature, avoids new bugs
<kingoffrance> do you want old bugs or new bugs?
lleo has quit [Ping timeout: 268 seconds]
lleo has joined #osdev
lleo has quit [Remote host closed the connection]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
Burgundy has quit [Ping timeout: 240 seconds]
wand has quit [Remote host closed the connection]
xenos1984 has joined #osdev
wand has joined #osdev
YuutaW has quit [Ping timeout: 240 seconds]
YuutaW has joined #osdev
xenos1984 has quit [Quit: Leaving.]
catern has joined #osdev
<geist> huh that's annoying
<geist> DHL just decided not to deliver today, says it's On Hold to be delivered in a future delivery cycle
<geist> so, okay, you just go ahead and do that DHL
<zid> day 8 part 2 of advent is somewhat interesting, it gives you a bunch of 'abeg' type strings that represent 7 segment LED segments and you have to do math
<zid> ..but you don't get told what wire is which segment
<geist> but aren't computers notoriously bad at math? that seems like a complete misuse of programming
<zid> You have to use the uniqueness of the font to figure it out
<zid> 7 is the only thing with 3 segments set, so if you see 'cef' you know that it's a 7, and c e f are some combination of top, top right, bottom right segments
<zid> I bet you could do it with an enourmous set of logic gate ops :D
<geist> i betcha the abc.. are the traditional led segments used in ages of yore
<zid> decoded_bottom_segment = (number[0] & 0x3E)>>2 & (number[1] << 2) ...
<geist> the standardized naming that is
<zid> nah it's specifically scrambled
<zid> That's the point of the challenge
<zid> and the cipher changes every line, so you can't just do it once on a piece of paper
<zid> you have to code it up
<klange> Differently for each line of input~
<zid> klange: did you manage to get something not a total mess?
<klange> I think I did okay.
<klange> I got 101st place for the first part :(
<klange> And then took a half hour for the second because i was in a meeting
<zid> yea but is the code not a hairy mess? :p
<zid> I woke up late to attempt to do it on-time
<klange> Could be cleaner, but I think it's not terrible.
<klange> Give me several minutes to post, in a dungeon in ffxiv
<zid> Not sure how to solve it without just making a huge tree of ifs() until I add enough that all the test cases pass at this point, I'll either mull on it then write something clean, or get started on my mass of ifs() and it'll help me figured out a decent method, not sure which yet
<zid> Oh sorry, enjoy your dancing
gog has joined #osdev
<bslsk05> ​klange.dev: day8.krk
<Ameisen> geist - I'm thinking the only way to really get a Motorono/Arduinola is to get one of those Arduino-compatible FPGA boards, and flash an m68k onto it.
<geist> sure
<geist> i've been slowly piddling with building a 68k based board myself, just haven't finished it up
<geist> but i have a few 68k chips floating around too
<Ameisen> unless somebody wants to actually build a board for an actual chip, though I think the only ones that are still made are like... coldfires, maybe?
<geist> though they're pretty cheap to get on ebay
<Ameisen> DIP or other packages?
<Ameisen> main issue I'd see with DIP would be that it results in a rather large board
<geist> DIP for the 68008 and 68000 i have and then a PGA 128 for the 68030s
<Ameisen> Mreh, I used to have old macs sitting around, could have ripped out the 68ks
<geist> problem with the latter is the amount of bus circuitry is somewhat higher
<geist> but yeah the full 68000 is pretty big. the 68008 is somewhat smaller, since the D bus is only 8 bits wide so it helps
<Ameisen> I'm sure you've read it, but just for posterity: http://www.easy68k.com/paulrsm/dg/
<bslsk05> ​www.easy68k.com: DTACK GROUNDED Archive
wolfshappen has quit [Quit: later]
<Ameisen> Somebody was working on a 68k being operated via an avr arduino, and spent a rather large amount of time dealing with DTACK
<Ameisen> and was linked to that.
wolfshappen has joined #osdev
<Ameisen> evidently the AVR isn't capable of signalling dtack fast enough
m3a has quit [Quit: leaving]
<zid> okay I cheated and took a peek klange, more or less what I was sort of expecting, just figure out the unique intersections and do it in stages
<zid> It'd be funnier to do it as a one-liner with a fuck load of masks and stuff though
GeDaMo has joined #osdev
* zid reads more of his book instead of coding like a naughty boy
<klange> I bet this problem would be fairly clean in, like, prolog or something.
sdfgsdfg has quit [Quit: ZzzZ]
bauen1 has quit [Ping timeout: 256 seconds]
Burgundy has joined #osdev
elastic_dog has quit [Ping timeout: 240 seconds]
elastic_dog has joined #osdev
dormito has quit [Quit: WeeChat 3.3]
sdfgsdfg has joined #osdev
ahlk has quit [Ping timeout: 245 seconds]
heat has joined #osdev
<bslsk05> ​github.com: ltp/fsx-linux.c at master · linux-test-project/ltp · GitHub
<heat> fairly portable filesystem stress tester
sdfgsdfg has quit [Quit: sdfgsdfg]
sdfgsdfg has joined #osdev
ravan has joined #osdev
xenos1984 has joined #osdev
dormito has joined #osdev
Dreg has quit [Ping timeout: 252 seconds]
Dreg has joined #osdev
Dreg has quit [Ping timeout: 265 seconds]
wolfshappen has quit [Ping timeout: 252 seconds]
wolfshappen has joined #osdev
Dreg has joined #osdev
Dreg has quit [Ping timeout: 265 seconds]
bauen1 has joined #osdev
<zid> I only have really unportable filesystems to test, is there a tool for that too? Seriously though, I love little stressy tools like that, ab for http and stuff.
<j`ey> stress-ng too
Dreg has joined #osdev
<bslsk05> ​google/file-system-stress-testing - A tool that can be used to stress test POSIX filesystems. (23 forks/83 stargazers/Apache-2.0)
Dreg has quit [Read error: Connection reset by peer]
<heat> also syzkaller which is fantastic, probably the best fuzzer ever
<heat> also, fio probably counts as a stress test in a way
Dreg has joined #osdev
<j`ey> I need to get syzkaller running soon
<heat> syzkaller is general purpose too, not just IO
<heat> yeah same :/
<heat> my issue with syzkaller is that documentation is kind of not great
<j`ey> (for linux fuzzing, not my own OS like I assume you want!)
<heat> :D
<j`ey> want to test KCSAN more
<heat> what would you need it for?
<j`ey> ^
<heat> i know google runs automated syzkaller with at least KASAN
<heat> maybe ask them (very nicely and pray) to have a KCSAN variant?
<j`ey> they probably will, but it isnt enabled yet for arm64
<bslsk05> ​syzkaller.appspot.com: KCSAN: data-race in ext4_fill_raw_inode / ext4_orphan_del
<heat> yeah I've seen that
<bslsk05> ​github.com: syzkaller/syzbot.md at master · google/syzkaller · GitHub
<heat> says they can't reproduce the races so they can't test patches
<j`ey> yeah races are hard I guess
<j`ey> but it'd be nice to have a local syzkaller setup anyway, my coworker has, so he can help me set it up
Dreg has quit [Read error: Connection reset by peer]
<heat> do you work on both linux and edk2?
[itchyjunk] has joined #osdev
<j`ey> Im kinda moving away from edk2 and more onto linux stuff
<heat> having the freedom to switch is very cool :)
<j`ey> I knew that Linux was really what I wanted to work on, so had to talk with some managers and stuff
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<heat_> <heat> i've always meant to submit some patches or so to linux, but it's kinda scary
<heat_> <heat> and I have legitimately few things to work on, everything has been mostly done lol
<heat_> <heat> "hey linux do you want an ext4 driver" doesn't really work in this situation xd
heat_ is now known as heat
<heat> tracking down this weird bug the ipv6 stack has might be a possibility
<j`ey> right, I felt the same, thats why I wanted to do it at work
ahalaney has joined #osdev
zaquest has quit [Read error: Connection reset by peer]
zaquest has joined #osdev
pg12 has quit [Ping timeout: 256 seconds]
pretty_dumm_guy has joined #osdev
pretty_dumm_guy has quit [Client Quit]
heat has quit [Remote host closed the connection]
xing_song has quit [Read error: Connection reset by peer]
xing_song has joined #osdev
exec64 has quit [Remote host closed the connection]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
tom5760 has quit [Remote host closed the connection]
sm2n has quit [Remote host closed the connection]
exec64 has joined #osdev
tom5760 has joined #osdev
sm2n has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
srjek has joined #osdev
mid-kid has quit [Ping timeout: 240 seconds]
ElectronApps has quit [Ping timeout: 252 seconds]
<junon> klange: fan of mika nakashima?
dude12312414 has joined #osdev
<junon> Also, if the kernel maps itself into the higher half of all use processess, does that include buffers and whatnot? What's stopping random processes from reading e.g. kernel buffers/stacks/etc and leaking data?
<junon> user*
<junon> Can you do something like W/X but not R permissions on those pages or something?
<junon> Or is it all done by rings?
<junon> Ohhh it's rings, isn't it
<j`ey> dont you fault if you access them?
<clever> junon: there is a permission flag in the paging tables, that say if it can be read by userland or kernel
<clever> so you can flag the kernel space as not accessible to userland
<junon> Yeah okay that makes sense
<clever> but there is also those new exploits (blanking on the name)
<clever> where the cpu will read from a given address in prefetch, before checking permissions
<junon> spectre/meltdown
<clever> thats the one
<clever> basically, you can tell the cpu to read from ram[ram[foo]]
<clever> first read kernel space, then use that as a pointer/offset to read again from elsewhere
<clever> but you then dont actually run it, by using conditionals to skip it
<clever> but you fooled the cpu into thinking you may run it, so prefetch reads it ahead of time
<clever> and that "elsewhere" addr is now live in your cache
<clever> you then test if its in the cache or not, and you can infer the value of ram[foo]
<clever> so now nobody maps kernel into the main tables
<clever> (except when the cpu has been patched)
xenos1984 has quit [Quit: Leaving.]
* junon got an unexpected phone call from the maternal parental unit, will respond soon
sprock has quit [Ping timeout: 265 seconds]
Kerum has joined #osdev
xenos1984 has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
pg12 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
the_lanetly_052 has quit [Ping timeout: 240 seconds]
<junon> okay back
<junon> right yes that sounds right
<junon> but then if that's the case, how do you handle interrupts and the like?
<j`ey> theyre in ring-not-user
<junon> because you need to have them mapped in for the CPU to jump to when an IRQ comes in during the userspace process time slot, right?
<junon> right but if that was being bypassed by the vulnerability, how did they address that?
<junon> if you map them in, you're vulnerable. If you don't map them in, you lose the ability to handle IRQs
<j`ey> you only map in a tiny part
<junon> so they must not map in the entire kernel, just the stuff to handle IRQs and the like, right?
<junon> seems like the (linux) kernel should have been doing that anyway, surprised it wasn't
<bslsk05> ​en.wikipedia.org: Kernel page-table isolation - Wikipedia
<junon> Right but it doesn't explain why removing the extra pages from userspace decreases performance. Does it have to buffer syscalls to be read by a kernel thread or something?
<junon> Or maybe I just didn't understand something correctly
<j`ey> because you have to swap the page tables on entry
<j`ey> to the kernel
<junon> aha
<junon> Yeah I'm having to un-learn some previously incorrect understandings of virtual memory.
<junon> Keeps confusing my mental model of how this all works.
isaacwoods has joined #osdev
<zid> It's a bit like a loading zone in a playstation game :p
<zid> You go from userspace, to the little cutscene of a door opening, to the kernel
<j`ey> you can probably just leave it mapped in tbh
<junon> yeah makes sense.
<junon> Whereas beforehand everything was already mapped and ready to go
<zid> but the only reason you do map/unmap is because: people like to use their cpus in THE CLOUD
<junon> It's actually much simpler in reality than what was happening in my head. I overthought it.
<zid> I don't have any of these mitigations enabled
<junon> Yeah well also viruses and stuff too
<zid> it's a desktop, that I run my own stuff on, and none of the attacks work through the browser because the browser is the thing with the important keys :p
<junon> but yeah the multi-tenant stuff was more the concern.
<zid> ring0 is irrelevent, it's the firefox.exe that ruins my life if it gets messed with
<zid> Thank god all those trojans for stealing my gmail password can't install printer drivers.
bauen1 has quit [Ping timeout: 268 seconds]
bauen1 has joined #osdev
<GeDaMo> Not yet :|
sprock has joined #osdev
lleo has joined #osdev
Oli has joined #osdev
Oli has quit [Client Quit]
Oli has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
kazinsal has quit [Read error: Connection reset by peer]
Kerum has quit [Quit: leaving]
kazinsal has joined #osdev
amj has joined #osdev
<junon> Continuing on from the conversation from yesterday, is IPI now also obsolete with MSI?
<geist> inter processor interrupts? not at all. that's for a completely different purpose
<junon> gotcha so the LAPIC is still relevant even with MSI
<junon> since the LAPICs talk to each other, right?
<zid> PIC doesn't mean PIC in everything that isn't PIC or IOAPIC really
<zid> LAPIC/x2APIC/etc are the internal controllers, rather than IRQs
<geist> plus you'll want to use the local timer on the lapic
<geist> since you have one per cpu
<zid> The LAPICs handle crap like messaging and timers, the 'interface' is either the pic or ioapic
<junon> confusing naming if you ask me lol
<geist> yah think of lapics and ioapics as two different things for different purposes
<geist> even if they're derived from the same source in the distant past
<junon> but they both interface with the CPU to issue IRQs in much the same way?
<geist> no
<junon> and MSI only supercedes IOAPIC, not LAPIC? or am I off base
<geist> they really dont. not the same thing at all
<geist> right
<geist> gotta go. meeting
<geist> bbiab
<junon> np
<zid> Like I said, pic and ioapic are just the sort of hw interfaces
<zid> lapic is the 'device' they're talking to
<zid> (or x2apic or whatever)
<geist> yah think of the lapic as the per cpu recipient of IRQs
<geist> (and also a local timer and a way to send IRQs to other cpus)
srjek has quit [Ping timeout: 265 seconds]
<geist> it's the train station of irqs, per cpu
<zid> Turns out it's not very helpful if all the CPUs share a single interrupt controller
<junon> Okay so the CPU by itself without PICs has a number of IRQs, the LAPIC is the first thing that talks to the CPU to issue IRQs, and then after that is the IOAPIC/PIC that issues IRQs to the LAPIC?
<zid> but that interrupt controller interface from the /outside/ needed to still exist
<zid> so they all got a 'LAPIC' which is internal to the cpu, and the whole package has an 'ioapic' which is the old 'wires to tell the cpu an IRQ happened' part
<zid> to the cpu core*
<junon> AH so there has never been an external LAPIC 'chip', it's always been internal to CPUs
<zid> And then MSI exists to bypass the old external api and deliver IRQs to specific LAPICs
<zid> so that you can do things like IRQ routing
<zid> So the way you 'wake up' the 'other' cores on a multicore CPU is that the main cpu just puts a message onto the bus the LAPICs talk on to tell them to wake up, like wake on LAN but wake on LAPIC? :P
<zid> core0 can boot as normal because its lapic connected to the ioapic and stuff
<junon> https://projectacrn.github.io/latest/_images/interrupt-image46.png I assume this is accurate, sans MSI it appears
<zid> BSP = core 0, AP1 = core1,2,3..
<junon> what do BSP/AP stand for?
<zid> application processor and erm
<zid> base state? banana smoothie?
<junon> base... something processor? Additional processor?
<Bitweasil> Bootstrap Processor vs Application Processor.
<j`ey> boot stage?
<zid> bootstrap!
<Bitweasil> *Generally* your BSP does some setup while the APs wait.
<junon> Hahah
<Bitweasil> Details are hardware platform specific.
<zid> I'm not sure how that bus works, I wouldn't be surprised if it just effectively turned external IRQs to the IOAPIC into MSI messages for LAPIC on core0
<junon> I prefer banana smoothie processor
<Bitweasil> And bootloader specific, and... etc.
mahmutov has joined #osdev
<Bitweasil> Linux and Windows require different things from their bootloaders, for instance.
<zid> oh I found some neat diagrams
<bslsk05> ​redirect -> hsto.org <no title>
<bslsk05> ​redirect -> hsto.org <no title>
<junon> Oh wow okay so these chips didn't replace them, it's just that more and more shit got added onto the chain over time
<Bitweasil> That's x86, yeah.
<junon> I mean, IOAPIC didn't replace APIC/PIC
<zid> They just moved more and more internal over time
<zid> pci-e is built into the cpu now
<Bitweasil> Correct, they boot into a default-8086 style mode/behavior.
<Bitweasil> Yeah, memory controller is on-die now instead of the northbridge, PCIe comes off the CPU...
<zid> so the irqs that pci-e generates never even talk to a chip
sprock has quit [Ping timeout: 240 seconds]
<junon> lmao x86 is a kitchen sink isn't it
<zid> it has a 10 billion transistor budget
<zid> they can afford 400 to add a PIC internally
<Bitweasil> It's not a kitchen sink.
<zid> soldering a 8529 to your mobo probably costs 4 cents and takes up 500000x the area
<Bitweasil> It's the whole damned restaurant district.
<bslsk05> ​en.wikipedia.org: AT (form factor) - Wikipedia
<zid> All those chips are now on-die :p
<zid> the cache, the interrupt controllers, memory controller, etc
<Bitweasil> Not so, the DRAM is still off-die!
<Bitweasil> For x86. Currently.
<zid> not always
<zid> knight's landing was supposed to have stacked dram
<zid> did they not do it?
<Bitweasil> I thought that was stacked, but still off to the side?
<Bitweasil> HBM or something isn't the same as DRAM on the CPU die.
<zid> I guess that's how it ended up, but they did plan it
<Bitweasil> I could be wrong, but let's not confuse *that* branch of x86 with mainline x86.
<Bitweasil> Looked great on paper, at least.
<zid> yea knight's landing pics say it's on the edges of the die
<zid> the original screenshots had it stacked
<zid> lakefield is stacked I think
<Bitweasil> Huh, OK! I hadn't realized that, neat!
<zid> it's the new atom though so you kind of expect it
<zid> socosocococococ
<Bitweasil> lol, yup.
<zid> entire mobo on a die, pci-e connector goes straight into the silicon
<Bitweasil> That's what the Atoms are, lately. The computers are literally just the SoC breakout board.
<zid> bond wires make your signals bad
<zid> traces make them even worse
<zid> and soldering multiple chips is expensive
<Bitweasil> PCIe shrugs, trains, and goes on with life.
<Bitweasil> Have you seen some of the abomination "GPU Extenders" that actually *work*?
<Bitweasil> They're like... 50 pin SCSI cable, cut diagonally, soldered with globs to the connectors.
<zid> I have a pci-e ribbon cable
<zid> They hacked the ps5 by connecting its pci-e bus over essentially a null modem cable and sniffing it at 115200 baud
<zid> ps4* ps3* one of em
<gog> zid: mood
lleo has quit [Ping timeout: 252 seconds]
bauen1 has joined #osdev
<zid> gog: I'm after a hookup that may get kinky, where do you buy hdmi cables?
<GeDaMo> Lidl
<zid> Okay GeDaMo let's go get kinky then
<junon> Lidl has HDMI cables?
<GeDaMo> Only sometimes unfortunately :P
<bauen1> Lidl has basically anything, except good food
<junon> I don't know that I've been to a lidl, only seen the outside.
<GeDaMo> I do most of my shopping at Lidl :|
<junon> We have a lot of those in Berlin, all of them seem to suck equally, just in different ways.
<zid> I saw a meme about the crap supermarkets sell somewhat recently, I don't remember what it was but basically "Glad I went to tesco/lidl/aldi/wherever today, I needed a hdmi cable, an electric shaver, a pineapple and a 4 foot inflatable cow"
<junon> Penny has anything you'd need - cleaner next to produce, alcohol next to batteries, etc. And the cashiers are the most jaded, disgruntled people on god's green earth.
<zid> it's just.. apparently a thing
<junon> Ullrich has nice stores but the produce is moldy almost as a rule.
<zid> junon: They should open in the UK
<junon> etc.
<zid> If the person checking me out has a will to live it just feels wrong to me
<junon> When I first moved into my apartment, I had to call Wayfair to discuss a couch that was being delivered to me (pro tip: don't buy couches online. ever. it is never a good idea.)
<junon> I was pretty used to the German directness after having lived here for a year or so, but had to call the US line to get someone who spoke English. She was the most chipper, nicest, friendliest person I had talked to in months.
<zid> I'd have hung up
<junon> Asked where I lived, then told me a story about how she knew someone (a distance cousin's boyfriend's somethingsomething etc.) that visited germany once. That was it. No other point to the story. Five minutes in all to talk about it.
<zid> americans: 10/10 CUSTOMER SERVICE A++ WOULD SHOP AGAIN
<junon> Forwarded me to the Irish call center because they handle the European delivery company stuff - dude was nice but no bullshit. Asked me a few things, told me exactly how it was going to go, step 1,2,3, on this day, at this time, "Any other questions? Everything make sense? Great, have a wonderful day." *click*
<junon> And it was pretty much at that moment I realized why "Hey, how are you?" is considered weird and cringey here in Germany.
<zid> Top lad
<junon> Yeah, the Irish are consistently some of the best people I meet.
<bauen1> as a german, just the concept of a cashier smiling at me no matter what, is incredibly creepy
* junon nods
<zid> bauen1: Ah yes, a fellow human, hello
<junon> I've seen entire checkout interactions at Edeka that consist of zero exchanged words here. It's both fantastic and otherworldly, as an American.
<zid> In britain you say 'thanks, bye'
<zid> Just force of habit
<GeDaMo> Cheerio! :P
<junon> Also, Germans stare. A lot.
<junon> American culture abhors eye contact. It's almost as bad as seeing someone naked.
<junon> Whereas in Berlin at least, you can mind-meld with someone on the train with the eye contact you get.
<junon> haha
<geist> cool looks lke the lapic/ioapic stuff got solved while i was out
<junon> geist: yes, mostly. Next is figuring out these magic numbers for the IN/OUT stuff when e.g. remapping APIC interrupts.
<junon> I'm waiting for all of this to 'click' for me. I haven't had a 'click' in almost a decade. I miss that feeling.
<geist> need to start being more precise too: lapic and ioapic are two different things
<junon> The only reason they're called "A"PICs (in both cases of the LAPIC and the IOAPIC) is to differentiate them from the super old-school standard PIC, right?
sprock has joined #osdev
<zid> that's an APIC
<zid> you're talking about the pic or ioapic if you're remapping interrupts
<zid> you're remapping them *for* the apic, by programming the ioapic to remap them
<junon> But a single APIC doesn't exist in a multi-core system, right?
<junon> when you say that they're being remapped for the apic, you're referring to the lapic, right?
<zid> it's 'the apic' to that cpu core :P but it's that core's local apic
<zid> aka lapic
<junon> so is there a cross-core APIC then? Or does the IOAPIC interface with each individual LAPIC?
<zid> unicore exists
<junon> In the diagram I saw earlier it looked like the ioapic knew about each individual lapic
<zid> in which case the apic is just the apic
<zid> ioapic only delivers to the bsp as far as I know, it just has to be on the bus to send the messages at all
<zid> it *probably* just turns them into msi-xs for core0 if I had to guess, but idk
<junon> you mean a single core CPU
<zid> yes, uni means one
<zid> They talk over 'The APIC bus which it and its messages are invisible and not classed as architectural'
<zid> aka not documented in the sdm
fkrauthan_ has joined #osdev
Piraty_ has joined #osdev
bleb_ has joined #osdev
<gog> zid: sorry i didn't reply i was too busy being a responsible adult. for kinky hookups i recommend a cat-five-o-nine-tails
samis has joined #osdev
<zid> dirty bastard
<zid> how dare you misconstrue my perfectly innocent request
<gog> i calls em like i sees em
gorgonic- has joined #osdev
<junon> didn't know if "unicore" was a specific term for something haha, dumb question
<junon> ah okay so it varies then
<junon> if I understand correctly
<junon> and I see, so e.g. keyboard interrupts are always going to go to core0?
<junon> or at least, it's a detail that the programmer doesn't care about
CompanionCube has quit [Remote host closed the connection]
gorgonical has quit [Ping timeout: 260 seconds]
fkrauthan has quit [Quit: ZNC - https://znc.in]
Piraty has quit [Remote host closed the connection]
bleb has quit [Ping timeout: 260 seconds]
kkd has quit [Ping timeout: 260 seconds]
fkrauthan_ is now known as fkrauthan
bleb_ is now known as bleb
m3a has joined #osdev
<junon> kit kat5 club
<gog> mew
dutch has quit [Quit: WeeChat 3.3]
<junon> wait does real mode not fire exception interrupts?
<junon> (I'm re-eading the 8259-pic page again, just to make sure I understand it all)
kkd has joined #osdev
<zid> exceptions are internal
<zid> pic is for delivering IRQs
<zid> it maps them to an interrupt # and sends that
<zid> IRQ8 -> INT 232 or whatever
<zid> same as if you did "int 232" in code
<geist> junon: the reason they're called apics is originally, back in the 486 days, there was a discrete chip called the APIC
<geist> 82093AA
<zid> okay so there was a real one, good to know
<geist> back then you would literally wire it up such that there was an APIC on each cpu, and a separate apic out in the motherboard
<geist> and the way you programmed/strapped it would change it's role
<gog> the first 8 vectors in the IVT are reserved in real mode
<zid> I've never seen a dual 486
<geist> over time (pentium) they pulled a copy of it inside the cpu, called it the local apic and started to munge it into a new shape
dutch has joined #osdev
<geist> and the external one (ioapic) got pulled into the chipset, etc
<geist> so if you squint at their register set they're similar, because originally it was a single kind of chip
<junon> gog has transcended into catdom
<gog> yes
<zid> I think she was half way there to begin with
<geist> zid: re: dual 486s there weresome, but they were server class thing. i remember there being an early Compaq proliant class server
<geist> https://en.wikipedia.org/wiki/Compaq_SystemPro looks like. i think it was one of those
<bslsk05> ​en.wikipedia.org: Compaq SystemPro - Wikipedia
<geist> and it's follow up 486 version. probably early proliant
<gog> compaq proliant 4000 had for slots for card-mounted 486's apparently?
<zid> not even 4096? amateurs
<geist> OTOH it was possible those early machines had non standard interrupt controllers
<geist> may be that intel had the 82093AA but wasn't used that much as a local apic
<junon> Right yes, but the 8259_PIC page states "These default BIOS values suit real mode programming quite well; they do not conflict with any CPU exceptions like they do in protected mode." implying that real mode doesn't raise exceptions
<zid> You'll struggle to get a #GP without a segment selector
<zid> or a #PF without paging
<geist> or at least all the real mode things are 0-7
<zid> and those are >8 yea
<zid> >7 I guess
<geist> bu tyeah i reember doug and i talking about it one day and i think basically everything >=8 you need at least protected mode for
<zid> my mobo is significantly less ugly and much more cute ngl
<geist> doesn't mean it's not a pain for some DOS exception handlers, i think there were some cases where the handler had to test for exception first
<junon> I see okay
<geist> but mapping the PIC to 0x8 was straight up a BIOS mistake on ibms part
<zid> You may not like it but https://rog.asus.com/wp-content/uploads/2011/12/rampage-iv-gene-1.jpg This is what peak motherboard cuteness looks like
<geist> someone didn't read the manual, because even in the 8086 days 0-31 were reserved
<zid> I'm surprised DOS didn't move them?
<gog> i don't like to go to the republic of gamers because they shout gamer words at me
<geist> dont think it could for bios reasons i guess
<zid> quad channel, 40 pci-e lanes, micro-atx, 19 power rails, blah blah
<geist> the second PIC is mapped at 0x70, so someone at least got the message there on IBM PC AT
<zid> also, I confirmed that the LED block responds to port 0x80 the other day
<zid> it does, and the user i/o driver I installed for it completely broke my fan control :p
<gog> oops
<junon> okay so the confusion surrounding the "why" on the default mapping was warranted
<bslsk05> ​www.crunchyroll.com: Crunchyroll - VIDEO: There's No Way My Circuit Board is This Cute
<junon> the "why" being "IBM made a mistake"
<geist> yep
<junon> why couldn't DOS move them? Did DOS operate in real mode?
<geist> at the time, 8088/8086 only implemented like 2 or 3 exceptions
<geist> in the ibm pc that is, so someone at IBM said 'oh lets just map the PIC at 0x8 that seemsout of the way'
<geist> i dunno precisely why they couldn't but most likely it was because the BIOS assumed the PIC was mapped a particular way
<geist> and there were probably lots of bios routines that interacted with the PIC
<junon> Ah okay
<zid> or maybe just a really silly reason like int 2 had to be the timer irq for some legacy software package they wanted to support :p
<zid> or whatever it is, irq2, int10?
* zid shrugs
<junon> a lot of the "why" seems to be "well one group of devs needed it a certain way, then everyone else copied it"
<zid> everyone copying it even if it's dumb is honestly much preferable to the alternative
<junon> everyone making something new? haha
<zid> see: The web
<junon> Yeah
<zid> They keep digging, eventually they'll be out of the hole they're in!
<bslsk05> ​Note by bhtooefr: "I must admit, there's a part of me that wants a Compaq SystemPro architecture machine. ␤ Basically, SystemPro was arguably the first PC-compatible symmetric(ish) multiprocessing[…]"
<zid> god damnit, I just sat down and started eating the snack I just went and got.
<zid> I did not get up to get a snack, I got up to turn the heating on. *gets up again*
<gog> snack > warmth
* gog stares at zid and mews
<zid> I'm very much a warmth > snack person
<zid> cats can't have chocolate you're shit out of luck
<gog> :(
<zid> tis chocolate coated raisins, just for the kCal cus I suck at eating
<gog> i've actually had an appropriate amount of food and water today
<zid> I'm good at drinking
<zid> Give me a barrel of dr pepper and we can negotiate how many hours it has to last me
<gog> i keep forgetting that winter means drink more water and i was badly dehydrated yesterday
sdfgsdfg has joined #osdev
<zid> I am accepting christmas presents, in the form of paletts of 2L bottles of dr pepper.
<zid> pallets*
<gog> sugar drinks are not water zid
<zid> They contain 2L of water!
<zid> it's almost entirely water, infact
<gog> it's your pancreas :p
<zid> they took most of the sugar out anyway
<zid> it's 22kCal/100mL now instead of 40
<zid> But, I'm sure I'll manage to handle 800 Calories of sugar, that's like.. a couple pears
<j`ey> if zid doesnt want his pancreas,ill take it
<zid> I think you need disfunctional insulin cells to get type-2 if you're thin
<zid> like, genetically
<zid> regular type-2 is because your blood's got so much sugar in it they dial down their sensitivity
GeDaMo has quit [Remote host closed the connection]
sprock has quit [Ping timeout: 265 seconds]
sprock has joined #osdev
<zid> Finally got off my arse to finish advent
<zid> if(w.map[7] && w.map[4] && cb(w.map[7] & w.dig[i]) == 2 && cb(w.map[4] & w.dig[i]) == 3)
<zid> ended up with some lovely expressions :D
dormito has quit [Quit: WeeChat 3.3]
<geist> oh that's not bad
<geist> sometimes you gotta just write a complex expression
<zid> I might have been able to come up with a better representation so I didn't need the boolean checks at the start
<zid> and they might not *actually* be needed, thinking about it, not sure, but, done now so who careeees
<geist> yay write a comment and move on
<zid> like I am going to edit this code :p
<geist> yay even better. write only code
<geist> thanks DHL for just deciding you're not going to deliver to my house today
<zid> I mean, advent basically is
<geist> well yesterday, and today. they dont even know where it is. i wonder if they lost it
<geist> odd because DHL is usually the best of the best
<zid> I'm surprised with the amount of people who did the 'search space' bruteforce, not the input bruteforce, wow
<zid> A lot of people just tried every possible combination to see if it decoded the answer correctly
mahmutov has quit [Ping timeout: 256 seconds]
sprock has quit [Ping timeout: 252 seconds]
ahalaney has quit [Quit: Leaving]
srjek has joined #osdev
srjek|home has joined #osdev
dormito has joined #osdev
srjek has quit [Ping timeout: 252 seconds]
isaacwoo1 has joined #osdev
isaacwoods has quit [Ping timeout: 265 seconds]
<Bitweasil> geist, I had DHL be a day late and 8 miles lost this week.
<Bitweasil> They finally called and asked where I was.
<Bitweasil> It was one of the three common places people who can't find our house are.
dude12312414 has joined #osdev
srjek|home has quit [Ping timeout: 252 seconds]
Burgundy has quit [Ping timeout: 265 seconds]
Oli has quit [Quit: leaving]
<junon> Is there any reason not to upgrade to windows 11?
<junon> aside from "windows sucks" which I'm fully aware
<zid> so that there's one more layer of dialogues before you change any setting ofc
<moon-child> is there any reason _to_ upgrade?
<zid> so that there's one more layer of dialogues before you change any setting ofc!
<zid> geez moon get with the microsoft program
<junon> moon-child: mouse support for conpty
<junon> I guess.
<junon> windows terminal just randomly froze a few panes (not all of them) and then crashed when I resizing a pane. so I found a new emulator (unfortunately still no sixel support...)
<junon> but that emulator doesn't have mouse support because it uses conpty, which added mouse support but only for windows 11
YuutaW has quit [Quit: WeeChat 3.3]
<junon> nvm I can't, no TPM
<zid> You don't need tpm for 11
<zid> press shift-f10 to open cmd.exe during install, run regedit and change the BypassSecureBootCheck key to 1 :p
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<junon> Thanks
<zid> HKLM system.. something.. labconfig
<zid> google it
<junon> Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassTPMCheck -> 1
<junon> also need BypassRAMCheck and BypassSecureBootCheck
<junon> (according to this guide)
<zid> they might have messed with the keys since I last knew anything
<zid> or just my one works, who knows
sdfgsdfg has quit [Quit: ZzzZ]
<Bitweasil> junon, concerns about just how much Microsoft has woven advertising and such into the OS, and how strongly they care that you have an Online Account for Win11?
<junon> They already do that in win10 though :|
<Bitweasil> We know that during a beta, they literally rendered explorer inoperative due to bad advertising delivery. That speaks to some unholy levels of integration between "basic OS functionality" and "Deliver ads to my screen" that I'm not OK with.
<junon> Oh really
<Bitweasil> And then Win11 Home requires an online account, nerfing the current "Install without network" workaround. That tells me that they really, really are incentivized to know who you are, so they can do some big data [insert buzzwords here, probably involving selling your app use}.
<Bitweasil> https://www.ctrl.blog/entry/windows11-empty-taskbar.html <-- From a few months back.
<bslsk05> ​www.ctrl.blog: Why can an ad break the Windows 11 desktop and taskbar?
<zid> I will use w7 until it stops working, most likely
<Bitweasil> > Earlier today, Microsoft pushed a promotional message to early adopters of Windows 11. The promo intended to promote the upcoming operating system’s integration with Microsoft Teams. Instead, it caused Explorer (the Windows desktop shell) to stop responding and left users without a working Start menu and taskbar.
<zid> like if firefox stops installing on w7 because of some msvcrt version being needed or whatever
<junon> wow wtf
<junon> Didn't know about that
<Bitweasil> zid, aren't you long past the security update window for Win7?
sprock has joined #osdev
<zid> yea but why would I give a fuck? all the exploits are for w10 :P
<Bitweasil> I mean, I calls 'em as I sees 'em. That an *ad* can literally render Explorer non-operational is a huge problem to me.
<zid> like the printer spool escalation was w10+
<Bitweasil> I guarantee you that's not true.
<zid> If it's not patched on w11 either, who cares if it's patched on w7?
<zid> exploit devs almost always target $LATEST_VER, so a lot of exploits don't even apply, and 0day is 0day you can't defend against it
<zid> if there's an outstanding cve for 7 that can't be mitigated or patched, then you consider changing
<zid> Almost always it will be "if you let someone onto your local network and have the <x> service running, ..." though
<zid> which won't apply to me
<Bitweasil> Ok.
<Bitweasil> I can't really argue too hard, I'm running out of OSes to run. :(
<klange> I have decided 2021.12.12 will be the ToaruOS 2.0 release date.
<j`ey> 🎉
<zid> nice box
<junon> that just caused confetti to come down my screen on Element (Matrix)
<junon> j`ey
<j`ey> junon: :-)
<Bitweasil> "nice box" :)
<Bitweasil> hexchat just renders the unicode.
<zid> someone told me about a cool fixedsys upgrade font with a bunch of unicode glyphs
<zid> but it fucking ligatures stuff
<junon> 🎉
<Bitweasil> I consider "not rendering unicode" a feature.
<Bitweasil> My phone won't do it either anymore.
<Bitweasil> I literally can't see emoji.
<klange> That's racist.
<zid> My OS renders unicode, as long as you don't leave basic stuff
<zid> all of the code: like 100k, the font: 180k
<zid> 100k is generous too
<Bitweasil> klange, lulz.
<Bitweasil> It's been a point of pain for a few people who try to communicate with me that way.
<Bitweasil> Good.
* Bitweasil wanders out.
<Bitweasil> Later!