Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Kazinsal
Dec 13, 2011


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

Adbot
ADBOT LOVES YOU

Nomnom Cookie
Aug 30, 2009



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

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

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.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

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

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

Wheany posted:

this will lead to some programs relying on the randomness of syscalls

dare you play... syscall roulette?

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

they randomly select whether they’re going to randomize the syscalls, checkmate

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
evil cryptography lib implementers discovering syscalls are randomized:

"it's free real estate entropy!"

echinopsis
Apr 13, 2004

by Fluffdaddy
lol

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

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

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

pokeyman posted:

didn't the go team have to figure that out the hard way about macos

where by "hard" I mean they could've looked it up or asked, but instead just did whatever because they’re special

they also had to figure out that maybe they should use the platform-supplied linker

Nomnom Cookie
Aug 30, 2009



Visions of Valerie posted:

Turns out there isn't all that much difference between a linker and a loader.

load-time optimization :getin:

echinopsis
Apr 13, 2004

by Fluffdaddy
I can get my load time down to about three minutes if I wait a week

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

echinopsis posted:

I can get my load time down to about three minutes if I wait a week

:smugmrgw:

Nomnom Cookie
Aug 30, 2009



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

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

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!!!!

*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

plan 9 is in the galaxy brain "static link everything" camp. So if Pike wrote that, no wonder futuristic dynamic linking confuses golang

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003
plan nein

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man

for no use case

Nomnom Cookie
Aug 30, 2009



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

Nomnom Cookie
Aug 30, 2009



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

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
you don't suck microsofts dick nearly enough to be everything shaggar (the canonical shaggar)

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
"b-b-but what if a security vulnerability is discovered in openSSL again? am i going to have to recompile all my applications???"

Sapozhnik
Jan 2, 2005

Nap Ghost
dynamic linking is so great they had to invent docker to deal with all of the problems that it causes

echinopsis
Apr 13, 2004

by Fluffdaddy
docking huh

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

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?

:smug:

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

dynamic linking is good within the context of a single application, but bad within the context of a whole system

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
what

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
its "gently caress you got mine" for programs, which is a contention i agree with mostly

Subjunctive
Sep 12, 2006

✨sparkle and shine✨


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

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

runtime symbol resolution for me, but not for thee

Sapozhnik
Jan 2, 2005

Nap Ghost
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

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

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

Sapozhnik
Jan 2, 2005

Nap Ghost
worked pretty well for COM, registry stupidity notwithstanding.

then they learned entirely the wrong lessons from it and made dotNET

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

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)

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Sapozhnik posted:

worked pretty well for COM, registry stupidity notwithstanding.

then they learned entirely the wrong lessons from it and made dotNET

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

Sapozhnik
Jan 2, 2005

Nap Ghost
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

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

yeah that’s true, but at one point people believed that Windows Scripting Host was going to be a thing…

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
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

pseudorandom name
May 6, 2007

dynamic linking works great on operating systems designed by professionals

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

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

Adbot
ADBOT LOVES YOU

Nomnom Cookie
Aug 30, 2009



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

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply