|
Nomnom Cookie posted:they should be randomized at boot specifically to gently caress with people who think theyre hardcore and don't want microsoft interfering with their god given right to assemble whatever horrible mess of SYSCALL instructions they desire into an exe I bet you could trick the openbsd people into doing this considering they already re-link the whole loving kernel with a different layout on every boot, because in-memory kernel ASLR wasn't enough
|
# ? Feb 18, 2024 05:30 |
|
|
# ? May 24, 2024 05:19 |
|
Kazinsal posted:I bet you could trick the openbsd people into doing this considering they already re-link the whole loving kernel with a different layout on every boot, because in-memory kernel ASLR wasn't enough someone just wanted an excuse to run a linker in an initrd
|
# ? Feb 18, 2024 05:38 |
|
Nomnom Cookie posted:someone just wanted an excuse to run a linker in an initrd Turns out there isn't all that much difference between a linker and a loader.
|
# ? Feb 18, 2024 06:34 |
|
Nomnom Cookie posted:they should be randomized at boot specifically to gently caress with people who think theyre hardcore and don't want microsoft interfering with their god given right to assemble whatever horrible mess of SYSCALL instructions they desire into an exe this will lead to some programs relying on the randomness of syscalls
|
# ? Feb 18, 2024 17:36 |
|
Wheany posted:this will lead to some programs relying on the randomness of syscalls dare you play... syscall roulette?
|
# ? Feb 18, 2024 17:48 |
|
they randomly select whether they’re going to randomize the syscalls, checkmate
|
# ? Feb 18, 2024 17:52 |
|
evil cryptography lib implementers discovering syscalls are randomized: "it's free
|
# ? Feb 18, 2024 18:06 |
|
lol
|
# ? Feb 18, 2024 18:55 |
|
Subjunctive posted:macOS puts the stable kernel ABI in user space too, I believe. you have to use the stdlib, there’s no supported direct syscall interface correct, system calls are implemented via libsyscall.dylib, which has allowed for things like switching to 64-bit offset and inode types and so on
|
# ? Feb 18, 2024 20:09 |
|
pokeyman posted:didn't the go team have to figure that out the hard way about macos they also had to figure out that maybe they should use the platform-supplied linker
|
# ? Feb 18, 2024 20:12 |
|
Visions of Valerie posted:Turns out there isn't all that much difference between a linker and a loader. load-time optimization
|
# ? Feb 19, 2024 20:36 |
|
I can get my load time down to about three minutes if I wait a week
|
# ? Feb 19, 2024 21:55 |
|
echinopsis posted:I can get my load time down to about three minutes if I wait a week
|
# ? Feb 20, 2024 02:56 |
|
eschaton posted:they also had to figure out that maybe they should use the platform-supplied linker rob pike wrote a linker* in 1994 for inferno and there's no way steve apples vanity project is more advanced than the successor to plan 9!!!! *for all i know he hasn't even done that and the golang arrogance being discussed is completely unjustified instead of mostly unjustified but i'm trying to be as charitable as i can
|
# ? Feb 20, 2024 05:38 |
|
Nomnom Cookie posted:rob pike wrote a linker* in 1994 for inferno and there's no way steve apples vanity project is more advanced than the successor to plan 9!!!! plan 9 is in the galaxy brain "static link everything" camp. So if Pike wrote that, no wonder futuristic dynamic linking confuses golang
|
# ? Feb 20, 2024 06:16 |
|
plan nein
|
# ? Feb 20, 2024 06:44 |
|
DELETE CASCADE posted:plan nein for no use case
|
# ? Feb 20, 2024 13:49 |
|
Visions of Valerie posted:plan 9 is in the galaxy brain "static link everything" camp. So if Pike wrote that, no wonder futuristic dynamic linking confuses golang static linking everything is correct and the only reason dynamic linking still exists is weird nerds who make hygiene arguments about it
|
# ? Feb 20, 2024 23:20 |
|
extremely normal and good things: the PLT, compat symbols, destroying all registers every time i touch a DSO, never inlining across library boundaries, distro mandated ABI breaks "kafka shaggar" gently caress you dont pigeonhole me like that. i'm everything shaggar
|
# ? Feb 20, 2024 23:47 |
|
you don't suck microsofts dick nearly enough to be everything shaggar (the canonical shaggar)
|
# ? Feb 20, 2024 23:54 |
|
"b-b-but what if a security vulnerability is discovered in openSSL again? am i going to have to recompile all my applications???"
|
# ? Feb 20, 2024 23:55 |
|
dynamic linking is so great they had to invent docker to deal with all of the problems that it causes
|
# ? Feb 21, 2024 00:32 |
|
docking huh
|
# ? Feb 21, 2024 00:34 |
|
Sapozhnik posted:dynamic linking is so great they had to invent docker to deal with all of the problems that it causes if dynamic linking were so bad, why would everyone dynamically link their applications over HTTP?
|
# ? Feb 21, 2024 02:16 |
|
dynamic linking is good within the context of a single application, but bad within the context of a whole system
|
# ? Feb 21, 2024 02:17 |
|
what
|
# ? Feb 21, 2024 02:19 |
|
its "gently caress you got mine" for programs, which is a contention i agree with mostly
|
# ? Feb 21, 2024 02:21 |
|
rjmccall posted:what for a single application it lets you control substitution of components as you decide is useful, and reduce the amount of code that’s processed as part of startup—it leads to game mods and clever LD_PRELOAD overrides in the context of a whole system it means that you get action at a distance and invasive, fragile dependencies—it leads to docker as a necessity if we’d had more RAM on Sun workstations in the 90s, we’d all still be happily statically linking everything, I’m certain
|
# ? Feb 21, 2024 02:26 |
|
runtime symbol resolution for me, but not for thee
|
# ? Feb 21, 2024 02:27 |
|
ABIs are better than APIs imo http based protocols can be considered a form of abi. basically if you want to define an interface then define an interface, don't drag a programming language and runtime into it too
|
# ? Feb 21, 2024 02:30 |
|
making an ABI without a programming language in mind seems like it’ll result in a system that sucks to use from all languages, instead of all-but-one languages
|
# ? Feb 21, 2024 02:33 |
|
worked pretty well for COM, registry stupidity notwithstanding. then they learned entirely the wrong lessons from it and made dotNET
|
# ? Feb 21, 2024 02:40 |
|
re: dynamic linking, I think the way macOS uses libsystem to abstract syscalls is fine, since it’s not really that different from having to fill a register and trigger an interrupt in terms of application-imposed weirdness (and for four-nines of people it’s further abstracted behind their language’s stdlib otherwise you need a super tight control on the combinations of libraries that can be present for any given application, and I think Apple is the only company who has successfully done that with a Unix-like (eschaton please put down your Lisp Machine centrefold). from early Solaris to today (and Solaris was the big mainstream server push into requiring dynamic linking, as I recall) it’s been a terrible arms race between app developers who want to test against a known version and distros/admins who install poo poo in weird places with oddly incompatible versions (“it’s a micro version, let’s go”—laughs in GTK and OpenSSL) this is why the best stable ABI for game developers on Linux to target is Win32 (where they’ve gone through a pile of SxS poo poo to try and make version coexistence possible, to moderate success only)
|
# ? Feb 21, 2024 02:43 |
|
Sapozhnik posted:worked pretty well for COM, registry stupidity notwithstanding. the registry stupidity is essential to COM, and there are so many systems that pay the COM dispatch overhead while depending so tightly on implementation characteristics behind IWhatever that you can’t actually substitute anything anyway IDispatch alone has killed a million souls
|
# ? Feb 21, 2024 02:44 |
|
IDispatch is some weird bad thing that doesn't matter outside of vbscript and maybe excel VBA though? Even vb6 can perform native com method calls just fine and that's a regular virtual function call
|
# ? Feb 21, 2024 02:56 |
|
yeah that’s true, but at one point people believed that Windows Scripting Host was going to be a thing…
|
# ? Feb 21, 2024 02:58 |
|
web devs are so used to wildly overprovisioned hardware that they write everything as thirty separate microservices that handle <1 request a second but can’t share a machine because they each sit around 40gb resident
|
# ? Feb 21, 2024 03:00 |
|
dynamic linking works great on operating systems designed by professionals
|
# ? Feb 21, 2024 03:46 |
|
Subjunctive posted:making an ABI without a programming language in mind seems like it’ll result in a system that sucks to use from all languages, instead of all-but-one languages good news, the C ABI already exists on your OS and if you're not targeting it you should be
|
# ? Feb 21, 2024 04:16 |
|
|
# ? May 24, 2024 05:19 |
|
Subjunctive posted:for a single application it lets you control substitution of components as you decide is useful, and reduce the amount of code that’s processed as part of startup—it leads to game mods and clever LD_PRELOAD overrides cl.exe has a whole command line option just for enabling hotpatching. its not like we cant have nice things with static binaries, its just the norm to not
|
# ? Feb 21, 2024 05:36 |