heat has quit [Read error: Connection reset by peer]
heat__ has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
eddof13 has quit [Quit: eddof13]
lg has quit [Ping timeout: 264 seconds]
agent314 is now known as wow_rust
wow_rust is now known as agent314
[itchyjunk] has quit [Remote host closed the connection]
[_] has joined #osdev
pebble has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
lg has joined #osdev
<gorgonical>
Am I doing something wrong if my cross-compiled musl ld.so has a loadable segment at 0x0 vaddr?
<Mutabah>
I think that indicates a relocatable object?
<Mutabah>
i.e. your loader should pick a location...
<gorgonical>
No but the ld.so itself
<gorgonical>
Yeah typically it indicates pic/pie but what about in the case of the loader itself? glibc shows the first program header at 0x40 vaddr, but musl's is at 0x0
agent314 has quit [Remote host closed the connection]
<zid`>
I got whammed :(
<zid`>
a non-pie ld.so would be funner to use
<zid`>
"Nope, it's where your executable is already loader, get rekt nerd"
<zid`>
loaded*
pebble has quit []
heat__ has quit [Remote host closed the connection]
goliath has quit [Quit: SIGSEGV]
heat has joined #osdev
gorgonical has quit [Ping timeout: 276 seconds]
skipwich has quit [Quit: DISCONNECT]
skipwich has joined #osdev
edr has quit [Quit: Leaving]
srjek|home has quit [Ping timeout: 276 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
Arthuria has joined #osdev
heat has quit [Ping timeout: 256 seconds]
sbalmos has quit [Ping timeout: 255 seconds]
sbalmos has joined #osdev
vdamewood has joined #osdev
[_] has quit [Remote host closed the connection]
[_] has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<klange>
my ld.so is non-pie; loads to a fixed 0x3f000000 because reasons
<bslsk05>
gunkies.org: 4.3 BSD Quasijarus - Computer History Wiki
<heat>
damn right, i am not trustworthy
<geist>
but turns out it hasn't been maintained in over 15 years and the creator guy was kinda a pain in the ass
<geist>
so i've given up
<heat>
>A lot of people don't like -Reno as its embracing of POSIX is rather treasonous to the BSD ideal
<heat>
LOL
<geist>
right, that's apparently the real deal with it: it's a fork before -Reno
<geist>
but it was effectively the last 4BSD that explicitly was maintained on vax i think
<geist>
but the next thing that raelly works well on vax is like netbsd 1.2+
<geist>
so i think something like 1.6.2 is a nice compromose. still fairly simple (no SMP, gcc 2.x)
<heat>
4.4 also works on the vax?
<heat>
oh, maintained
<heat>
yeah but no one needs that
<geist>
i think by then it was very long in the tooth
<heat>
what if you ported linux to the VAX
<geist>
you know i was getting a bit sad just reading the patch notes for early netbsd (late 90s, early 2000s)
<heat>
i've legitimately thought about re-porting linux to riscv just to retrace their steps
<geist>
that was exactly when i was graduating college, and there was *so much work* to do
<heat>
i suspect it's Not That Hard
<geist>
stuff that reasonable folks like us could have done
<heat>
yeah
<geist>
now... everything is so big the only thing we can do is toil writing our own little oses
<heat>
now they all go on about crap like CXL and DOZ IT SCALE ON 500 CPUS
<geist>
or fixate on one super tiny detail and try to shave off some performance
dude12312414 has joined #osdev
<heat>
huh, netbsd had an ntfs driver in 1999
<geist>
sure. actually that's exactly when i wrote an NTFS driver for BeOS
<geist>
my first real experience with kernel hackery
<heat>
i'll never understand how ntfs is the one filesystem no one has ever managed to get really stable support for
<heat>
it doesn't seem that complicated
<heat>
sure, it's was undocumented, but you had like, 20 years
dude12312414 has quit [Client Quit]
<geist>
i duno i thought linux had fairly stable support
<heat>
yeah but that was all FUSE
<heat>
ntfs-3g that is.
<heat>
the in-kernel ntfs driver was a mess (also RO I think)
<geist>
which then begs the question: why does doing it with FUSE make it easier? is the code written differently such that it can't be put in the kernel? or does FUSE serialize things in a way that make it much easier to implement?
<geist>
or maybe the fuse implementation is BSD?
<geist>
well, not GPL
<heat>
good question, I don't know
<heat>
i don't think it's a licensing problem, cuz linux has MIT code all over, and AFAIK in theory you can relicense BSD to GPL
<geist>
it does remind me, there's an ODS-2 filesystem driver for linux that i have to try some day
<geist>
otherwise there's really nothing out there that can mount or even inspect a disk image
<geist>
but it's an external module
<geist>
i dont think it's particularly complicated, sort of a proto-NTFS
<heat>
damn you dave cutler
<heat>
maybe the openvms troll was dave cutler
<geist>
did you wtch the dave cutler interview the other day? it's pretty good
<heat>
yeah i watched some good chunks of it
<heat>
the dave guy has a new interview with raymond chen
<geist>
yeah i was thinking of watching that
<geist>
my main complaint is the dave guy doesn't really know that much about that old stuff
<geist>
he's like 'whats a computer mr cutler? i dont know anything but windows'
<geist>
i follow his channel and he seems interested in lots of stuff, some old retro bits, but sort of only on the surface as far as he can tell
<heat>
and he's apparently also a scammer
<geist>
more like 'look at how old this is!'
<geist>
vs like truly understanding some old thing, what the engineers were thinking, what it was for, what it was good at, etc
<heat>
also i get really pissed at his really biased linux takes
<geist>
yah
<geist>
honestly an old thing like a vax or an 8 bit atari, etc the thing itself to me is a curiosity, but more of a catalyst to go dig into the details and the details are the fun part
<geist>
including the human aspect of it
<geist>
and trying to use some thing the way people did at the time is interesting, it's a sort of forced nostalgia for something you never experienced in the first place
<geist>
maybe it all plays out in my head as i get older as a way to reject all the new complicated stuff i also do
<bslsk05>
'Altair 680 with High Speed Reader/Punch, Part 1' by deramp5113 (00:26:33)
<geist>
he has an infinite supply of these vids about using some old esoteric monitor or DOS on a variety of 8 bit machines
<geist>
including (like this one) goig in and patching the editor manually to fix bugs
<geist>
funny on my other serial 'terminal' (other than the vt320) i have a little dedicated computer running cool-retro-term on an old 19" LCD with a type M usb keyboard to have a somewhat authentic experience
<heat>
i don't get the "system" thing but i guess it probably makes sense on VMS's design
<heat>
windows, as a good VMS clone, also has SYSTEM
<geist>
think of it this way: there's no root user, so to get some sort of equivalent, you need a set of permissions to get the same thing
<geist>
there's a medly of SYSTEM users, though there's also a SYSTEM user, which in this case intrinsically matches the SYSTEM set of permissions because its' UID is low
<geist>
but basically that means because you're a system user (ie low UID) that doesn't intrinnsically get you read/write to everything in the FS, it's ust another permission bit
<geist>
in NT there's a SYSTEM acl too
<heat>
does that mean you can deny SYSTEM access in VMS?
<geist>
but then there's an overriding set of permissions that a user *could* have, like READALL that you'd assign to some BACKUP user in the system
<heat>
access to a dir or file or something
<geist>
yah
<heat>
dang
<heat>
so how are you supposed to manage a multi-user system?
<geist>
but then of course a system user could have the "BYPASS: user implicitly has RWED access to all files, regardless of file protection" priviledge
<heat>
oh
<geist>
i guess the point is there's a more complicated set of priviledges and whatnot that you could split across multiple accounts, whic i think was the general idea
<geist>
vs having a single ROOT
<geist>
i think the canonical equivalent would be something like OPERATOR account or whatnot, which may be used by the sysadmin but doesn't intrinsically have read priviledges to everything in the system
<geist>
but could create new accounts, etc
<geist>
but thebn later on they layered some sort of ACL system on top of it, which i dont know how that precisely layers with these older bits they describe in wikipedia. that's basically also how NT works AFAIK
<geist>
since they have the old school read/write bits from DOS and then a sest of ACLs that's more modern
<geist>
i dont know precisely how the two stack, which one has more permission than the other
Arthuria has joined #osdev
<heat>
does ntfs have that?
mkwrz has joined #osdev
<zid`>
The ever-dilemma of "should I make a complicated group to handle this" or "fuck it, do it as root"
<blockhead>
you could compromise and do it as root in a complicated way
<geist>
heat: yeah
<geist>
NTFS has always had ACLs from day one, but i think over the years they added this notion of inheriting ACLs from parent directories and whatnot, which make it somewhat complicated to envision
mkwrz has quit [Ping timeout: 246 seconds]
<geist>
also NTFS refers to user ids and groups and whatnot by UUID, so that's why if you ever mount a NTFS drive from another machine a lot of times the permissions dont make sense
<geist>
it'll be for UUIDs that are unknown
<geist>
i think some of the users are intrinsic, like SYSTEM, or whatnot? maybe they use a fixed UUID? haven't really looked into it closely
Arthuria has quit [Ping timeout: 256 seconds]
Arthuria has joined #osdev
<heat>
user ids are GUIDs???
<geist>
yah pretty sure
<geist>
NT is very GUID centric
<heat>
it's like they enjoy pain
<geist>
i dunno, fits in a vector!
<mjg>
oh?
<mjg>
i know pids are pids
<mjg>
:X
<mjg>
as in just ints
<geist>
well, to be fair, it's just 128 bits. 20 years ago that was OMG 4 words! but now it's ust two words
<mjg>
:)
<mjg>
did it make sense though?
<geist>
ilke, passing around a uuid and comparing it is really no big deal
* geist
shrugs
<mjg>
(it very well might have, not judging)
<geist>
presumably they were thinking about user ids across a whole organization being unique, and so you could have thousands at least
<geist>
not that you couldn't fit that in a 32bit int, obviously, but then i guess with a uuid there's almost no chance of collision
exit70 has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
<mjg>
i thought some of the selling point was centralized management of this stuff
<heat>
UUIDs are not necessarily unique unless you make sure of it
<geist>
right, and so having the local OS treat their user ids and whatnot as the same scope as the overall management i guess makes sense
<geist>
also shared file systems, etc
<heat>
v4 ids are completely random, so in that case it's /probably/ random
<mjg>
in this context i would assume you would have ids from "domain controller" or whatever the fuck name
exit70 has joined #osdev
<heat>
but then you have a bunch of versions that use your mac address and time, and those guarantee some uniqueness as long as no one in the same machine is generating a UUID
<heat>
proper creation of those needs a daemon
<mjg>
but ultimately i'm mostly clueless about windows
* mjg
is a proud linux ricer since 2004
<geist>
yah domain controller
zxrom has joined #osdev
<geist>
i guess it's not much different than having some sort of kerberos system in the unix world too
<geist>
which then ends up mapping everything to some 32 or 64bit uid
<heat>
domain controller sounds so enterprise OOP i'm about to go into a coma
<mjg>
windows is enterprise and oop
<mjg>
you seen that interview with cutler
<mjg>
i loved the part where he said people wanted windows port to 64 bit in production
<mjg>
because the webserver was leaking memory and it took longer to crash
<mjg>
:d
exit70 has quit [Client Quit]
<heat>
lol
<heat>
yeha i remember that bit
<heat>
the microsoft.com people wanted that
<mjg>
ya
<geist>
yep. i remember working on some project using IIS in like 1998. we had to reboot the server every night because it'd eventually leak
<mjg>
enterprise innit
<heat>
not quite!
<geist>
but i think at the time that was the idea: you bought a pile of cheap x86 machines and just rebooted half of them every night
<mjg>
geist: i had one windows 2000 as a sysadmin once
<mjg>
something wa fucked there, it would take 10+ minutes to boot
<heat>
a proper enterprise OOP system would never leak memory because it's all GC'd
<geist>
which was kinda ahead of its time when you think about it, because now it's all CLOUD
<geist>
vs the at the time notion of you buying an expensive as fuuuuck machine and running it 5 nines
<heat>
buying a SPARC
<heat>
only hardcore performance lovers had a SPARC SOLARIS system
<mjg>
while yoloing was forward thinking, i don't know if i would describe it like that
<geist>
yeah it wans't really forward thinking
<geist>
it just ended up being the direction things sort of went in in a different way
<geist>
really it was the rise of cheap ass x86 machines
<geist>
and the death of expensive workstations/server class hardware
<heat>
these days you're on T E H C L O U D
<mjg>
the funny bit is that a today's lol programmer would be pretty considered above average
<heat>
or, better, T E H E D G E
<mjg>
at the time
<mjg>
bro i run my production from staging
<mjg>
environment
<geist>
bruh!
roper has quit [Quit: leaving]
<heat>
staging is what NOOBS use
<heat>
commit straight to prod
<heat>
master is prod, HEAD is prod
<heat>
prod is prod
<heat>
prod
<mjg>
here is an enterprise trick
<mjg>
you create 2 similarly named branches
<mjg>
say dev and devel
<geist>
dev and _dev
<mjg>
one of which is experimental
<mjg>
then you have people guess
<heat>
subscribe to Mateusz's garage for more software engineering tips and tricks
<heat>
Next Video: Solaris vs Linux (BOTH PESSIMAL?!?!)
<mjg>
Speed up Solaris with ONE WEIRD TRICK (gone WRONG?)
<geist>
i'm just tring to get you to dive in and start hacking on VMS
<geist>
well, agreed. i'm saying that's the sort of party line though
<geist>
having the whole crate system be so easy to use, etc etc
<CompanionCube>
geist: funny you mentioned kerberos, since that's one of the things it uses
<heat>
yeah but programming language party lines are stupid
<heat>
the C++ party lines are 1) hilarious 2) completely different, depending on who you ask
<heat>
the C party line is just a grumpy 60 year old saying "don't touch my language"
<heat>
mjg, also tbf even io_uring spawns threads, just in the kernel side
<heat>
also THE MIGHTY POSIX AIO
<clever>
heat: i would have assumed io_uring would just be more ike epoll, where there can be many things that wake one thread, and the kernel remembers which ones
<heat>
wake what thread?
<clever>
rather then spawning kernel side threads, just have a single thread that sleeps until an event comes in
<clever>
but then i just remembered,io_uring, doesnt really involve blocking syscalls....
<clever>
so that would more need to write into an arbitrary userland memory, when events anywhere occur....
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<heat>
but that's slow
<clever>
yeah, i can see the issue now
mkwrz has joined #osdev
<heat>
ideally you probably want as many threads as IO submission queues for the device you're dealing with
<heat>
for optimally async io
<clever>
another thing i was thinking about, was zero-copy io
<clever>
for some things like disk io (and even some usb disk io), you can in theory just dma directly into a userland buffer, youll lose the ability to cache, but its very fast
<clever>
but for others like network io, the packets are arriving out of order, so you dont know where to write, until after youve parsed
Arthuria has quit [Ping timeout: 260 seconds]
mkwrz has quit [Ping timeout: 268 seconds]
Arthuria has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]