Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev2&y=21&m=11&d=27

Saturday, 27 November 2021

00:00:00 <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
00:00:00 <geist> but yeah what window a click pops up on is really annoying
00:01:00 <geist> doubleplus so when using focus-follows-mouse since it's frequently literally the last window that had any sort of focus
00:01:00 <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
00:30:00 <gorgonical_> Man. Why qemu do this to me
00:31:00 <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
00:34:00 <kazinsal> yeah, three years of changes or so
00:34:00 <gorgonical_> Well that's two days I spent banging my head into the wall lol
00:39:00 <j`ey> gorgonical_: why such an old version anyway?
01:01:00 <kazinsal> iirc ubuntu hasn't updated their qemu repo in yeeeeeears
01:02:00 <kazinsal> ah, my 20.04.2 LTS is showing 4.2 as the latest qemu
01:02:00 <kazinsal> which was released december 2019
03:50:00 <geist> huh you learn something every day. the voice actor doing Silco on Arcane is a programmer and the founder of Symphony OS
03:50:00 <geist> which is of course some linux distro but interesting anyway
03:50:00 <geist> jason spisak
03:51:00 <geist> (i finished arcane last night, so a bit infatuated with it for a while, bear with me)
03:58:00 <kazinsal> it's really good
03:59:00 <geist> oh absolutely
03:59:00 <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
03:59:00 <kazinsal> but here we are
03:59:00 <kazinsal> desperately waiting for season 2
03:59:00 <geist> yah and after an actual good Dune movie too
04:11:00 <geist> i guess we'll see more terrible video game spin off things, but hopefully another good one
06:27:00 <geist> kazinsal: hmm, what does progressive web app support mean?
06:34:00 <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
07:14:00 <geist> oh that
07:14:00 <geist> yeah
08:45:00 <zid> Morning, time to go back to fiddling I suppose, currently.. page fault when an IRQ happens
08:46:00 <zid> how this broke I have no idea, it was working fine, git log isn't useful :D
08:48:00 <zid> e and cr2 suggest because of an attempted write to -8, which doesn't really makey any sense to me
08:53:00 <j`ey> git bisect?
08:56:00 <zid> idk *when* it was working, commit wise :D
08:56:00 <zid> atm I guess the only thing that could be true would be tss.rsp0 is 0
08:59:00 <zid> hmm TR= in qemu looks wrong, but I don't actually know what it should be showing
09:00:00 <zid> I assume that's task register, like GDTR and has the address of the tss in it but idk
09:01:00 <zid> TR =002b ffffffff80004940
09:02:00 <zid> tss is at 0xffffffff80334930 there's a '33' missing? heh
09:02:00 <zid> 80334940*
09:02:00 <zid> okay so best guess.. gcc started packing my struct differently now I'm using 1
09:02:00 <zid> 11
09:03:00 <j`ey> youre relying on that?
09:03:00 <zid> I didn't think I was..
09:03:00 <zid> but it's the only thing I can think of
09:04:00 <zid> I'll see what's in gdt[5]
09:06:00 <zid> 6b 00 40 49 00 8b 80 80 ff ff ff ff 00 00 00 00
09:06:00 <zid> I'm.. not seeing that 0x33 byte
09:08:00 <j`ey> theres 8b instead?
09:08:00 <zid> nah tss addr is spread all over this damn thing it's annoying
09:09:00 <j`ey> oh ok, I dunno any x86 details
09:09:00 <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
09:09:00 <zid> those are the bits in order >_<
09:11:00 <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
09:12:00 <zid> fixed :)
09:13:00 <j`ey> can you show the fix?
09:14:00 <zid> I added an 'FF' to one of my bitmasks
09:15:00 <zid> base_low = tss & 0xFFFF -> base_low -> tss & 0xFFFFFF
09:15:00 <j`ey> oh :)
09:15:00 <zid> I should have just re-made the struct for the TSS, and unioned it with a normal GDT entry
09:15:00 <zid> but instead I just hand-packed the TSS into a GDT entry, and apparently can't count
09:15:00 <zid> but yea, Effectively it was doing 'IRQ stack should be located at kernel_stack & 0xFFFFFFFFFFF0FFFF
09:18:00 <j`ey> gg on finding it
09:18:00 <zid> wasn't *too* bad once I sat down to do it
09:19:00 <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
10:31:00 <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...
10:32:00 <MelMalik> oh...
10:33:00 <zid> kazinsal: does it have ecc udimms in it by any chance? :)
10:33:00 <zid> I need some for my sb-ep xeon box
10:33:00 <kazinsal> my current one? yeah, it's a, uh
10:33:00 <moon-child> kazinsal: network graphics!
10:34:00 <kazinsal> I'm not even sure what to call this thing honestly
10:35:00 <zid> well, lmk if they end up surplus
10:35:00 <kazinsal> sure thing
10:37:00 <MelMalik> udimm?
10:37:00 <zid> unregistered / unbuffered
10:37:00 <MelMalik> ah
10:37:00 <zid> rather than RDIMMs
10:37:00 <MelMalik> ohhhh
10:38:00 <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
10:38:00 <bslsk05> ​www.ebay.co.uk: 16 GB 4x4GB DDR3 PC3-10600U 1333MHZ NON ECC UNBUFFERED 240 PIN PC RAM WARRANTY | eBay
10:38:00 <zid> oh scammed by ebay search again nevermind
10:38:00 <zid> 70% of the listings are "non ecc" which makes me want to stab people in the eyes
10:39:00 <kazinsal> zid: bad news, they're registered
10:39:00 <zid> rip
10:39:00 <zid> Thanks for checking
10:39:00 <zid> That's more like it, 1600MHz ECC UDIMMs, 32GB, £139
10:40:00 <kazinsal> 16x 4 GB DDR3-1600 ECC RDIMM
10:40:00 <moon-child> zid: wait, 140 gbp for a single dimm??
10:40:00 <zid> for four
10:40:00 <zid> 8x4
10:40:00 <moon-child> oh, ok
10:40:00 <moon-child> oh, nevermind
10:40:00 <moon-child> i thought you meant 4 32gb sticks
10:41:00 <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
10:41:00 <zid> and you'd have to find 4 matching listings
10:46:00 <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
10:47:00 <MelMalik> that's like
10:47:00 <MelMalik> +11 years
10:50:00 <GeDaMo> Isn't that when 32 bit timer wraps?
10:50:00 <kazinsal> That's 2038
10:50:00 <GeDaMo> Ah
10:50:00 <kazinsal> aaaaaaaaand this is a Windows machine which has been NTP synced since I installed it so... bwah
10:54:00 <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
10:55:00 <zid> GT210?
10:55:00 <zid> GT710
10:55:00 <kazinsal> yeah, just gotta find one.
10:56:00 <MelMalik> is there no USB NIC you can use temporarily with ESXi to install the driver over ssh?
10:56:00 <zid> https://www.amazon.co.uk/dp/B006TAVASG They're just on the amazon here
10:56:00 <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
10:56:00 <zid> oh nevermind out of stock fuck you amazon
10:56:00 <zid> why show it then
10:57:00 <zid> 730s are in stock for £56 heh
10:57:00 <MelMalik> so people can like... wishlist it idk
11:02:00 <klange> ah, my compositor locked up
11:02:00 <klange> failed to awaken while blocked on a read of its IPC socket
11:03:00 <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...
11:12:00 <MelMalik> klange: Wayland compositor, or the compositor on Toaru?
11:14:00 <klange> toaru
11:24:00 <MelMalik> oh
19:05:00 <Meuri> Does anyone here use bochs?
19:07:00 <zid> yes, as mentioned :p
19:08:00 <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.
19:08:00 <zid> Buy a faster cpu, hand compile bochs with more aggressive optimization options
19:10:00 <zid> off to buy a faster cpu ^
19:11:00 <j`ey> or turning off irc, for more ram to recompile
19:36:00 <heat> hello, warmth here
19:39:00 <zid> 2C here, die
19:40:00 <heat> :(
19:42:00 <zid> Can you bottle me some warm and mail me it
19:45:00 <heat> 11C is all I have
19:45:00 <zid> yea maybe not worth the shipping costs
19:45:00 <zid> how about an 800C tungsten block
19:47:00 <gog> wolfram pls
19:48:00 <zid> trying to find out how much energy a 10cm cube of tungsten at 800C has? :p
19:48:00 <zid> 19.3kg, not bad
19:53:00 <extern> hi gues
19:53:00 <extern> guys
19:53:00 <extern> what is the most comperhebsive single book you can recommend on osdev ?
19:53:00 <extern> comperhensive
19:53:00 <zid> comprehensive
19:54:00 <zid> Does the linux source tree and commit history count as a book, it's pretty comprehensive
19:54:00 <gog> "the industrial revolution and its consequences" by theodore kaczynski
19:54:00 <extern> miao
19:55:00 <zid> A short history of nearly everything, bill bryson
19:55:00 <extern> i see ..
19:55:00 <extern> thanks
19:56:00 <gog> i'm concerned we may not have been helpful
19:56:00 <zid> I'm not
19:56:00 <zid> I mean, we weren't helpful for sure
19:56:00 <zid> I'm just not concerned
19:56:00 <gog> fair
19:57:00 <heat_> yo how do i get the internets around my house
19:57:00 <heat_> particularly, ethernet internets
19:58:00 <zid> A tin of paint, a chisel, a hammer, some plaster mix, a bucket, some water
19:58:00 <zid> some conduit
19:58:00 <zid> some faceplates
19:58:00 <zid> some of the little boxes I forget the name of
19:58:00 <zid> some ethernet cables, some connectors, a crimper
19:58:00 <zid> a router/switch/whatever or three
19:58:00 <heat> ideally I'd like to stick cat6 inside the wall but I dunno how that's supposed to be done
19:59:00 <gog> junction boxes
19:59:00 <gog> ??
19:59:00 <zid> chisel a V into the wall
19:59:00 <zid> insert plastic pipe into wall, plaster back over the hole
19:59:00 <jjuran> A bit of beef, a crumb of cheese, a blot of mustard, a fragment of an underdone potato
19:59:00 <gog> HUMBUG I SAY
20:00:00 <zid> https://i0.wp.com/1.bp.blogspot.com/-sQAWd2ZCrt0/V_peJov0lxI/AAAAAAAAH6E/U8rVV8QEl0ch1p-I0NTtfqUkE0lN1ZEBwCEw/s1600/DSC09819.JPG?ssl=1
20:00:00 <bslsk05> ​redirect -> 1.bp.blogspot.com <no title>
20:00:00 <gog> the dickensian aspect
20:00:00 <zid> I prefer a cavalier oblique aspect
20:00:00 <zid> Like fallout 1
20:00:00 <heat> that looks cute but I'm trying to get faster/reliable speeds not building a house
20:01:00 <zid> That's how you do it
20:01:00 <heat> this powerline sucks ass and so does my shitty extender
20:01:00 <zid> If you don't wanna do it like that, you don't wanna do it
20:01:00 <zid> run some cables around the edges of the rooms then
20:01:00 <heat> lol
20:02:00 <gog> unless you live in a stick frame house with a void space in the attic or a basement it's gonna be ugly
20:02:00 <gog> you're gonna have to cut and drill
20:02:00 <zid> It's actually one of the easier diy things if you have nice walls
20:02:00 <zid> 100x easier than fucking wallpapering
20:03:00 <gog> you're not supposed to fuck the wallpaper zid
20:03:00 <zid> the paste is so squishy though..
20:03:00 <gog> lol
20:03:00 <heat> I already have a few cables in the walls, TV and radio (which don't work because who the fuck has radio)
20:03:00 <heat> ideally I'd replace the radio garbage with cat6 and that would be it
20:03:00 <zid> okay here's what you do then
20:03:00 <zid> tie the cat6 to the coax
20:04:00 <zid> pull the coax hard
20:04:00 <zid> you now have cat6 instead of coax inside the conduit
20:04:00 <gog> if there is a conduit
20:04:00 <heat> how do I figure out how much cat6 I need
20:04:00 <zid> a.. tape measure?
20:04:00 <heat> after pulling out the coax?
20:05:00 <gog> keep it on the spool while pulling it
20:05:00 <zid> or measure the wall
20:05:00 <zid> or cut it *after* you install it, yea
20:05:00 <gog> use riser cable
20:06:00 <zid> gog wanna do some DIY?
20:06:00 <heat> fuckin hell this looks complicated
20:06:00 <zid> we'll just sit heat in a deck chair
20:06:00 <zid> he can pay us
20:06:00 <gog> not to be confused with reiser cable which will kill your wife
20:06:00 <gog> zid: i'm down
20:06:00 <heat> heat want fast internet
20:06:00 <heat> heat get 500mbps on router
20:07:00 <heat> heat want 500mbps on computer
20:07:00 <zid> how far away is this router if you were to just drill holes in all the walls on the way
20:07:00 <zid> and taped the cable to the ceilings/floors/walls
20:07:00 <gog> it'd be ugly but it'd work
20:08:00 <zid> https://www.ubuy.com.tr/productimg/?image=aHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0kvNzEwa3ZubnE5bkwuX0FDX1NMMTUwMF8uanBn.jpg You can get little grommets to plug the holes with so they're somewhat tidy
20:08:00 <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
20:08:00 <heat> it's probably what 15-18m straight-line? with thick walls
20:08:00 <gog> how old is the house?
20:08:00 <zid> https://www.hm-online.co.uk/images/cat-header-hide-coving.jpg
20:09:00 <gog> yes those could def work too
20:09:00 <heat> 2003
20:09:00 <zid> I'd just get a drill and a masonary bit
20:09:00 <gog> hm might not be too bad
20:09:00 <zid> pass it through whatever walls need it passing through
20:09:00 <heat> my mom would shoot me if I drilled a wall
20:09:00 <heat> :/
20:09:00 <gog> don't you live in the united clowndom, where's she gonna get a gun :p
20:10:00 <heat> and so would any female, probably
20:10:00 <zid> have you considered murdering her then attending a basketball game and getting into the photograph used for a collectable card
20:10:00 <heat> gog, no I don't live in the united clowndom
20:10:00 <gog> oh
20:10:00 <heat> clowndom sounds pretty cool though
20:10:00 <zid> https://kottke.org/plus/misc/images/s-l1600.jpg (If you don't get the reference, the two kids on the left)
20:10:00 <GeDaMo> https://dilbert.com/strip/1997-11-24
20:11:00 <bslsk05> ​dilbert.com: Dilbert Comic Strip on 1997-11-24 | Dilbert by Scott Adams
20:11:00 <gog> oh shit is that lyle and erik menendez
20:11:00 <heat> hahaha what
20:12:00 <heat> did they kill their mom and went like "oh shit lets go see the knicks"
20:12:00 <zid> yes
20:12:00 <gog> they killed both of their parents
20:12:00 <zid> ebay has apparently banned the sale of that card
20:14:00 <heat> ah at least the knicks were still good in 1996
20:14:00 <heat> that's a relief
20:15:00 <heat> a true true psycho would go see the hornets
20:15:00 <zid> A true psycho would go watch american football
20:16:00 <heat> or baseball really
20:17:00 <gog> i love baseball tho
20:17:00 <heat> real football >> fake football
20:17:00 <zid> baseball is a neat concept, so it's good for like, anime and video games
20:17:00 <zid> it's pretty crappy in real life
20:17:00 <heat> the l in "american sports" stands for "lack of ad breaks"
20:18:00 <zid> You can tell it's fucked up when they measure it in "yards of play"
20:19:00 <gog> https://cdn.discordapp.com/attachments/724751889572298764/913276861679804457/Stolen_Monkeys.mp4
20:20:00 <zid> Right click theives smh
20:21:00 <gog> zid do you want to start a cryptocurrency with me
20:21:00 <zid> nftcoin
20:21:00 <gog> yes
20:21:00 <zid> It's a coin that can only be traded for NFTs, and the NFTs are pictures of coins
20:21:00 <gog> yes
20:25:00 <heat> coinft
20:37:00 <jjuran> coinception
20:40:00 <zid> *stuffs face with kebab meat*
20:44:00 <jjuran> If you do that to another to prevent someone from talking, is it a shush kebab?
20:44:00 <zid> if you tell that joke again, I'll shush kebab you, permanently
20:45:00 <jjuran> But I didn't tell it often — only once
21:06:00 <geist> zid: re: concerning being helpful. slight suggestion, try to be a little more helpful
21:06:00 <geist> i'd like us to be a higher tier of helpful than the discord channel
21:08:00 <zid> I blame gog
21:09:00 <zid> I posit he already quit before I suggested bill bryson
21:09:00 <gog> zid was acting under my bad influence
21:10:00 <geist> now now you two
21:10:00 <geist> do you two enable each other? do I need to move you to other sides of the classroom?
21:11:00 <gog> that would be for the best i think
21:16:00 <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
21:17:00 <zid> geist gog is making faces at me
21:18:00 <gog> geist zid is making lewd gestures at me
21:18:00 <geist> if i send you both back to the supply room will you get it out of your system?
21:18:00 <zid> kinky
21:18:00 <zid> gog: bring the wallpaper paste
21:18:00 <gog> lol
21:20:00 <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
21:20:00 <geist> seriously folks
21:20:00 <zid> yea they are
21:20:00 <zid> it's annoy
21:20:00 <geist> i have some but they're early 2000s era pci
21:21:00 <geist> not that the basics aren't essentially the same, at least as far as programming is concerned
21:21:00 <gog> how else is the PCI-SIG supposed to make money
21:21:00 <geist> I'm sure if i poke around I can get full versions from work but they're probably watermarked, etc
21:26:00 <heat> haha google search go brrrrrr
21:27:00 <gog> i wonder if libgen has it
21:27:00 <heat> i think libgen only has books
21:28:00 <gog> first result is a book that has a lot of technical details
21:28:00 <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
21:29:00 <heat> I have pcie from 2010
21:29:00 <heat> rev 3
21:32:00 <geist> yah that's precisely the one i have too
21:32:00 <geist> and the plain PCI spec v3
21:33:00 <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
21:33:00 <geist> which makes sense, it doesn't describe how to configure a bus, just what he configuration looks like
21:34:00 <zid> yea I hate docs like that
21:34:00 <zid> they're all I ever seemingly find, too
21:34:00 <zid> "ah good, a register list and stuff" "wait, how do I *use* any of this info"
21:35:00 <geist> well, it quite specifically mentions that with pci v3 they broke the doc into multiple files
21:35:00 <geist> and it points you at the other one
21:35:00 <heat> may I introduce you to intel GPU docs
21:36:00 <heat> has anyone here tinkered with the Raspberry Pi Zero 2W?
21:37:00 <heat> it looks cute and powerful enough to be used for smaller purposes (even osdev) and it's super cheap
21:37:00 <zid> osdev and pi in same sentence, you're going to summon clever
21:37:00 <zid> does it still have mailboxes and a closed gpu
21:38:00 <j`ey> its the same soc as rpi3 I think
21:38:00 <heat> zid, probably?
21:39:00 <zid> I don't wanna osdev on it then
21:39:00 <heat> it's also the only rpi I can possibly have right now
21:39:00 <heat> because the 4B is completely out of stock
21:41:00 <heat> waiit I can also get the pico but that one just looks sad
21:42:00 <j`ey> pico is cortex-m
21:43:00 <heat> a riscv board would be cute but those are soo overpriced and availability is low
21:44:00 <gog> is github working for anybody else
21:44:00 <heat> for the price of a rpi 4B you can get a 32-bit riscv IMAC board (so, no floating point)
21:44:00 <j`ey> no gog
21:44:00 <gog> hm i was able to sign in but nothing else is happening
21:44:00 <heat> yeah it's dead
21:44:00 <heat> ping works tho
21:45:00 <zid> I got github to load a page, now it won't
23:08:00 <not_not> hi all
23:09:00 <geist> heya
23:09:00 <not_not> so im either gonna make my first kernel for arm cores on raspberry pi
23:10:00 <geist> cool. which pi in particular? there's a wide variety of cores across the entire line
23:10:00 <not_not> or im gonna make my first kernel for multicore x86 descendants
23:10:00 <geist> and it makes a substantial difference how you go about it
23:10:00 <not_not> ye i know
23:10:00 <not_not> 3b+ i guess
23:11:00 <not_not> arm was first system i ever programmed on alone in my life so nostalgic
23:12:00 <geist> okay, so 3b+ is a cortex-a53. ARMv8 core, with 64 and 32bit modes
23:12:00 <geist> which are you interested in (I recommend 64bit)
23:12:00 <not_not> mhm
23:12:00 <not_not> 64 bit ofc
23:12:00 <geist> perfect
23:12:00 <not_not> always go for the future
23:12:00 <heat_> x86 is also fun btw
23:12:00 <geist> depending on how much you already know about arm32 it may be a bit of an adjustment, since arm64 is fairly different
23:12:00 <not_not> yeah i only really written shellcode in x86 asm never been close to metal
23:13:00 <geist> but in general an improvement everywhere, *except* i'd argue the ISA is a bit less 'fun' to program in
23:13:00 <geist> okay
23:13:00 <klange> x86 is weird and quirky but we have so much more community documentation for it that's way easier to parse than SDMs
23:14:00 <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
23:14:00 <bslsk05> ​klange.dev: 404 Not Found
23:14:00 <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
23:14:00 <heat_> a big advantage of x86 is that it runs almost everywhere you go
23:14:00 <klange> ah that uh did not copy with the spaces correctly
23:14:00 <heat_> not_not, use emulators/hypervisors
23:14:00 <klange> https://klange.dev/s/Screenshot%20from%202021-11-28%2008-10-37.png there we go
23:15:00 <heat_> you can even do firmware development mostly inside a hypervisor, no need to constantly reboot
23:15:00 <not_not> heat_: ye, going to, just got my old linux harddrives over on the new cheap computer that came preinstalled with windows
23:15:00 <not_not> are hypervisors hardware driven?
23:15:00 <heat_> hm?
23:16:00 <geist> generally speaking nowadays (vs 10-15 years ago) they have hardware assist, yes
23:16:00 <heat_> they use your CPU's features to accelerate emulation
23:16:00 <klange> The terms hypervisor, emulator, and virtual machine are all overloaded and interconfused.
23:16:00 <j`ey> theyre software that ues special hw features
23:16:00 <gog> hypervisors can leverage hardware capabilities to be transparent to the os
23:16:00 <geist> right
23:16:00 <gog> but there are also (older) systems that are hypservisor-aware
23:16:00 <not_not> well ye, thats why im doing the ARM first, its so nice and neat
23:17:00 <gog> let me rephrase, there is older hardware on which a hypervisor requires a compatible OS
23:17:00 <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?
23:17:00 <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...
23:17:00 <gog> yes xen
23:17:00 <gog> for example
23:17:00 <not_not> i NEVER used a virtual machine in my life sorry
23:18:00 <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
23:18:00 <geist> much the way most folks run virtualized hardware on x86
23:18:00 <not_not> ahh, but i want controll of the hypervizor
23:18:00 <geist> what do you precisely mean there?
23:18:00 <gog> a guest system can know the hypervisor is there and communicate with it
23:19:00 <not_not> like from the get go my os will BE the hypervizor
23:19:00 <gog> but in modern environments it doesn't have to know
23:19:00 <geist> ah, well. while that's a laudible goal
23:19:00 <not_not> and not take kindly to other hypervizors there
23:19:00 <geist> may i suggest a bit smaller scope for your first stab
23:19:00 <heat> why do you want to be a hypervisor as well?
23:19:00 * gog mutters "it's hypervisors all the way down"
23:19:00 <geist> that requires a *substantial* amount of architecture knowledge, though it is a bit conceptually simpler on armv8
23:19:00 <heat> ITS RINGS ALL THE WAY DOWN
23:19:00 <not_not> like if a hacker has put a hypervizor and runs my os in a blue pill attack
23:19:00 <klange> Nested virtualization is a thing so you can test being a hypervisor while being in a hypervisor.
23:20:00 <klange> Turtles for everyone!
23:20:00 <not_not> geist: im ok about substansial architecture knowledge
23:20:00 <geist> i'm not sure you are aware of the amount of unknown unknowns you're dealing with there
23:20:00 <heat> not_not, there are a lot of ways to hide a hypervisor
23:20:00 <not_not> ye
23:20:00 <heat> it's *hard hard* to consistentely know if you're inside one
23:20:00 <geist> writing a hypervisor that's 'hidden' is basically impossible now, i wouldn't worry about it too much
23:20:00 <geist> you can tell in any number of ways that are nonmaskable
23:20:00 <kazinsal> hypervisors are terrifyingly complex beasts
23:21:00 <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
23:21:00 <heat> geist, if you know what you're targetting you can bypass all sorts of detections
23:21:00 <geist> i dont know there's a way to mask that
23:21:00 <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
23:21:00 <gog> who in here was working on a hypervisor as their masters thesis? was it graphitemaster?
23:21:00 <j`ey> gorgonical
23:21:00 <geist> gorgincal
23:21:00 <geist> yah
23:21:00 <gog> ah ok
23:22:00 <klange> all you g names look the same
23:22:00 <geist> they were having interrupt injection issues the other day, but alas it was like 3am here
23:22:00 <gog> oof
23:22:00 <j`ey> geist: they were using qemu 2.1
23:22:00 <j`ey> geist: switched to qemu 6 and it worked lol
23:22:00 <geist> ooh okay, that makes sense
23:22:00 <gog> aaay problem solved
23:22:00 <geist> yeah 2.1 was probably jsut the start of serious arm64 support
23:22:00 <gog> that's an ancient version jeez
23:23:00 <j`ey> sorry 2.11
23:23:00 <geist> ah that's more recent, but still
23:23:00 <geist> not entirely surprised
23:24:00 <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
23:24:00 <j`ey> not_not: anyway, the point is to start with a kernel, not a hypervisor
23:24:00 <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)
23:24:00 <not_not> j`ey: ye ur right prolly
23:24:00 <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
23:24:00 <kazinsal> man I don't even trust large vendors to get hypervisors right sometimes
23:25:00 <not_not> ill go for the arm 64 bit for raspberry pi
23:25:00 <geist> a KVM like thing on top of an existing kernel is conceptually simpler, but it's because the kernel is already written
23:25:00 <geist> which a proper type 1 hypervisor would basically be anyway
23:26:00 <geist> reminds me a lot of that 'how to draw an owl' thing
23:27:00 <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
23:27:00 <not_not> but hypervisors are way more interesting
23:27:00 <geist> right. key to all of this is there are a tremendous amount of details, and all of them matter
23:27:00 <not_not> yes
23:27:00 <geist> step 1: draw a circle
23:27:00 <not_not> XD
23:27:00 <geist> step 2: draw the rest of the fucking owl
23:27:00 <j`ey> download the arm v8 manual
23:28:00 <geist> anyway, not trying to dissuade you
23:28:00 <not_not> nah im not desuaded by it it just inspired me
23:28:00 <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
23:28:00 <geist> most folks that make good progress on osdev stuff it takes years, lots of constant progress
23:29:00 <not_not> well, first off im set for life in cash never have to work for money again
23:29:00 <heat> ok
23:29:00 <heat> weird flex but ok
23:29:00 <not_not> and im not planning on making a WHOOOOLE OS
23:29:00 <j`ey> sick flex imo
23:29:00 <geist> well, hop to it then! would recommend starting with qemu
23:30:00 <j`ey> not_not: you mean you'd re-use a userspace or?
23:30:00 <geist> on arm64 specifically i'd highly recommend starting with `-machine virt`
23:30:00 <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
23:30:00 <geist> it's a simple platform model, you can basicaly get a kernel working in like 20 minutes with that. no loader, no nonsense
23:30:00 <geist> not_not: eh?
23:30:00 <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
23:31:00 <geist> kazinsal: that is real, indeed.
23:31:00 <heat> not_not broke wallstreet
23:31:00 <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
23:31:00 <heat> expensive trading systems << while(1) loop that does small trades
23:32:00 <geist> i have some reason to believe that not_not is trying to build some sort of sploit here
23:32:00 <kazinsal> not_not: planning on writing a router?
23:32:00 <not_not> geist: no im not trying to build a sploit
23:32:00 <geist> (wouldn't be the first time someone comes in here wanting precisely that)
23:32:00 <not_not> kazinsal: almost
23:32:00 <not_not> geist: writing an exploit?
23:32:00 <geist> a few years back someone came in wanting to build a hypervisor. and turns out they just wanted to cheat in some game
23:32:00 <geist> and the progression of questions went much like this :)
23:32:00 * klange smells high frequency trading
23:33:00 <geist> though, in your case you wanna do it on a rpi, so that is different :)
23:33:00 <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
23:33:00 * kazinsal smells the same thing and lays down another 30 kilometres of spooled up fibre optic cables as a buffer
23:33:00 <geist> step 1: remove the wifi chip
23:33:00 <not_not> geist: oh the hypervisor thing is purely for evil
23:33:00 <kazinsal> step 2: remove the power
23:33:00 <klange> We're not big on evil here.
23:33:00 <geist> ah, well then i'mnot sure i'm down with that
23:33:00 <kazinsal> we're definitely in the Do No Evil category
23:34:00 <gog> don't speak for all of us pls
23:34:00 <not_not> hehhehehehhehe
23:34:00 <not_not> nah i
23:34:00 <not_not> i've done my share of e-terror in my past
23:34:00 <geist> sure, but the channel itself doesn't particularly condone evil. if nothing else because it's publically logged, etc
23:34:00 <gog> yes i'm kidding :p
23:34:00 <klange> gog, you have demonstrated yourself to be the purest of us all so far
23:34:00 <heat> pure and evil
23:34:00 <gog> HAH
23:35:00 <not_not> well the hypervisor is mainly to protect my own assets from evil
23:35:00 <heat> tip: you can't protect shit
23:35:00 <kazinsal> we are now entering the danger zone
23:35:00 <geist> so anyway, be a little careful what you boast about and whatnot, in case you're actually successful at evil. okay
23:35:00 <not_not> heat: im well aware
23:35:00 <klange> other people on irc: expletives and rudeness
23:35:00 <klange> gog: meow
23:36:00 <not_not> but i can protect it against 2 bit thieves
23:36:00 <kazinsal> who would win, a channel full of kernel hackers or one catgirl
23:36:00 <heat> there are whole teams trying to be evil and whole teams trying to protect stuff from evil
23:36:00 <geist> kazinsal: it's a trap!
23:36:00 <heat> kazinsal, a channel full of catgirl kernel hackers
23:37:00 <gog> geist: watch your mouth :p
23:37:00 <not_not> wait did the hypervizor guy who came here to do evil in a game
23:37:00 <klange> I am sure that geist did not mean the slur.
23:37:00 <kazinsal> heat: the ultimate danger to my personal safety
23:37:00 <not_not> say anything about wow 3.3.5 private server wotlk?
23:37:00 <geist> yah, they had some idea that they could actually build a transparent hypervisor under windows to cheat at some game
23:38:00 <geist> oh gosh no
23:38:00 <not_not> ok
23:38:00 <not_not> well, hypervisor to wallhack sounds pretty smart actually
23:38:00 <kazinsal> we write operating systems here, not game exploits
23:38:00 <gog> klange: i know i'm just poking fun :p
23:38:00 <geist> yah exactly
23:38:00 <heat> kazinsal, it intersects somewhat
23:38:00 <gog> geist is a good bean
23:38:00 <klange> speak for yourself, I put a lot of effort into getting Doom cheats working again
23:39:00 <geist> well, it was more that they had no idea what they were getting into
23:39:00 <geist> though arguably everyone that starts off with osdev initially doesn't
23:39:00 <not_not> ye but OS development should keep security and exploits in mind in the design phase
23:40:00 <kazinsal> it's easy to think you can proactively secure your system
23:40:00 <kazinsal> it's impossible to actually do so
23:40:00 <kazinsal> unless you just remove the power cable
23:40:00 <not_not> yeah i figured that much
23:40:00 <not_not> yup
23:40:00 <gog> i've been experimenting with osdev for like a decade now
23:40:00 <not_not> oh?
23:40:00 <gog> still have nothing to show for it
23:40:00 <klange> kazinsal: not good enough, battery still working
23:40:00 <gog> except a lot of failed experiments
23:40:00 <not_not> gog nice
23:40:00 * kazinsal desolders all the voltage regulators
23:40:00 <gog> and knowing a lot about programming before i even got to uni
23:41:00 <not_not> mhm
23:41:00 <geist> yah i just stuck with it. didn't know shit for the first 5 years or so
23:41:00 <heat> my whole project only exists because of sortie and bare bones / meaty skeleton
23:41:00 <kazinsal> same
23:41:00 <gog> klange on the other hand has a beautiful OS
23:41:00 <klange> kazinsal: no good enough, stole your hard drive
23:41:00 <geist> i'm just one tracked. still love to make bare metal hardware go, and happesn to be kernels fit the bill
23:41:00 <heat> I would have given up way way way quicker
23:41:00 <geist> and embedded stuff
23:41:00 <not_not> aha
23:41:00 <not_not> ye i love bare metal stuff
23:41:00 <kazinsal> klange: well, if you've got physical access to my machine, I've already lost ;)
23:41:00 <not_not> kazinsal: true
23:41:00 <geist> in general kernel stuff is like fancy bare metal, so it ticks the same bit in my brain
23:42:00 <not_not> like my pc is hacked NOW
23:42:00 <geist> and the farther away from bare metal the less interesting it is to me
23:42:00 <geist> web programming being the less interesting thing i can think of doing
23:42:00 <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
23:42:00 <not_not> came back from dinner and he had drawn me new
23:42:00 <klange> today I will try to beat Doom 2 on Ultra Violence without cheating or resuming after death.
23:42:00 <heat> C#
23:42:00 <not_not> but he managed to hide his traffic from wireshark
23:42:00 <heat> the most boring language ever
23:43:00 <not_not> heat: eww C#
23:43:00 <heat> or Java
23:43:00 <heat> java is probably worse tbh
23:43:00 <not_not> god i hate Java
23:43:00 <not_not> ye java way worse
23:43:00 <klange> C# is actually a really nice language.
23:43:00 <klange> And the JVM is a really nice platform.
23:43:00 <heat> they're all nice languages just really really boring ones
23:43:00 <heat> IMO of course
23:43:00 <klange> Eh, Java is a demonstrably terrible language saved by its runtime environment.
23:43:00 <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
23:44:00 <geist> but indeed, 'boring' is a good description of some stuff
23:44:00 <not_not> well ill always say "asm, c, python3"
23:44:00 <geist> i put java in the same bucket as things like Fortran or COBOL
23:44:00 <geist> it lifts weight, but meh, no spark of inspiration
23:44:00 <heat> the one time I've tried javascript I had fun, it's an OK language in terms of things you can quickly do
23:44:00 <klange> Friendship ended with Python, now all my scripts are written in Kuroko.
23:44:00 <heat> bad language tho
23:45:00 <kazinsal> yeah, python suxxorz
23:45:00 <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?
23:45:00 <j`ey> lol
23:45:00 <heat> i write all my scripts in POSIX sh scripting 😎
23:46:00 <not_not> rofl, im sorta kinda experimenting with a quantum programming language called: "not not"
23:46:00 <kazinsal> I'm still a bit distrustful of a systems programming language with a modern framework oriented package infrastructure
23:46:00 <not_not> where variables are not "x = 10"
23:46:00 <not_not> but "x = not 10"
23:46:00 <kazinsal> like, it's the kind of situation that'll eventually lead to kernel level projects getting npm poisoned
23:46:00 <heat> is-long-mode
23:46:00 <not_not> "x = not not 1"
23:46:00 <kazinsal> where someone hijacks the "leftpad" crate and turns it into a bitcoin miner
23:47:00 <not_not> OR you could for instance say "x = not not 2;" "x = not not -2"
23:47:00 <heat> kernels don't/shouldn't use other packages
23:48:00 <heat> in fact you usually can't unless that package is really portable
23:48:00 <not_not> wich would be a valid way of saying x could be sqrt(4)
23:49:00 <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
23:49:00 <not_not> not or not not
23:50:00 <not_not> sec gonna get the arm8 manual
23:51:00 <geist> kazinsal: agreed re: rust package stuff. that's an area i really need to grok before i'm comfortable
23:51:00 <geist> i'm always extremely leery of any magic build system stuff
23:51:00 <geist> i have to know precisely what's going on
23:51:00 <not_not> geist: same
23:51:00 <geist> OTOH it does seem that you can fairly nicely build rust individual stuff and drop it into your C project just fine
23:52:00 <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
23:52:00 <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
23:52:00 <geist> and it didn't seem like a lot of work
23:52:00 <geist> so apparently they're going that way too
23:52:00 <heat> fuchsia also works like that
23:52:00 <heat> doesn't use cargo
23:53:00 <geist> that's right
23:53:00 <not_not> but ye decided to go fresh on rpi3,
23:53:00 <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
23:53:00 <heat> linux is also integrating rust support I believe
23:53:00 <gog> cargo cult
23:53:00 <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
23:53:00 <heat> not sure if they already have
23:54:00 <geist> tons of IPC structure generation stuff for a bunch of languages and whatnot
23:54:00 <j`ey> heat: not in mailine
23:54:00 <j`ey> its in linux-next though
23:54:00 <not_not> geist: im going for armv8 64bit
23:54:00 <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
23:54:00 <geist> and that can be pretty complicated depending on where you go
23:55:00 <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
23:56:00 <not_not> geist: u done any rpi os projects before and failed / suceeded and wanna give a young and promising wow deja vu
23:56:00 <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
23:56:00 <heat> FIDLing
23:56:00 <heat> ba dum tss
23:57:00 <geist> 96 cores, 192GB ram! only way to do it
23:57:00 <not_not> geist: should i MAINLY write the kernel in its native asm?
23:57:00 <kazinsal> oh christ no
23:57:00 <geist> not_not: negative. you should not. ideally you end up with maybe 100 lines of asm
23:57:00 <kazinsal> that's a good way to end up in a padded room
23:57:00 <heat> port bash and write it in bash
23:57:00 <geist> but that does beg the question: what languages are you familiar with and want to write your kernel in?
23:58:00 <not_not> geist: arm7tdmi 32 bit assembly and thumb, little x86 asm, C, python and rest of the programming languages i know
23:58:00 <not_not> but asm and C
23:59:00 <geist> okay, so any semi modern implem,entation of a kernel requires very very little asm, so that's good
23:59:00 <geist> is also why it's fairly easy to write highly portable kernels
23:59:00 <not_not> yeah but i dont want a portable kernel per say
23:59:00 <geist> that's mostly an organization and modularity exercise, not an asm/etc thing
23:59:00 <geist> sure, but just saying