https://stackoverflow.com/questions/33051108/how-to-get-around-the-linux-too-many-arguments-limit/33278482

> I have to pass 256Kb of text as an argument to the "aws sqs"

what, uhhh, what

> MAX_ARG_STRLEN is defined as 32 times the page size in linux/include/uapi/linux/binfmts.h:
> The default page size is 4 KB so you cannot pass arguments longer than 128 KB.
> I modified linux/include/uapi/linux/binfmts.h to #define MAX_ARG_STRLEN (PAGE_SIZE * 64), recompiled my kernel and now your code produces

casually patching the kernel to send a quarter megabyte as a *single* argument oh my god i'm laughing hard
@navi well in the early rust for Linux days we hit this limit with the passing kconfig options to rustc. Fun times

@kloenk @navi Back when 128 kB was the limit for argv+envp, Google was hitting it too because they passed all the configuration for their whole software stack on the command line as --long-option=value switches.

Their solution? Compress the command line. So every binary started by ungzipping argv[1] and parsing it to get the configuration.

The person explaining this to me saw my horrified face, and said with the perfect Hide The Pain Harold smile: "a series of individually completely rational and reasonable decisions led to this." and I have been thinking a lot about it since.

@ska @kloenk @navi have had to work with googlers on build tooling in depth maybe 5 years ago and this explains some things about how they work lmao

@hipsterelectron @kloenk @navi The main insight I've acquired about how Googlers think is that they're used to working at Google scale, which is only relevant in FAANG companies, but when you're at Google everything is designed to make you forget that the outside world exists and is important; so your mind gets used to thinking *always larger*.

If you're designing software for a single machine, or a rack of servers, Googlers won't really understand you and you'll talk right past each other. If it doesn't scale to thousands of machines (or even millions), it has no value to them.

@ska @hipsterelectron @navi depends. I know some of the kernel devs at google (e.g. working on binder). They also have mobile “sized” software
@kloenk @hipsterelectron @navi Well the Android team is different, that's for sure. I haven't had any interactions with them.
@ska @kloenk @hipsterelectron @navi I worked at GOOG for 14 years. One of my projects was writing code for an 8051 with 2K of EEPROM and 128 bytes of RAM. #NotAllGooglers 🤣
@davidlsparks @kloenk @hipsterelectron @navi I envy you, grats for landing that project! My domain expertise was a bright red neon sign flashing "Put this guy on Borg or on some embedded stuff", but they chose to put me in Web search instead. 🤷 At least I had a very formative and educational year surrounded with incredible people.
@ska @kloenk @hipsterelectron @navi I hear you. I was fortunate to be hired as an embedded with low power expertise. "There are dozens of us." 🤣