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
<gog> hi
archpc has quit [Quit: rm -rf /home/archpc]
innegatives has quit [Quit: WeeChat 3.8]
<geist> heat: i forget, hoinestly i've written that code like 10 years ago
<geist> and forgotten the details
<geist> and i'm kinda busy right now. but when in doubt, just dont touch it
<geist> (for the group stuff)
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
[itchyjunk] has quit [Read error: Connection reset by peer]
gog has quit [Ping timeout: 248 seconds]
goliath has quit [Quit: SIGSEGV]
gildasio2 has joined #osdev
gildasio1 has quit [Remote host closed the connection]
Jari-- has joined #osdev
epony has quit [Remote host closed the connection]
heat has quit [Ping timeout: 252 seconds]
skipwich has quit [Quit: DISCONNECT]
skipwich has joined #osdev
v28p has joined #osdev
<v28p> Hi all, when setting up PAE paging in long mode, does CR3 start depending on the virtual address after enabling paging? or is it always the physical address?
<Jari--> I am taking a new aim at my Operatig System OSDEV project : CP/M compliant design.
<Jari--> Operating System
archpc has joined #osdev
<klys> that sounds like a cool goal
<v28p> to answer my own question: it's physical address. my qemu was crashing my computer from using the virtual address..
<Jari--> v28p its always very physical
elastic_dog is now known as Guest6263
elastic_dog has joined #osdev
Guest6263 has quit [Ping timeout: 250 seconds]
archpc has quit [Quit: killall irc]
archpc has joined #osdev
<geist> v28p: aywas physical
rnicholl1 has joined #osdev
archpc has quit [Quit: killall irc]
archpc has joined #osdev
archpc has quit [Client Quit]
archpc has joined #osdev
v28p has quit [Remote host closed the connection]
rnicholl1 has quit [Quit: My laptop has gone to sleep.]
Jari-- has quit [Remote host closed the connection]
alpha2023 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Jari-- has joined #osdev
<Jari--> yo howdy dudes
<tiggster> yo yo
<Jari--> black tea is the way to go to complete your project tasks in time
<tiggster> or speed
<Jari--> klange you Japanese? is black tea beneficial for development?
<Jari--> tiggster I get the speed from caffeien, no MDMA thanks for me... I am allergic
Bitweasil- has joined #osdev
nanovad_ has joined #osdev
pieguy128 has quit [Ping timeout: 261 seconds]
deflated8837 has quit [Ping timeout: 256 seconds]
Bitweasil has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
nanovad has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
nanovad_ is now known as nanovad
deflated8837_ has joined #osdev
pieguy128_ has joined #osdev
deflated8837_ is now known as deflated8837
tiggster has quit [Quit: Leaving]
<sakasama> Green tea is, according to studies on theanine and caffeine. Black tea typically has lost most of its theanine and so shouldn't be as effective.
tiggster has joined #osdev
GreaseMonkey has quit [Quit: No Ping reply in 180 seconds.]
xenos1984 has quit [Read error: Connection reset by peer]
GreaseMonkey has joined #osdev
justache is now known as reddit-bot
reddit-bot is now known as justache
xenos1984 has joined #osdev
moberg has quit [Read error: Connection reset by peer]
moberg has joined #osdev
<Jari--> do you guys lock on system calls?
<Jari--> monolithic or microkernel or hybrid, you should always lock on when critical reserves beign used
<klange> Jari--: In order: 1) no, I just live here; 2) black tea is not a thing in japan, that's strictly chinese; 3) you should lock around resources, global locks on any system call would be insanity
<moon-child> s/insanity/openbsd/
zxrom has quit [Quit: Leaving]
<Jari--> OpenBSE
<zid> open bovine spongiform encephalopathy, my favourite
<Jari--> Jesus Christ mIRC taking 10% of CPU power for idling around
<zid> you fucked something
<zid> have you got it loaded up with silly scripts
<Jari--> ehhh it is probably display adapter, and interrupts sometimes take 90% of CPU power
alpha2023 has joined #osdev
Vercas694 has quit [Remote host closed the connection]
Vercas694 has joined #osdev
dtd-123 has joined #osdev
<dtd-123> hello
<Jari--> dtd-123 hello
<dtd-123> Hi Jari--
<dtd-123> Jari--
<dtd-123> Sorry, I'm new to IRC
dtd-123 has quit [Quit: Client closed]
Jari-- has quit [Ping timeout: 240 seconds]
pmaz has joined #osdev
slidercrank has joined #osdev
GeDaMo has joined #osdev
dennis95 has joined #osdev
zxrom has joined #osdev
Halofreak1990 has quit [Quit: Konversation terminated!]
gog has joined #osdev
<lav> mew
<gog> hi
<gog> lav: lav
<lav> gog: gog
* lav is agog at gog
<lav> a gog!
<gog> :o
<gog> :3
<lav> who there's two stronk gogs
Burgundy has joined #osdev
* gog flex
* lav melty
pmaz has quit [Quit: Konversation terminated!]
goliath has joined #osdev
Burgundy has quit [Ping timeout: 260 seconds]
Burgundy has joined #osdev
slidercrank has quit [Ping timeout: 240 seconds]
CalculusCats7 has joined #osdev
CalculusCats7 is now known as CalculusCats
sleider has joined #osdev
bnchs has joined #osdev
Brnocrist has quit [Ping timeout: 265 seconds]
Brnocrist has joined #osdev
Left_Turn has joined #osdev
<kof123> im not a good example and not there yet...but i decided i would want functions for all "lock" type things. this means someone has to go actually implement them for whatever scheme/"backend" (whether it uses/calls asm or whatever). point: some of those might just limit a function to only one instance at a time. or silly things like uid/pid/gid/thread can only have X instances of a function running at a time, else it has to wait. thi
<kof123> s more theoretical DOS protection perhaps, but seems doable
<kof123> so not the "system calls" higher level stuff...but tiny functions that just lock a resource
<kof123> or ref count, or whatever
<kof123> when i dont know what i am doing i always aim for flexibility so as not to code myself into a corner
<mjg> your dos protection will kill performance
<kof123> *maybe* some high level stuff might limit number of instances by uid/gid/etc. but that is just fluff there.
<kof123> well, itll all be optional. i mean, ifdef out as well if its that bad
<kof123> its more like...you have a disk on a controller. how does this work? you queue requests? what is the point of letting a user queue more than the hw can actually do?
<kof123> or whatever other combinations, x disks on y controllers
<kof123> *try to queue. they will have to wait anyways
<kof123> or "groups of functions" does not have to be individual functions
<kof123> you can make your own queue, and then plop things off there when hw is ready
<kof123> just havent got there yet lol
wlemuel has quit [Ping timeout: 250 seconds]
<kof123> i do try to fail early when possible ...so user can decide whether they want to retry or not. probably slower, having to call function again...but gives user the choice what they want to do. probably slower, but i prefer flexible
wlemuel has joined #osdev
<kof123> i dont like synchronous unless it absolutely needs something, but we'll see how bad that is lol
sleider has quit [Ping timeout: 265 seconds]
Halofreak1990 has joined #osdev
<kof123> with everything functions, then one can just go to sleep, retry after hardcoded period, try to be "adaptive" etc. functions everywhere has overhead surely, but it will have 100s of knobs to tweak
<Halofreak1990> Does anybody know what could cause my 64-bit kernel binary to contain about 1 meg of all zeroes starting after the ELF file header?
epony has joined #osdev
<Mutabah> Halofreak1990: alignment, gnu ld will default to around 1MB alignment, so will pad the image
<kof123> "you can make your own queue, and then plop things off there when hw is ready" the idea of e.g. uid limits...whats to stop a user from e.g. hogging a disk? or is that ok, use the hw, they got in first, let them use it, thats what its there for (like ram)?
<Mutabah> Halofreak1990: https://github.com/thepowersgang/rust_os/blob/master/Kernel/Core/arch/amd64/link.ld#L14-L16 this magic sequence tends to stop it
<bslsk05> ​github.com: rust_os/link.ld at master · thepowersgang/rust_os · GitHub
<kof123> maybe process priority is enough, or similar
<zid> SIZEOF_HEADERS is weird and forces ld to actually bother to calculate some stuff :P
<zid> you don't need it but it's I guess an easy way
<Halofreak1990> Yeah, it's weird. The only difference between the 64-bit linker script and the one for my 32-bit kernel, which works just fine, is the start offset, OUTPUT_FORMAT and OUTPUT_ARCH spec
<zid> could also probably -z max-page-size=0x1000
<zid> (or assign things manually)
<Ermine> gog: may I pet you
<gog> yes
<lav> nya
<gog> nya
<zid> vampries.gay is an incredible domain
<lav> thanks
* Ermine pets gog
<Ermine> Any .gay domain is nice
<sham1> The never-ending cycle of patpatpat and prr
<mjg> gay vampires is true blood vibes
<zid> I made a stupid vanity host but the dns hasn't propagated yet :(
<zid> woe is me
zid` has joined #osdev
<zid`> could always use this one
<lav> >lain
<Ermine> converting prrs into patpatpats
<zid> what's wrong with lain, suspicious quoting! :(
gareppa has joined #osdev
<lav> nothing wrong it's just lain
gareppa has quit [Remote host closed the connection]
zid` has quit [Remote host closed the connection]
* gog prr
* gog patpatpat lav
* lav prr
<gog> i have a vanity host
goliath has quit [Quit: SIGSEGV]
<zid> what is it
elastic_dog has quit [Killed (silver.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
dude12312414 has joined #osdev
[itchyjunk] has joined #osdev
<zid> libera's dns still slow af :(
goliath has joined #osdev
<Ermine> libera's dns?
<zid> yus
<zid> google dig knows the domain, libera does not, libera is bad and slow
tiggster has quit [Remote host closed the connection]
<Ermine> I mean, do they host dns cache?
<zid> whois someone
<zid> me for example
<zid> that's the server sending you the @pete-14.. part, after I connected from 81.blahblah
<Ermine> Ah
<zid> they do a reverse lookup when you connect
<Ermine> Ah, and this part is slow
<zid> I should probably stop poking it, it's probably reviving some cached "no entry" lookup
<zid> and not timing out
tiggster has joined #osdev
wlemuel has quit [Ping timeout: 255 seconds]
wlemuel has joined #osdev
Jari-- has joined #osdev
tiggster has quit [Remote host closed the connection]
tiggster has joined #osdev
xenos1984 has quit [Ping timeout: 265 seconds]
xenos1984 has joined #osdev
wootehfoot has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
junon has joined #osdev
xenos1984 has quit [Ping timeout: 265 seconds]
<junon> In a link script, is there a way to tell the loader to load a specific section at a specific virtual address? I'm trying to get limine to load a stubs section of my boot stage at a particular virtual address but specifying . = 0x... is causing the output file to be over a gig in size, which clearly is not what I want. I have another PHDR for it and have it defined as .stubs { KEEP(*.stubs) } :stubs but it's putting it right at the end of the .text segment.
<junon> Not sure what I'm doing wrong.
<junon> Another question - I'm trying to defined the addresses of some extern symbols and do so with STUBS_START = . and STUBS_END=. but they're linked to address 0. If I do STUBS_START = ALIGN(4096) then it works. Am I misunderstanding the . symbol here?
<zid> why do you have a weird unprintable symbol before those things you pasted is the real question
<Jari--> spinlocks, mutexes, and semaphores2...
<zid> where are you adjusting .? it flips meaning inside and outside of a section
<junon> zid: was outside of a section when I tried
<junon> also not sure about the weird character, I'm using element and connecting via bridge, maybe I need to update element
<zid> "If no suitable region could be found, or there was no previous section then the LMA is set equal to the VMA. " is probably what you're hitting
<junon> I didn't realize its semantics change depending on if it's in a section block; is outside the block a physical address and inside is the virtual address or something?
<zid> opposite
<bslsk05> ​sourceware.org: Output Section LMA (LD)
<zid> It's kinda awkward to get it all straight, and a lot of people rely on the defaults to get what they want, so it all explodes the moment you don't want that
<junon> that's exactly what's happening :D
<bnchs> hi #osdev
<zid> use some .blah 0xnumber some . = and some >phdr while staring at readelf until you get what you want :P
<bnchs> you know what grinds my gears?
<junon> I'm trying to decouple the boot stage and the kernel entry stage a bit, and when I switch out my page tables from the Limine supplied ones to the kernel's, I need the little stub I'm executing to be in the same spot.
<junon> and want it to be out of the way of where the kernel will ultimately get mapped.
<zid> AT() is probably easiest, thinking about it
xenos1984 has joined #osdev
<junon> Mrh so readelf is showing everything correctly but limine is not loading it correctly, I think limine isn't built for anything strange like that.
<junon> limine reports OOM
<junon> just sticking it after .text and page aligning it before/after will work, I'll just have to re-map it myself
skipwich has quit [Ping timeout: 276 seconds]
<FireFly> zid: it does a reverse lookup, but will only use it as hostname if it resolves in the forward direction too
<FireFly> IIRC
<zid> it resolves in both so that's fine
skipwich has joined #osdev
<FireFly> fair, then I dunno
<zid> (my ISP can't see it either, to be fair)
<zid> but I also may have cached it into their resolver too
wlemuel has quit [Quit: Ping timeout (120 seconds)]
wlemuel has joined #osdev
<kof123> what grinds your gears bnchs ?
<bnchs> ruffle doesn't support opengl
* FireFly . o O ( grinds my glxgears )
<FireFly> or doesn't, I suppose
<zid> my isp can see it now at least! progress
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
<junon> recursive page tables are inherently incompatible with upper-2GiB kernels (-mcmodel=kernel) aren't they?
<junon> unless you make the self-mapped index something other than 511 of course.
<junon> because the kernel itself would otherwise occupy index 512
<junon> 511*
<zid> why not try 256
<zid> variety is the spice of life
<junon> 256 would beeee 0xFFFF_8000_0000_0000 no?
<zid> idk, whatever half of 2^48 is I assume
<zid> wait I have a tool for this
<zid> Yes, yes it would be.
<zid> http://shogun.rm-f.net/~zid/page.html -> 0xFFFF800000000000
<junon> Yes I'm right
<bslsk05> ​shogun.rm-f.net <no title>
<zid> 256, 0, 0, 0
<junon> :D I was looking for this exact tool earlier, thanks
<junon> needed a quick little thing to decode vaddrs
<bslsk05> ​shogun.rm-f.net: GDT Parser
<zid> for quick decode gdt
<junon> The reverse of page.html, changing the indices, doesn't sign extend btw
<junon> idk if you want it to but I just noticed.
<zid> that works!? til
<junon> yep
<zid> how would I do that in javascript I wonder
<zid> need to make 'n' copies of 'F' in string
<zid> ah Array(n).join("a")
<junon> no that doesn't work well
<junon> you can do "foo".repeat(n)
<zid> what do you mean, doesn't work well
<zid> it works fine
<junon> Array(n) creates n entries of undefined, so joining gives you n-1, and many browsers don't work how you'd expect
<zid> there's that character again btw
<junon> this? it's when I used backticks
<zid> that's not a backtick, ` is a backtick
<junon> I know, my client must be doing some weird formatting
<zid> you're sending 0x11
<zid> vertical tab
<zid> you just said "doesn't work how you expect" in response to "why doesn't it work?" btw
<zid> not useful :P
<zid> hmm javascript does not seem to have strchr
<zid> it has regexes.. that seems like overkill..
<junon> enc = addr => { const as = addr.toString(16).toUpperCase(); return `0x${((BigInt(addr) >> 47n) & 1n) === 1n ? 'FFFF' : '0000'}${'0'.repeat(12 - as.length)}${as}`; };
<junon> client botched that, sec
<zid> several problems with that
<zid> I can't read it, it's ugly as sin, and uses weird features
<junon> all features available in the browser today
<junon> assumes the address is not already sign-extended.
<junon> and that the address is a number.
<bslsk05> ​shogun.rm-f.net <no title>
<zid> seems to do the right thing
<junon> Not from what I can tell
<zid> changing pml4 to 256 does the right thing
<junon> 26 0 0 0 is not higher half
<zid> ooh fuck
<zid> right I didn't check it correctly
<zid> I need to check the str length too
<zid> for how many digits it has
<junon> use if str.match(/^[89A-F].{11,}$/)
<bslsk05> ​shogun.rm-f.net <no title>
<junon> seems to work
<zid> page.html will flip over whenever this weird server's cache expires
<zid> it doesn't appear to be tied to file update times
arminweigl has quit [Ping timeout: 248 seconds]
arminweigl_ has joined #osdev
arminweigl_ is now known as arminweigl
dennis95 has quit [Quit: Leaving]
bnchs has quit [Read error: Connection reset by peer]
goliath has quit [Quit: SIGSEGV]
heat has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
<heat> hello
<lav> heat from fire, fire from heat
<heat> im fired?
Jari-- has quit [Remote host closed the connection]
<lav> yeah you've been obsoleted by catgpt
<heat> my cats backstabbed me :(
<lav> rawr
<zid> good
<bslsk05> ​modern.ircdocs.horse: IRC Formatting
<GeDaMo> 0x11, that is
<FireFly> yep, I think irccloud and the matrix bridge use that, idk if others do
slidercrank has joined #osdev
ss4 has joined #osdev
wootehfoot has quit [Ping timeout: 255 seconds]
<zid> mirc doesn't, and doesn't need it either, and compatibility with mirc is what an irc bridge *should* give a shit about
epony has quit [Remote host closed the connection]
epony has joined #osdev
<heat> i use hexchat
<heat> irc bridge? more like irc crindge
<zid> correct
<Ermine> hexchat sucks on windows
<zid> if you love irc so much, connect to it
<heat> Ermine, why
arminweigl has quit [Ping timeout: 252 seconds]
<Ermine> Its gui renders slowly
<Ermine> Even on powerful enough machine
<Ermine> Also it doesn't support hidpi
<heat> odd, maybe it's a gtk issue or something?
<Ermine> Maybe.
arminweigl has joined #osdev
<Ermine> Idk which version do they use. Modern gtk versions support integer hidpi on windows and at least it is not blurry, but hexchat is
<heat> integer gui scaling is a scam
<heat> what size do you want? giga small or giga large?
<Ermine> At least this is what they implemented (easy part tbh), and afaik gtk people are stubborn on not implementing fractional part. They think that compositor should rescale windows to desired scale
<Ermine> And windows doesn't do that if program announced hidpi support
<heat> gtk people (and everyone else in the desktop linux world) are very stubborn on providing a shit experience for everyone :)
<zid> could have cloned win95's api and renamed it all to gtk_blah and had a better ui than I've ever seen on a linux machine
<zid> just sayin
<Ermine> heat: agreed on gtk people
<heat> i like opening gtk and qt and sdl apps and having 3 completely different UI styles
<nortti> does sdl actually provide anything UI-wise?
<heat> all configured through completely different methods
<zid> there was something ages ago.. wxwidgets?
<zid> That just made windows windows on windows
<zid> I liked that
<heat> is that what wine uses? wine gets windows-ish styling
<zid> wine just implements gdi32.dll properly doesn't it
<zid> uses libx or xcb or whatever
* CompanionCube remembers dolphin used to use wxwidgets and moved to qt, iirc at the time the former didn't do hidpi
<Ermine> At least plasma people tried to do some consistent looks with kde-gtk-config, but now gtk apps are moving to libadwaita I guess...
<zid> and to wayland, which afaik is.. all statically linked?
<heat> the problem with desktop linux is that everyone has a fucking opinion
<heat> and they're usually all bad
<zid> so all the windowing is all going to be fucky on old binaries eventually, so that will be fun
<CompanionCube> nah wayland isn't a UI toolkit
<zid> I know
<CompanionCube> old binaries will use XWayland, no?
<zid> will use what
<heat> wayland is not statically linked
<Ermine> Well, windowing is fucky with X...
<zid> oh did they revert that requirement?
<zid> I've never actually uesd wayland, just saw everybody hyping it up before it was a real thing
<heat> idk, I'm seeing a bunch of libwayland-*.so stuff in /lib
<CompanionCube> maybe you're thinking of the stupid GNOME design choice where you have to provide your own titlebar?
<heat> in fact fedora, debian all require shared lib everything
<zid> nobody mentioned titlebars?
<Ermine> btw gnome still didn't implement xdg-decoration protocol for server-side decorations
<CompanionCube> Ermine: well, their solution iirc is 'use libdecoration' which is what SDL ended up doing iirc, but, well...
<Ermine> galaxy brains
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<Ermine> They're pissing me off
<zid> I'll complain about linux tbh, when windows stops tearing
<zid> scrolling a window with another window behind it that is using dx/gl/whatever still tears around the border of that hidden window
<zid> has done for 20 years now
<zid> if anything it does it *more* now
<zid> I like to have various idle games, or paused accelerated video players etc open in the bg, with my pdf reader and shit in the foreground, so everything's lovely and teary
<Ermine> That sucks too
goliath has joined #osdev
awita has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 260 seconds]
arminweigl has quit [Ping timeout: 255 seconds]
arminweigl has joined #osdev
justmatt has quit [Quit: ]
justmatt has joined #osdev
<geist> zid: huh that's interesting, which windows?
<geist> not sure i've seen that, now i'm curious
<CompanionCube> ah, apparently wxwidgets got hidpi in 2022 with 3.2.0, also thse windows: 'wxMSW: The port for 32-bit and 64-bit Windows variants including Windows XP, Vista, 7, 8, 10 and 11.'
clever has quit [Ping timeout: 248 seconds]
epony has quit [Ping timeout: 240 seconds]
epony has joined #osdev
arminweigl has quit [Ping timeout: 252 seconds]
arminweigl has joined #osdev
awita has quit [Remote host closed the connection]
gog has quit [Quit: byee]
Halofreak1990 has quit [Quit: Konversation terminated!]
ss4 has quit [Read error: Connection reset by peer]
gog has joined #osdev
<gog> mew
<gog> i cleaned my fans
<geist> computar fans?
<lav> whoa i feel so clean now
<geist> onlyfans
eroux has quit [Ping timeout: 240 seconds]
eroux_ has joined #osdev
slidercrank has quit [Ping timeout: 255 seconds]
eroux_ has quit [Read error: Connection reset by peer]
clever has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
<gog> yes
<gog> my computer fans
<gog> i managed to heat it up enough to throttle yesterday
<gog> game didn't like it and crashed
<gog> ¯\_(ツ)_/¯
<gog> lav: cleancleanclean
<Ermine> did you oil them?
<heat> hello
<heat> i am heat
dude12312414 has joined #osdev
eau has quit [Ping timeout: 240 seconds]