<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
<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
<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
<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>
'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
<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 ? :)
<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>
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
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