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
<geist> also a new feature is you can set the background color of your profile, so if you have more than one you can tweak the color which helps you discover them
<geist> but yeah what window a click pops up on is really annoying
<geist> doubleplus so when using focus-follows-mouse since it's frequently literally the last window that had any sort of focus
<geist> i sometimes have to arrange the windows so that the mouse exits the one last. almost got that as an automatic thing for me
Benjojo has quit [Read error: Connection reset by peer]
Benjojo has joined #osdev
geist has quit [Ping timeout: 240 seconds]
<gorgonical_> Man. Why qemu do this to me
geist has joined #osdev
<gorgonical_> Apparently somewhere between qemu 2.11.1 and 6.0.0 they really improved nested virt for arm64. On a whim I built the new version and now IRQs are being delivered
paulbarker_ has quit [Ping timeout: 245 seconds]
<kazinsal> yeah, three years of changes or so
<gorgonical_> Well that's two days I spent banging my head into the wall lol
nyah has quit [Quit: leaving]
<j`ey> gorgonical_: why such an old version anyway?
nyah has joined #osdev
Arthuria has joined #osdev
qookie has quit [Ping timeout: 268 seconds]
[itchyjunk] has quit [Ping timeout: 240 seconds]
<kazinsal> iirc ubuntu hasn't updated their qemu repo in yeeeeeears
<kazinsal> ah, my 20.04.2 LTS is showing 4.2 as the latest qemu
<kazinsal> which was released december 2019
[itchyjunk] has joined #osdev
Burgundy has quit [Ping timeout: 245 seconds]
gog has quit []
gog has joined #osdev
nyah has quit [Ping timeout: 268 seconds]
PapaFrog has joined #osdev
Arthuria has quit [Ping timeout: 240 seconds]
ZetItUp has quit []
ZetItUp has joined #osdev
isaacwoods has quit [Quit: WeeChat 3.3]
ns12 has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.3]
ElectronApps has joined #osdev
MiningMarsh has quit [Ping timeout: 268 seconds]
MiningMarsh has joined #osdev
<geist> huh you learn something every day. the voice actor doing Silco on Arcane is a programmer and the founder of Symphony OS
<geist> which is of course some linux distro but interesting anyway
<geist> jason spisak
<geist> (i finished arcane last night, so a bit infatuated with it for a while, bear with me)
dude12312414 has joined #osdev
<kazinsal> it's really good
<geist> oh absolutely
<kazinsal> like, if you told me a couple years ago that a league of legends animated TV show on netflix would be one of the best pieces of media released in 2021 I wouldn't believe you
<kazinsal> but here we are
<kazinsal> desperately waiting for season 2
<geist> yah and after an actual good Dune movie too
mctpyt has quit [Remote host closed the connection]
mctpyt has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
<geist> i guess we'll see more terrible video game spin off things, but hopefully another good one
MiningMarsh has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
Oli has quit [Quit: leaving]
ns12 has quit [Quit: bye]
ns12 has joined #osdev
LostLemon has joined #osdev
LostLemon has quit [Excess Flood]
LostLemon has joined #osdev
LostLemon has quit [Excess Flood]
LostLemon has joined #osdev
LostLemon has quit [Excess Flood]
LostLemon has joined #osdev
LostLemon has quit [Excess Flood]
LostLemon has joined #osdev
LostLemon has quit [Excess Flood]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<geist> kazinsal: hmm, what does progressive web app support mean?
<kazinsal> it's the "chrome apps" thing where it's a web app that lives in its own chromium window that's solely for that web app
mctpyt has quit [Ping timeout: 245 seconds]
elderK has quit [Quit: Connection closed for inactivity]
<geist> oh that
<geist> yeah
pg12 has quit [Ping timeout: 250 seconds]
pg12 has joined #osdev
givemeyourpies has quit [Quit: Going offline, see ya! (www.adiirc.com)]
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 268 seconds]
scoobydoo has quit [Ping timeout: 250 seconds]
X-Scale` is now known as X-Scale
ThinkT510 has quit [Quit: WeeChat 3.3]
auronandace has quit [Quit: auronandace]
ThinkT510 has joined #osdev
pg12 has quit [Ping timeout: 268 seconds]
<zid> Morning, time to go back to fiddling I suppose, currently.. page fault when an IRQ happens
pg12 has joined #osdev
<zid> how this broke I have no idea, it was working fine, git log isn't useful :D
<zid> e and cr2 suggest because of an attempted write to -8, which doesn't really makey any sense to me
<j`ey> git bisect?
Geertiebear has joined #osdev
<zid> idk *when* it was working, commit wise :D
<zid> atm I guess the only thing that could be true would be tss.rsp0 is 0
<zid> hmm TR= in qemu looks wrong, but I don't actually know what it should be showing
<zid> I assume that's task register, like GDTR and has the address of the tss in it but idk
<zid> TR =002b ffffffff80004940
<zid> tss is at 0xffffffff80334930 there's a '33' missing? heh
<zid> 80334940*
<zid> okay so best guess.. gcc started packing my struct differently now I'm using 1
<zid> 11
<j`ey> youre relying on that?
<zid> I didn't think I was..
<zid> but it's the only thing I can think of
<zid> I'll see what's in gdt[5]
<zid> 6b 00 40 49 00 8b 80 80 ff ff ff ff 00 00 00 00
<zid> I'm.. not seeing that 0x33 byte
<j`ey> theres 8b instead?
<zid> nah tss addr is spread all over this damn thing it's annoying
<j`ey> oh ok, I dunno any x86 details
<zid> segment limit 0:15, base address 0:15, base 16:23, type, 0, dpl, P, limit 16:19, avl, 0, 0, G, base 24:31, base 32:64, resv, 0, resv
<zid> those are the bits in order >_<
<zid> okay yea so I think I was building the tss struct incorrectly but in a way that didn't matter until code churn happened to move things around such that this missing address byte got used
<zid> fixed :)
<j`ey> can you show the fix?
<zid> I added an 'FF' to one of my bitmasks
<zid> base_low = tss & 0xFFFF -> base_low -> tss & 0xFFFFFF
<j`ey> oh :)
<zid> I should have just re-made the struct for the TSS, and unioned it with a normal GDT entry
<zid> but instead I just hand-packed the TSS into a GDT entry, and apparently can't count
<zid> but yea, Effectively it was doing 'IRQ stack should be located at kernel_stack & 0xFFFFFFFFFFF0FFFF
GeDaMo has joined #osdev
<j`ey> gg on finding it
<zid> wasn't *too* bad once I sat down to do it
<zid> but I could have been here a loong time if I hadn't noticed those addresses being very subtly different, like if it had the wrong number of 00s or somethign that'd hav ebeen hard
Oshawott has joined #osdev
archenoth has quit [Ping timeout: 265 seconds]
scoobydoo has joined #osdev
<kazinsal> erf. thinking about throwing together a replacement for my old and shambly SB-E xeon box, but while Ryzens aren't that expensive, ones with a proper number of cores don't have any onboard graphics, and even barely-more-than-a-framebuffer cards are unobtanium...
[itchyjunk] has joined #osdev
<MelMalik> oh...
<zid> kazinsal: does it have ecc udimms in it by any chance? :)
<zid> I need some for my sb-ep xeon box
<kazinsal> my current one? yeah, it's a, uh
<moon-child> kazinsal: network graphics!
<kazinsal> I'm not even sure what to call this thing honestly
<zid> well, lmk if they end up surplus
<kazinsal> sure thing
<MelMalik> udimm?
<zid> unregistered / unbuffered
<MelMalik> ah
<zid> rather than RDIMMs
<MelMalik> ohhhh
<zid> https://www.ebay.co.uk/itm/233208601721?hash=item364c50dc79:g:VVMAAOSwxc5cwc6P This is actually really cheap, but it's really slow and 32 would be nicer.. It's still tempting though
<bslsk05> ​www.ebay.co.uk: 16 GB 4x4GB DDR3 PC3-10600U 1333MHZ NON ECC UNBUFFERED 240 PIN PC RAM WARRANTY | eBay
<zid> oh scammed by ebay search again nevermind
<zid> 70% of the listings are "non ecc" which makes me want to stab people in the eyes
<kazinsal> zid: bad news, they're registered
<zid> rip
<zid> Thanks for checking
<zid> That's more like it, 1600MHz ECC UDIMMs, 32GB, £139
<kazinsal> 16x 4 GB DDR3-1600 ECC RDIMM
<moon-child> zid: wait, 140 gbp for a single dimm??
<zid> for four
<zid> 8x4
<moon-child> oh, ok
<moon-child> oh, nevermind
<moon-child> i thought you meant 4 32gb sticks
<zid> I've seen single dimms go for £12 sometimes, but even £48 is kinda dumb just to change a desktop from 2010 to ecc
<zid> and you'd have to find 4 matching listings
<kazinsal> well that's... bizarre. event log on one of my VMs is reporting events as occurring on October 3, 2032... but the current time on the VM is correct
<MelMalik> that's like
<MelMalik> +11 years
<GeDaMo> Isn't that when 32 bit timer wraps?
<kazinsal> That's 2038
<GeDaMo> Ah
<kazinsal> aaaaaaaaand this is a Windows machine which has been NTP synced since I installed it so... bwah
<kazinsal> anyways, as to why I need video output... most AMD boards seem to have realtek NICs instead of Intel ones, and in order to use a realtek NIC on ESXi, you need to install the driver package, which means you need access to the console via either the physical console or via SSH, and SSH isn't going to work if you don't have a NIC driver
<zid> GT210?
<zid> GT710
<kazinsal> yeah, just gotta find one.
<MelMalik> is there no USB NIC you can use temporarily with ESXi to install the driver over ssh?
<zid> https://www.amazon.co.uk/dp/B006TAVASG They're just on the amazon here
<bslsk05> ​www.amazon.co.uk: GeForce PNY 210 - PCIE 2.0-512MB DDR3 64-Bit 520 MHz / 1238 MHz / 1200 MHz: Amazon.co.uk: Computers & Accessories
<zid> oh nevermind out of stock fuck you amazon
<zid> why show it then
<zid> 730s are in stock for £56 heh
<MelMalik> so people can like... wishlist it idk
<klange> ah, my compositor locked up
dzwdz1 has joined #osdev
dzwdz has quit [Ping timeout: 264 seconds]
<klange> failed to awaken while blocked on a read of its IPC socket
<klange> and sure enough I have a pretty obvious, but apparently exceptionally rare (laptop's been sitting here chugging along for... 8 days, 6 hours, 40 minutes), case where that can happen...
dzwdz1 has quit [Ping timeout: 260 seconds]
dzwdz1 has joined #osdev
<MelMalik> klange: Wayland compositor, or the compositor on Toaru?
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
<klange> toaru
jjuran has joined #osdev
dzwdz1 has quit [Ping timeout: 240 seconds]
dzwdz1 has joined #osdev
<MelMalik> oh
gog has quit [Quit: byee]
nyah has joined #osdev
sdfgsdfg has joined #osdev
Arthuria has joined #osdev
_xor has quit [Ping timeout: 268 seconds]
Burgundy has joined #osdev
pretty_dumm_guy has joined #osdev
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` has joined #osdev
X-Scale` is now known as X-Scale
qookie has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
gorgonical_ has quit [Ping timeout: 240 seconds]
pg12 has quit [Ping timeout: 260 seconds]
pg12 has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
sdfgsdfg has quit [Quit: ZzzZ]
MiningMarsh has joined #osdev
Arthuria has quit [Remote host closed the connection]
dutch has quit [Quit: WeeChat 3.3]
isaacwoods has joined #osdev
Arthuria has joined #osdev
qookie has quit [Quit: leaving]
dutch has joined #osdev
_xor has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
ElectronApps has quit [Remote host closed the connection]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
wootehfoot has joined #osdev
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 268 seconds]
zid has quit [Ping timeout: 250 seconds]
zid has joined #osdev
dude12312414 has joined #osdev
freakazoid343 has quit [Ping timeout: 260 seconds]
mahmutov_ has joined #osdev
basil has quit [Read error: Connection reset by peer]
snickerbockers has joined #osdev
basil has joined #osdev
chir4gm has quit [Remote host closed the connection]
chir4gm has joined #osdev
chir4gm has quit [Remote host closed the connection]
chir4gm has joined #osdev
chir4gm has quit [Remote host closed the connection]
dude12312414 has quit [Ping timeout: 276 seconds]
chir4gm has joined #osdev
freakazoid12345 has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
kspalaiologos has joined #osdev
kspalaiologos has quit [Quit: Leaving]
the_lanetly_052 has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 245 seconds]
Meuri has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
gog has joined #osdev
PapaFrog has quit [Ping timeout: 268 seconds]
PapaFrog has joined #osdev
<Meuri> Does anyone here use bochs?
<zid> yes, as mentioned :p
<Meuri> How do I speed up keyboard lag when emulating processors such as the Pentium IV? I'm in freedos and there is noticeable lag.
<zid> Buy a faster cpu, hand compile bochs with more aggressive optimization options
Meuri has quit [Quit: Leaving]
<zid> off to buy a faster cpu ^
<j`ey> or turning off irc, for more ram to recompile
[itchyjunk] has joined #osdev
X-Scale has quit [Ping timeout: 250 seconds]
heat has joined #osdev
<heat> hello, warmth here
<zid> 2C here, die
<heat> :(
<zid> Can you bottle me some warm and mail me it
<heat> 11C is all I have
<zid> yea maybe not worth the shipping costs
<zid> how about an 800C tungsten block
<gog> wolfram pls
<zid> trying to find out how much energy a 10cm cube of tungsten at 800C has? :p
<zid> 19.3kg, not bad
extern has joined #osdev
<extern> hi gues
<extern> guys
<extern> what is the most comperhebsive single book you can recommend on osdev ?
<extern> comperhensive
<zid> comprehensive
<zid> Does the linux source tree and commit history count as a book, it's pretty comprehensive
<gog> "the industrial revolution and its consequences" by theodore kaczynski
heat_ has joined #osdev
<extern> miao
<zid> A short history of nearly everything, bill bryson
heat has quit [Read error: Connection reset by peer]
<extern> i see ..
<extern> thanks
extern has left #osdev [WeeChat 3.3]
<gog> i'm concerned we may not have been helpful
<zid> I'm not
<zid> I mean, we weren't helpful for sure
<zid> I'm just not concerned
<gog> fair
<heat_> yo how do i get the internets around my house
<heat_> particularly, ethernet internets
<zid> A tin of paint, a chisel, a hammer, some plaster mix, a bucket, some water
heat_ is now known as heat
<zid> some conduit
<zid> some faceplates
<zid> some of the little boxes I forget the name of
<zid> some ethernet cables, some connectors, a crimper
<zid> a router/switch/whatever or three
<heat> ideally I'd like to stick cat6 inside the wall but I dunno how that's supposed to be done
<gog> junction boxes
<gog> ??
<zid> chisel a V into the wall
<zid> insert plastic pipe into wall, plaster back over the hole
<jjuran> A bit of beef, a crumb of cheese, a blot of mustard, a fragment of an underdone potato
<gog> HUMBUG I SAY
<bslsk05> ​redirect -> 1.bp.blogspot.com <no title>
<gog> the dickensian aspect
<zid> I prefer a cavalier oblique aspect
<zid> Like fallout 1
<heat> that looks cute but I'm trying to get faster/reliable speeds not building a house
<zid> That's how you do it
<heat> this powerline sucks ass and so does my shitty extender
<zid> If you don't wanna do it like that, you don't wanna do it
<zid> run some cables around the edges of the rooms then
<heat> lol
<gog> unless you live in a stick frame house with a void space in the attic or a basement it's gonna be ugly
<gog> you're gonna have to cut and drill
<zid> It's actually one of the easier diy things if you have nice walls
<zid> 100x easier than fucking wallpapering
<gog> you're not supposed to fuck the wallpaper zid
<zid> the paste is so squishy though..
<gog> lol
<heat> I already have a few cables in the walls, TV and radio (which don't work because who the fuck has radio)
<heat> ideally I'd replace the radio garbage with cat6 and that would be it
<zid> okay here's what you do then
<zid> tie the cat6 to the coax
<zid> pull the coax hard
<zid> you now have cat6 instead of coax inside the conduit
<gog> if there is a conduit
<heat> how do I figure out how much cat6 I need
<zid> a.. tape measure?
<heat> after pulling out the coax?
<gog> keep it on the spool while pulling it
<zid> or measure the wall
<zid> or cut it *after* you install it, yea
<gog> use riser cable
<zid> gog wanna do some DIY?
<heat> fuckin hell this looks complicated
<zid> we'll just sit heat in a deck chair
<zid> he can pay us
<gog> not to be confused with reiser cable which will kill your wife
<gog> zid: i'm down
<heat> heat want fast internet
<heat> heat get 500mbps on router
<heat> heat want 500mbps on computer
<zid> how far away is this router if you were to just drill holes in all the walls on the way
<zid> and taped the cable to the ceilings/floors/walls
<gog> it'd be ugly but it'd work
<zid> and if you have stuff like coving or skirting boards you could always pull them off then put the cable behind then glue them back down
<heat> it's probably what 15-18m straight-line? with thick walls
<gog> how old is the house?
<gog> yes those could def work too
<heat> 2003
<zid> I'd just get a drill and a masonary bit
<gog> hm might not be too bad
<zid> pass it through whatever walls need it passing through
<heat> my mom would shoot me if I drilled a wall
<heat> :/
<gog> don't you live in the united clowndom, where's she gonna get a gun :p
<heat> and so would any female, probably
dude12312414 has quit [Remote host closed the connection]
<zid> have you considered murdering her then attending a basketball game and getting into the photograph used for a collectable card
<heat> gog, no I don't live in the united clowndom
<gog> oh
<heat> clowndom sounds pretty cool though
dude12312414 has joined #osdev
<zid> https://kottke.org/plus/misc/images/s-l1600.jpg (If you don't get the reference, the two kids on the left)
<bslsk05> ​dilbert.com: Dilbert Comic Strip on 1997-11-24 | Dilbert by Scott Adams
<gog> oh shit is that lyle and erik menendez
<heat> hahaha what
<heat> did they kill their mom and went like "oh shit lets go see the knicks"
<zid> yes
<gog> they killed both of their parents
<zid> ebay has apparently banned the sale of that card
<heat> ah at least the knicks were still good in 1996
<heat> that's a relief
<heat> a true true psycho would go see the hornets
<zid> A true psycho would go watch american football
<heat> or baseball really
<gog> i love baseball tho
<heat> real football >> fake football
<zid> baseball is a neat concept, so it's good for like, anime and video games
<zid> it's pretty crappy in real life
<heat> the l in "american sports" stands for "lack of ad breaks"
<zid> You can tell it's fucked up when they measure it in "yards of play"
<zid> Right click theives smh
<gog> zid do you want to start a cryptocurrency with me
<zid> nftcoin
<gog> yes
<zid> It's a coin that can only be traded for NFTs, and the NFTs are pictures of coins
dutch has quit [Quit: WeeChat 3.3]
<gog> yes
<heat> coinft
<jjuran> coinception
sprock has quit [Quit: brb]
<zid> *stuffs face with kebab meat*
<jjuran> If you do that to another to prevent someone from talking, is it a shush kebab?
<zid> if you tell that joke again, I'll shush kebab you, permanently
<jjuran> But I didn't tell it often — only once
dutch has joined #osdev
<geist> zid: re: concerning being helpful. slight suggestion, try to be a little more helpful
<geist> i'd like us to be a higher tier of helpful than the discord channel
<zid> I blame gog
<zid> I posit he already quit before I suggested bill bryson
<gog> zid was acting under my bad influence
<geist> now now you two
<geist> do you two enable each other? do I need to move you to other sides of the classroom?
<gog> that would be for the best i think
GeDaMo has quit [Remote host closed the connection]
sprock has joined #osdev
<geist> made a little more progress on the pci stuff, but i'm finding myself getting more and more trapped in the api design cycle instead of pushing through and getting shit done
<zid> geist gog is making faces at me
<gog> geist zid is making lewd gestures at me
<geist> if i send you both back to the supply room will you get it out of your system?
<zid> kinky
<zid> gog: bring the wallpaper paste
<gog> lol
<geist> so also, maybe it's because i can find it at work, but i was surprised to see that almost all of the pci docs are behind a paywall
<geist> seriously folks
<zid> yea they are
<zid> it's annoy
<geist> i have some but they're early 2000s era pci
<geist> not that the basics aren't essentially the same, at least as far as programming is concerned
<gog> how else is the PCI-SIG supposed to make money
<geist> I'm sure if i poke around I can get full versions from work but they're probably watermarked, etc
c2a1 has joined #osdev
<heat> haha google search go brrrrrr
<gog> i wonder if libgen has it
<heat> i think libgen only has books
<gog> first result is a book that has a lot of technical details
<geist> i did some lightweight grepping of the internet but didn't find much. also predictably the osdev wiki has essentially no links to pdfs
Vercas8 has joined #osdev
<heat> I have pcie from 2010
<heat> rev 3
Vercas has quit [Remote host closed the connection]
Vercas8 is now known as Vercas
<geist> yah that's precisely the one i have too
<geist> and the plain PCI spec v3
<geist> though it's only part of it, it mostly discusses the electrical/mechanical and then gives somewhat of an overview of the configuration space, but says there's another doc for firmware and whatnot
<geist> which makes sense, it doesn't describe how to configure a bus, just what he configuration looks like
<zid> yea I hate docs like that
<zid> they're all I ever seemingly find, too
<zid> "ah good, a register list and stuff" "wait, how do I *use* any of this info"
MrBonkers has quit [Quit: The Lounge - https://thelounge.chat]
<geist> well, it quite specifically mentions that with pci v3 they broke the doc into multiple files
<geist> and it points you at the other one
<heat> may I introduce you to intel GPU docs
MrBonkers has joined #osdev
givemeyourpies has joined #osdev
<heat> has anyone here tinkered with the Raspberry Pi Zero 2W?
<heat> it looks cute and powerful enough to be used for smaller purposes (even osdev) and it's super cheap
<zid> osdev and pi in same sentence, you're going to summon clever
<zid> does it still have mailboxes and a closed gpu
Oli has joined #osdev
<j`ey> its the same soc as rpi3 I think
<heat> zid, probably?
<zid> I don't wanna osdev on it then
<heat> it's also the only rpi I can possibly have right now
<heat> because the 4B is completely out of stock
<heat> waiit I can also get the pico but that one just looks sad
<j`ey> pico is cortex-m
<heat> a riscv board would be cute but those are soo overpriced and availability is low
<gog> is github working for anybody else
<heat> for the price of a rpi 4B you can get a 32-bit riscv IMAC board (so, no floating point)
<j`ey> no gog
<gog> hm i was able to sign in but nothing else is happening
<heat> yeah it's dead
<heat> ping works tho
<zid> I got github to load a page, now it won't
srjek has joined #osdev
sdfgsdfg has joined #osdev
heat_ has joined #osdev
k0valski18 has quit [Ping timeout: 250 seconds]
heat has quit [Ping timeout: 250 seconds]
not_not has joined #osdev
<not_not> hi all
<geist> heya
<not_not> so im either gonna make my first kernel for arm cores on raspberry pi
<geist> cool. which pi in particular? there's a wide variety of cores across the entire line
<not_not> or im gonna make my first kernel for multicore x86 descendants
<geist> and it makes a substantial difference how you go about it
<not_not> ye i know
<not_not> 3b+ i guess
<not_not> arm was first system i ever programmed on alone in my life so nostalgic
<geist> okay, so 3b+ is a cortex-a53. ARMv8 core, with 64 and 32bit modes
<geist> which are you interested in (I recommend 64bit)
<not_not> mhm
<not_not> 64 bit ofc
<geist> perfect
<not_not> always go for the future
<heat_> x86 is also fun btw
<geist> depending on how much you already know about arm32 it may be a bit of an adjustment, since arm64 is fairly different
<not_not> yeah i only really written shellcode in x86 asm never been close to metal
<geist> but in general an improvement everywhere, *except* i'd argue the ISA is a bit less 'fun' to program in
<geist> okay
<klange> x86 is weird and quirky but we have so much more community documentation for it that's way easier to parse than SDMs
<klange> unrelated, I've had this remote shell going for a few days on a laptop with over eight days of uptime: https://klange.dev/s/Screenshot from 2021-11-28 08-10-37.png
<bslsk05> ​klange.dev: 404 Not Found
<not_not> i mean like an x86 os kernel would be more fun but i dont have so many x86 computers around that i can code on it without 90% of the time is spendt rebooting
<heat_> a big advantage of x86 is that it runs almost everywhere you go
<klange> ah that uh did not copy with the spaces correctly
<heat_> not_not, use emulators/hypervisors
<heat_> you can even do firmware development mostly inside a hypervisor, no need to constantly reboot
<not_not> heat_: ye, going to, just got my old linux harddrives over on the new cheap computer that came preinstalled with windows
<not_not> are hypervisors hardware driven?
<heat_> hm?
<geist> generally speaking nowadays (vs 10-15 years ago) they have hardware assist, yes
<heat_> they use your CPU's features to accelerate emulation
<klange> The terms hypervisor, emulator, and virtual machine are all overloaded and interconfused.
<j`ey> theyre software that ues special hw features
<gog> hypervisors can leverage hardware capabilities to be transparent to the os
<geist> right
<gog> but there are also (older) systems that are hypservisor-aware
<not_not> well ye, thats why im doing the ARM first, its so nice and neat
<gog> let me rephrase, there is older hardware on which a hypervisor requires a compatible OS
<not_not> i feel x86 is so old and thus has to be backwards compatible with so much stuff it perhaps can prevent it in ever thinking outside the box?
<klange> Old stuff like Xen that used various tricks, but not actual 'hardware virtualization' features, and required the guest OS be aware it was running in the hypervisor...
<gog> yes xen
<gog> for example
heat_ is now known as heat
<not_not> i NEVER used a virtual machine in my life sorry
<geist> so, fun thing you can do with your 3b+: install linux on it and then use it's hardware virtualization features to actually run 'bare metal' on top of QEMU on top of KVM
<geist> much the way most folks run virtualized hardware on x86
<not_not> ahh, but i want controll of the hypervizor
<geist> what do you precisely mean there?
<gog> a guest system can know the hypervisor is there and communicate with it
<not_not> like from the get go my os will BE the hypervizor
<gog> but in modern environments it doesn't have to know
<geist> ah, well. while that's a laudible goal
<not_not> and not take kindly to other hypervizors there
<geist> may i suggest a bit smaller scope for your first stab
<heat> why do you want to be a hypervisor as well?
* gog mutters "it's hypervisors all the way down"
<geist> that requires a *substantial* amount of architecture knowledge, though it is a bit conceptually simpler on armv8
<heat> ITS RINGS ALL THE WAY DOWN
<not_not> like if a hacker has put a hypervizor and runs my os in a blue pill attack
<klange> Nested virtualization is a thing so you can test being a hypervisor while being in a hypervisor.
<klange> Turtles for everyone!
<not_not> geist: im ok about substansial architecture knowledge
<geist> i'm not sure you are aware of the amount of unknown unknowns you're dealing with there
<heat> not_not, there are a lot of ways to hide a hypervisor
<not_not> ye
<heat> it's *hard hard* to consistentely know if you're inside one
<geist> writing a hypervisor that's 'hidden' is basically impossible now, i wouldn't worry about it too much
<geist> you can tell in any number of ways that are nonmaskable
<kazinsal> hypervisors are terrifyingly complex beasts
<geist> heat: i disagree. honestly just doing timing analysis and noticing the cpu goes out to lunch when it vmexits is a perfectly good tell
<heat> geist, if you know what you're targetting you can bypass all sorts of detections
<geist> i dont know there's a way to mask that
<not_not> well im not that about "hiding" it, im more about the os running inside the hypervizor KNOWS its MY hypervisor and not some hackers hypervisor
<gog> who in here was working on a hypervisor as their masters thesis? was it graphitemaster?
<j`ey> gorgonical
<geist> gorgincal
<geist> yah
<gog> ah ok
<klange> all you g names look the same
<geist> they were having interrupt injection issues the other day, but alas it was like 3am here
<gog> oof
<j`ey> geist: they were using qemu 2.1
<j`ey> geist: switched to qemu 6 and it worked lol
<geist> ooh okay, that makes sense
<gog> aaay problem solved
<geist> yeah 2.1 was probably jsut the start of serious arm64 support
<gog> that's an ancient version jeez
<j`ey> sorry 2.11
<geist> ah that's more recent, but still
<geist> not entirely surprised
<geist> i thnk the zircon one is still officially based on 2.11 (or was) and stuff is always getting back ported to make it go
<j`ey> not_not: anyway, the point is to start with a kernel, not a hypervisor
<not_not> but ye i never even used a VM to host multi oses as a user before so i have 0 in depth knowledge about hypervizing (but i DO know how a CPU works, interrupts, stacks)
<not_not> j`ey: ye ur right prolly
<geist> correct. highly recommend. lots of folks here are quite experienced with kernel dev, but generally consider hypervisor dev to be a whole nother level
<kazinsal> man I don't even trust large vendors to get hypervisors right sometimes
<not_not> ill go for the arm 64 bit for raspberry pi
<geist> a KVM like thing on top of an existing kernel is conceptually simpler, but it's because the kernel is already written
<geist> which a proper type 1 hypervisor would basically be anyway
<geist> reminds me a lot of that 'how to draw an owl' thing
<not_not> ye i could start writing a working kernel today and only google to look stuff up, cuz i know what paging is, execution contexts, interrupt handlers all that stuff as a concept and im "somewhat" familliar with how that pans out in hardware
<not_not> but hypervisors are way more interesting
<geist> right. key to all of this is there are a tremendous amount of details, and all of them matter
<not_not> yes
<geist> step 1: draw a circle
<not_not> XD
<geist> step 2: draw the rest of the fucking owl
<j`ey> download the arm v8 manual
<geist> anyway, not trying to dissuade you
<not_not> nah im not desuaded by it it just inspired me
<geist> absolutely not, just trying to make sure you know what you're getting into. mostly because i've seen countless people in the last 20 something years here that have bitten off more than they can chew and immediately get lost and frustrated and quit
<geist> most folks that make good progress on osdev stuff it takes years, lots of constant progress
<not_not> well, first off im set for life in cash never have to work for money again
<heat> ok
<heat> weird flex but ok
<not_not> and im not planning on making a WHOOOOLE OS
<j`ey> sick flex imo
<geist> well, hop to it then! would recommend starting with qemu
<j`ey> not_not: you mean you'd re-use a userspace or?
<geist> on arm64 specifically i'd highly recommend starting with `-machine virt`
<not_not> heat: didnt mean it so much as a flex, ur all programmers here if ur not set for life with cash cuz u wrote a while(1) loop that does small trades that get more than 0 dollars ur not interested in money :P
<geist> it's a simple platform model, you can basicaly get a kernel working in like 20 minutes with that. no loader, no nonsense
<geist> not_not: eh?
<kazinsal> I touch datacenters for a living because if I wrote code for a living I feel like I'd end up hating doing it as a hobby
<geist> kazinsal: that is real, indeed.
<heat> not_not broke wallstreet
<not_not> j`ey: firstly in this project im not even going to have multi user/programs, i just need one program that does a very specific task and need 100% controll over the wireless network driver and to ensure no traffic from that network driver overflows ANY buffer
<heat> expensive trading systems << while(1) loop that does small trades
<geist> i have some reason to believe that not_not is trying to build some sort of sploit here
<kazinsal> not_not: planning on writing a router?
<not_not> geist: no im not trying to build a sploit
<geist> (wouldn't be the first time someone comes in here wanting precisely that)
<not_not> kazinsal: almost
<not_not> geist: writing an exploit?
<geist> a few years back someone came in wanting to build a hypervisor. and turns out they just wanted to cheat in some game
<geist> and the progression of questions went much like this :)
* klange smells high frequency trading
<geist> though, in your case you wanna do it on a rpi, so that is different :)
<not_not> meh well if i find something exploitable sure ill write the exploit but main thing is i need this system not to be exploitable
* kazinsal smells the same thing and lays down another 30 kilometres of spooled up fibre optic cables as a buffer
<geist> step 1: remove the wifi chip
<not_not> geist: oh the hypervisor thing is purely for evil
<kazinsal> step 2: remove the power
<klange> We're not big on evil here.
<geist> ah, well then i'mnot sure i'm down with that
<kazinsal> we're definitely in the Do No Evil category
<gog> don't speak for all of us pls
<not_not> hehhehehehhehe
<not_not> nah i
<not_not> i've done my share of e-terror in my past
<geist> sure, but the channel itself doesn't particularly condone evil. if nothing else because it's publically logged, etc
<gog> yes i'm kidding :p
<klange> gog, you have demonstrated yourself to be the purest of us all so far
<heat> pure and evil
<gog> HAH
<not_not> well the hypervisor is mainly to protect my own assets from evil
<heat> tip: you can't protect shit
<kazinsal> we are now entering the danger zone
<geist> so anyway, be a little careful what you boast about and whatnot, in case you're actually successful at evil. okay
<not_not> heat: im well aware
<klange> other people on irc: expletives and rudeness
<klange> gog: meow
<not_not> but i can protect it against 2 bit thieves
<kazinsal> who would win, a channel full of kernel hackers or one catgirl
<heat> there are whole teams trying to be evil and whole teams trying to protect stuff from evil
<geist> kazinsal: it's a trap!
<heat> kazinsal, a channel full of catgirl kernel hackers
<gog> geist: watch your mouth :p
<not_not> wait did the hypervizor guy who came here to do evil in a game
<klange> I am sure that geist did not mean the slur.
<kazinsal> heat: the ultimate danger to my personal safety
<not_not> say anything about wow 3.3.5 private server wotlk?
freakazoid12345 has quit [Ping timeout: 260 seconds]
<geist> yah, they had some idea that they could actually build a transparent hypervisor under windows to cheat at some game
<geist> oh gosh no
<not_not> ok
<not_not> well, hypervisor to wallhack sounds pretty smart actually
<kazinsal> we write operating systems here, not game exploits
<gog> klange: i know i'm just poking fun :p
<geist> yah exactly
<heat> kazinsal, it intersects somewhat
<gog> geist is a good bean
<klange> speak for yourself, I put a lot of effort into getting Doom cheats working again
<geist> well, it was more that they had no idea what they were getting into
<geist> though arguably everyone that starts off with osdev initially doesn't
<not_not> ye but OS development should keep security and exploits in mind in the design phase
<kazinsal> it's easy to think you can proactively secure your system
<kazinsal> it's impossible to actually do so
<kazinsal> unless you just remove the power cable
<not_not> yeah i figured that much
<not_not> yup
<gog> i've been experimenting with osdev for like a decade now
<not_not> oh?
<gog> still have nothing to show for it
<klange> kazinsal: not good enough, battery still working
<gog> except a lot of failed experiments
<not_not> gog nice
* kazinsal desolders all the voltage regulators
<gog> and knowing a lot about programming before i even got to uni
<not_not> mhm
<geist> yah i just stuck with it. didn't know shit for the first 5 years or so
<heat> my whole project only exists because of sortie and bare bones / meaty skeleton
<kazinsal> same
<gog> klange on the other hand has a beautiful OS
<klange> kazinsal: no good enough, stole your hard drive
<geist> i'm just one tracked. still love to make bare metal hardware go, and happesn to be kernels fit the bill
<heat> I would have given up way way way quicker
<geist> and embedded stuff
<not_not> aha
<not_not> ye i love bare metal stuff
<kazinsal> klange: well, if you've got physical access to my machine, I've already lost ;)
<not_not> kazinsal: true
<geist> in general kernel stuff is like fancy bare metal, so it ticks the same bit in my brain
<not_not> like my pc is hacked NOW
<geist> and the farther away from bare metal the less interesting it is to me
<geist> web programming being the less interesting thing i can think of doing
<not_not> i know this cuz i drew a picture before dinner of something someone from the game i suspected had some exploitable bug since its old
<not_not> came back from dinner and he had drawn me new
<klange> today I will try to beat Doom 2 on Ultra Violence without cheating or resuming after death.
<heat> C#
<not_not> but he managed to hide his traffic from wireshark
<heat> the most boring language ever
<not_not> heat: eww C#
<heat> or Java
<heat> java is probably worse tbh
<not_not> god i hate Java
<not_not> ye java way worse
<klange> C# is actually a really nice language.
<klange> And the JVM is a really nice platform.
<heat> they're all nice languages just really really boring ones
<heat> IMO of course
<klange> Eh, Java is a demonstrably terrible language saved by its runtime environment.
<geist> yah i have been around long enough to not particularly hate any given language as much as not prefer. it's a more nuanced opinion i'd like to believe
<geist> but indeed, 'boring' is a good description of some stuff
<not_not> well ill always say "asm, c, python3"
<geist> i put java in the same bucket as things like Fortran or COBOL
<geist> it lifts weight, but meh, no spark of inspiration
<heat> the one time I've tried javascript I had fun, it's an OK language in terms of things you can quickly do
<klange> Friendship ended with Python, now all my scripts are written in Kuroko.
<heat> bad language tho
<kazinsal> yeah, python suxxorz
<geist> rust i'm not sure where i am with the relationship. its sparky and fun and low level enough, but then it sleeps slapping me and i'm not sure i dislike it?
<j`ey> lol
<heat> i write all my scripts in POSIX sh scripting 😎
<not_not> rofl, im sorta kinda experimenting with a quantum programming language called: "not not"
<kazinsal> I'm still a bit distrustful of a systems programming language with a modern framework oriented package infrastructure
wootehfoot has quit [Read error: Connection reset by peer]
<not_not> where variables are not "x = 10"
<not_not> but "x = not 10"
<kazinsal> like, it's the kind of situation that'll eventually lead to kernel level projects getting npm poisoned
<heat> is-long-mode
<not_not> "x = not not 1"
<kazinsal> where someone hijacks the "leftpad" crate and turns it into a bitcoin miner
<not_not> OR you could for instance say "x = not not 2;" "x = not not -2"
<heat> kernels don't/shouldn't use other packages
<heat> in fact you usually can't unless that package is really portable
<not_not> wich would be a valid way of saying x could be sqrt(4)
<not_not> not is not an infinite boolean variable, but not is not not an infinite boolean variable either, and or or is included,instead of 0 or 1 being basic unit of information
<not_not> not or not not
heat_ has joined #osdev
<not_not> sec gonna get the arm8 manual
heat has quit [Read error: Connection reset by peer]
<geist> kazinsal: agreed re: rust package stuff. that's an area i really need to grok before i'm comfortable
heat_ is now known as heat
<geist> i'm always extremely leery of any magic build system stuff
<geist> i have to know precisely what's going on
<not_not> geist: same
<geist> OTOH it does seem that you can fairly nicely build rust individual stuff and drop it into your C project just fine
<kazinsal> yeah, my build system is complex enough that it's more shell than makefile at this point, and I can't imagine being able to replace it sanely with cargo
<geist> i noticed one of the forks of my kernel is actually currently adding rust support to the build system, so now i've seen it done
<geist> and it didn't seem like a lot of work
<geist> so apparently they're going that way too
<heat> fuchsia also works like that
<heat> doesn't use cargo
<geist> that's right
<not_not> but ye decided to go fresh on rpi3,
<geist> was about to say one of the big complexities of mixing rust and C languages are needing to autogenerate all these structures and whatnot to pass between
<heat> linux is also integrating rust support I believe
<gog> cargo cult
<geist> that's a thing that a lot of the fuchsia build system does, but that's totally no my forte. but its bread and butter for a lot of folks, so yay for them
<heat> not sure if they already have
<geist> tons of IPC structure generation stuff for a bunch of languages and whatnot
<j`ey> heat: not in mailine
<j`ey> its in linux-next though
<not_not> geist: im going for armv8 64bit
<geist> which is the hidden cost of doing any serious microkernel work: at some point you end up spending time building some sort of IDL language stuff
<geist> and that can be pretty complicated depending on where you go
<geist> a few years back i dug into what minix and hurd did, and dissapointingly turns out it's all manually generated, and very C centric. but they're going for posix so makes sense
<not_not> geist: u done any rpi os projects before and failed / suceeded and wanna give a young and promising wow deja vu
<geist> heat: also the IDL stuff is one of the reasons the fuchsia build system rebuilds large swaths of code at the drop of a hat, any fiddling with something causes lots of code regen and then ripples out from there. especially rust, since it effectively does a LTO compile for everything
<heat> FIDLing
<heat> ba dum tss
<geist> 96 cores, 192GB ram! only way to do it
<not_not> geist: should i MAINLY write the kernel in its native asm?
<kazinsal> oh christ no
<geist> not_not: negative. you should not. ideally you end up with maybe 100 lines of asm
<kazinsal> that's a good way to end up in a padded room
<heat> port bash and write it in bash
<geist> but that does beg the question: what languages are you familiar with and want to write your kernel in?
sdfgsdfg has quit [Quit: ZzzZ]
<not_not> geist: arm7tdmi 32 bit assembly and thumb, little x86 asm, C, python and rest of the programming languages i know
<not_not> but asm and C
<geist> okay, so any semi modern implem,entation of a kernel requires very very little asm, so that's good
<geist> is also why it's fairly easy to write highly portable kernels
<not_not> yeah but i dont want a portable kernel per say
<geist> that's mostly an organization and modularity exercise, not an asm/etc thing
<geist> sure, but just saying