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
<heat> mjg, i think i'm actually going to follow that rust mini course thing
<heat> thanks
poyking16 has quit [Quit: WeeChat 3.6]
gog has quit [Quit: byee]
gog has joined #osdev
chartreuse has joined #osdev
<kaichiuchi> hi
mats2 has joined #osdev
<mats2> my body is ready
radens_ has quit [Quit: Connection closed for inactivity]
[itchyjunk] has joined #osdev
fel has quit [Remote host closed the connection]
fel has joined #osdev
fel has quit [Remote host closed the connection]
fel has joined #osdev
linearcannon has quit [Ping timeout: 260 seconds]
Burgundy has quit [Ping timeout: 255 seconds]
vdamewood has joined #osdev
<geist> hi fellow osdevers
<geist> how are you os devving this fine evening?
<geist> kazinsal: you frozen in yet? the freezing rain starts tonight, so tomorrow is going to be a shit show
<kazinsal> we're getting proper snow for another 14 hours
<moon-child> when I cook, I have to use more heat than normal :P
<moon-child> sooo cold
heat is now known as __heat
<geist> yeah it's going to snow shower the next few hours but then turn into freezing rain overnight and then warm up tomorrow
<geist> so tomorrow is going to be terrible
<jimbzy> It's -7F here and the high tomorrow will be 5.
<jimbzy> Wind chill is like -30F :(
<geist> oh dang are you in the midwest or soemthing?
<geist> they're getting a bomb cyclone i think
<jimbzy> Yeah
gog has quit [Ping timeout: 260 seconds]
<jimbzy> Went in a 7am this morning and by 10:30 the boss shut us down and I got home about 11:30.
<__heat> sounds like a win to me
<jimbzy> Yeah. Did online training till 3, so I got my hours.
<jimbzy> Tomorrow will suck, though. The high is going to be 5.
<jimbzy> Ah well. Someone has to keep the vending machines and soda fountains working :]
<geist> yeah as i've been complaining about my house can't keep warm in this weather, which is merely like -5C or so
<geist> so i'm mostly huddling around the computers
<geist> or, currently, at a nearby brewery taproom until they close
<jimbzy> Dang.
<jimbzy> Furnace broke?
<geist> nah just the heat pump not designed to really work below freezing
<geist> the compressor locks out and then the aux heat can't keep up
<jimbzy> Oh that's right. I remember you talking about it before.
<geist> i should consider upgrading it next year, it's old anyway, so i think there are much more efficient and powerful ones nowadays
<jimbzy> Yeah, my aux has been kicking on a lot today.
<geist> yeah, i keep whining about it, but frankly it's the most interesting thing to happen to me in some time :)
<geist> i have an electric blanket for sleeping so i'm all right at night
<geist> but it's so darn hard to get out of bed in the morning when it's so cold
<jimbzy> I have a yorkie for that.
<geist> hah
<jimbzy> I wear him like underwear.
<geist> i have a long haired ragdoll cat but her hair is such an insulator
<geist> doesn't work well for transmitting heat
<jimbzy> Shave her!
<__heat> see, this is why you should keep amd bulldozers around
<geist> also unsurprisingly she's not bothered by the cold at all. not really drawn to warmth that much, presumably because she's already warm enough
<__heat> free heat for mediocre computing
<geist> yah i have a few. actually was running prime95 the other day for a bit to warm up the room
<__heat> LMAO
<geist> i have plenty of resistive heaters in various forms
<geist> really just a matter of distributing them around so i dont pop a breaker
<jimbzy> Yeah, and you should never leave a heater plugged in when you're out of the room.
<geist> anyway no biggie, iut's about to warm up a lot in the next few days to well above freezing. then it'll just be drizzly rain for the next week or two. a true PNW winter experience
<jimbzy> I need to upgrade a couple of doors. The exterior door in my bedroom is an old wood/glass job that's drafty as hell.
<jimbzy> Got some plans now that I'm making a bit more money.
<__heat> https://i.imgur.com/y0prSxi.png yeah it's getting cold here too
<__heat> :P
<geist> yeah i'm a bit dreading to see how bad the logs are leaking. the house was sealed up not terribly long ago, but i suspect a bunch of the doors and windows at least are drafty
<geist> but it's the log cabin problem. once the logs cool off it's a losing battle at that point
<jimbzy> Yep.
<jimbzy> Got a fireplace or stove?
<geist> yah, propane fireplace. about 30k BTU (which is i think about 8500kW)
<geist> it greatly assists the aux heat which is i think like 6kW
<__heat> propane and propane accessories
<jimbzy> I have a fireplace, but I slacked and never had the chimney inspected. I'd really like to install a small cast iron stove in the space because open fires freak me out.
<geist> thouhg of course BTU is i think like joules, it's a measurement of energy over time or something
<geist> but i think 30k BTU is like 8500kW over an hour
<geist> er 8.5
<geist> my power bill is gonna suuuuuuck after this
<jimbzy> Same.
<jimbzy> Like I said, I have some plans for this place over the next several months.
<geist> noice
<geist> i mean a wintery sex dungeon are all the rage i hear
<jimbzy> Hah. My basement does look like a 70's porn set. Shag carpet and a large stone fireplace :p
<geist> haha
<geist> man remimds me of this place i was thinking of renting when i first moved to seattle. it was hella 70s shag porn set
<geist> it wass currently being occupied by some sort of commune of filthy people, so it was hard to see past that
<geist> oh hell yeah
<jimbzy> Got a wet bar down there, too. :p
<geist> as was customary in the 70s, apparently
<geist> mandated by code to be within 20 feet of a wet bar
<jimbzy> Hehe
terrorjack has quit [Ping timeout: 246 seconds]
<jimbzy> You can kind of see it on the right.
<__heat> there's a stripper pole too?
<__heat> man you have everything
<jimbzy> Oh yeah
<geist> yeah that's pretty diggidy dank
<geist> what are you planning on doing with that?
<jimbzy> Who.
<jimbzy> XD
<geist> eeeyooo
<kazinsal> I can smell the cigarette tar through my monitor
<kazinsal> that place looks gree-hee-hee-heeasy
<kazinsal> and I love it
<jimbzy> I know, right? That's one of the reasons why I bought this place.
<__heat> just so you northern people stop complaining about snow, we got urban rivers last week: https://www.jfsantoantonio.pt/images/noticias/cheias.jpg
<geist> yeah just potential everywhere
<geist> __heat: oh dang!
<kazinsal> free boat canal!
<jimbzy> That's my thinking room. I got my Big Joe XL beanbag down there, so when I get off work I can pop my boots off and flake out before I come upstairs.
<geist> yeah in TX that'd be where you break out the airboat
<geist> wish i could star the cigarette tar quote
<geist> alas, irc.
<__heat> you know, I remember talking with my american pal and he said he wanted to move out of Lisbon to a place less affected by climate change
<__heat> I see what he meant now
<geist> ah right at sea level?
<jimbzy> All I need is a card table and/or a pool table and I'd have my own private club ;)
<__heat> yup more or less
<__heat> lots of steep inclines too
<geist> i know basically nothing of portugal except it's not spain and spain and portgual dont like each other
<__heat> that is accurate
<geist> 100% summary, history rules!
<__heat> but we like and dont like spain
<__heat> older brother "you suck and we love you" kind of thing
<geist> ah so it's one of *those* relationships
terrorjack has joined #osdev
<geist> liek when the alcohol starts flowing theres lots of hugs and stuff?
<jimbzy> Wtf is it with that?
<__heat> alcohol makes for strong emotions of any kind
<jimbzy> Hugging, shoulder squeezing and back slapping.
<geist> well they can't exactly *kiss*
<geist> there are rules!
<__heat> you can if you say nohomo before
<geist> hahaha
<geist> it's an escape sequence of homo actions
<jimbzy> My brother's husband has a shirt that says, "Yes Homo"
<__heat> you know what would be good against these floods? a good ol american truck
<__heat> nothing a good ol truck can't solve
<geist> or a hilux though a proper dually would probably be heavy enough to not float away
<jimbzy> First time I saw it he had it under a button up shirt and he pulled his shirt open ala Superman and I almost freaking died.
<__heat> this is legitimately the spookiest shit I've ever seen
<__heat> mother nature is cray-cray yo
<__heat> old city with a bunch of tight-ass streets + sea level + huge rain + steep ass inclines kinda results in this, it seems
<geist> jimbzy: haha awsome
<geist> __heat: yeah old ass citys seem to have that problem a lot, though you'd think it'd pretty flow out to the ocean
<geist> sealevel rise notwithstanding
<jimbzy> Well darn. I guess I'm gonna hit the hay. I'll catch you all later.
* geist waves
<__heat> GMT gang
<geist> i assume portugal is a differen time zone from spain just because
SGautam has joined #osdev
<geist> i remember being surprised that a lot of stuff wset of london is GMT+1
<__heat> it's because our faithful UK allies are our friends and always will be
<__heat> oldest alliance in the world!
<geist> against the damn dutch and their company
<__heat> screw the dutch east india company, all praise the british east india company
<geist> sos completely unrelated i was thinking of writing an emulator for atari 400/800 and family
<geist> and was reading the tech manuals, that was a pretty sophsticated system
<geist> for the time. the OS firmware it had was kinda modern considering
<geist> and the whole display list thing was pretty early GPU looking stuff
<__heat> no protocols no me likey
__heat is now known as heat
<heat> what's firmware without GUIDs!
<geist> it was pre-amiga level tech of coruse, but i think fairly powerful to c64 and seems a bit more flexible honestly
<geist> well it does have firmware that has an abstract notion of opening and operating on devices that are abstracted, for example
<geist> keyboards, printers, disks, files, etc are all generic in their OS
<geist> and the firmware uses nmis ad whatnot to perform a bunch of background tasks
<heat> ah so that's where x86 took the bad design
<heat> got it
<geist> and timers too, in the form of counts of frames, since it gets an nmi every frame
<geist> which it neesd to drive the whole display list mechanism to show stuff on the screen
<heat> so the display drove timing?
<geist> yah 100%
<geist> but it didn't have a trandtionally framebuffer as far as i can tell, just a set of displaylists it ran for each frame, but you can synthesize a framebuffer out of that if you want
<heat> did they never account for resolution changing?
<geist> or.... a text mode
<geist> oh they absolutely did
<geist> and there was a fairly complex (for 8 bit micro) mechanism to request a res change and then it'd reallocate the display list array and whatnot
<geist> i think text mode is simply a set of displaylists that blats 8x8 characters on the screen
<geist> but does it in hardware so it doesn't involve the cpu
<geist> i mean not that amazing, but this is like 1980 tech so kinda neat
<heat> yeah its pretty cool
<geist> i now see why there arne't a lot of emulators for it. it seems to be generally skipped in the 'trivial ass emulator that folks make' list
<geist> i think mame or mess gets it of course, but it's not like apple 2 or c64 where everyone writes one as a fun exercise (like me)
<geist> i was thinking of writing one as a fun exercise in using RUUUUUUUSSSSSSTTT
<geist> actualyl would be intersting to see if there are some crates out there that already generically implement various 8 bit cpus in emulation
<heat> ofc
<geist> i dunno! depends
<bslsk05> ​crates.io <no title>
<heat> "Motorola 68000 assembler, disassembler and interpreter" as a cargo module you can import
<geist> yeah a few 6502s
<heat> I've been looking at glibc 1.09
<heat> dated 1995
<heat> the code is surprisingly high quality
<heat> and they still supported like 9 systems
<geist> https://crates.io/crates/emulator_6502 seems to be pretty good
<bslsk05> ​crates.io <no title>
<geist> yah i remember BeOS used glibc about 1999
<geist> whcih was maybe one fo the first major ports that wans't just straight unix?
<geist> dunno if that code was folded back into mainline
<geist> haiku of course uses it now
<geist> or did in the mid 2000s really
<geist> and have continued to do so
<heat> it is kinda tempting to port glibc and (maybe) start using it
<heat> my biggest gripe is that glibc is kind of spotty when it comes to static linking
<klange> It's really just dns stuff.
<klange> I shit you not, somehow the "it's not dns, it can't be dns, it's dns" joke applies here
<heat> lol
<heat> yeah dont they have a crazy plugin system thing for the resolver? something like that
<klange> something like that,y eah
<moon-child> why use glibc
<moon-child> it has _zero_ sex appeal
<heat> not everything needs to be jimbzy's basement
<heat> but in all seriousness, it is more complete (maybe too much) and the code is readable
<klange> what's your os called again, heat?
<heat> Onyx
<klange> I think you mean GNU/Onyx.
* klange runs
<bslsk05> ​heatd/Onyx - UNIX-like operating system written in C and C++ (4 forks/52 stargazers/MIT)
<heat> I have thought about that, klange
<klange> If I were to do another spin of toaru with a third-party libc it would almost definitely be musl.
<heat> having a copypasta in my magnum opus's README is absolutely something I do with pride btw
<moon-child> wait your thing is mit
<heat> musl is fine and all but god the code is horrific
<moon-child> and glibc is gpl
<heat> glibc is lgpl
<heat> lgpl doesn't infect
<heat> would it ruin the vibe? a bit
<heat> the funniest option would definitely be llvm libc
<heat> but god that would set me back AGES
<heat> I do think that maybe a good option would be to have a switchable libc and support multiple
<klange> I had a take on the GNU/Linux copypasta for Toaru, basically "What you are referring to is ToaruOS, is in fact, ToaruOS."
<moon-child> llvm libc meh. They did adopt rlibm which is cool though
<klange> "ToaruOS _is_ an operating system unto itself."
<heat> maybe even my own but after speaking with sortie I don't think I'm up to the task
<heat> klange: :DD
<heat> boss move
<klange> sortie spends too much effort making his very compliant
<klange> just be like me and half-ass the whole thing
<heat> moon-child, llvm libc does have a lot of questionable code
<heat> do I want to fight battles with $CORP to get things my way? ugh
<bslsk05> ​libc.llvm.org: Bringup on a New OS or Architecture — The LLVM C Library
<moon-child> say, what was the llvm libc bug you found the other day? We never got to hear about it. (Or maybe we did, but only after I left)
<bslsk05> ​github.com: llvm-project/start.cpp at main · llvm/llvm-project · GitHub
<heat> syscall_impl is a bare wrapper around the syscall instruction itself and linux returns negative errnos on errors, not -1
<moon-child> oh right I remember
<heat> funnily enough the negative error code thing really rubbed off on me so my POSIX function error checks are just < 0 instead of == -1
heat has quit [Remote host closed the connection]
heat has joined #osdev
<heat> hehe linux 6.1 time
<heat> memory management of the future moment praise maple
* kof123 hands heat red hat 6.1 cd
<heat> no cd drive sorry
<kof123> i want to say that joke doesnt work, but i think there is old 6.1 and new enterprise 6.1
<klange> I do the -errno thing and also stole Linux's trick of -ERESTARTSYS when I did my signal rework a few months ago.
<kof123> *doesnt work because the new one maybe is no longer on cd
<klange> Basically all of my syscall libc wrapper functions use a macro that does the errno setting
<heat> AIUI ERESTARTSYS is a lot older than linux
<heat> i actually still don't have restartable syscalls because they don't seem quite trivial
<klange> I restart reads from pipes(&similar) if they didn't get anything before the signal, and that's about it. With some effort, I think I could manage restarting sleeps with new times...
<heat> oh yes I remember why I didn't Just Implement It
<heat> I don't have an orig_ax kind of thing
<heat> so between the syscall returning and the signal code I don't have an obvious way to stash the syscall number
fel has quit [Remote host closed the connection]
fel has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
fel has quit [Remote host closed the connection]
fel has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
Gooberpatrol66 has joined #osdev
heat has quit [Ping timeout: 252 seconds]
<vai> morning
SGautam has quit [Quit: Connection closed for inactivity]
bauen1 has quit [Ping timeout: 268 seconds]
* geist waves
bauen1 has joined #osdev
JerryXiao has quit [Quit: Bye]
JerryXiao has joined #osdev
bauen1 has quit [Ping timeout: 272 seconds]
GeDaMo has joined #osdev
bgs has joined #osdev
alpha2023 has quit [Ping timeout: 268 seconds]
terminalpusher has joined #osdev
kof123 has quit [Quit: Leaving.]
terminalpusher has quit [Remote host closed the connection]
Burgundy has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
terminalpusher has joined #osdev
genpaku has quit [Read error: Connection reset by peer]
genpaku has joined #osdev
foudfou_ has joined #osdev
foudfou has quit [Ping timeout: 255 seconds]
netbsduser has quit [Quit: Leaving]
terminalpusher has quit [Remote host closed the connection]
vdamewood has quit [Ping timeout: 256 seconds]
terminalpusher has joined #osdev
vdamewood has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 264 seconds]
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
heat has joined #osdev
terminalpusher has quit [Remote host closed the connection]
Reinhilde is now known as MelMalik
[itchyjunk] has joined #osdev
<ddevault> crap
<ddevault> my bootloader dies when jumping to the kernel on real hardware
<ddevault> maybe I should set up VBAR in the bootloader so I can dump the system state
<clever> that reminds me of a nasty problem i had with linux
<clever> it sets VBAR, but doesnt initialize it early on
<clever> on a cortex-a7, you need to enable SMP support in a control register
<clever> if you dont, the L1's are non-coherent, and the mutex opcodes trigger the undefined opcode exception
<clever> when linux is built with SMP support, it uses mutex opcodes in printk
<clever> then the undefined vector table, causes it to jump to an unspecified addr
<clever> and you spend days trying to debug it!
<clever> everything in the pre-mmu stage works fine, but the instant linux turns on the mmu, it uses the "real" printk, which has to support SMP
<clever> the pre-mmu stuff is single-core, and doesnt care about SMP
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
gog has joined #osdev
terminalpusher has joined #osdev
CryptoDavid has joined #osdev
immibis_ has quit [Remote host closed the connection]
immibis_ has joined #osdev
<ddevault> I should add support for loading the kernel over serial to my bootloader...
<zid> Make sure it SHA512's it
<ddevault> how am I going to get ESR out of this bloody thing
<ddevault> fuckings to edk2 for not printing it themselves
<ddevault> where's my jtag anyway
<ddevault> I do have an educated guess regarding the problem
<ddevault> ID_AA64MMFR0_EL1 is 0x1124, which suggests it supports only up to a 44-bit physical address space, whereas my code expects 48 bits
<ddevault> but knowing ESR would go a long way towards actually verifying this assumption
<zid> do you need different code for 44 vs 48 phys?
<clever> ddevault: what about implementing a gdb stub in EL2?
<ddevault> what about not doing that
<ddevault> seems easier to finally learn about JTAG
<ddevault> zid: I don't know, do I?
<clever> jtag is how i solved the SMP but i explained above
<ddevault> gah, the random controller I have lying around is not supported by OpenOCD
<clever> i just used the sysfs gpio driver in openocd
<clever> it bit-bangs the gpio pins on one pi, to debug any other device (another pi in my case)
<ddevault> j`ey: you have a working edk2 build environment, right? can I get you to do a lightly customized build for me?
<ddevault> yeah but that requires having two pis
<ddevault> high price in these trying times
<clever> i happen to have one of each model, from before covid hit
<ddevault> hm, I wonder if I would have more luck if my fault handler disabled the MMU before trying to use the serial port
<clever> just beware that the handler needs to be in an identity mapped area
<clever> even just an EL2 fault handler could work, then it has different mmu config, and can protect itself
<clever> but ive not actually implemented any EL2 stuff
<ddevault> well, I got it to print an invalid character, so that's a start
<ddevault> something something clocks
bauen1 has joined #osdev
<j`ey> ddevault: no because its on my work computer and Im on vacation!
<heat> ddevault, what do you need
joe9 has joined #osdev
k0valski18891 has quit [Ping timeout: 246 seconds]
k0valski18891 has joined #osdev
<ddevault> j`ey: fair enough!
<ddevault> heat: I just want it to print ESR on a synchronous exception
<ddevault> need an rpi4 build
<ddevault> can definitely get garbage out of it
<heat> ddevault, are you getting no output atm?
<ddevault> trying to get the serial port working after EFI is gone
<ddevault> I currently get garbage
<ddevault> working with an mbox to set up the frequency properly now
<ddevault> once I do that I *might* be able to get my fault handler to print out ESR
<heat> the ARM exception handler dumps everything
<heat> even the ESR
<heat> in a nice textual form and all
<ddevault> with edk2? on mine it just dumps FAR
<ddevault> maybe I need a debug build
<heat> yes, edk2
<ddevault> if I were smart I would have gone debug build first
<ddevault> lemme try that
<heat> I don't think you need debug here
<ddevault> dunno what to tell you
<ddevault> on my system it just prints FAR and fucks off
<heat> see ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c
<heat> in edk2.git
<heat> you /should/ get something similar to what the DEBUG (()) things output
<heat> (and no, those do not need DEBUG builds)
<heat> unless someone NDEBUGed your build, but if that were the case you wouldn't see the FAR at all
<ddevault> I have never seen something as useful as this file suggests
<ddevault> debug build gives me much more
<ddevault> many thanks :)
<ddevault> stupid mistake
<heat> oh nice
<heat> that's weird
<heat> the OVMF builds I have are release and output EVERYTHING
<heat> they must've fucked up the output for non-debug
<ddevault> seems it's just a L0 translation fault
<ddevault> gonna trust my gut and redo this with a different physical address space size
<ddevault> hrmph, I have the confuse
bauen1 has quit [Ping timeout: 260 seconds]
<ddevault> am I incorrect in assuming that, so long as I'm only using physical addresses smaller than the appropriate value, I can safely change T0SZ/T1SZ from 48 to 36 without having to change anything else?
<ddevault> e.g. long descriptor formats
<heat> what does T0SZ and T1SZ have to do with physical address space sizes?
<ddevault> a few things, according to the manual
<ddevault> but I don't fully understand it
dude12312414 has joined #osdev
<heat> please, rubber duck me
<ddevault> too early
<ddevault> still gathering information
<ddevault> high level summary is that my EFI bootloader works but once it exits EFI services, reconfigures the MMU, and jumps into the kernel, it gets an L0 translation fault at the kernel entry point
<ddevault> that's on an rpi4 -- same code works fine on qemu virt
<bslsk05> ​paste.sr.ht: crash.txt — paste.sr.ht
joe9 has quit [Quit: leaving]
<heat> how many address bits does the rpi support?
<ddevault> ID_AA64MMFR0_EL1: 0x1124
<ddevault> lemme decode that real quick
<bslsk05> ​paste.sr.ht: crash.txt — paste.sr.ht
<ddevault> heat: 44 bits
<heat> 44?
<heat> so your page table format changes?
<ddevault> PARange == 0b0100, i.e. 44 bits
<ddevault> does my page table format change?
<heat> because 48 will naturally have a different format than 44
<heat> wait, no, I mean virtual address bits
<ddevault> ooh
<ddevault> need moar 0xF in there, right?
<heat> no
<ddevault> for the higher half, that is
<ddevault> which would explain why lower half still works
<heat> PARange is physical address bits right?
<ddevault> yeah
<heat> I don't see how that would affect things
<heat> have you double checked if the L0 page tables are correct?
<ddevault> well, they work on qemu
<ddevault> and look good to me
<ddevault> if they're wrong I'm not sure what's wrong with them
<ddevault> they're dumped in the logs above
<ddevault> following up on a hunch: checking for FEAT_TTST
alpha2023 has joined #osdev
<ddevault> meh, that's not it
<ddevault> it's not present but it's also missing on qemu
<ddevault> out of leads, time for a break
heat has quit [Remote host closed the connection]
heat has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
\Test_User has quit [Ping timeout: 256 seconds]
xenos1984 has quit [Ping timeout: 256 seconds]
xenos1984 has joined #osdev
\Test_User has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
Ram-Z_ has quit [Ping timeout: 255 seconds]
Ram-Z has joined #osdev
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
<sortie> <klange> I had a take on the GNU/Linux copypasta for Toaru, basically "What you are referring to is ToaruOS, is in fact, ToaruOS."
<sortie> Love it! Yes! :D
<sortie> If the GNU people ever show up and want something, I'm
<sortie> going to remove all my GNU ports and go BSD. That's a threat :D
<sortie> <klange> sortie spends too much effort making his very compliant
<Ermine> sortie: if you wouldn't do this, your Sortix may end up being in fact, GNU/Sortix .
<sortie> A bit -- but also surprisingly not. It's generally all motivated by what the ports actually need. Although it usually does pay off to whole ass it when building things initially, to avoid it blowing up accidentally.
<sortie> Ermine: WHAT DID YOU JUST DO
* sortie PREPARES RM(1)
bauen1 has joined #osdev
<heat> sortie, remember when I ported bash to sortix
<heat> good old days
<heat> should still be in ahti if you didn't wipe it
<sortie> I assure you all the Sortix surfaces are disinfected every day
<ThinkT510> next insane step for sortix is to replace gcc with your own compiler
<sortie> For my next trick I'll merge staging
<zid> It'd be great to self host on your own compiler and benchmark
<ddevault> well, it's not the TLB
<ddevault> the fuck is it
<Ermine> ThinkT510: llvm will do for the beginning. At least it's not GNU :D
<ThinkT510> a port of hare to sortix would be pretty cool. I'd guess you'd need to port qbe first
<Ermine> ^
<ddevault> porting qbe is piss easy if you have binutils
<ddevault> porting harec is pretty easy
<ddevault> porting hare stdlib is a bit of work
<heat> next insane step for sortix is when I integrate it with the GNU operating system
<ddevault> god I have no fucking clue why my higher half is broken on real hw
<heat> as sortix is not an operating system onto itself but rather another free component of a fully functioning GNU system
<heat> ddevault, haaaaaaaave you tried KVM?
<ddevault> no
<sortie> heat, keep pushing your luck punk
Imk0tter has joined #osdev
<Imk0tter> is it possible to boot windows with only 1 or 2 of the CPU's cores?
[itchyjunk] has quit [Read error: Connection reset by peer]
<kazinsal> yes, but why
<Imk0tter> i want to make an itermediary OS that allows you to specifiy the number of cores/memory/etc for each OS instance
<kazinsal> so, a hypervisor
<Imk0tter> not sure what it's called technically but possibly the case
<heat> yes a hypervisor
elastic_dog has quit [Ping timeout: 252 seconds]
<Imk0tter> can anyone lead me down the path of developing a hypervisor?
elastic_dog has joined #osdev
<ddevault> god placed this SoC into my hands so I would suffer for my sins
vdamewood has quit [Read error: Connection reset by peer]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
vdamewood has joined #osdev
<bslsk05> ​paste.sr.ht: 415ea46 — paste.sr.ht
<ddevault> I'm out of ideas.
xvmt has quit [Remote host closed the connection]
scripted has joined #osdev
<scripted> How can I make sure the memory entry is not used by the kernel? https://wiki.osdev.org/Detecting_Memory_(x86)#Memory_Map_Via_GRUB
<bslsk05> ​wiki.osdev.org: Detecting Memory (x86) - OSDev Wiki
<scripted> I can't just make an array of all kernel C functions
<ddevault> copy it (or at least the relevant info) into your kernel's address space?
<ddevault> or work around it
<ddevault> but probably copy it
<scripted> how can I do that
<ddevault> stick a buffer somewhere in your kernel image, copy it into that buffer
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: arch/mem/+x86_64/mmap.ha - sourcehut git
<scripted> all right
<scripted> i had the dumb idea of creating a memory region and use that for pages
<scripted> but then i'd go back to the idea of static addresses
<scripted> which i dont want to
<scripted> i dont understand how this prevents the kernel from using already used memory sections
xvmt has joined #osdev
<heat> can you better explain your question?
<zid> nope
elastic_dog has quit [Ping timeout: 264 seconds]
<zid> heat: What's elm in portigeese?
<Ermine> portigeese
<heat> elm?
<zid> potty geese
<zid> Elms are deciduous and semi-deciduous trees comprising the flowering plant genus Ulmus in the plant family Ulmaceae. They are distributed over most of the Northern Hemisphere, inhabiting the temperate and tropical-montane regions of North America and Eurasia, presently ranging southward in the Middle East to Lebanon and Israel,
<zid> I only know bordo, might as well add more trees
<ddevault> maybe if I poke the SoC with a stick it'll start to behave
<scripted> heat : I dont understand how I can prevent the kernel from overwriting its own functions while trying to get all memory sections from the multiboot mmap. The code doesn't seem to explain it and my non-existent knowledge of Rust makes this harder
<heat> rust?
<ddevault> you might be putting the cart before the horse here
<ddevault> try to understand how grub is loading your kernel and how your globals and the stack and such are all allocated in memory
<ddevault> and also maybe try to understand the language you're using before applying it to one of the most difficult problems in systems programming
<scripted> wdym understand the language you are using
<scripted> I do understand C
<ddevault> >my non-existent knowledge of Rust makes this harder
<ddevault> where's rust involved
<scripted> isn't your code rust?
<ddevault> mine? oh
<ddevault> no, it is not
<ddevault> I thought you were using rust
<Ermine> scripted: do you use Rust or C
<scripted> I use C
elastic_dog has joined #osdev
<ddevault> the code I linked is straightforward
<ddevault> I have a global array of multiboot mb_mmap_entry structs
<ddevault> I copy the array provided by multiboot into my global
<ddevault> then I can safely overwrite the original memory from multiboot and reference my local copy thenceforth
<zid> yea I make a temp copy of the e820 and that's my one param to main()
<zid> my bootloader is 32bit so it can't map more than 4GB physical, and I need to reclaim the bootloader and stuff, so there's still more init work to do
<scripted> I might need to specifiy my kernel stack first
<ddevault> you'll need a stack to do just about anything.
<ddevault> anything in C, at least
<zid> bios code is fun, memory isn't enabled
<zid> so they use registers to store return addresse and other fun things
<scripted> yes but so i have a clue where all the C functions are located so i dont overwrite them
<scripted> now its just randomly
<heat> zid, not true
<zid> true on my machine, not true on modern amd
<heat> cache as ram has been around for what, 20 yers?
<zid> you have to enable that first, heat
<ddevault> multiboot loads your kernel at the physical memory address you specified in the multiboot header
<ddevault> you can determine the length of your kernel by defining a start or end symbol in your linker script
<zid> which is *after* a bunch of cpu detection, in my bios, warm reboot detection, etc
<Ermine> zid: coreboot sets up cache-as-ram
<heat> zid, you enable CAR in the first 30 instructions
<ddevault> this will tell you where you're at
<zid> my bios definitely does not
<heat> how do you know?
<scripted> all right
<zid> I've looked at it?
<heat> that's defo weird
<Ermine> zid: is this some leaked fw code?
<heat> no
<zid> maybe my gen has a cpu where car is broken and you need to cpuid quirk for it
<Ermine> O_O
<heat> you can't really train RAM without CAR
<zid> not broken broken
<Ermine> D:
<zid> but like, "needs a code path to fix a thing"
<heat> possibly
<zid> it corrupts the IVT after interrupts or some other errata, idk
<ddevault> the trains in the netherlands run without cars sometimes
<zid> CAR working at all is kinda magic
<ddevault> just the engine going from A to B, kind of deal
<zid> well how do you think they move them?
<zid> put them onto a truck and drive it? :P
<ddevault> a train engine pulls on train cars
<ddevault> different car
tiggster has joined #osdev
<zid> I'd expect to see solo engines moving around constantly if there's a general 'flow' direction of cars, like to a breaker's yard or something
<Ermine> And where's the ram?
<zid> In the dimm slots
<ddevault> the trains mostly ram on time in my experience
<ddevault> god dammit
<ddevault> why the hell doesn't my upper half work
<ddevault> reading the linux aarch64 boot code and it does much the same as I am
scripted has quit [Quit: WeeChat 3.7.1]
* Ermine offers a cup of tea to ddevault
<ddevault> thanks.
<zid> ddevault: That'll be £2.50
* ddevault spits the tea at zid
<zid> Inflation.
<ddevault> oh for fuck's sake
<ddevault> I'm in EL2
<zid> That sounds bad
<ddevault> entire fucking day to find that out
<ddevault> excuse me while I go find some hard liquor
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<heat> LMAO
<heat> that's why you should've tried KVM
<Griwes> lol
<heat> zid, btw on itanium registers were so many that they used the registers as a heap
<heat> no need for CAR lol
<zid> Everything's a heap if you're brave enough
<ddevault> guess tomorrow I'll figure out how to get to EL1
<ddevault> completely out of steam
<j`ey> ddevault: eret, spsr, elr
<j`ey> (some hints)
* ddevault writes that down to look up later
<ddevault> had a feeling eret would be involved at least
<Ermine> heat: how many registers is there on itanium?
<dzwdz> how did pointers work
<dzwdz> was there a way to select the register that an instruction would affect based on the contents of another register or something?
<dzwdz> surely not, right
<\Test_User> rwe memory (or really just we needed)
Imk0tter has quit [Ping timeout: 246 seconds]
<\Test_User> (not saying that's how pointers worked, just saying you can do that)
<heat> Ermine, 128
<heat> so 1024 overall
<heat> dzwdz, probably compiler magic
<heat> the idea of storing stuff inside registers isn't really new (see romcc)
Imk0tter has joined #osdev
<kaichiuchi> hi
Left_Turn has joined #osdev
<heat> kaichiuchi, dong
<kaichiuchi> dong
Turn_Left has quit [Ping timeout: 246 seconds]
kof123 has joined #osdev
MiningMarsh has quit [Read error: Connection reset by peer]
Imk0tter has quit [Remote host closed the connection]
foudfou_ has quit [Remote host closed the connection]
foudfou has joined #osdev
<zid> heat: https://i.redd.it/furn4z2kxp7a1.png what did you do the americans
<heat> portugal can into eastern europe
<mjg> 2portugal4u
<mjg> lol @ this poll
<mjg> assumes they can name the countries
<mjg> apart from russia
<mjg> like cmon dawg
<heat> muh favourite country is moldona
MiningMarsh has joined #osdev
<zid> I prefer macedoniland
<heat> and then poland because that's where the north pole is
<mjg> my favourite country is czechoslovakia
<mjg> also australia in the middle of europe
<heat> my favourite country is YUGOSLAVIA
<zid> yugoslavania is a fucking great country, they let us bomb them
<zid> fighter jets are fun
<jimbzy> My favorite country is flavor country.
<mjg> your favourite country is musi
<mjg> c
<mjg> you reminded me of the most redneck song i ever heard
<mjg> lyrics were so bad
<heat> half the billboard top 100 is country for some reason
<mjg> dude why doy ou even know something like this
<mjg> but then again, you followed the world cup
<mjg> you are kind of mainstream, aren't ya
<heat> know what?
<heat> erm yes
<mjg> you need to return your nerd id
<jimbzy> We can't all live on the fringe, mjg.
<mjg> > It wasn’t always so clear, but the Rust programming language is fundamentally about empowerment: no matter what kind of code you are writing now, Rust empowers you to reach farther, to program with confidence in a wider variety of domains than you did before.
<mjg> good grief man
<heat> nuts
xenos1984 has quit [Read error: Connection reset by peer]
bgs has quit [Remote host closed the connection]
<heat> RustBSD moment
<mjg> $ curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
<mjg> i don't know if i trust this fucking book man
<heat> it's not a book it's a web page
<heat> you can implicitly trust it because of that
<mjg> fair
<mjg> K&R means Kernighan and Rust
<sbalmos> nothing wrong or untrustworthy about running a rando shell script you download off the wild 'Net and directly run
<klange> don't forget to do it as root, you don't want to be interrupted by it prompting you for your password halfway through or something silly!
<sbalmos> wtf access denied!
<mjg> :D
<mjg> inside:
<mjg> _err=$(curl $_retry --proto '=https' --tlsv1.2 --ciphers "$_ciphersuites" --silent --show-error --fail --location "$1" --output "$2" 2>&1)
<mjg> tlsv1.2
<mjg> vs 1.3 above
<mjg> klange: shell scripts are well known for their reliability in the first place man
<mjg> hue, OS list lincludes illumos
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
<mjg> :d
<mjg> if [ "$KSH_VERSION" = 'Version JM 93t+ 2010-03-05' ]; then # The version of ksh93 that ships with many illumos systems does not # support the "local" extension. Print a message rather than fail in # subtle ways later on:
<mjg> ah that portability
xenos1984 has joined #osdev
<heat> it doesn't include openbsd because openbsd is already safe
<sbalmos> openbsd isn't open to letting Rust's inimitable greatness enter its realm
<mjg> you have no diea
<bslsk05> ​learnbchs.org: BCHS: BSD, C, httpd, SQLite
<sbalmos> SQLite is for modern webdev dweebs. Real Programmers [tm] use BerkeleyDB
<moon-child> I still can't tell if that's real or not
<mjg> same
<mjg> well the website definitely exists!
<sbalmos> heh, definitely real. I'm having flashbacks to the late 90s
<sbalmos> good 'ol CGI forkbombs
<sbalmos> oh the scary things that lie behind the door when you saw a website with /cgi-bin/ in its path
<gog> my next website is gonna be cgi
<jimbzy> Database? I store my data in text files.
<heat> yall store data
<heat> ?
<jimbzy> Everything.
<heat> also fyi arch's package manager repo db is literally a compressed text file
<kaichiuchi> why are decisions so hard
<heat> kaichiuchi, dong
<kaichiuchi> you made my phone vibrate
<kaichiuchi> for dong
<heat> sgtm
<kof123> files? i store my data in filesystem fields
<kaichiuchi> so
<kaichiuchi> are we all going to be here tomorrow
<kaichiuchi> or do we have lives and families
<heat> why not both
<zid> I'm UK so tomorrow isn't important
<heat> right
<heat> only boxing day matters because you can WATCH DEH FOOTIE
<kaichiuchi> please
<kaichiuchi> we're programmers, and not just any type of programmers
<kaichiuchi> we're _low level_ programmers
<kaichiuchi> we don't have families because we're too busy reading 4000 pages of the C++ standard and posting to stackoverflow
<zid> heat you're the only programmer who watches football
<zid> kaichiuchi: no that's insane people, not low level programmers
<kaichiuchi> same thing
<gog> i'm not a low level programmer
<gog> i write in c# and javascript
<kaichiuchi> get out
<gog> :P
<kaichiuchi> and have a merry christmas
* kof123 sides with zid "if a program[mer] can't rewrite its own code, what good is it? he asked"
<kaichiuchi> :p
<zid> I am a low level programmer, so I don't write things in C++
<gog> i will be here tomorrow i have a life and a family but i prefer y'all
<kaichiuchi> we don't even exist
<zid> are uk/us the only ones who don't do christmas on the 24th?
<kaichiuchi> i suppose so
<zid> (or other ex-colonies)
<gog> jesus christ
<zid> no, santa's birthday
terminalpusher has quit [Remote host closed the connection]
<gog> happy birthday santa