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
cipherwizard has joined #osdev
<heat> i need to collapse vm regions
<heat> this thing grows large
<mjg> cranor moment
<heat> bash gets 47 regions, more than half of which is just small 4KB heap allocations
<heat> is this a cranor moment?
<heat> i dont remember him talking about this
<heat> note that i'm talking about merging [0x1000, 0x2000] and [0x2000, 0x3000] into [0x1000, 0x3000]
<heat> not vm object chains
gog has quit [Ping timeout: 248 seconds]
<geist> yeah we implemented something like that in fuchsia for the same reason
axis9 has quit [Remote host closed the connection]
nyah has quit [Ping timeout: 246 seconds]
axis9 has joined #osdev
<tsandstr> Mutabah: Hey, I've been perusing the code you shared with me the other day (start.asm) and I have some questions about how you have things set up, if you're around
* Mutabah is away (Sleep)
<zid> I am here though
<tsandstr> zid: are you familiar with how rust_os does its initialization and such?
<zid> nope, but you can ask questions and I can make something up
<tsandstr> haha, okay. https://github.com/thepowersgang/rust_os/blob/d7a8bd0bc19a13329f9a0990303548fb7391d48c/Kernel/Core/arch/amd64/start.asm#L43-L44 here, I am confused about where that magic number comes from. I can't find it in any version of the multiboot spec
<bslsk05> ​github.com: rust_os/start.asm at d7a8bd0bc19a13329f9a0990303548fb7391d48c · thepowersgang/rust_os · GitHub
<zid> looks like a uefi thing
<zid> you're doing grub
<tsandstr> And here https://github.com/thepowersgang/rust_os/blob/d7a8bd0bc19a13329f9a0990303548fb7391d48c/Kernel/Core/arch/amd64/start.asm#L166-L171 it lists several things which, from what I can tell, are already set up by the UEFI launch stuff
<bslsk05> ​github.com: rust_os/start.asm at d7a8bd0bc19a13329f9a0990303548fb7391d48c · thepowersgang/rust_os · GitHub
<zid> you very don't want to rely on your bootloader setting up things like whether NX, sse etc is enabled and stuff
<tsandstr> Okay, perhaps I will look through the UEFI spec and see if I can find any reference to that magic number
<zid> might just be a thing they have in their uefi stub
<tsandstr> zid: so even though the multiboot spec says that : "all state is set up according to the UEFI spec x64 boot services", I should still assume the worst and set all of that stuff up anyway?
<zid> and what do you do if it's put the physical backing for your page tables by allocating 4k spaced apart every 8MB? :P
<zid> or other such nonsense
<zid> That is to say, the environment you're guarenteed has holes in how it is specified, and how they've specified it is unlikely to be how you ultimately want it anyway, you will *eventually* have reason to change it
<heat> that 0x71FF0EF1 looks like something the bootloader is setting up for uefi
<tsandstr> Haha, I see. So it makes sense to tear it down and rebuild it all myself, yes?
<heat> that is not a uefi spec thing
<zid> yea that's a "their stub thing" by my eye
<tsandstr> yeah, I just found the place in their EFI stub where they set it up
<tsandstr> Alright, thank you for helping me clarify all of that
<heat> tianocore doesn't set up the tables like they say they do btw
<tsandstr> heat: oh really? how does it differ? I have just been reading specs and monkeying my way through this, assuming that everything met the specs
<heat> some security stuff
<tsandstr> heat: but if I am just locating tables in memory and stuff, should I run into serious problems?
<zid> best way to use uefi: exit boot services and reclaim all the memory
<heat> no
<heat> this "some security stuff" may or may not be enabled and I don't know precisely what happens when the efi app gets control
<tsandstr> Okay, so I should exit boot services right away? This is something I was unclear on.
<zid> Unless you wanna piss around being a cheap extension of your own bios
<zid> for a long time
<tsandstr> zid: okay, that makes sense
<zid> you're going to end up in a weird split dichotomy if you do that even if you find something useful to do imo
<heat> yes, as soon as you load everything and get all the tables you want, exit
<tsandstr> what does "load everything" mean?
<zid> deleting code from weird system specific portions > adding code
<Mutabah> tsandstr: I was awake, just preparing for the day.
<Mutabah> tsandstr: That magic number is from my uEFI bootloader, yes.
<tsandstr> Mutabah: ha, cool! Just been having a chat about how you have things set up :)
<Mutabah> yep, scanning the scrollback
<Mutabah> That second block is going from 32-bit pmode to long mode, as my uEFI setup is 32-bt
<tsandstr> I see, I see
[itchyjunk] has joined #osdev
k8yun has quit [Quit: Leaving]
heat has quit [Ping timeout: 260 seconds]
elderK has joined #osdev
<tsandstr> What does EDK2 do for me when I am working with UEFI? I just want headers that define all of the data structures, and it seems like these are contained in EDK2, but what is all the other crud in there for? Can I use EDK2 with just what I need? or is there an easier way?
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
<tsandstr> I am confused by the terminology of "UEFI applications". Is my kernel a UEFI aplication? I just want to grab some memory maps and use the system discovery stuff.
<clever> tsandstr: a uefi application is a .efi binary that gets ran by the board firmware and has access to the boot services
<clever> it could be a bootloader, or it could be a kernel with an efi stub
<tsandstr> So my kernel is just an ELF binary getting launched by a bootloader. I'm not a UEFI application. What is the bare minimum that I can use to get some structs that define the datastructures in the UEFI spec?
axis9 has quit [Remote host closed the connection]
<clever> tsandstr: i would assume the bootloader passes those on to your kernel
sonny has joined #osdev
Lumia has joined #osdev
<sonny> From barebones "When developing user-space programs, your toolchain ships with default scripts for linking such programs.", how do you find these linker scripts?
<tsandstr> The bootloader passes me a pointer to the EFI System table, so I have that. But then actually accessing anything in the table in raw assembly is a big ol' pain in the butt (as far as I can tell). I would like to be able to write some C code that does something like SystemTable->EFI_BOOT_SERVICES->EFI_EXIT_BOOT_SERVICES.ExitBootServices()
<clever> tsandstr: and for that, you want to get a set of .h files for efi, or read the uefi specs
Vercas6 has joined #osdev
<tsandstr> clever: right, thats what I am asking about. EDK2 contains a set of .h files, but it also conains a ton of other junk, and I can't tell if I need it or not
<clever> tsandstr: https://wiki.osdev.org/UEFI_Bare_Bones has an example including what headers to include
<bslsk05> ​wiki.osdev.org: UEFI App Bare Bones - OSDev Wiki
axis9 has joined #osdev
<tsandstr> Oh I see!!! Much easier than I thought
<clever> 2022-10-08 19:01:36 < heat> EFIAPI is defined in GNU/Clang as __attribute__((ms_abi))
<clever> tsandstr: and all function pointers from efi, or passes as callbacks, must be tagged with EFIAPI, which makes sure the calling convention lines up
<clever> when compiling something to a linux elf, it will likely use a different calling convention by default
<tsandstr> clever: right, but the efi.h header does that for me so far as I can tell
<clever> yeah, i would expect it to do that
<clever> efiapi.h:(EFIAPI *EFI_EXIT_BOOT_SERVICES) (
<clever> tsandstr: yep, i see that
<tsandstr> :)
epony has quit [Ping timeout: 252 seconds]
[itchyjunk] has quit [Remote host closed the connection]
sonny has quit [Ping timeout: 244 seconds]
Lumia has quit [Remote host closed the connection]
Lumia has joined #osdev
sonny has joined #osdev
sonny has quit [Quit: Client closed]
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
epony has joined #osdev
Vercas6 has joined #osdev
Lumia has quit [Quit: ,-]
wand has quit [Remote host closed the connection]
elderK has quit [Quit: Connection closed for inactivity]
wand has joined #osdev
<clever> cleaning up some of my asm, and i'm starting to use .size to define symbol sizes properly
<clever> is there a way to then read that symbol size from asm as well?
srjek has quit [Ping timeout: 252 seconds]
IRChatter has joined #osdev
<moon-child> probably dwarf hell :P
ThinkT510 has quit [Quit: WeeChat 3.6]
<clever> moon-child: i'll just stick to my _start and _end local symbols then :P
<clever> they spam it up, but they work fine
hmw[at] has joined #osdev
ThinkT510 has joined #osdev
axis9 has quit [Remote host closed the connection]
rb has quit [Ping timeout: 264 seconds]
hmw[at] has left #osdev [#osdev]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
axis9 has joined #osdev
pg12_ has joined #osdev
[itchyjunk] has joined #osdev
rwb has joined #osdev
poyking16 has joined #osdev
gxt has quit [Ping timeout: 258 seconds]
CryptoDavid has joined #osdev
gxt has joined #osdev
[itchyjunk] is now known as [spookyjunk]
<ddevault> wrote about my osdev progress here: https://drewdevault.com/2022/10/15/Status-update-October-2022.html
<bslsk05> ​drewdevault.com: Status update, October 2022
<ddevault> pretty productive few weeks
<geist> woot
GeDaMo has joined #osdev
netbsduser has joined #osdev
sprock has quit [Remote host closed the connection]
sprock has joined #osdev
sprock has quit [Remote host closed the connection]
sprock has joined #osdev
sprock has quit [Remote host closed the connection]
[spookyjunk] has quit [Remote host closed the connection]
sprock has joined #osdev
gog has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
Killy has quit [Write error: Connection reset by peer]
identitas has quit [Write error: Connection reset by peer]
Maja[m] has quit [Remote host closed the connection]
jack_rabbit has quit [Read error: Connection reset by peer]
Irvise_ has quit [Read error: Connection reset by peer]
chibill has quit [Read error: Connection reset by peer]
Maja[m] has joined #osdev
nyah has joined #osdev
immibis_ has joined #osdev
identitas has joined #osdev
Irvise_ has joined #osdev
jack_rabbit has joined #osdev
Killy has joined #osdev
chibill has joined #osdev
carbonfiber has joined #osdev
axis9 has quit [Read error: Connection reset by peer]
<netbsduser> been looking a little further at persistent object stores
<netbsduser> i looked to phantom os, which seems to do this by persisting pages of the virtual address space, remapping them read-only at checkpoints for copy-on-write while the existing contents are written to disk. but this does not seem to me to fit well with garbage collection
<kof123> what do you mean? you don't want to assume some ever-growing storage which things are never "deleted" from?
<netbsduser> as far as i can see, it just applies conventional GC techniques to the entire virtual address space. couple that with generational/copying techniques and you get undesirable disk usage
<kof123> (not sure of phantom does that, just trying to understand)
<netbsduser> kof123: phantom seems to basically be, "take a typical garbage-collected object heap which occupies potentially terrabytes of virtual address space, write it out to disk initially, then write out deltas v.s. the previous state to disk every time you want to checkpoint to disk"
<netbsduser> and it does this at the level of the page, rather than with any special treatment of objects
<netbsduser> the GemStone/S database (which is also a full Smalltalk) seems to me to be a better model, it deals in logical objects, and in pages of big objects. i need to study it, it seems there is much more accessible-to-me writings on it than there is about IBM
<netbsduser> *ibm i
<netbsduser> though i do still want to find more information on the workings of IBM i
<kof123> not knowing anything, that seems to be me like something transparent versus applications (or whatever the case may be) being written to only do what they think is important to "checkpoint", etc. the latter would seem obviously "better" in the long term but more work
<kof123> "better" in the sense of "optimized" i.e. probably knows more about what actually needs done etc.
<kof123> *seems to me to be
<kof123> feel free to tell me i am way off base
gxt has quit [Ping timeout: 258 seconds]
gxt has joined #osdev
nikitalocalhost has quit [Remote host closed the connection]
<netbsduser> kof123: it's a bit lower-level, rather the case is that Phantom treats its object heap as an opaque thing which it persists to disk at the granularity of physical pages (it doesn't know anything about its internal layout). other approaches would deal with individual objects within the heap as logical units
<poyking16> \quit
poyking16 has quit [Quit: WeeChat 3.5]
wootehfoot has joined #osdev
Bonstra has quit [Quit: Pouf c'est tout !]
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
Vercas6 has joined #osdev
heat has joined #osdev
Raito_Bezarius has quit [Ping timeout: 250 seconds]
Raito_Bezarius has joined #osdev
Raito_Bezarius has quit [Max SendQ exceeded]
axis9 has joined #osdev
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
Raito_Bezarius has joined #osdev
Vercas6 has joined #osdev
Raito_Bezarius has quit [Max SendQ exceeded]
<mrvn> netbsduser: if you don't use a generational / compacting GC then you save a lot of dead air.
[itchyjunk] has joined #osdev
[itchyjunk] is now known as [spookyjunk]
Raito_Bezarius has joined #osdev
gareppa has joined #osdev
gareppa has quit [Remote host closed the connection]
<tsandstr> What does it mean when GRUB warns on boot: "WARNING: no console will be available to OS"? I am booting using UEFI, but I get this warning and none of the UEFI console functions seem to be working
<tsandstr> I am using QEMU with OVMF
axis9 has quit [Quit: accepting pre-payed K-LINE]
dude12312414 has joined #osdev
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
<heat> tsandstr, if you're booting by grub you probably aren't in boot services
<heat> so you can't use them
<heat> but i do need more context
<heat> what boot protocol, etc
axis9 has joined #osdev
<tsandstr> heat: I am using Multiboot2.0 with GRUB
<heat> are you out of boot services (as in do you explicitly request to remain with efi boot services)?
<tsandstr> My multiboot header contains the EFI boot services tag
<tsandstr> so I should be in boot services still
<tsandstr> if I understand correctly
<heat> ok
<heat> survivability tip: don't set fancy tags
<heat> multiboot 2 support in grub is broken beyond belief because no one uses it
<heat> so stay within the normal shit and you should be fine
<heat> (that is a fancy tag)
<tsandstr> aha I didnt realize that was a fancy tag :)
<heat> yeah
<tsandstr> The reason that I set that tag is that i found the multiboot spec to be a bit unclear about the machine state when I dont use that tag
<heat> why do you want boot services anyway?
Vercas6 has joined #osdev
<heat> what? it's super clear
<heat> 32-bit protected mode, paging off
<heat> etc
<tsandstr> Okay, I see! It seemed like boot services on led to a much simpler machine state, but I didn't realize it was broken :)
<heat> i don't know if that particular feature is broken
<heat> but it's possible it is and debugging both your code and grub is hard :)
<tsandstr> haha, yeah that makes sense
<heat> i've been fucked by GRUB myself a few times so :)
<netbsduser> this is why i opted for limine
<heat> limine is probably worse
<netbsduser> i just wanted a bootloader with the usual conveniences and that leaves me in a sane long-mode environment
<heat> but bootstrapping yourself is fun too :)
<netbsduser> for me (as i suspect for many others) it was just one more thing which wasn't interesting to me
<heat> bringup work is bringup work
<heat> it takes a special kind of kernel weirdo to like it
<heat> which I do :)
<netbsduser> when i read a paper on the UVM virtual memory system i got the urge to immediately work on implementing something like it
<heat> _really_
<netbsduser> yeah
<heat> i'll have to quote mjg on "papers make everything seem like it's THE SHIT"
<netbsduser> virtual memory turned out to be the thing i enjoyed working on the most
<netbsduser> i went so far as to implement a compressor which steals pages to compress with LZ4 from the end of a recently-used list, which was nice but perhaps wasted on an OS which can barely run the bash and coreutils
<heat> that's pretty cool
<heat> do you have a link?
<netbsduser> https://github.com/NetaScale/SCAL-UX it's in one of the older branches i think, i have yet to put it back into the 3rd (or is it the 4th now?) rewritten vmm
<bslsk05> ​NetaScale/SCAL-UX - SCAL/UX, a hobby Unix-like operating system (0 forks/11 stargazers/MPL-2.0)
cipherwizard has quit [Quit: WeeChat 3.6]
Vercas6 has quit [Remote host closed the connection]
Vercas6 has joined #osdev
<heat> netbsduser, pretty remarkable to hit bash and coreboot that fast
<heat> erm
<heat> coreutils
<heat> brainfarted there and only noticed now :P
<mjg> back when i was heat's age i was in an os flamewar
<mjg> dude claimed linux is using parts of windows codebase
<mjg> because it is too much work to get an os from scratch
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
<heat> hrmmm love me some FLAMEWARS
<heat> arm vs x86, windows vs linux, windows vs mac, openbsd vs everyone else, solaris vs linux, solaris vs mjg, linux vs mjg, freebsd vs mjg
<heat> CSRG vs mjg too
<mjg> unix geezers vs mjg has definitely been ongoing for years man
<mjg> some see the light, some don't
<mjg> it's mind boggling to what extent it got yolo'd
<heat> they thought it was like a 5 year thing tops
<heat> but unix doesn't fucking die
<mjg> i don't mind the early 70s man
<tsandstr> heat: sorry, I was out running a few errands, but Ive gotten rid of the boot services tag and I am still having the same error, that no console is available
<mjg> i'm talking about what happened after the os got established
<mjg> - gonna do x, it will be faster
<mjg> - got numbers?
<mjg> - well no, but it is logical!
<heat> well, then they thought it was like a 20 year thing tops
* kof123 inserts tops-20 pun
<heat> my theory is that unix just got progressively half-assed because "it'll probably die soon"
<heat> but fork() ran on a pdp11 and rans on 12th gen xeons
<heat> runs*
<mjg> no man
<mjg> the "fuck it i know better, no need to test" mentality is what these geezers roll with to this very day
<heat> but was it true 30 years ago?
<heat> they were not "old unix geezers" back then
<heat> but hipster csrg unix hipsters
<mjg> i make no comments about anything which happened prior to say 1985
<mjg> things were wild, people had 3 hands, lsd was dripping of taps
<mjg> not gonna judge anyone
<mjg> lemme give you a not-prehistoric example
<mjg> dude implements clear page using non-temporal stores on i386
<mjg> there is literally 0 justification in the commit message, most notably no tests
<mjg> maybe it was a good idea, maybe it was not, but sure as hell it is not justified in the commit
<mjg> and knowing the particular geezer it was NEVER tested
<heat> who is it
<mjg> now i'm curious when other bsds got it
<mjg> i know solaris was doing this
<mjg> (and in fact it still is)
<mjg> ooh interesting
<mjg> obsd copied the code in 2004 and claims a speed up, albeit is slightly vague
<mjg> as seen in freebsd: asm pagezero implementations, but use a fn pointer.
<mjg> the sse2 version cuts ZOD fault time in half.
<heat> zod
<mjg> zerofill on demand
<heat> ah
<mjg> props to openbsd for performing *a* test
<heat> openbsd best bsd
<mjg> p stands for performance
<mjg> no p in freebsd
<heat> free rhymes with pee
<heat> that's all i'm saying
<sham1> Freepsd
<sham1> Makes me think of Adobe Photoshop and now I have to go cleanse myself
<sham1> For uttering that name
<mjg> netbsd added this in one giant swoop with fuckton of other changes
<mjg> no numbers
<heat> for the one question no one ever asks
<heat> what does dragonfly bsd do?
<mjg> it's rep stosq (not erms!)
<mjg> *today* netbsd has pmap_zero_page as a wrapper to memset
<heat> lmao
<kof123> it was supposed to allow anonymous clustering something
<mjg> ... which rep stossez this
<heat> isn't rep stosq erms'd?
<kof123> and split off 4.x or 5.x didnt like freebsd smp or locks or something something
<heat> does it just work with rep stosb?
<mjg> what?
<heat> erms stores
<kof123> or were you asking in this particular case :D
<mjg> i don't follow the q
<heat> rep stosq slow or what
<mjg> if the cpu does not have erms, it is pessimal to rep stosb
<mjg> and dfly does not have anything for detection at boot time
<mjg> so it just rolls with stosq
<heat> my CPU has fast rep movsq for instance
<heat> it's around the same speed as rep movsb
<sham1> What does dragonfly do? Isn't it kinda stagnant?
<heat> so musl's shitty memcpy Just Worked
<heat> >Isn't it kinda stagnant?
<heat> idk is it a bsd
<sham1> Fair enough, it's not one of the big three
<heat> there's no big three here
<zid> all BSDs are incredibly active, for a BSD
<heat> it's lebron james and a bunch of cats
<mjg> to dfly credit, it accomplished more than obsd with a fractin of their resrouces
<zid> freebsd used to have a "Nobody's bothered to see if we had a security issue in 20 years" sign on their website
<mjg> zid: ye it is kind of funny actually if you take a look at yearly stats, does not look dead at all
<sham1> Well obsessive security is probably more demanding
<mjg> what?
<mjg> obsd defo has a related slogan though :-P
<heat> libressl can't have CVEs if no one uses it
<sham1> Only two holes in base install for a long time
<heat> checkmate
<zid> `Only two remote holes in the default install, in a heck of a long time! `
<mjg> sham1: nope
<mjg> sham1: *remote* holes in *default* config
<sham1> Right, forgot the remote
<mjg> in a setup which enables next to nothing
<zid> two remote holes in a default config is a lot lol
<mjg> not much of an accomplifhsment
<mjg> almost everyone else can make the same claim
<zid> remote holes in *windows* barely happen
<zid> and that thing leaks like a seive
<zid> sieve
<mjg> fucking windows
<sham1> That also serves ads. Makes me annoyed
<heat> idk fucking windows doesn't seem pleasant
<heat> but you do you
<mjg> waiting for someone to show up and claim how secure it was
<heat> ok
<heat> windows is super secure
<mjg> i mean professional programmers at ms would not wirte utter dogshit, would they
<heat> and better than unix
<heat> praise dave cutler
<zid> windows is actually super secure.. just by virtue of lots of people trying to fuck it
<heat> fuck un*x
<mjg> want the story of MY FIRST HACK?
<zid> it just looks insecure because of how many things you find if you DO have thousands of people trying
<mjg> i was in middle school and broke windows 98 "encryption" "scheme"
<mjg> to find the admin apssword
<zid> if you divide sloc / attempts I bet windows is doing better than openbsd
<heat> my first time having sex but it's a nerd
<mjg> zid: well listen secure guy
<heat> well it's 1998
<mjg> anyone could just access the registry including keys which contained the passwords
<zid> yea
<heat> windows is a ahead of the curve right now on a lot of security stuff
<mjg> they just had a lookup table, each letter at each posiiton had a dedicated lolo letter
<zid> I used to mess with the 98 machines at school and stuff constantly
<mjg> i got myself a transaltion table and went to school with it
<zid> do you know the login thing by opening help?
<mjg> yes
<mjg> turns out the password was..... zaqwsx
<heat> genius
<mjg> i tried to use it to log in into the windows 2000 workstation of the teacher
<zid> oh I think I found it
<heat> is that polish
<mjg> the password got accepted but nothing hapeppened later
<bslsk05> ​'An easy way to bypass the Windows 95 login.' by [idk] (--:--:--)
<mjg> zid: i fyou want to bypass win 95 login just esc
<mjg> security
<sham1> > [Cutler] thinks Unix is a junk operating program designed by a committee of Ph.D.s.
<zid> this one is funner
<sham1> It literally wasn't done by PHDs
<mjg> some were phds man, but in math
<zid> K&R were good at computers
<sham1> And it certainly was not a committee
<zid> the computers just sucked
<mjg> there is tons of names there apart from richie and thomposon
<mjg> remember blasteR?
<mjg> :]
<mjg> great job bill
<mjg> virus kind enough to just shutdown your computer instead of fucking you up
<mjg> i know for a fact the bug at hand was present at least since win 2000, since blaster ran against it would accidentaly fuck up networking
<sham1> Also, I'm looking at the musl implementation of memcpy. It's absolutely disgusting
<mjg> it is
<mjg> but i ranted several times about it
<heat> do you know of the freebsd UAF on ipv6 setsockopt?
<mjg> no
<mjg> is that the ps5 thing?
<heat> there's a CVE out there(i'll find it later) that was used to pwn the ps4
<mjg> oh 4
<heat> then they fixed it on the ps4
<heat> but the ps5 came out
<heat> and it was vulnerable because they didn't patch it there
<mjg> gj sony
<heat> so they pwn'd it again
<zid> haha
<sham1> I think Sony might be into masochism
<mjg> must be different interns in charge of security
<zid> one of the pseses was donein by the normal swapgs bug wasn't it
<bslsk05> ​nvd.nist.gov: NVD - CVE-2020-7457
<zid> push ss or whatever is my favourite exploit
<mjg> re https://i.imgur.com/rG0p0b2.gif i'm surprised it was tsable enough to not crash :S
<zid> ikr
<zid> not a single bluescreen in over 20 seconds of use, amazing
<mjg> ye way to go bill
<mjg> making strides
<mjg> my first time using windows 95 it just fucked itself up and stopped booting
<zid> I ran 98se for a long time
<zid> lots of reboots and reinstalls
<zid> it's just now getting to the point where you can *mostly* get away with not having to reinstall windows every 6 months
<mjg> oh ye man reinstalling windows was a routine activity
<sham1> Clearly Steve Ballmer going on stage to chant about developers helped
<sham1> Eventually
<heat> i had 95 or 98 or wtv as a kid and I don't remember it being that unstable
<zid> I mean, switching to NT for desktop is what really did it
<mjg> sham1: he had the time to do it because windows was reinstalling
<bslsk05> ​'Rick James - Cocaine Is A Hell Of A Drug' by FlipMy WigBaby (00:00:10)
<zid> heat: DOS programs crashing would just shit all over things and bring windows down with it
<zid> that's why NT had ntvdm
<mjg> heat: dude it was bad to the point where journalists would make claims in the lines of "well you are putting a lot of strain on the system, n programs opened, i think it is only expected it crashes at some point"
<zid> plus the drivers were all crap
<mjg> mind-fucking-boggling
<zid> software was crashier in general, and crashy software would crash windows, memory protection is for noobs
<mjg> dude
<mjg> just the blue screen
<mjg> and press esc or whatever the fuck to continue anyway
<zid> plus none of the edge cases had nice handlers, oom? that's a bsod.
<zid> bit like my OS, if(thing_I_haven't_written) bug();
<mjg> in their defense, they were given a total turd task to accomplish
<mjg> binary compat with dos, including drivers
<mjg> and all the dos stuff was idiotic on top of what dos was already doing
<mjg> see oldnewthing blog for examples
<mjg> the switch to an nt-based system on desktop was only possible because the hardware which only had dos drivers mostly aged out of relevancy
<zid> xp64 is life
<zid> can we all go back to xp64
<sham1> 64 bit DOS
<zid> people keep building things for w10 and it's annoying, I keep having to patch out calls to some dpi function that w7 doesn't have
<zid> but it works fine otherwise
<sham1> 16 exabytes ought to be enough for anyone
<mjg> huh
<mjg> what are the realities of using windows today?
<zid> if you want to do anything
<zid> be prepared to navigate a stack of 10 UIs, each with a totally different UI toolkit
<heat> modern windows is super stable
<zid> until you get to the NT gui
<zid> where you can actually change it
<heat> also modern windows SUCKS on mechanical drives
<heat> it's a nightmare experience
<zid> not even joking ^
<zid> you can just click buttons and get 10 different toolkits onscreen, but none of them do anything except win32 and mmc
<heat> nah you're being picky
<zid> they just have a properties button that opens the previous toolkit's window, repeat until mmc
<heat> the "xbox one", 10s and 8 are the same
<mjg> i tried windows 10 in a vm, it was dog slow
<heat> that's also not aero
<mjg> and felt like a port from a tablet
<heat> mjg, did you passthrough a gpu?
<zid> I'm resisting 'upgrading' to w10/w11 as hard as I can
<mjg> but then again, this is an old laptop
<mjg> heat: no
<mjg> heat: i did install vbox drivers though afair
<heat> i find GUI vms to be completely unusable without that
<zid> cus I'm going to have to relearn where all my UI elements are, and everything will be slower
<mjg> heat: xp was fine
<heat> even virtio doesn't work well
<heat> right, i mean modernish shit
<zid> xp doesn't use composited graphics
<heat> ubuntu too
<zid> it uses dirty rectangle software rendering stuff
<zid> once you get to dwm it's done on the gpu
<heat> all my real uses of VMs involve ssh
<mjg> i had a vm to play chessmaster
<mjg> not recommended
<heat> chessmaster?
<heat> more like cringemaster
<mjg> i see a checkers player
<mjg> no disrespect
kindofwonderful has joined #osdev
<kindofwonderful> Operating System Development
<kindofwonderful> I wish
<heat> mjg, i tryhard-played chess for like half a year, and realized it destroyed my happiness and mental health
<heat> so i stopped
<heat> fuck that game
<heat> it's very easy to lichess yourself into tilt
xenos1984 has quit [Ping timeout: 260 seconds]
<kindofwonderful> heat: sounds like me with programming
xenos1984 has joined #osdev
<mjg> heat: lul man
<mjg> heat: ' why you don't play but instead do puzzles
<heat> puzzles were fun but puzzles make me want to play the game
<mjg> i'll be honest. i played a lot when i could not be fucked to do my joib
<mjg> when i get back on track i could not be arsed to play
<mjg> :S
<kindofwonderful> you guys want to be smart /
<kindofwonderful> ?
masoudd has joined #osdev
<zid> You can smash me if you like
<zid> I know how the pieces move but won't beat you
<kindofwonderful> zid you talking to me ?
<heat> wanna smash 👀
<kindofwonderful> can i smash ?
<kindofwonderful> heat am i on ignore ?
<zid> drop me a lilink if you wanna smash
<sham1> *honk*
<sham1> *bonk even*
<heat> honk
<kindofwonderful> now im being ignored in #osdev
<sham1> Are you though
<kindofwonderful> the question is am i being ignored or /ignore'd ?
xenos1984 has quit [Ping timeout: 264 seconds]
Bonstra has joined #osdev
masoudd has quit [Quit: Leaving]
kindofwonderful has quit [Quit: WeeChat 3.6]
xenos1984 has joined #osdev
axis9 has quit [Quit: joins libera]
axis9 has joined #osdev
heat has quit [Ping timeout: 250 seconds]
sonny has joined #osdev
sonny has left #osdev [#osdev]
rurtty has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
justVain is now known as justache
MiningMarsh has joined #osdev
rurtty has quit [Ping timeout: 250 seconds]
<mjg> hm... now i genuinely wonder if all that nt stuff is a win on real i386
<mjg> curious if anyone with the actual hw (say pentium 3 or later) would be willing to test
<mjg> would say boot an era appropriate linux and flip clear page around
<mjg> quite a bit of effort for a curiosity, but in line with the channel for sure :-P
<mjg> i can provide a patch
SGautam has joined #osdev
<zid> 'is a win' in what respect?
<mjg> faster?
<zid> depends on the code ofc
<mjg> realistically i doubt there will be a difference in total real time in anything non-microbenchmarky
<mjg> but something like cache misss count in the vnerable kernel build test would be a start
poyking16 has joined #osdev
<geist> hmm, what is the NT stuff you're talkinga bout?
<mjg> non-termporal stoers
<mjg> for page zeroing
<geist> oh oh
<geist> for some reason i was thinking of another bit but thismakes more sense
<geist> and then i also read i386 as literally a 80386
<geist> and then was a bit confuse
<Griwes> non temporal stores always remind me of that one case where our perf people measured copies to a remote NUMA domain as being faster than ones to the local NUMA domain, it was kinda wild
<mrvn> mjg: we had NT at university with 16MB ram. The login screen was swapping.
<mrvn> mjg: non-temporal stores hugely depend on what you do next. If the code then just accesses the page all your NT just wasted priming the cache.
<mrvn> mjg: non-temporal stores seems to be something you want to do on free() but not on malloc(), memcpy(), read()
<mrvn> copy-to-user
<mjg> so anyone got pentium 3 or 4 and can be arsed to test?
<geist> maybe.... any particular os requirements?
<mjg> best case scenario freebsd from the era, it would be 4.10 most likely. but if you have any other unixy os in place, including linux, that's all great provided it is era-appropriate
<mjg> and not a "yep can't run this for shit now"
<mjg> :)
<mjg> i guess one extra requirement is the ability to count cache misses. i don't know how one would do it with linux at the time (oprofile?)
* geist nods
<geist> might be fun to toss together a freebsd 4.11 install. haven't done that in a while
<geist> what a good vintage freebsd
<mjg> :)
<mjg> ye
<mjg> my high school
<mjg> oh shit
<mjg> The pmcstat utility first appeared in FreeBSD 6.0. It is currently under
<mjg> development.
<geist> yah my main server box was freebsd 4 until i guess about 2006 or so
<geist> anyway i do have a dual p3 500 and a p4 1.8 HT
<mjg> you gonne have to roll with 6.0 or later
<mjg> i would say latest 6 is best bet, that would be 6.4
<Ermine> Are w95 passwords hashed?
<Ermine> nvmd
<geist> probably poorly
<mjg> Emil: salt is DEVELOPERS
<geist> oh no you tagged the wrong person! wet noodle time on mjg
<mjg> ops!
<mjg> geist: anyway i'm looking for the 6.4 iso
<mjg> actually do you have any means to burn it ? :)
<geist> of course
<mjg> minimal install should do the trick
<geist> also i think i physically have the rela box. i used to actually still get the physical ones on a subscription up until about then, iirc
<geist> i like em, they look nice on the shelf
<geist> they switched from jewel cases to these DVD style cases around 5.x or so and i didn't like them as well
<geist> sham1: DEVELOPERS
* mjg claps
<sham1> YES
<geist> though as much as folks make fun of that vid, they did have a pretty good point
<geist> topic being DEVELOPERS
<sham1> geist: yeah, they did
<sham1> It's still funny
<geist> developers.
<mjg> now i'm pretty sure he was speaking in caps
<geist> Dé√êLøpë®ß
<mjg> genz vibes
<mjg> are you maintaining osdev on tiktok or something
<sham1> osdev tiktok would be absolutely terrifying
<geist> more like i'm typing on a mac keyboard and it's pretty gøød for getting to random characters
<mjg> :poopemoji:
<sham1> 💩
<sham1> Ye brought this unto yourself
<mjg> joke is on you, my terminal does not show it
<geist> oh no are we a discord channel now?
<mjg> is this what's going on in the discord variant? :)
<geist> oh i shouldn't rip on it, i'm sure there are good people there
<geist> but the month or so i tried to hang out on there it was... not as focused
<mjg> ok, real talk, i'm gonna have a patch to switch up the zeroing method at runtime in 10 minutes
<mjg> compile tested for the 6.4 kernel
<geist> and i ruffled some feathers by having an opinion on smoething, and so i slipped away. drama was always just around the corner
<mjg> no pressure though :-P
<mjg> when do you think you cna get around to testing this
<geist> yah might fiddle with in a bit
<mjg> will sort it out while i'm in the mood
<geist> haven't fireud up the P4 in a while. it's a cute little Shuttle box, circa 2001
<geist> first P4
<mjg> 2001?
<mjg> what ram do you have there
<mjg> is that the rim stuff?
<mjg> (is that the name?)
<geist> rdram. hmm good question!
axis9 has quit [Ping timeout: 248 seconds]
<geist> it was momentarily my main machine but the performace wasn't fantastic so i switched to an athlon xp i think pretty quickly
<geist> but it was a nice little box. Shuttle had good machines then
<geist> maybe still does
<mjg> waita, do you have an amd box frm the era as well?
<geist> i unforunately dont. aside from an am486 that was a good 10 years prior
<geist> i managed to keep a P3 500 from 1999, because i have good memories of that bo, and then the P4 i stil have around because i had loaned it to my dad for like 15 years
<geist> but otherwise i had generally purged x86 machines i owned in the mid 2000s
<geist> from about 2003 to about 2008 i was mostly PPC based anyway, which i still generally have, and then got back into x86 via an AMD phenom, then switched to intel in 2011 with a sandy bridge
<mjg> i wish i kept my t30 laptop in better shape
<zid> (sandy is lif)
<mjg> best single purchase i ever made
<geist> i did have some random low end x86 boxes for osdev or whatnot though. atoms, core 2s, etc
<geist> but not 'main class' machines
GeDaMo has quit [Quit: Physics -> Chemistry -> Biology -> Intelligence -> ???]
<mjg> i remember doing an experiment once building an old kernel
<mjg> i naively assumed the build will be done in literally seconds
axis9 has joined #osdev
<mjg> for reference, top of main dev branch builds the kernel -j 104 in ~32 seconds
<mjg> the old stuff takes minutes because it is largely single-threaded
<mjg> wait what the actual fuck
<mjg> i686_pagezero is... something
<mjg> well strictly speaking i don't know for sure it is bad, not really i386 person
<mjg> but it does look anything but sensible
<geist> actually turns out i precisely have the 6.4 cd set
<mjg> geist: sysctl debug.pagezero_style=0/1/2
<geist> just dug out my old freebsd cds and put them on the shelf
<mjg> can't be a coincidence, can it
<geist> i have most of the cd sets from the late 4.x era through about 7.1 it seems
<mjg> you can build and install the kernel with: make kernel
<geist> i remember there was some reason i stopped the subscription, probably just wasn't really using freebsd at the time
<mjg> now the real question mark is pmcstat. i have no idea if it is going to work
<mjg> kldload hwpmc
<mjg> pmcstat -L
<mjg> for starters
<mrvn> mjg: do those old CPUs even have the register to count cache misses?
srjek has joined #osdev
knusbaum has quit [Ping timeout: 250 seconds]
<mrvn> 1kg Lasange, heaven.
<klys> nom.
<sham1> Sounds good
knusbaum has joined #osdev
netbsduser has quit [Remote host closed the connection]
<mxshift> mjg: non-temporal stores were a definite win for bzero on Woodcrest. I vaguely recall them being less important on desktop versions (Conroe) from the same era.
<clever> mxshift: i lost the details, but i saw something on arm, about how writing 0 to an address is special, and it can store more of those in the write queue
<clever> because it can just not allocate space to the data
<mxshift> mrvn: NetBurst cores definitely do. P3 has counters but I don't recall what events are available
<mxshift> clever: yup, that was a thing for a while. Not sure if it still matters on v8-A cores
<clever> i can also see how a block of contiguous zeros could in theory just allow infinite size
<clever> just store it as a start+end addr
<mxshift> with woodcrest, I recall NT stores being useful on 2S systems because it avoided some aspects of the coherency protocol and bus locking which was _expensive_ on FSB
<clever> and atomically update as you do more writes
<clever> and as they get commited
<mxshift> but that was also 18 years ago
xenos1984 has quit [Read error: Connection reset by peer]
<clever> but you may want to set some bounds on it, so you dont wind up with 1gig of pending writes
<clever> and then a surprise huge stall when you hit a barrier
thaumavorio has quit [Quit: ZNC 1.8.2 - https://znc.in]
thaumavorio has joined #osdev
xenos1984 has joined #osdev
elastic_dog has quit [Ping timeout: 246 seconds]
elastic_dog has joined #osdev
carbonfiber has quit [Quit: Connection closed for inactivity]
nur has quit [Remote host closed the connection]
SpikeHeron has quit [Quit: WeeChat 3.7]
janemba has quit [Ping timeout: 250 seconds]
SGautam has quit [Quit: Connection closed for inactivity]
janemba has joined #osdev
LostFrog has joined #osdev
dude12312414 has quit [Remote host closed the connection]
PapaFrog has quit [Ping timeout: 260 seconds]
axis9 has quit [Read error: Connection reset by peer]
axis9 has joined #osdev
SpikeHeron has joined #osdev
poyking16 has quit [Quit: WeeChat 3.5]
<geist> been going down memory lane here doing a freebsd install on this old machine
<geist> yay how long it takes to install from a 4 cd set
<zid> got you a 52x cd at least?
<geist> yah, but you know seeking around reading in files is pretty slow
<zid> Imagine trying it on a 1x :D
<geist> though depending on the order it reads em, etc it may or may not get a long run of no cd access
<zid> playstation at least has a 2x, I wonder if 1x only drives even exist tbh
<geist> yeah i had one back in the day. was an early mitsumi drive for a 386
<geist> had it's own card, etc. early drives were definitely 1x
<zid> 1x because the mechacon couldn't handle it, or because the chips to support the 2x data-rate cost a dollar more though I wonder
<geist> and it wasn't until fairly late that cdrom drives started doing the single RPM mode and would just scale the bitrate based on where it was on the disc
<geist> vs having to keep changig the speed as it seeked around
<zid> CLV vs CAV or whatever
<geist> yah
wootehfoot has quit [Read error: Connection reset by peer]
<geist> finally got it all installed and working. had to futz with grub on linux a bit (already h ave an ubuntu 18.04 image on the machine)
<geist> grub for whatever reason wasn't properly detecting freebsd on a second partition, so had to manually add a chainloader entry, etc
srjek|home has joined #osdev
<geist> been a while since i fiddled with that, usually update-grub just finds it
<geist> but gotta do some errands first
<geist> probably wont be till night till i can run your thing zid
<geist> er mjg
srjek has quit [Ping timeout: 252 seconds]
srjek_ has joined #osdev
srjek|home has quit [Ping timeout: 268 seconds]