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
Dead_Bush_Sanpa1 has joined #osdev
Dead_Bush_Sanpai has quit [Ping timeout: 248 seconds]
Dead_Bush_Sanpa1 is now known as Dead_Bush_Sanpai
raphaelsc has quit [Remote host closed the connection]
gog has quit [Quit: byee]
Burgundy has quit [Ping timeout: 265 seconds]
Dead_Bush_Sanpai has quit [Read error: Connection reset by peer]
Dead_Bush_Sanpai has joined #osdev
X-Scale has quit [Ping timeout: 256 seconds]
Dead_Bush_Sanpai has quit [Read error: Connection reset by peer]
Dead_Bush_Sanpai has joined #osdev
heat has quit [Ping timeout: 248 seconds]
pabs3 has quit [Ping timeout: 260 seconds]
pabs3 has joined #osdev
vdamewood has joined #osdev
<johnjaye> isn't the main gimmick of rust the borrow checker?
<johnjaye> that seems like something you could simulate in c somehow
vinleod has quit [Ping timeout: 260 seconds]
X-Scale has joined #osdev
edr has quit [Quit: Leaving]
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 260 seconds]
X-Scale has quit [Quit: Client closed]
X-Scale has joined #osdev
vdamewood has joined #osdev
vinleod has quit [Ping timeout: 246 seconds]
terrorjack4 has quit [Quit: The Lounge - https://thelounge.chat]
<kof673> there is <rust the language> and whatever other baggage. i'm not sure i agree, but .....that certainly exists with anything.
<kof673> as shown by the linux thing :D
<kof673> point being, if people believe the goal is the baggage, then no, you cannot just simulate in c etc. that is not the real goal.
<kof673> not claiming that, but the language itself needs separated from all the baggage.
terrorjack4 has joined #osdev
goliath has quit [Quit: SIGSEGV]
aethlas_ has joined #osdev
aethlas has quit [Ping timeout: 252 seconds]
hwpplayer1 has joined #osdev
pabs3 has quit [Read error: Connection reset by peer]
pabs3 has joined #osdev
vdamewood has quit [Ping timeout: 248 seconds]
vdamewood has joined #osdev
aethlas has joined #osdev
aethlas_ has quit [Ping timeout: 252 seconds]
TkTech has quit [Quit: The Lounge - https://thelounge.chat]
vdamewood is now known as vampiredamewood
bleb has quit [Ping timeout: 276 seconds]
eluks has quit [Remote host closed the connection]
X-Scale has quit [Quit: Client closed]
bleb has joined #osdev
eluks has joined #osdev
vampiredamewood has quit [Read error: Connection reset by peer]
Matt|home has quit [Read error: Connection reset by peer]
runxiyu has quit [Ping timeout: 248 seconds]
vdamewood has joined #osdev
pax_73 has quit [Ping timeout: 264 seconds]
Enapiuz has quit [Ping timeout: 246 seconds]
Enapiuz has joined #osdev
runxiyu has joined #osdev
wgrant has quit [Ping timeout: 252 seconds]
pax_73 has joined #osdev
TkTech has joined #osdev
LostFrog has joined #osdev
PapaFrog has quit [Ping timeout: 272 seconds]
wgrant has joined #osdev
craigo has quit [Quit: Leaving]
jedesa has quit [Remote host closed the connection]
hwpplayer1 has quit [Remote host closed the connection]
benlyn has joined #osdev
LostFrog has quit [Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in]
PapaFrog has joined #osdev
guideX_ has joined #osdev
hwpplayer1 has joined #osdev
guideX__ has joined #osdev
guideX has quit [Ping timeout: 260 seconds]
emntn has quit [Ping timeout: 276 seconds]
guideX__ has quit [Read error: Connection reset by peer]
guideX__ has joined #osdev
emntn has joined #osdev
guideX_ has quit [Ping timeout: 246 seconds]
guideX_ has joined #osdev
guideX has joined #osdev
guideX__ has quit [Ping timeout: 272 seconds]
guideX has quit [Read error: Connection reset by peer]
guideX_ has quit [Ping timeout: 244 seconds]
guideX has joined #osdev
guideX_ has joined #osdev
craigo has joined #osdev
guideX has quit [Ping timeout: 252 seconds]
youcai has joined #osdev
guideX_ has quit [Read error: Connection reset by peer]
guideX_ has joined #osdev
guideX_ has quit [Read error: Connection reset by peer]
guideX_ has joined #osdev
guideX_ has quit [Read error: Connection reset by peer]
guideX_ has joined #osdev
guideX__ has joined #osdev
guideX has joined #osdev
guideX_ has quit [Ping timeout: 255 seconds]
guideX__ has quit [Ping timeout: 255 seconds]
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
craigo has quit [Quit: Leaving]
klys has joined #osdev
theyneversleep has joined #osdev
GeDaMo has joined #osdev
vdamewood has quit [Ping timeout: 252 seconds]
vdamewood has joined #osdev
hwpplayer1 has quit [Remote host closed the connection]
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 260 seconds]
vinleod has quit [Ping timeout: 245 seconds]
vdamewood has joined #osdev
netbsduser has joined #osdev
hwpplayer1 has joined #osdev
gorgonical has joined #osdev
<gorgonical> hello hello hello, moin moin
hwpplayer1 has quit [Read error: Connection reset by peer]
hwpplayer1 has joined #osdev
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 276 seconds]
zhiayang has quit [Ping timeout: 260 seconds]
lanodan has quit [Quit: WeeChat 4.3.4]
lanodan has joined #osdev
hwpplayer1 has quit [Remote host closed the connection]
aethlas_ has joined #osdev
aethlas has quit [Ping timeout: 246 seconds]
hwpplayer1 has joined #osdev
m3a has quit [Ping timeout: 255 seconds]
Stary has quit [Quit: ZNC - http://znc.in]
CompanionCube has quit [Quit: ZNC - http://znc.in]
Stary has joined #osdev
CompanionCube has joined #osdev
bessieTheBoy has joined #osdev
gorgonical has quit [Remote host closed the connection]
<bessieTheBoy> does this look like a valid IDT entry?:
<bessieTheBoy> 0x9F0000080510
Burgundy has joined #osdev
aethlas has joined #osdev
<zid`> nope
<zid`> oh wait, dpl and gate should be zero though so maybe
aethlas_ has quit [Ping timeout: 245 seconds]
<zid`> or should gate be E
<zid`> *checks some source*
<zid`> yea you want 8E for flags
<zid`> present and interrupt gate
<bessieTheBoy> what about this?:
<bessieTheBoy> 8E0000080510
<zid`> that's.. a 6 byte constant? Then yea I guess so
<zid`> as long as you wanted address 8:510
zhiayang has joined #osdev
<bessieTheBoy> well im using a stud table as described in the wiki. This is how I cast it:
<zid`> whatever that is
hwpplayer1 has quit [Quit: I gotta go]
zhiayang has quit [Ping timeout: 272 seconds]
m3a has joined #osdev
zhiayang has joined #osdev
hwpplayer1 has joined #osdev
bessieTheBoy has quit [Quit: Client closed]
Arthuria has joined #osdev
edr has joined #osdev
<hbag> alright im following the GCC cross-compiler guide and... for whatever reason its saying the 'configure' file in the binutils dir isn't something i can run as a command
goliath has joined #osdev
<Mutabah> `./configure` doesn't work
<hbag> ah it looks like chmod isnt set correctly on it
<Mutabah> is that file marked as executable
<Mutabah> Yup
<hbag> i guess thats what i get for just extracting it directly into my WSL from windows
<nikolar> lollerž
<hbag> since im assuming now *all* the files in here have the wrong permissions would it be worth just deleting them and uncompressing them from within WSL
heat has joined #osdev
<heat> hbag, yes
<zid`> yes
<zid`> also: very yes
<zid`> heat: You forgot to wish me merry christmas
<heat> damn is it your bday today?
<zid`> damn right it is
<heat> happy hannukah man
jedesa has joined #osdev
<zid`> hannukah man is a terrible superhero
Burgundy has left #osdev [#osdev]
gorgonical has joined #osdev
EmanueleDavalli has joined #osdev
Matt|home has joined #osdev
m3a has quit [Ping timeout: 246 seconds]
<nikolar> lol
<gorgonical> zid`: im still holding onto the excellent name shilling monero by the way
<gorgonical> something about hanukkah man reminded me of that conversation
<zid`> Shilling is such a good pun fodder in scam currency jokes
<zid`> fuck I can't remember my dogecoin joke
<zid`> aha! 犬+円
<zid`> doge koinu
<gorgonical> I couldn't help but read it as "inu yen"
<zid`> do you get it, cus, koinu is 'coin' but also 'puppy'
<zid`> 10/10 no notes
<gorgonical> but
<gorgonical> no I don't get it
<zid`> ko is baby, inu is dog
<zid`> so koinu is literally 'puppy'
<nortti> 子犬
<gorgonical> yes I know that but how does your kanji make the joke
<gorgonical> nortti: this
<zid`> but if you read it aloud, it says 'coin'
<nortti> it doesnae
<zid`> god norting
<zid`> good
<zid`> How are we this fine *checks sky* overcast afternoon
<zid`> idk why I checked, ofc it's overcast
<zid`> it will be for the next 4 months
<gorgonical> here in dresden the sky is a clear sunny blue and its 20c
<zid`> You know how there's that lake in south america where it never stops thundering
<zid`> I live in the special bit of the world where it never isn't overcast
<gorgonical> yeah catatumbo
<zid`> that's the one
<zid`> Sky is currently pure, brilliant white
<zid`> no variation in colour whatsoever
orccoin has joined #osdev
<nikolar> lel
<GeDaMo> I have grey. And also rain :|
<zid`> gorgonical: You forgot to thank me for modernizing all your infrastructure btw
<gorgonical> i won't sign this contract until i've had the terms of service explained to me, zid
<kof673> différance, <points at rabbit duck>
<zid`> it's fine, we traded it for a modernized coventry
<zid`> belgrade resisted modernization and just kept all the crumbling buildings though, smh nikolar
<gorgonical> early last month though one of the main bridges here did collapse
<gorgonical> so thanks for nothing I think
<zid`> You have to stay on top of the maint
<zid`> we modernized it 80 years ago
<gorgonical> apparently they built this one in 1970
<zid`> See, there's your problem
<gorgonical> the first one was one of those old ones with enormous piles and probably would have never collapsed, but they bombed it to slow the russians down intentionally
<zid`> ooh nice bridge
<zid`> I raise you the cliffton suspension bridge
<zid`> brunel was such a chad
<zid`> The most technologically advanced thing in scotland
<gorgonical> the cliffton bridge indeed is very cool
<zid`> 1864, absolute madlad building that
<gorgonical> don't they have one of those ship lifting devices somewhere in scotland
<zid`> falkirk wheel thing
<gorgonical> yes that thing
<zid`> yea, falkirk wheel thing is the correct name
<gorgonical> looks like a gun that shoots you into another galaxy
<zid`> It does look like the reloading mechanism for a space cannon
<zid`> final fantasy 8's space cannon should have a falkirk wheel at one end
theyneversleep has left #osdev [#osdev]
<gorgonical> the exposed, enormous ring gears really complete the look i think
<zid`> brunel actually
<zid`> designed an atmospheric railway
<zid`> sadly it cost 3x what steam locomotives cost and was scrapped
<hbag> setting up clion with my toolchain and it seems to be demanding i use cmake rather than just make. should be fine right
<zid`> elon's stupid hyperloop was proven dumb in.. 1848 :P
<zid`> sorry, leon's
<gorgonical> best description i ever heard of the hyperloop is "an idea from 1848 which elon invented in 2010" or whatever
<gorgonical> the exact quote is "This idea from 1888 was first conceived by Elon musk in 2012"
<FreeFull> And it's a terrible idea regardless
<zid`> It's not a bad idea, leon did it to undercut competitors and to slurp up infra grant money though
<zid`> his self driving car nonsense relies on american cities remaining car-centric clusterfucks
<FreeFull> Maglev is so much better
<zid`> You do both
<FreeFull> Compared to trying to have huge ducts of vacuum tubing
<zid`> rather than doing it as a full piston
<zid`> you just maglev it then run the trains in lower pressure tubes
<FreeFull> The lower pressure tubes are not worth it
<zid`> depends how cheap you can do it, the energy gains are there afaik
<gorgonical> I wonder how much energy losses are due to plowing through the fluid vs the air sticking to the side of the train
<kof673> "if cities ever grow up here, we shall become as corrupt as europe" minor point but, technically there is no such thing as an american city, different types of law :D
<zid`> air resistance goes up with a pretty significant power of velo, so for high speeds it gets more and more worth it
<zid`> I think in free air it's squared, and for tunnels it's probably worse
<gorgonical> does air resistance include both of those things or only the pushing part?
<zid`> only the pushing part I think, the skin effects etc change your coefficient
<gorgonical> hmm. technically with global warming we are improving the efficiency of ground transportation by heating the air and making it less dense
<gorgonical> maybe that's the solution
<zid`> phew thank god, that'll self correct in short order then
<zid`> as we burn less fuel to move the cars around
<gorgonical> the invisible hand of the free market will also deliver us: as the world gets hotter there will be less demand for highspeed travel because society will collapse. so these two factors will force an equilibrium
<gorgonical> so there's actually not a problem we need to solve here
<zid`> and as the temp goes up, we can put forests on the ice caps!
<zid`> on the not-ice caps!
<zid`> well, the one not-ice cap
<zid`> the other one will be a little wet
<gorgonical> Maybe when I'm 100 I'll be able to vacation to the antarctic archipelago
* kof673 sets timer for iceland will finally have trees joke
<zid`> No, we're all dying in the water wars of 2050
<gorgonical> Can we at least make it to 2071 so we can ironically turn fallout into a prophecy
<zid`> Either that or a large indian crop failure will cause half a billion migrants to flock into europe, followed by locust plagues
<zid`> no nuclear bombs unfortunately
<zid`> The UK will break away from europe and float over the US, where it will be betrayed and invaded by the US to use to grow MORE CORN
<zid`> all will be corn
<gorgonical> The us already grows like four times as much corn as we can eat
<the_oz> UK will split into Scotland/Ireland alliance, which will impoverish instantly as UK loses half offshore oil deposits
<zid`> MORE CORN
dzwdz has quit [Remote host closed the connection]
<the_oz> New London
<zid`> I should make a universal paperclips mod that just replaces the word paperclips with corn
Left_Turn has joined #osdev
<gorgonical> to emphasize corn's supremacy there will be a law stating nowhere in the UK are any buildings to be taller than the maximum height of a fully grown ear of corn
<the_oz> soybean is the underdog
<FreeFull> gorgonical: Is building underground allowed?
<gorgonical> yes
<the_oz> DUMB BUNKER WARS
<gorgonical> radio towers will still be permitted only if they do that thing we do with trees but instead of looking like trees they look like colossal supercorns
<zid`> haha
<the_oz> like that?
<gorgonical> yes exactly
<the_oz> sneaky corn hobbitses
<gorgonical> This was the thing I was thinking of
<the_oz> oh that's not trying very hard
<the_oz> what's the point lol
<gorgonical> some of them look okay
<gorgonical> but you are right many of these are terrible lol
<gorgonical> that cactus one is the best one probably
<the_oz> I bet they have to try not hard to not have a shitbird nest
<zid`> I like the big cactus o-
<zid`> damnit gorg
<FreeFull> What if we just plant corn on the roofs of buildings?
<kof673> > locust plagues :/ lost in translation <points at bslsk05>
<kof673> the ibis was waiting to eat them, that was a safe spot :D
vinleod has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
zhiayang has quit [Quit: oof.]
<EmanueleDavalli> My os works perfectly on qemu tcg, but triple faults on kvm when changing cr3. Any ideas on what could cause it?
zhiayang has joined #osdev
<gorgonical> EmanueleDavalli: is there some kind of fault reporting for kvm like with qemu?
<gorgonical> Qemu's fault reporting saved me a lot of time fighting faults like this in the past
<EmanueleDavalli> not that I know of
<gorgonical> Keep this in mind but don't pursue it just yet, but I have also experienced mismatches because qemu really actually doesn't fully emulate some things. I had nested VM behavior mismatches between qemu and hardware because the version of qemu I was on didn't check for ept page stride length
<gorgonical> Because there's only one value. But in hardware you /must/ set it to that value or you get a vmlaunch fault. qemu does it happily, which makes it very hard to diagnose
<zid`> yea kvm only faults be tricky
<gorgonical> yeah wish I could be more help but I don't use kvm
<EmanueleDavalli> gorgonical: thank you for the link
<zid`> are you messing with any advanced stuff?
<zid`> i.e the low bits are all zero, and you don't have weird things set in cr4?
<zid`> pcid for example
<EmanueleDavalli> I'm gonna take a look
<EmanueleDavalli> CR4=000006a0
<zid`> erf what's that, 10 + 9 + 8 + 6?
<zid`> osxmmexcpt + osfxsr + pce + mce
<zid`> no I can't count, 5 and 7
<zid`> pae and pge
<zid`> so none of the strange ones, at least
<EmanueleDavalli> I only touch cr4 to enable SSE
<zid`> and the low bits of cr3 are zero?
<EmanueleDavalli> yes
<EmanueleDavalli> 0x90000
<zid`> Your machine is weird and should feel weird.
<EmanueleDavalli> I would like to say it's because it's an AMD CPU, but it also happens on Intel ones
<zid`> Time to go over all your assumptions, fun time
<gorgonical> "fun time"
<zid`> did it compile to what you thought it did, does the crash actually happen where you think it does, etc
<EmanueleDavalli> The crash happens right on changing cr3 and replacing the bootloader one, verified by putting a while(1) before and after
<zid`> is paging already enabled at this point
<zid`> or are you enabling it for the first time
<gorgonical> a classic catch
<gorgonical> a very direct route to a triple fault
<zid`> because yea, if the page table isn't valid, and paging is already on
<zid`> that can't help but triple fault
<zid`> like, it shouldn't *really* crash until the next jmp with segment override / iretq, if it's currently disabled
<EmanueleDavalli> paging already enabled by the bootloader
<zid`> well, your page tables are jsut wrong then
<zid`> easy
<Matt|home> i'll read it today, but what's the main thing with UEFI from traditional boot, it jumps straight into long mode on x86?
<gorgonical> strange that qemu wouldn't notice this though
<EmanueleDavalli> yeah, very strange
<zid`> got your interrupts disabled?
<EmanueleDavalli> yes
<zid`> working in tcg is the odd part yea
<zid`> 'bootstrap page isn't mapped' being the usual suspect, but that'd fail in tcg
<EmanueleDavalli> just a thought, is it legal to replace a 2mb page with a 4kb page when RIP is there?
<zid`> might cause the tlb to get very upset?
<EmanueleDavalli> obv the resulting physical address doesn't change
<zid`> but cr3 load should flush that nevermind
<zid`> but it's worth investigating?
Turn_Left has joined #osdev
netbsduser` has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
netbsduser has quit [Ping timeout: 244 seconds]
mavhq has joined #osdev
mavhq has quit [Read error: Connection reset by peer]
bencevans has quit [Quit: ZNC 1.9.1 - https://znc.in]
Matt|home has quit [Read error: Connection reset by peer]
Left_Turn has joined #osdev
Etabeta1 has joined #osdev
Turn_Left has quit [Ping timeout: 244 seconds]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 248 seconds]
gorgonical has quit [Ping timeout: 245 seconds]
<hbag> trying to set up clion to use my cross-compiler, but it keeps complaining that it failed to compile a simple test program, which i am assuming is because it's a cross-compiler and its testing it as if it were a compiler for my host OS
mavhq has joined #osdev
<heat> i mean, a default i686-elf (or x86_64-elf or whatever) cross-compiler cannot compile userspace programs
<heat> due to missing the whole of libc
<hbag> yeah i know, its just im not sure if cmake's complaining means its gonna end up not configured right, or if its just something i can ignore as its just a test compile
<zid`> I'm sure if you keep digging
<zid`> you'll hit the surface
<heat> <EmanueleDavalli> just a thought, is it legal to replace a 2mb page with a 4kb page when RIP is there?
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<heat> it's not legal to replace a 2MB page with 4KB pages without flushing the shit out of the TLB in the meanwhile
<heat> IIRC the procedure is to fully unmap the page, then flush the tlb, then replace the PTE with the new page table
<zid`> so you can only ever go from 4k to 4k or 2m to 2m, where rip is?
<zid`> and why doesn't mov cr3, handle that?
Arthuria has quit [Ping timeout: 248 seconds]
<heat> not just where rip is, any mapping really, you don't know what's in the TLB
<heat> ofc chances are that your RIP is in the TLB
<heat> mov cr3 doesn't handle that because you're touching the bullshit mapping while executing, and the CPU has its own page table walker cache
<hbag> i am discovering cmake is a gigantic pain in the ass when it comes to cross-compiling
<heat> s/when it comes to cross-compiling//h
<heat> why's it not working
<heat> s/working/linux/
<heat> puck, sed bork?
<puck> :DmeowD:
* puck stares at bslsk05
<puck> yup. oh. fuck. that's funny
<zid`> heat: I was under the impression reloading cr3 cleared the tlb, hence the global bit
<puck> adding satellite comms to bslsk05 broke everything else due to an obvious mistake
<hbag> it would be easier for me to just write a shell script to compile everything but if i do THAT clion will keep screaming at me about the project "not being configured". plus i wont be able to click the shiny "build it for me pretty please" button
<puck> (both bslsk05 connections were under the same bouncer id thing, and that caused a conflict)
<zid`> 'a shell sript to compile things' is called a makefile
<EmanueleDavalli> Well, I solved it
<zid`> EmanueleDavalli: not remapping the bounce page as 2M, presumably, as suspected?
<EmanueleDavalli> By... removing the global bit from the new mappings?
<zid`> oh, I thought I asked about you doing funky things, guess I missed that one
orccoin has quit [Ping timeout: 255 seconds]
<EmanueleDavalli> I mapped the kernel pages global because they need to persist between context switches
<EmanueleDavalli> No idea it would create problems
<heat> oh lol, it does not actually
<heat> i didn't realize that's what you were doing
<heat> reloading cr3 doesn't clear the TLB for global pages, because that obviously defeats the purpose of global pages
<zid`> exactly yea
<zid`> I figured there's no way they'd be messing with global pages during an explicit cr3 reload designed to remap everything
<heat> you need to either manually invlpg or clear and re-set cr4.PGE
<EmanueleDavalli> I thought the old mapping not being global would have forced a flush nonetheless, guess I was wrong
<EmanueleDavalli> heat: thanks for the tip about cr4
<zid`> my code toggles pge but I don't even remember why now
<zid`> I think it was because it was because otherwise nx wouldn't take or something? literally cannot remember
<heat> >old mapping not being global would have forced a flush
<heat> huh now that's funny.
<heat> i would've imagined it just Did The Right Thing
<zid`> cpus are magic and cannot be trusted
<GeDaMo> CPUs are subtle and quick to anger :P
<zid`> Unlike scots
<zid`> who are loud and quick to anger
<zid`> <GeDaMo> Fuckin baw bag I'll sort yae right oot fer tha
<GeDaMo> Haud yer wheesht :|
<zid`> stop having pogroms about goths and maybe we can make up
<zid`> or at least round them up and send them my way
<GeDaMo> What are you on about? :/
<zid`> scots hate goths
<zid`> it's just a known thing
<zid`> 80% of scottish twitter was just jokes about goths :D
xenos1984 has quit [Ping timeout: 252 seconds]
<bslsk05> ​redirect -> www.reddit.com <no title>
xenos1984 has joined #osdev
<GeDaMo> Ah, but that's Twitter :P
<EmanueleDavalli> wait, upon further debugging it only crashes when the global bit is set on the page directories????
<bslsk05> ​www.reddit.com <no title>
<heat> dude you can't set the G bit on non-leaf PTEs
* zid` cracks his sdm
<zid`> heat: much like the roman empire
<heat> these motherfuckers need to be hated
<zid`> I too would like to be destgroyed by goths
<heat> lol
<zid`> G actually says 'ignored' in my manual
<zid`> for non leavies
<zid`> 8:10 ignored
<zid`> 8 (G) for leaf
goliath has quit [Quit: SIGSEGV]
<zid`> all the diagrams show it as ign too
<zid`> what do the amd manuals say I don't have them
<heat> MBZ
<zid`> might be zero, who knows
<zid`> oh are we doing pictures
<heat> SEND ME PICS OF YOUR DIAGRAMS
Lucretia has quit [Quit: Konversation terminated!]
Lucretia has joined #osdev
<the_oz> must be zeroed
mavhq has quit [Ping timeout: 245 seconds]
<EmanueleDavalli> so kvm is just implementing the strictest behavior
<zid`> no, kvm is running it on your actual cpu
<zid`> qemu acts as a hypervisor and just runs your code on hw
<EmanueleDavalli> it worked on bare metal on one of the machines were it crashed on kvm
<EmanueleDavalli> but maybe the bios didn't set the global bit on cr4
gog has joined #osdev
<heat> possibly
<heat> or maybe something else is at stake here, because the behavior you mention isn't really logical
<zid`> at stake?
<zid`> EmanueleDavalli heat thinks your code is going to end the world
<zid`> be careful
<heat> in stake?
<heat> ligmaballs
<zid`> stake is just the wrong word :P
<heat> lkinux kernel operating system
EmanueleDavalli has quit [Quit: Leaving]
mavhq has joined #osdev
bencevans has joined #osdev
xenos1984 has quit [Ping timeout: 252 seconds]
mavhq has quit [Read error: Connection reset by peer]
Burgundy has joined #osdev
<hbag> alright i still have no idea how to configure my cmakelists for freestanding C
<hbag> google is not much help
<the_oz> lemme crack open my makefile..
<hbag> trying to get cmake to even work at all is making me feel like i should mail back my degree
<the_oz> -nodefaultlibs in linker, -nostdlib C compiler flag, -nostdinc++ C++ compiler flag
<the_oz> IIRC
<bslsk05> ​stackoverflow.com: How to stop CMake from linking against libstdc++ - Stack Overflow
<johnjaye> hbag: i havent' used cmake but my impression has been it's overengineered
<hbag> see now i feel even dumber because im not seeing where i'd even stick those flags. im more or less just going with the default cmakefiles my IDE generated trying to get it to pass its own checks
xenos1984 has joined #osdev
<hbag> it is claiming my cross-compiler can't compile, im assuming because its trying to use headers that arent there
<hbag> yeah its failing its test when it tries to find "crt0.o"
mavhq has joined #osdev
bencevans has quit [Quit: ZNC 1.9.1 - https://znc.in]
_nater_ has joined #osdev
<hbag> cmake also seems to be failing to detect my compiler ABI info
* geist yawns
<geist> good morning folks
bencevans has joined #osdev
<hbag> far from it
<hbag> cmake is making me want to pull my skin off
<Ermine> happy bday zid` !
Matt|home has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
bencevans has quit [Read error: Connection reset by peer]
bencevans has joined #osdev
goliath has joined #osdev
gog has quit [Quit: byee]
<Matt|home> serious serious serious serious question - are there legitimate advantages to having a monolithic kernel design for a _modern_ operating system for end users?
<Matt|home> or none whatsoever
<geist> mostly speed. lots more possibilities to optimize the wazoo out of stuff in the same address space
<geist> counter to that, modern cpus are prtty damn fast and things like context switch overhead are not that bad
<Matt|home> mkay. so which would you pick to design a kernel if you were going for a personal project?
<geist> i do find it a bit hard to justify though given modern security issues and the fact that linux has the monolithic design down, so it can 'own' that space as far as i'm concerned
<geist> oh depends on what you're trying to do. i'm talking about it from a 'if i were to design a product nowadays' (which i did, for fuchsia)
<geist> (which is a microkernel)
<Matt|home> cool
<geist> for personal project the question is what do you want to get out of it
<Matt|home> eh, pretend im trying to become bigger than windows :p for funsies
<geist> monolithic designs are much more straightforward, so you'll definitely give yourself more work if you try to build a µkernel from the get go
<geist> sicne you give yourself a lot more resitrctions to work around
<Matt|home> well, realistically there's nothing stopping you/me from building a mono kernel and then some update(s) later changing it right./
<Matt|home> ?
<geist> sort of a steeper learning and build curve that levels off once you get the basic user space IPC and system figured out
<geist> you an definitely build a mono kernel with a IPC heavy user space design
<Matt|home> coolsies
<geist> ie, drivers in the kernel, but user space really only gets IPC
<johnjaye> geist: what if linux went away
<geist> the real PITA with a pure µkernel is having all the drivers in user space
<geist> that makes the bootstrapping problem and whatnot an issue up front that takes some time to grok and solve
<Matt|home> realistically on a scale of 1-10 , 10 being "you need the resources of a state actor" and 11 being "physically impossible", how close could you get to having pretty graphics UI stuff like mac/windows/android etc ?
<Matt|home> e.g. imo windows just has better fonts across the board
<geist> a single person?
<Matt|home> yep
<geist> very rare. only done a few times. klange was one of the few
<geist> or you build a pure posix system and port a bunch of existing things
<geist> the amount of work is enormous
<Matt|home> what's the main issue, just a lot of grunt work or very expensive stuffs?
<Matt|home> copy that
<geist> you also need ot basically dedicate so many years to it
<geist> frankly if you have to ask you probably are going about it in the wrong way
<geist> the folks that do that sort of thing just do it because they're driven
<johnjaye> well. the ways of klange are mysterious
<Matt|home> oh i don't have to ask, im just making conversation. designing an OS is still very much in the back burner for me, i have more important projects that need my attention
<geist> indeed
<geist> oh heh, kk!
<Matt|home> but i _will_ eventually come back to this, i haven't abandoned it
<geist> yeah. wha ti generally found is there's a tremendous amount of low level stuff to learn as you build up a kernel
<johnjaye> i think that one paper wrote a basic kernel in Go and it was slower than linux
<geist> then it starts to expand out and as you build up the base of the design it's like an inverted pyramid of stuff to do
<Matt|home> see originally i wanted to do something very simple targetting a CPU from 1986, but more recently i've wanted to see what modern OS design looks like and to see if i could get one booting on my computer
<geist> you quickly get into diminishing returns as far as time spent. another strategy that a lot of folks have made is to build something compatible with existing software (ie, posix) and then you can get a large chunk of existing stuff working (onyx os, sortix, etc)
<geist> and that's a different set of fun
<johnjaye> also a lot of these hardware documents are just hard to find.
<geist> johnjaye: hmm, which documents are you referring to?
<johnjaye> i wouldn't know about soundblaster or cdrom stuff if not for osdev wiki and that one mit course that has all the hardware docs in one folder
<bslsk05> ​pdos.csail.mit.edu: Index of /2018/readings/hardware
<johnjaye> ^ those
<heat> oh look its the geist man
<johnjaye> the cdrom one is titled like "T13 Attached Standard"
<geist> well, it depends. keep in mind that's 80s/90s era hardware
<geist> which is sort of like eh?
<geist> heat: hola!
<johnjaye> yes. and that was hard enough. finding the documentation for modernish hardware is even tougher
<heat> >wrote a basic kernel in Go and it was slower than linux
<heat> that's not very hard
<johnjaye> it's a chicken and egg thing of, you can only find what you need if you already know what it is
<heat> basically everything is slower than linux
<geist> johnjaye: well yes and no. that's what things like the wiki is good for, and places like here and the discord
<Matt|home> eh, i bet i could write one in basic and it'd be better than android at least :D
<geist> because someone else has already done it before, so you dont have to start from scratch
<heat> you significantly underestimate android
<geist> in a certain sense modern hardware is easier than 90s era because there are more standards (ahci, xhci, nvme, etc) that you can just write one driver to
<Matt|home> nah, i just know for a fact that im better than the google devs is all~
<geist> on the downside a lot of times those devices are kinda complicated
<johnjaye> geist: i've been searching for msdos hardware info since yesterday and it took till today to find the mit link.
<geist> well... since yesterday
<geist> a lot of us have been at this for years
<geist> so... dont worry, it takes time
<heat> i've been doing this since 2015
<geist> and questions can be asked
<johnjaye> right but i'm saying the chicken-and-egg problem is still there. i just got lucky that osdev and mit had my back here
<geist> yah i started doing osdev in 1999
<heat> geist has been doing this since vietnam probably
<heat> exactly, nam
<johnjaye> chatpgt sometimes is useful for overcoming that i've found. making your searching a lot better
<johnjaye> like it can suggest a term that google won't suggest and it enhances the search
<heat> oh geist you know what's all the rage in linux/android arm64 land nowadays?
<geist> hmm? what
<heat> mTHP
<johnjaye> like imagine you'd never heard of an off by one error and didn't know what it was called. you would have a hard time just bringing it up on google
<heat> aka arm64 contiguous bit.
<geist> oh yeah?
<geist> there's a bug or some new feature?
<geist> i keep meaning to add support for that for the kernel
<heat> support for the thing entirely is the newish feature
<geist> yeah, basically a dynamic 64k page
<heat> oh and the arm side is apparently also adding dynamic PAGE_SIZE support
<geist> might get them the benefit of larger page sizes without having to commit
<geist> though it'd be nice if you could do something between 4k and 64k
<geist> contig 16k pages i think arel ike 256k
<geist> ah no jumps directly to 2MB: https://newos.org/txt/arm64_pages.txt
<geist> that's my cheat sheet i made years ag
<heat> can't you do subsets? i don't think you need to fill out the whole 16 entries?
<geist> nope. since hte bit is simply a bit that says 'treat this as part of a large page' the large page size is implicitly known
<geist> and you have to fill out every entry
<geist> because the cpu doing a TLB fill is coming in and fetching a single entry, and deriving the large page out of any of them
<geist> ie, it doesn't re-fetch the first entry or anything
<geist> (also means when you unmap you have to harvest the A/M bit out of *all* of them)
<geist> RISC-V actually does it more cleverly, though they only spec 64K page contig at the moment
<geist> in RV you set a bit and then it derives the size of the large page based on the alignment of the paddr
<geist> so it can do any power of 2, essentially
<heat> oh that's very nice
<geist> though there's some trick i think to having it not think say a 2MB aliged paddr you're using for a 64KB page isn't 2MB. i forget how that's done
<heat> are you still focusing on rv for work?
<geist> not really. the port is basically complete
<geist> i mean yes i spend like 1/4 of my time on it, but ther than that i have other stuff to do
<heat> one would think the rv port is never complete, with all the extensions coming out :v
<zid`> how dare you
vinleod has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
<geist> hmm, now that i re-read it i dunno exaclty how the Svnapot feature is supposed to work if you happen to have an aligned paddr address > the size youw ant
<heat> no one knows what it means
<heat> we should create a sub-committee to find this out
<heat> infinite job security!
<geist> ah yeah okay i get it. i misread it, it's not clear
<geist> you actually set the *32K* bit to signify that it's a 64K page
<geist> ie, the presence of the N bit and then a paddr with a bit one below the alignment you care about (with 0s to the right) is a signifier that it's a contig page
<geist> and thus any alignment above is irrelevant
<johnjaye> the history of unix. saw this in the pdos course
<johnjaye> i vaguely had an idea it was revolutionary as it says at the start. ibm's os took thousands of man hours to complete compared to a small fraction of that for unix
<heat> unix was pretty much a weird hobby os for academics
<johnjaye> yeah. i wish i understood why it took off when others didn't.
<johnjaye> academics came up with haskell too. so they do lots of weird stuff
<geist> a lot of it was also to just have all files but unformatted. having everything be record formatted or whatnot before that in other OSes was fairly universal
<geist> even openvms has it
<heat> simple and easy to use
<heat> and free
<heat> universities could ask for a copy for teaching purposes, and fuck around
<netbsduser`> NaPot is a nice idea (they copied it from PA-RISC of course)
<netbsduser`> large pages are much too large but NaPot pages are nicely sized
<geist> yah ARM has something too, but it's actually less flexible than this
<geist> ie, a contig bit but there is one intermediate sixe per level
<heat> geist, apparently armv8.2also has "Hardware Page Aggregation" that can do the pte coalescing automagically too
<heat> similarly to zen
<heat> because zen is the best arm core that was ever manufactured
<heat> they just slapped an x86 emulator on top :(
<netbsduser`> heat: amd64 fans don't want us to know this but it's true of course
<geist> i think it's been pretty much confirmed more than once that zen was a K12 derived core
<geist> interviews with the lead designer guy said it
hwpplayer1 has quit [Remote host closed the connection]
<johnjaye> geist: oh another fun fact. when i google for writing device drivers
xenos1984 has quit [Read error: Connection reset by peer]
<johnjaye> i get the ldd free book which is pretty old by now
bessieTheBoy has joined #osdev
<johnjaye> what im saying is you and osdev are basically the random person in nebraska:
<bslsk05> ​xkcd - Dependency
Vercas9 has quit [Quit: buh bye]
bencevans has quit [Read error: Connection reset by peer]
bencevans has joined #osdev
<kof673> > ibm's os took thousands of man hours to complete compared to a small fraction of that for unix
<kof673> there is a cray quote vaguely along those lines :D aix supposedly had lots poured into it too though
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<kof673> this is just the 'too many cooks' theory basically, a giant bureacracy is too much red tape, but need enough manpower...
xenos1984 has joined #osdev
<kof673> and don't quote me, but the unix poeple had done prior stuff, weren't complete noobs IIRC
<johnjaye> ah ok. so the one genius nietzschian superbros have to do it. in this case thompson and ritchie
<johnjaye> interesting theory
<kof673> *people
<the_oz> it's not the people, though they picked a good group of people
<the_oz> it's the hacker tank
<the_oz> get that right and you'll be immensely rewarded
<kof673> well i mean...we can add bikeshed theory to this mix lol
<heat> the unix people were like... math phds and shit
<the_oz> telephony \o/
alec3660 has quit [Ping timeout: 252 seconds]
alec3660 has joined #osdev
<netbsduser`> kof673: yes, i'm waiting to get my copy of the aix internals
<heat> wow i'm pretty sure you just said a brand new sentence, congrats!
<netbsduser`> thank you, i can't wait to get my copy
<netbsduser`> i will fly the flag for aix
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 252 seconds]
<heat> omg two new sentences in a row! you're on a roll today
Vercas9 has joined #osdev
bencevans has quit [Read error: Connection reset by peer]
bencevans has joined #osdev
<geist> savage
bencevans has quit [Quit: ZNC 1.9.1 - https://znc.in]
bencevans has joined #osdev
kfv has joined #osdev
<heat> im sure the aix fans are plotting their vengeance right now
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 272 seconds]
<bslsk05> ​'Like Big Boss - Hey Ash Whatcha Playin'?' by HAWPOfficial (00:01:19)
goliath has quit [Quit: SIGSEGV]
netbsduser` has quit [Ping timeout: 255 seconds]
bessieTheBoy has quit [Ping timeout: 256 seconds]
Left_Turn has joined #osdev
vinleod is now known as vampiredamewood
Turn_Left has quit [Ping timeout: 265 seconds]
goliath has joined #osdev
<Matt|home> i think this is the first time i've had fun coding since i first started learning :/ jesus christ
<heat> that's concerning
<nikolar> Indeed it is
<Ermine> ntoskrnl.exe
Left_Turn has quit [Ping timeout: 260 seconds]
cow321 has quit [Remote host closed the connection]
cow321 has joined #osdev
cow321 has quit [Remote host closed the connection]
gog has joined #osdev
stefanct has quit [Excess Flood]
stefanct has joined #osdev
y0m0n has joined #osdev
Burgundy has quit [Ping timeout: 252 seconds]
cow321 has joined #osdev