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> no
pieguy128 has quit [Quit: ZNC 1.8.2 - https://znc.in]
pieguy128 has joined #osdev
<heat> no
pieguy128 has quit [Quit: ZNC 1.8.2 - https://znc.in]
pieguy128 has joined #osdev
matrice64 has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
pg12 has quit [Ping timeout: 240 seconds]
pg12 has joined #osdev
Burgundy has quit [Ping timeout: 240 seconds]
wgrant has joined #osdev
bnchs has joined #osdev
elastic_dog has quit [Ping timeout: 264 seconds]
elastic_dog has joined #osdev
pieguy128 has quit [Ping timeout: 252 seconds]
pieguy128 has joined #osdev
tiggster has joined #osdev
_xor has quit [Quit: brb]
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
Arthuria has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 265 seconds]
xenos1984 has joined #osdev
Gooberpatrol_66 has quit [Ping timeout: 250 seconds]
wlemuel has quit [Quit: Ping timeout (120 seconds)]
wlemuel has joined #osdev
Gooberpatrol_66 has joined #osdev
slidercrank has joined #osdev
bgs has joined #osdev
Gooberpatrol_66 has quit [Ping timeout: 240 seconds]
Gooberpatrol_66 has joined #osdev
goliath has joined #osdev
Gooberpatrol_66 has quit [Ping timeout: 260 seconds]
Gooberpatrol_66 has joined #osdev
bgs has quit [Remote host closed the connection]
justmatt has quit [Quit: ]
justmatt has joined #osdev
matrice64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Halofreak1990 has quit [Ping timeout: 265 seconds]
<kazinsal> no
<zid`> yes?
danilogondolfo has joined #osdev
vdamewood has quit [Remote host closed the connection]
pmaz has joined #osdev
vdamewood has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
<moon-child> definitely not
<zid`> not even just the tip?
_xor has joined #osdev
danilogondolfo has quit [Quit: Leaving]
phr3ak has quit [Ping timeout: 246 seconds]
phr3ak has joined #osdev
bauen1 has quit [Ping timeout: 276 seconds]
_xor has quit [Quit: brb]
GeDaMo has joined #osdev
nyah has joined #osdev
gog has joined #osdev
danilogondolfo has joined #osdev
bauen1 has joined #osdev
slidercrank has quit [Remote host closed the connection]
slidercrank has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
Vercas69 has quit [Remote host closed the connection]
Vercas69 has joined #osdev
Left_Turn has joined #osdev
Burgundy has joined #osdev
Turn_Left has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
Left_Turn has quit [Ping timeout: 240 seconds]
pmaz has quit [Quit: Konversation terminated!]
bauen1 has joined #osdev
CalculusCats is now known as CalculusCat
Left_Turn has joined #osdev
elastic_dog has quit [Ping timeout: 252 seconds]
elastic_dog has joined #osdev
Turn_Left has quit [Ping timeout: 252 seconds]
mrvn has quit [Ping timeout: 276 seconds]
CalculusCat is now known as CalculusCats
alturmann1729 has joined #osdev
zxrom has quit [Quit: Leaving]
sinvet has joined #osdev
sinvet has quit [Client Quit]
bauen1 has quit [Ping timeout: 240 seconds]
<zid`> I see, you're all too busy watching gundam to be interesting
<gog> i'm busy working
<gog> well, busy just having lunch
bauen1 has joined #osdev
bnchs has quit [Read error: Connection reset by peer]
PapaFrog has quit [Quit: ZNC 1.8.2+deb2 - https://znc.in]
PapaFrog has joined #osdev
<sakasama> zid` = zid.tip();
<sakasama> Lunch is about as close as I get to working these days.
<zid`> .tip?
<sakasama> Just the tip, from now on.
* FireFly tips fedora^Wzid
ppmathis has quit [Ping timeout: 240 seconds]
Vercas694 has joined #osdev
Vercas69 has quit [Remote host closed the connection]
Vercas694 is now known as Vercas69
dude12312414 has joined #osdev
slidercrank has quit [Quit: Why not ask me about Sevastopol's safety protocols?]
Brain__ has joined #osdev
<Brain__> o/
goliath has quit [Quit: SIGSEGV]
Vercas69 has quit [Remote host closed the connection]
Vercas69 has joined #osdev
moberg has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
* sham1 tips self
<sham1> How is everyone on this awesome day
bauen1 has quit [Ping timeout: 240 seconds]
xenos1984 has joined #osdev
ppmathis has joined #osdev
vdamewood has quit [Remote host closed the connection]
vdamewood has joined #osdev
[itchyjunk] has joined #osdev
wereii has quit [Quit: ZNC - https://znc.in]
wereii has joined #osdev
<gog> i already wanna go home
<sakasama> I'm home and still want to go home.
<gog> i spent about 40 minutes wondering why this action was getting the wrong data from the view and it turns out i had the field names wrong
<gog> loose coupling is a great idea in theory
<zid`> I've been home all day and I want to stay here
<zid`> gog: Someone should invent some sort of tag for variables that tells you what sort of data lives in them, so that you can get some simple compile time checking for if the data seems sane for that usage
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<FireFly> sakasama: mood
<gog> those exist, but in this case i can't use the tag helper
<gog> because legacy reason
<gog> maybe i should fix that while i'm at it
<gog> idk how much that's gonna creep the task though
<FireFly> I think it was a reference to type systems :p
<FireFly> at least my reading
<gog> i mean it is a type system in this case, the view is strongly typed and it's a good idea to use the tag helpers becuase they will enforce the type and check the model to see if the property exists
<gog> but there's a jquery plugin that doesn't play nice with the tag helpers
<heat> gog wanna write sea
<heat> hekc even sea sharp
<gog> i'm writing c# rn
<gog> i'm no longer a programmer
<heat> are u compiler
<gog> no
<gog> i'm a web developer
<zid`> I am write C pls heat
goliath has joined #osdev
vdamewood has quit [Remote host closed the connection]
mrvn has joined #osdev
vdamewood has joined #osdev
linear_cannon has joined #osdev
bauen1 has joined #osdev
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
slidercrank has joined #osdev
<gaze___> So I was just thinking. If I want to hide and take over an Ethernet card, why do I need to use VT-d and IOMMU? If it’s a rootkit-like thing, why not just leave everything identity mapped?
<gaze___> And I don’t really understand DMA on x86 but my impression is that the hardware just bus masters
<gaze___> So everyone is responsible for its own DMA
goliath has quit [Quit: SIGSEGV]
<gaze___> (Not actually writing a root kit!)
<gog> the CPU has to set up the transaction and provide the buffer in memory for the device to use
<gog> but yeah then the hardware bus masters
<zid`> you need to hide it to stop the host OS initializing it.. again
<zid`> and trying to use it
<gaze___> Is it initialized centrally?
<gog> the IOMMU makes it such that you don't need to either provide a contiguous buffer in linear space or use scatter/gather
<gaze___> Yeah yeah what I’m saying is if the VMM leaves everything identity mapped what’s the problem? What indirection is really necessary?
<gaze___> But ok if the host is going to try and reinitialize some centralized thing that presents an issue certainly
<zid`> I'm not sure what device hiding and 'vmm' have to do with each other
<gaze___> I hope I’m using the right terminology. When I say vmm I mean the monitor/hypervisor
<zid`> ah *that* vmm, the awful one with 4 other meanings
<zid`> the business term
goliath has joined #osdev
<zid`> not the technical term
<gog> the guest system still needs a memory space to do DMA with the device
<gaze___> What’s the technical term?
<zid`> I mean, what you just said, the hypervisor
<gaze___> Ok hypervisor it is then. But yes, it needs memory space and can have it. It sees bare memory.
<zid`> "Why do I need a hypervisor to hide a device?" is ultimately your question then?
vdamewood has quit [Remote host closed the connection]
<gaze___> Mmmm yes.
<gaze___> Wait no!
<zid`> Because.. that's the mechanism that the cpu provides to enable it?
<zid`> Otherwise it'd be impossible.
<gaze___> What I mean is why do I need vtd and the iommu
<gaze___> If the hypervisor identity maps
<zid`> because vtd is the tech that implements hypervisors
vdamewood has joined #osdev
<zid`> and the iommu is the memory controller version of a hypervisor
<gog> because the guest system doesn't have the actual physical space
<gog> it sees what the hypervisor configures it to see
<zid`> The idea of 'devide hiding' is that you need to *somehow* decouple writes to physical memory with *actually* writing to physical memory
<zid`> that's what either vtd, or an iommu, can do
<gog> if you're identity mapping physical space into a guest system then you're defeating the purpose of the hypervisor
Turn_Left has joined #osdev
<zid`> If the host OS has a 'normal' view of physical memory, no devices are hidden from it, because devices are memory mapped (aka, sitting on the memory bus, responding to read/writes). As long as the OS knows the physial address, the device can be interacted with. Ergo you need to *disrupt* that view, and make it impossible to send certain physical addresses to the bus.
Left_Turn has quit [Ping timeout: 240 seconds]
<gaze___> In a classical blue pill root kit it does right?
<zid`> does what
<gaze___> Well — if the device is hidden in the table provided by ACPI, why would the host care about it?
<gaze___> I mean you identity map most everything except a few thing.
<gaze___> Few things
<zid`> how are you hiding it
<zid`> without changing what the OS sees in memory
<gaze___> Ah ok sorry I’m not being totally clear. You change what the OS sees — not the hardware.
<zid`> the OS is the thing the hardware is running
<zid`> do we have to get into theory of mind and solipsism and stuff
eroux has joined #osdev
<gaze___> The physical addresses given to the hardware require no indirection in my proposed scheme. The only thing indirected are the attempts to probe that the device exists — that is, the ACPI tables. There’s numerous opportunities elsewhere too. Maybe you hook the function that enumerates devices on the PCI bus.
<gaze___> Which is harder but maybe you understand what I’m getting at even if I’m wrong
<zid`> acpi tables can hide an entire controller, but can't hide an individual device, you'll need to fudge the pci-e configuration space for that
<zid`> Your original question is "Why do I need to change what the cpu can see in memory?" but you seem to be past that now?
<gaze___> “Fudge the pci-e configuration space” yes that’s what I mean.
<heat> fudging pcie config in a hypervisor sounds pretty ez
<heat> each device has 4096 bytes, a whole page
<heat> so replace every device you want to hide with an all-1s page
<heat> (or trap them all to all-1s or whatever)
<zid`> I've never done a hyperpooper, but then again, I've not got anything to run in one either
<zid`> so that's probably understandable
<gog> turbovisor
* gog nyoom nyoom
<zid`> I should write a hypovisor
<zid`> makes your system more pessimal
<gog> i should go home
<gog> but i'm getting so much done
<gog> and it's raining
<zid`> stay late, then don't show up tomorrow, "I stayed late yesterday"
<gog> tomorrow is gym day tho
<gog> i like gym
<heat> >hyperpooper
<heat> cheers i need to poop now
<gog> cheers bro i'll poop to that
<zid`> I've never pooped
xenos1984 has quit [Ping timeout: 256 seconds]
<gog> ok i'm going home now
gog has quit [Quit: Konversation terminated!]
bauen1 has joined #osdev
DanielNechtan has joined #osdev
DanielNechtan is now known as bombuzal
Halofreak1990 has joined #osdev
xenos1984 has joined #osdev
gog has joined #osdev
<gaze___> Heat: now we’re talkin!! Why an all-1s?
<heat> because accesses to configuration space without a device behind it reply all-1s
<gaze___> Fab. Ok so if I do that, there’s no other central thing that I’d have to muck with so that I can do DMA on my own to the card?
<gaze___> From the monitor
<gaze___> DMA on some hardware is done with some central controller but as I understand it, the card just bus masters
<heat> you need to make sure that if your card is behind a bridge, no one disables memory, io or bus mastering on that bridge
<heat> you may need to have everything pre-configured and hope linux/something else doesn't rewrite it?
<gog> ISA DMA is distinct from PCI bus mastering DMA yes
<gaze___> heat: haha ew
<gaze___> Is there somewhere you could switch that back and forth on context switches to the monitor or do you wind up screwing up transfers in progress?
<gaze___> I guess you’d have to emulate the behavior of the bridge or something to keep all those things on.
innegatives has joined #osdev
innegatives has quit [Quit: WeeChat 3.5]
<heat> the top way of checking if a string only has alphanumeric chars in javascript is to use regex
<heat> ........................
<zid`> well.. yea?
<zid`> otherwise you'd have to run some code written in JS, instead of C
<ChadGPT> i heard regex are zero cost
<zid`> I bet a regex that's pre-regcomp'd is faster than a loop in js
<zid`> I've genuinely seen people say "loops are slow" in js :D
<bslsk05> ​swtch.com: Regular Expression Matching Can Be Simple And Fast
<heat> they are not
<gog> i'm slow in js
<heat> hot loops get JITted pretty fast
<gog> i'm a hot loop
<heat> regex is ridonculous
<zid`> if you're using a js engine for a popular cpu that was updated less than last week ago, probably
<zid`> people into web seem to forget that like, javascript not being dogshit slow is hyper-modern invention that only applies to telephones
<geist> oh apropos to JS and operating systems, i discovered this the other day: https://infinitemac.org/
<bslsk05> ​infinitemac.org: Infinite Mac
<geist> i think it's all just brute force JS emulation
<zid`> yea it loads about 8MB of javascript
<zid`> okay maybe like 3MB
<gog> i think i might have a closer look at cosmos since i'm becoming a c# nerd now
<gaze___> Oh hi Geist
<gog> (tommy wiseau voice) oh, hi geist
<geist> hey gaze
* geist throws a football around
<geist> gaze___: whatcha up to? it's been what like 15 years?
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<geist> though i think you popped into irc here a few times in the gap
<geist> was thinking of when we were at $company at the same time
<gaze___> Yeah and I think I sent you the odd update over gchat
<geist> yah
<gaze___> I’m good — finished my PhD at Yale a few years ago, finishing up at MIT now, and just got a job at a startup in Boulder
<gaze___> Doing trapped atom quantum computing
<geist> yah you were going back to academia
<geist> you just couldn't get enough!
<gaze___> Yeah I’ve had enough now.
<gaze___> I want my damn garage shop
<gaze___> Also the postdoc is the end of the line for hands on work.
<gaze___> After that you’re more or less a manager
<gaze___> And that’s just not for me
<geist> yah totally
<geist> i got graduated undergrad just about the same time i got tired of it, perfect timing
<gaze___> It’s still startup money and like — less than a programmer would make since physics phds don’t negotiate well
<geist> though i still occasionally have nightmares where i have to go back to college for some reason
<gaze___> But it’ll be nice.
<gaze___> Oh me too!
<gaze___> I have that odd dream where I forget to turn in an assignment
<gaze___> And it unravels my entire career
<geist> yah university is like tis very slow burn PTSD that sears itself into your mind
<gaze___> I liked it — and I mostly liked my postdoc
<gaze___> I think I took a bit of a wrong turn and ended up in a field that I don’t vibe with well
<gaze___> And now it’s like eh. Fuck this.
<geist> word.
<gaze___> Are you in Seattle? With google?
<geist> yep. actually moved out in the woods near google. been up here since 2015
<geist> getting out of the bay area was a nice slowdown
<geist> though i miss it from time to time
<gaze___> I miss it all the time but I really miss the memory of it.
<gaze___> That Bay Area is long gone I think
<gaze___> Seeing shows at bottom of the hill with my college long distance girlfriend lol
<geist> heh yeah. i do miss the idealized version of SF
<gaze___> A special place indeed.
<gaze___> Are you working on fuschia?
<gaze___> Chris left for some blockchain thing right?
<geist> still working on fuchsia. he went to MSFT
<geist> xbox, game stuff
<Brnocrist> someone is using fuchsia for real things?
<heat> no
<heat> geist is still working on fuchsia, other guy went to MSFT
<heat> although fuchsia has been deployed by google for Real Things so to speak
<sham1> Research is "Real Things", CMV
<gog> can i work on fuchsia
<gog> i know how to web develop
gabi-250_ has quit [Ping timeout: 255 seconds]
dude12312414 has joined #osdev
slidercrank has quit [Ping timeout: 240 seconds]
<heat> no gog, you need rust
<heat> ruuuuuuuuuuuuUUUUUUUUUUUUUUuuuuuuUUUUUUUUuuuuuuuuuuuuuuust carog carog cargo
<gog> cargog
<heat> aha yes, gogle should hire gog, creator of cargo
<heat> cargog
<heat> cargogle
<heat> why is GOOGLE squatting gogle.com
<heat> smh
elastic_dog has quit [Ping timeout: 240 seconds]
<ChadGPT> lmao i'm squatting mofix.org
<pitust> heat: if thats even real google i mean they dont have (valid) tls certs for the domain so you never know
elastic_dog has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
danilogondolfo has quit [Remote host closed the connection]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 252 seconds]
<heat> ChadGPT, i'm taking mjg.boo
heat has quit [Remote host closed the connection]
heat has joined #osdev
<ChadGPT> heat: what was the paper you were reading about ule
<heat> no
<ChadGPT> no what
<heat> it wasn't that one
<heat> in fact, I didn't read a paper about ULE
<ChadGPT> you read some paper where the dude worte about ule, amongst other things
<ChadGPT> what was it
<heat> the paper I read about schedulers for linux and its pseudo language had an ULE impl
<ChadGPT> ye that one
<heat> fuck I don't know, hold on a second
<ChadGPT> thank you
<heat> not a problem cutiepie
<ChadGPT> you getting fresh with me
<heat> i'm the freshest motherfucker you'll ever meet at a bsdcan
<heat> that said, it doesn't mean much to be cool at a bsdcan
sauce has quit []
heat has quit [Remote host closed the connection]
heat has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
wlemuel has quit [Ping timeout: 255 seconds]
wlemuel has joined #osdev
pmaz has joined #osdev
nyah has quit [Quit: leaving]
<gaze___> Geist : Xbox stuff seems fun. Chris helped me out with negotiating with this startup a bit