[HN Gopher] What the GNU?
       ___________________________________________________________________
        
       What the GNU?
        
       Author : nathell
       Score  : 90 points
       Date   : 2021-09-28 09:27 UTC (2 days ago)
        
 (HTM) web link (ariadnavigo.xyz)
 (TXT) w3m dump (ariadnavigo.xyz)
        
       | hdjjhhvvhga wrote:
       | These things were debated ad nauseam in the 90s, I started to
       | feel nostalgic. To me it seems like a semantic issue and,
       | fortunately, we are free people and can use either name.
       | 
       | As for the "horrible implementation" part... People nowadays
       | don't realize how it worked in practice. Many extensions, like in
       | GCC, appeared because people needed them (and at least in the
       | case of compilers they're clearly marked as such). Also, at the
       | time the GNU utilities were superior to native tools. Many
       | Solaris admins started by installing GNU tools to make the system
       | more usable, for example. If GNU was really so terrible, why
       | would they do that? It's very easy to criticize it now, but it
       | was a huge effort by thousands of people and I'm vert grateful to
       | all of them.
        
       | DonHopkins wrote:
       | "I'm a gnother gnu!"
       | 
       | https://www.youtube.com/watch?v=OPgo6s1lBbw
        
       | marcodiego wrote:
       | The article is unfairly bashing GNU. For example:
       | 
       | > OK, now have a look at the 120 lines long source of GNU yes.
       | And compare now that behemoth against the implementation in
       | OpenBSD, the one from sbase, or the one from busybox. Like... why
       | does GNU yes does so many memory operations for a task that is
       | implemented so easily by everyone else?
       | 
       | The answer can be seen here:
       | https://news.ycombinator.com/item?id=14542938
       | https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes...
       | 
       | But from the style of the author, it is clear that it is the case
       | of a knowledgeable well informed educated person. GNU clearly has
       | its problems, but badmouthing it like that is hard to differ from
       | malice.
        
         | akkartik wrote:
         | Does GNU yes _need_ such great performance, though? I 'm
         | curious to hear where it matters. Why would we need 10 billion
         | yeses a second, and why would 10 million yeses a second not be
         | good enough?
        
           | dfox wrote:
           | The selling point of various GNU userland tools and libraries
           | in the 80's was better performance, removal of obscure bugs
           | and limitations and then maybe some useful extensions.
           | 
           | Case in point is that most people have no idea of how POSIX
           | defines "text file" (ie. ends with \n, no line is longer than
           | LINE_MAX), and what happens when you inout something that
           | technically is not text file into POSIX utility that expects
           | text file is undefined. GNU tools do something sensible or at
           | least produce an meaningful error message, traditional Unix
           | userspace usually does not (lines get truncated, last line
           | sillently ignored, some buffer somewhere overflows and in
           | better case you get SIGSEGV...).
        
           | marcodiego wrote:
           | I don't know. And actually I don't care. A program that fits
           | in a single file with 120 lines of readable code is a price
           | I'm willing to pay for close to best possible performance.
           | 
           | But that is not why I commented. I commented because I wanted
           | to illustrate that the author questioned something that can
           | be easily answered with a simple google search. I'm sure the
           | author is qualified enough to answer the question, but
           | instead left in the post giving most readers a impression
           | that the complexity is there out of incompetence of GNU
           | developers.
           | 
           | EDIT: I should not assume you asked in bad faith, but as the
           | sibling commented. The answer to your question can be easily
           | found in the link I posted. Making your behavior strangely
           | similar to the author of the post: making questions that can
           | be easily answered while giving a bad impression of others.
           | Please, avoid that. It may work in many places but will fire
           | back at you sometimes.
        
             | akkartik wrote:
             | I don't find it so questionable to ask questions that the
             | right google search (out of an infinite number; we're not
             | all equally deeply immmersed in this stuff) can answer. But
             | if we disagree about that I guess I'll stop talking to you.
             | The actual question we're debating will have to wait. I've
             | had to deal with enough ornery people in my life who had
             | the answer like, right in their head but would still insist
             | on putting others through pain for it. These days I try to
             | foster a workplace where anybody struggling with a question
             | the person next to them knows the answer to is wasting the
             | team's time.
             | 
             | (Skills are not the same as factual knowledge here.)
        
               | marcodiego wrote:
               | Sorry for giving the wrong impression. My problem with
               | the question is not that it is easy to answer. The
               | problem is that it is easy to answer WHILE giving a bad
               | impression of others.
        
               | akkartik wrote:
               | I don't understand what you mean. Why can't we just
               | debate the question without speculating about motivations
               | of the people raising/answering the question?
        
               | marcodiego wrote:
               | I think I misread and misjudged you. I'm sincerely sorry
               | for that.
               | 
               | Maybe it is a sensible subject for me or I've been living
               | with people asking rhetorical redundant questions as a
               | passive agressive form for disqualifying others.
               | 
               | I read your question as: "I can't see any reason this
               | performance is needed, maybe it is really incompetence or
               | pedantism from GNU developers." But I think it is
               | prejudice on my part.
               | 
               | Sorry.
               | 
               | EDIT: grammar.
        
               | akkartik wrote:
               | Thank you! And yes, I admit you were partly right.
               | Questions often have some component of rhetorical
               | quality. It's not always yes/no on whether it's a
               | rhetorical question or not. But either way, I find (based
               | on experience teaching) that the best way to answer a
               | question is just by treating it as genuine. Past a point
               | if I decide someone's acting in bad faith I just
               | disengage.
               | 
               | Anyways, back to the original question, I do believe that
               | a lot of programmers (I don't buy OP's separation between
               | GNU and non-GNU) over-engineer things without regard to
               | the costs created by over-engineered code. My default
               | assumption is that that's happening in yes. If it's
               | happening in such a small program where it's so obvious,
               | the same tendencies are likely to be at work in more
               | complex programs like cat and awk and cc. Happy to debate
               | that :)
        
               | marcodiego wrote:
               | Debating that... I think
               | https://news.ycombinator.com/item?id=14543640 is more
               | plausible.
        
               | akkartik wrote:
               | Thanks! Glad you didn't think I was in bad faith after
               | the semi-rhetorical question and disengage.
               | 
               | That whole thread makes me sad. Another, more subtle way
               | IP is ruining the world. But that's neither here nor
               | there on this debate.
               | 
               | Just to flesh out my current thinking a bit more:
               | 
               | * I'd really like a study to understand how much
               | complexity old GNU tools have gained in the past 2
               | decades. Because that would not be due to copyright
               | concerns. But I'm not sure I have the necessary skills.
               | (I'd like this study for non-GNU as well, but I assume
               | copyright is not a concern there so the study doesn't
               | have to set crisp time bounds.)
               | 
               | * I share some of Drew DeVault's frustration in
               | https://drewdevault.com/2020/09/25/A-story-of-two-
               | libcs.html. I've viscerally felt the immediate sense of
               | disempowerment he describes when cracking open an open
               | source package. _However_ I vehemently oppose his
               | cavalier lack of concern for locales.
               | Internationalization is important. ASCII is just as
               | effective at disempowering others.
        
               | marcodiego wrote:
               | > Thanks! Glad you didn't think I was in bad faith after
               | the semi-rhetorical question and disengage.
               | 
               | You are welcome! Considering the karma I got from that
               | answer, I don't think I'm the only one who misread you.
               | If you want a piece of advice: starting a question like
               | that with "Genuinely curious: ..." is my strategy to
               | prevent this kind of misunderstanding.
               | 
               | > * I share some of Drew DeVault's frustration in
               | https://drewdevault.com/2020/09/25/A-story-of-two-
               | libcs.html. I've viscerally felt the immediate sense of
               | disempowerment he describes when cracking open an open
               | source package. _However_ I vehemently oppose his
               | cavalier lack of concern for locales.
               | Internationalization is important. ASCII is just as
               | effective at disempowering others.
               | 
               | As Drew DeVault's says, it was his code which was broken.
               | I know glic code is complex, but it is battle tested,
               | mature and highly robust. I'd bet there are good reasons
               | for that complexity. If I was really curious as to why,
               | I'd try asking devs directly to avoid making them look
               | bad by making public statements about it.
               | 
               | Now, I looked in scdoc code. The solution was to cast the
               | parameters to "unsigned char". Considering the code
               | uint32_t ch;       isalnum(ch);
               | 
               | compiles without warning (even with -Wall -Wextra) on my
               | machine, I'd consider this a potential vulnerability for
               | programs using this function. I can't see why glibc
               | developers don't turn isalnum into a macro that
               | automatically casts its parameter (when its address is
               | not taken). I'll consider asking them this weekend.
               | 
               | EDIT: possible nice finding:
               | https://news.ycombinator.com/item?id=24597461
               | 
               | EDIT2: part of the reason: "unsigned char" can't hold
               | EOF.
        
               | akkartik wrote:
               | Regarding "genuinely curious": I've seen some real
               | passive-aggressive comments that say that :)
               | 
               | Regarding "asking devs directly": I often find it
               | challenging even to figure out where to ask. Going from a
               | program to its package, dealing with interactions between
               | packages, etc. All of which goes back to simplicity as a
               | core goal. "Good reasons for complexity" isn't
               | sufficient, IMO. Complexity requires having a place to
               | explain the reasons, and making it easy for people to
               | find the place. Considering that we're all volunteers
               | when it comes to open source and this sort of
               | documentation is difficult, I'd often rather err on the
               | side of not having a feature rather than having a more
               | complex feature.
               | 
               | On the other hand, there _are_ fields like
               | internationalization or power management on laptops that
               | are irreducibly complex. Not sure where I 'm going with
               | all this. Open source today serves businesses more than
               | people, IMO. But it also serves people indirectly through
               | businesses. This is a difficult topic. Your comment made
               | it seem like there's an easy thing Drew or I could do.
               | I'm not sure that's the case.
        
               | marcodiego wrote:
               | Agree.
        
               | akkartik wrote:
               | I couldn't stop thinking about this link. Here's a
               | stronger statement of the problems I see with the GNU
               | guidelines:
               | https://merveilles.town/@akkartik/107022123346940723
        
           | ivanbakel wrote:
           | GNU yes is elaborate and fast because Unix's yes is
           | conceptually simple[0]: the HN link the GP shared cover how
           | GNU programs were made to deliberately differ from Unix
           | versions to avoid copyright issues.
           | 
           | [0]:
           | https://www.gnu.org/prep/standards/standards.html#Reading-
           | No...
        
           | [deleted]
        
           | m463 wrote:
           | The root of all evil is premature optimization. Until yes
           | performance is the bottleneck for some problem, leave it
           | alone.
        
           | [deleted]
        
           | pwdisswordfish0 wrote:
           | I'm curious as well. On the other hand, does it _need_...
           | whatever it is that GNU yes 's decriers are after? The choice
           | to focus on /usr/bin/yes as a case study is at least as bad
           | as the GNU advocates' retort ("GNU yes is 10GiB/s fast").
        
             | XorNot wrote:
             | When I ask for a very simple command to do something, I
             | expect it to be the best possible implementation of that
             | command. `grep` is pretty close to absolutely optimum
             | (ripgrep can beat it, sometimes, maybe).
             | 
             | I don't see why the standard for composable utilities
             | should allow for inefficiency.
        
               | [deleted]
        
               | pwdisswordfish0 wrote:
               | Wrong thread? How is this a response to the previous
               | comment? Arguing that you want /usr/bin/yes to "be the
               | best possible implementation" in terms of efficiency is a
               | weird way of being in "violent agreement" (more like
               | "aggressive agreement", but whatever). If writing a
               | defensive response, you should actually defend the thing
               | on the other side. Namely, the response here should
               | defend the position that it's more important for yes to
               | be simple than it needs to be efficient. That's what the
               | previous comment challenges potential respondents to come
               | up with.
        
               | XorNot wrote:
               | You don't take a position. That's my point. What is wrong
               | with yes being capable of doing 10Gib/S? Nothing. It's
               | optimum for a utility which has that sole function.
               | 
               | It's not a bad retort, it's the end of the story: there
               | is a superior utility, it's implemented.
        
               | pwdisswordfish0 wrote:
               | You're either still misreading and believing that you're
               | arguing against a position that is at odds with yours, or
               | you know it's not at odds but have weird ideas about how
               | argument works.
               | 
               | My position is: either articulate an argument for why
               | it's bad for /usr/bin/yes to be implemented the way GNU
               | yes is implemented or drop the argument entirely.
               | 
               | Your comments manage to be in disagreement with those on
               | the other side of this, and yet still adopt an
               | argumentative/defensive tone with respect to what I've
               | written. I consider this to be an even bigger waste of
               | time than the people (like OP) who are upset about GNU
               | yes's implementation.
        
       | r283492 wrote:
       | The fact that the post does not link to
       | https://www.gnu.org/gnu/gnu-linux-faq.en.html, makes it
       | immediately suspect. That is a necessary resource to consult when
       | talking about the GNU/Linux name.
        
       | jcelerier wrote:
       | > I want cultish followings to end within the FOSS community. I
       | swear I'll always work against that.
       | 
       | > And we like things following the standards already put in
       | place. Because we don't give a damn about helping the FSF do
       | their thing: We care about tech. We care about and love the
       | legacy of UNIX, its philosophy, and we want to adhere to it as
       | strictly as possible.
       | 
       | Sorry for breaking it up to you, but this kind of "standards must
       | be respected 11!!!!1&!1" mindset _is_ the actual cult-like
       | behaviour, commonly found in communities such as cat-v.org, and
       | with people clinging to plan 9 like it 's anything beyond a
       | failed experiment.
       | 
       | GNU and shells like bash (I use zsh which is I guess even "worse"
       | in terms of feature bloat) are dominant because they provides a
       | ton of super useful features to make work faster. Likewise you
       | bash against glibc's bloat, but most software perform faster when
       | using glibc than other "less bloated" libc implementations like
       | musl ; the bloat is here for a reason and that reason is
       | performance (which matters infinitely more than whatever
       | ideological purity BS someone can find). Who cares if it's not
       | strictly POSIX compliant: it makes computing a better experience
       | and that's all that matters, and if tomorrow someone manages to
       | create an entirely different non-posix platform that manages to
       | improve on that, I'll happily jump there and I hope you do too.
        
         | hoseja wrote:
         | Like with the `yes` example, those looked like optimizations to
         | me, maybe misguided but surely coreutils should be as optimized
         | as possible.
        
         | klodolph wrote:
         | I think the difference is with bash & zsh is down to whether
         | you choose to use them as your interactive shell or whether you
         | choose to write shell scripts in them.
         | 
         | I had assumed that this was about shell script portability.
         | Bash and zsh have a ton of super useful features to make work
         | faster, but the features for shell programming (writing shell
         | scripts that other people will use) are not so useful. Yes, I'm
         | aware of stuff like [[, I don't think that [[ is very useful. I
         | have dash as /bin/sh and #!/bin/sh in all my scripts, and
         | seriously, _it 's not a problem._
        
           | forgotpwd16 wrote:
           | There're many features that are useful for programming:
           | variable expansion, pattern replacement, substing expansion,
           | and others. Not only that but some bash built-ins essentially
           | replace external processes leading to your script being
           | faster and more portable (ironically).
        
             | klodolph wrote:
             | Bash is not alone in having built-ins that make it faster.
             | Generally speaking, Bash is measurably slower than other
             | shells. If you convert make your shell scripts portable and
             | change #!/bin/bash to #!/bin/sh, in my experience, this
             | usually makes them faster, too (on systems where sh is not
             | bash). This is the driving factor for Debian's switch from
             | Bash to Dash, which resulted in noticeable startup speed
             | improvements:
             | 
             | https://wiki.ubuntu.com/DashAsBinSh
             | 
             | (Note that Systemd has since obviated most of that work.)
             | 
             | You may be writing very different shell scripts than the
             | ones which I encounter. I'm not sure what you mean by
             | "variable expansion", because variable expansion is
             | portable. Something like 98%+ of all pattern replacement I
             | see is something simple like replacing a suffix or prefix
             | of a string. For example,
             | infile=input.png         outfile="${infile%.png}.jpg"
             | 
             | You can typically use sed for the complicated stuff.
             | 
             | Above a certain level of complexity, I'd likely rewrite the
             | script in Perl or Python, anyway. Or possibly Go.
        
               | forgotpwd16 wrote:
               | For your example, in bash you can do
               | infile=input.png         outfile="${infile/.png/.jpg}"
               | 
               | Yes, supposing it exists and you've permissions for it,
               | you can use sed. Do that a dozen times and the calls to
               | an external process add up to a significant time. But the
               | real advantage is being easier to write and work with.
        
           | aidenn0 wrote:
           | Bash arrays are the only thing I really wish dash had. Some
           | other things are "nice to have" but can be implemented on top
           | of sh. Arrays really can't.
        
           | Cederfjard wrote:
           | What level of portability do you deem necessary for what you
           | do? I rarely encounter a box that has sh but not bash, but
           | maybe that's just me.
        
             | klodolph wrote:
             | I could equally ask, "What level of Bash features do you
             | deem necessary for what you do? I rarely encounter a shell
             | script that cannot be trivially modified to work on POSIX
             | /bin/sh."
             | 
             | At least historically speaking, Bash was noticeably slower
             | than Dash. It's the slowest shell. If you are doing things
             | like, say, build scripts in a CI environment where you need
             | to execute shell scripts thousands of times or more, the 4x
             | difference can make a real impact on user experience. Same
             | thing during startup, back before the transition to
             | Systemd, when Debian changed the /bin/sh alias to point to
             | Dash instead of Bash to speed up system startup.
             | 
             | https://unix.stackexchange.com/questions/148035/is-dash-
             | or-s...
             | 
             | https://wiki.ubuntu.com/DashAsBinSh
             | 
             | At some point, shell scripts reach a level of complexity
             | where most people choose to rewrite them in a higher-level
             | language, often Python or Perl, or maybe even Go. My
             | personal experience is that the Bash-isms, although kind of
             | nice, don't really shift that threshold... like, although
             | Bash has arrays, but if I need to manipulate arrays, I
             | switch to Perl or Python. If I just need to pull elements
             | out of one array, I can do that portably.
        
           | belorn wrote:
           | It seems like if one want to be a bit more focused on
           | compatibility, just using python with compatibility added for
           | v2 vs v3 is easier than using shell scripts for the multiple
           | different operating system, platforms, shells and versions
           | that exist today. Shells seems much more coupled with the
           | operating system and decision that people have made on that
           | level.
        
             | klodolph wrote:
             | Yes, above a certain complexity, you'd probably want to
             | write your script in Perl or Python.
             | 
             | Python has an enormous overhead compared to shell scripts,
             | though. If you're writing some simple wrapper in a build
             | system that's going to be invoked thousands of times for a
             | single build, Python could easily end up being a choke
             | point.
             | 
             | If you're really concerned about portability, I would
             | probably write it in Perl :-)
             | 
             | Perl is basically a souped up shell language, with built-in
             | Awk & Sed, faster start-up time than Bash, and it's
             | installed nearly everywhere.
        
               | belorn wrote:
               | Perl vs Python on the script side has always seemed to me
               | to be a bit up to taste, through I have noticed on the
               | sysadmin side that in general things has moved away from
               | Perl towards Python. I also notice that in terms of job
               | listing, there seems to be a lack of new perl programmers
               | in order to support older systems.
               | 
               | In terms of build systems, what I have most experience
               | with would be with Debian and their build system, which
               | pulls in the required dependencies. Compatibility in this
               | space is less about zsh vs bash and more in line with
               | architecture difference like RISC vs AMD64.
        
         | BuildTheRobots wrote:
         | > Who cares if it's not strictly POSIX compliant: it makes
         | computing a better experience and that's all that matters
         | 
         | Whilst I broadly agree with your point, I'd suggest that
         | "better experience" can be extremely "eye of the beholder" -
         | especially if it interrupts a long established workflow /
         | toolkit.
        
           | not2b wrote:
           | For many, "long established workflow" now means "Linux with
           | GNU userland". But if deviations from POSIX behavior by the
           | GNU tools cause problems for a flow, that's what the
           | POSIXLY_CORRECT environment variable is for.
        
         | eadmund wrote:
         | > Sorry for breaking it up to you, but this kind of "standards
         | must be respected 11!!!!1&!1" mindset is the actual cult-like
         | behaviour, commonly found in communities such as cat-v.org, and
         | with people clinging to plan 9 like it's anything beyond a
         | failed experiment.
         | 
         | That's a bit of a _non sequitur_ : Plan 9 is very much not a
         | standard, and indeed it derives a great deal of its power from
         | _not_ implementing the POSIX standard.
        
         | matheusmoreira wrote:
         | Completely agree.
         | 
         | Nothing's worse than the cult of POSIX. Half a century ago some
         | people gathered and figured out the lowest common denominator
         | of all the unixes of the time. Now it's 2021 and we're _still_
         | supposed to restrict ourselves to this  "standard" system in
         | the name of portability. POSIX has so few features that
         | restricting yourself to it is masochism. Every unix adds their
         | own extensions, they would be almost unusable if they didn't.
         | So why is GNU criticized for doing the same?
         | 
         | The author says GNU is just some optional userland. I find that
         | amusing since in every traditional unix the POSIX userland is
         | deeply integrated with the system. He talks about glibc but the
         | BSDs and even Windows ship with their own libc that I can't
         | ever get rid of because they're the only supported way to
         | interface with the kernel.
         | 
         | Linux is the only operating system that actually frees us from
         | this cult. Unlike other systems, the kernel/userspace interface
         | is stable and defined at the lowest possible level: processor
         | instruction set architecture.
         | 
         | https://man7.org/linux/man-pages/man2/syscalls.2.html
         | 
         | https://man7.org/linux/man-pages/man2/syscall.2.html
         | 
         | https://github.com/torvalds/linux/blob/master/Documentation/...
         | 
         | Only on Linux is GNU truly just some optional userland. You can
         | throw it in the trash if you want. You can make your own. Who
         | says you gotta have little commands like cp, mv, grep, sed,
         | whatever? Who says people have to use some "standard" shell
         | from the 80s? You can make a graphical userland if you want. A
         | 100% Rust or Lisp userland. Even no userland at all.
         | 
         | People complain about systemd but I actually have a lot of
         | respect for it. The developers had the balls to trash all this
         | sacred POSIX stuff and make something new that actually uses
         | Linux kernel features. The resulting system is better for it.
        
       | marcodiego wrote:
       | > Why are we vendor locked into GNU? Why are we still pretending
       | that's good or not as evil as the vendor lock-in measures taken
       | by Google, MS, or Apple? Landmining your userland and C Standard
       | Library with extensions is exactly what MS does. When MS does it
       | is bad, so why is it acceptable or tolerated when GNU does it?
       | 
       | Although you can pay the FSF for copies is (I think) possible
       | calling GNU a vendor similar to "MS or Apple" is too much of a
       | stretch. When "MS or Apple" contributes back agreeing to the
       | license, out of goodwill or because it helps the development, it
       | is a nice behavior in their part; otherwise they are just being
       | themselves.
       | 
       | As for why GNU is a different case with regards to extensions...
       | I can think of a few reasons:                 - The extensions
       | are useful for a reasonable part of the users.            - GNU
       | is free software, so you can easily use and benefit from the
       | extensions.            - GNU is portable and its license allows
       | even proprietary systems to include it without any problem.
       | - Some of these extensions can be disabled.            - Some of
       | these extensions do not break portability if not used.
       | - Some of these extensions helped to shape and evolve what people
       | expect from a UNIX-like system. A few GCC extensions influenced
       | the ISO-C standard.
       | 
       | Ok, portability may suffer, but that is the price some groups
       | choose to pay. Considering the gained benefits, I'd say it is a
       | fair price.
        
       | GoblinSlayer wrote:
       | head -c 20 /dev/urandom | base64
       | 
       | This command generates a strong password. How do you do it with
       | only posix?
        
         | marcan_42 wrote:
         | tr -cd a-zA-Z0-9 </dev/urandom | dd bs=1 count=32 2>/dev/null;
         | echo
         | 
         | Works on Android (Toybox userland) and macOS (BSD userland, but
         | you might need to prefix LC_ALL=C to get `tr` to not hate the
         | binary input) at least. And it's more flexible, as you can
         | customize the charset and password length arbitrarily, which
         | you can't with base64.
        
           | ReleaseCandidat wrote:
           | /dev/urandom is not part of POSIX. POSIX only
           | defined/dev/null, /dev/tty and /dev/console https://pubs.open
           | group.org/onlinepubs/9699919799/basedefs/V1...
           | 
           | But uuencode exists in the POSIX standard. https://pubs.openg
           | roup.org/onlinepubs/9699919799.2018edition...
        
             | marcan_42 wrote:
             | True, but it's also not GNU anything. Most modern UNIX-like
             | kernels implement some form of /dev/urandom or /dev/random.
             | The actual shell tools used are POSIX.
             | 
             | I don't think POSIX even defines any functions/system calls
             | for getting cryptographically secure random numbers, so if
             | you're literally restricting yourself to POSIX constructs,
             | then indeed what OP asks for is impossible :)
        
           | DonHopkins wrote:
           | I always wanted the /dev/zero driver to use the device minor
           | number to define the number that got used instead of zero, so
           | you could mknod /dev/seven to make an infinite source of
           | beeps.
        
             | enriquto wrote:
             | Why don't you submit a patch to the kernel so that this
             | beautiful idea becomes reality? It is free software: here
             | you can easily _be_ the change you want to see in the
             | world.
             | 
             | You may need to be careful because the major number is
             | shared with /dev/null, but I doubt these numbers are
             | hardcoded in many places.
        
       | phkahler wrote:
       | >> OK, I know. I use GNU software. I use Arch, so I'm kinda
       | forced to use it. That's part of what makes me angry, though. Why
       | are we vendor locked into GNU? Why are we still pretending that's
       | good or not as evil as the vendor lock-in measures taken by
       | Google, MS, or Apple? Landmining your userland and C Standard
       | Library with extensions is exactly what MS does. When MS does it
       | is bad, so why is it acceptable or tolerated when GNU does it?
       | 
       | The difference is the license, stupid. You have the source code.
       | It's portable. You can compile/change/run these tools anywhere.
       | It's not vendor lock-in when it's GPL licensed. If you become
       | locked-in because you've really embraced a GNU extension of a
       | "standard" tool, that's probably OK since you can use that same
       | version of tool anywhere.
       | 
       | The GNU tools are effectively standard. But hey, just keep
       | railing against them because you don't like RMS or the GPL or
       | whatever axe it is you have to grind. They really are just tools.
        
       | DeathArrow wrote:
       | If I would ever criticize GNU it would be over too much politics
       | and too much phylosophy.
       | 
       | Criticizing GNU for providing features is absurd.
       | 
       | Users need features, not phylosophycal purity.
       | 
       | Software needs less politics, not more.
        
       | formerly_proven wrote:
       | I don't want an only-POSIX-compliant OS or userland, because
       | POSIX is not a good standard. POSIX is "let's standardize the
       | lowest common denominator across popular commercial Unices".
       | Almost everything in the GNU coreutils is there for a decent
       | reason - in many instances because of severe problems with the
       | POSIX spec (just think about all the POSIX tools handling record-
       | shaped data, but not supporting NUL separated records) or because
       | it's just handy to have.
        
       | enriquto wrote:
       | This kind of emotional articles are the best motivation to renew
       | my FSF membership.
        
         | throwawayy293 wrote:
         | increasing my donation to FSF. we need more education on why
         | free software and the GPL matters. Everyday is an attack on the
         | computing freedoms that people take for granted.
        
           | enriquto wrote:
           | > Everyday is an attack on the computing freedoms that people
           | take for granted.
           | 
           | Just to be clear, Ariadna Vigo is not attacking computing
           | freedoms; pretty much the opposite. I agree with her position
           | on nearly everything except for her stance about the GNU
           | operating system. This is a technical detail in the grand
           | scheme of things. Just like tabs vs. spaces, for which it is
           | fun to disagree in an over the top way.
           | 
           | We must support the FSF for pragmatic reasons, but we can
           | still acknowledge that the "pure unix" philosophy is a great
           | and beautiful idea. Also, cat-v and suckless are fun websites
           | full of interesting stuff.
        
       | patwolf wrote:
       | As a Linux user I often get annoyed when I try to use MacOS and
       | some of the commands differ. For example, the find command on
       | Linux, er GNU, doesn't require a path, but MacOS does.
       | 
       | I always blamed MacOS/BSD for just being different, but now I
       | know that it's GNU that is different. I'm not sure what to think
       | about it though--I do like the idea of compatibility with a
       | standard, but I also don't like standards to hold back
       | innovation.
        
         | jhbadger wrote:
         | Some of it is GNU being different, but you also have to
         | understand the difference between BSD and AT&T System V UNIX.
         | Many GNU tools are closer to the standard AT&T behavior than
         | BSD. BSD was the original nonstandard userland.
        
           | spijdar wrote:
           | Old UNIX was never really that beholden to standards. In
           | practice, the de facto and sometimes "de jure" standards were
           | just based on whatever was the most common variant of UNIX,
           | which for a while was Solaris (it's oversimplifying, but
           | POSIX is kind of like "standardized Solaris"), but is
           | becoming GNU/Linux.
           | 
           | Commercial unixes "based on" SysVR2/3/4 had plenty of "non-
           | standard" behavior and extensions, it was how you
           | differentiated your product. You support POSIX compatibility
           | to enable portability if you need it, but you differentiate
           | with your extensions or "weird behavior". GNU was no
           | different. The BSDs just have their own tradition, one that's
           | older than POSIX.
        
       | dwheeler wrote:
       | POSIX allows implementations to have extensions, and almost all
       | implementations have extensions.
       | 
       | There are good reasons for many of those extensions. Many options
       | implement capabilities that probably should be in the standard,
       | but currently aren't. For example, POSIX doesn't have easy-to-use
       | secure options for handling file names; attackers can insert
       | newlines in filenames, yet POSIX lacks options like find -print0
       | and xargs -0, so you either spend a great deal of additional time
       | writing complicated code that's likely to be insecure, or you
       | simply use extensions as almost everyone actually does. Even the
       | BSDs and busybox include those examples, by the way. Also, long
       | option names are excellent for making scripts easier to
       | understand, and really should be in the POSIX standard for
       | systems that are not highly memory constrained.
       | 
       | I try to make my shell scripts portable when that is reasonable,
       | but sometimes that is simply far too difficult. The minimalism of
       | POSIX is an advantage on small systems, or in other constrained
       | environments, but most of us today are not trying trying to write
       | software for a PDP-7.
       | 
       | In most cases the scarcest resource is developer time. In that
       | case having rich functionality and extensions that improve
       | readability is more important. I think the market is being
       | perfectly reasonable, minimalism is less important than developer
       | efficiency in most cases. Your mileage may vary.
        
       | easton wrote:
       | Only tangentially related, but POSIX certification doesn't
       | require that you don't have extensions, at least I don't think
       | so. I could've sworn macOS supported long options on its BSD
       | coreutils.
        
       | r283492 wrote:
       | > Torvalds chose method 1;
       | 
       | Huh? Torvalds never intended to create an operating system, just
       | a kernel, and that is true to this day.
        
         | JasonFruit wrote:
         | How about, "Torvalds' decisions led to choice #1"?
        
       | ab3rC1te wrote:
       | Bravo, finally another person see's the bullshit that Linux/GNU
       | has become. The kernel itself has really become just like the GNU
       | userspace, compared to the 2.6 line or earlier. Love hate
       | relationship that I have with Linux/GNU but overall I am a
       | Slackware fan of old. I enjoy programming and compiling stuff
       | from source, but everything breaks. Probably because there are to
       | many options to pass to a tool chain. Version numbers on software
       | is one major issue with why shit just breaks.
       | 
       | Like the other day building latest bash with old glibc and
       | couldn't even chroot into a new environment, because the ld
       | linked it with offset magic numbers. It's a shame. Today's code
       | base is garbage in my opinion and still can't read code and
       | follow what people are thinking they are trying to achieve. And I
       | still don't get damn pointers. Can we still write functional
       | programs without using pointers? Oh and without linked lists?
       | 
       | I know C programming and others, but will I ever be a master at
       | it. Hell no! Why! Because I don't think like K&R, and I didn't
       | invent it. The only way I would fully understand a language is
       | for me to design my own that worked how I think.
       | 
       | I always like popping in a live Ubuntu disc with v7.04 and
       | watching it load lightening fast. And yet here we are with higher
       | CPU output but a current Linux/GNU is lagging in response time
       | and becoming like Windows 10 that is so overly bloated with
       | unnecessary code that is probably like Windows 10 that is tracks
       | all your activities.
       | 
       | I like Alpine so far from what I have tried, light-weight, fast
       | and easy to use. If I could develop my own OS I would, and wrap
       | all the programming languages together into one powerful language
       | that fits all the needs from scripting, programming, databases,
       | servers, and fit it all into a 1.5 GB space like Windows Xp did.
       | 
       | But here we are...
        
       | ThinkBeat wrote:
       | RMS has:
       | 
       | written, and been part of writing a suite of tools that have
       | enabled the creation of an emormous catalog of software.
       | 
       | A lot would not have been possible without having access to a
       | free compiler and all the other tools needed to write the
       | software you dreamed of?
       | 
       | Most of it with no connection to GNU or RMS.
       | 
       | What tools did you think an ethsutiastic student in Finland hasd
       | access to to start writing a kernel?
       | 
       | If you want to purge RMS and GNU from your life, go for it. Just
       | make sure you also purge all the code created due to it.
       | 
       | Hurd failed? Sort of. Who cares?
       | 
       | He has done more good, helped more people, enabled far more
       | people to use computers, and enabled enormous fortunes to be
       | made.
       | 
       | Do you think something you write will be used by bilions of
       | people for decades?
       | 
       | You do not like him, you do not like his ideology, who cares?
       | Dont trivialize his accomplishments.
       | 
       | At least not until you have done the same and much more.
        
       | RNCTX wrote:
       | If you pull current image of Alpine in a Docker/Podman container
       | build file, the first think you'll notice is that its DNS
       | resolution implementation is broken and it can't find the repos
       | it's supposed to pull the rest of the image components from.
       | 
       | With that in mind, I would say the number of people who use such
       | a thing to run their business on (rather than deleting any
       | reference to it in the first 10 seconds of trying to use it) says
       | a lot more about the cultish behavior of tech enterprises than
       | the linked blog post does.
        
       | zajio1am wrote:
       | > Why are we vendor locked into GNU? Why are we still pretending
       | that's good or not as evil as the vendor lock-in measures taken
       | by Google, MS, or Apple? Landmining your userland and C Standard
       | Library with extensions is exactly what MS does. When MS does it
       | is bad, so why is it acceptable or tolerated when GNU does it?
       | 
       | Because POSIX (and partiall also ISO C) is just ex-post
       | stadardization of features that appeared first as vendor
       | extensions, and also does not cover many areas entirely. Useful
       | extensions became part of standard, and also many programs just
       | need to use non-standardized parts of API (e.g. some Linux-
       | specific parts).
        
       | retrac wrote:
       | In some ways FLOSS almost encourages a mentality akin to the old
       | Microsoft "embrace, extend, extinguish" minus the actual
       | extinguishment. The best way to get people to use a free Unix,
       | besides making it free, is to make it /better/ than the
       | competition while also compatible.
       | 
       | Besides the lack of portability to other Unix systems isn't a
       | real problem. The operating system itself is portable! /s
        
       | marcan_42 wrote:
       | The whole "GNU/Linux" story always struck me as incredibly
       | arrogant and ridiculous. A typical modern Linux system has more
       | lines of web browser code than lines of GNU code. Should we start
       | calling them "Chromium/Linux"?
       | 
       | If you follow the FSF's actions closely, you will find they're
       | incredibly insecure about people switching away from their
       | software to alternatives. Typically the alternatives are not
       | GPLed but rather under a permissive BSD-like license, and they
       | latch onto this to deride any new competitors [1]. But those
       | competitors don't typically exist because people hate the GPL;
       | they exist because -surprise- GNU software isn't the be-all end-
       | all, and it's a fairly common pattern for GNU maintainers to be
       | reluctant to change at best, or actively hostile to third parties
       | at worst (anyone remember glibc's Ulrich Drepper?).
       | 
       | Then there's how Stallman vetoed GCC having a useful AST output
       | mode (a requirement to build smart IDEs and other development
       | tools - yes, including such features in emacs) because he was
       | scared of third party proprietary extensions. That's one reason
       | why clang took off - its extensibility and flexibility, which the
       | FSF was always _against_ GCC having. The FSF (and particularly
       | Stallman) _hates_ clang, again reaching for licensing and moral
       | arguments, because they just can 't accept that some people may
       | have written technically superior software to theirs, and done so
       | with a more permissive license. [2]
       | 
       | In the end, it's hard to see the FSF's response to these things
       | are anything but controlling and attempting to stifle
       | competition. And we absolutely need competition for a healthy
       | free software ecosystem. There is no value in trying to represent
       | GNU as some kind of indispensable component of a Linux-based OS -
       | they aren't, and pretending they are hurts us.
       | 
       | [1] https://github.com/uutils/coreutils/issues/1781
       | 
       | [2] https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00247.html
        
         | traverseda wrote:
         | >Should we start calling them "Chromium/Linux"?
         | 
         | Well, if chrome is the primary set of userspace tools,
         | "chromebook" might be a reasonable name.
         | 
         | I'm not sure how to differentiate android/linux (or even
         | Chrome/linux) from UNIX-philosophy/linux, whether UNIX-
         | philosophy ends up being busybox or GNU or something else.
        
           | marcan_42 wrote:
           | Honestly, where do you even draw the line? Android has a
           | shell, it has userland tools (toybox), it has a service
           | manager (not unlike systemd), it has a compositor (not unlike
           | Wayland) and an audio server (not unlike PulseAudio). Sure,
           | we can look at it and say "this somehow doesn't look like a
           | Linux desktop", but that's mostly based on lineage. It's the
           | ship of Theseus story - if Linux desktops today are so
           | different from those of old that we've basically replaced all
           | the pieces, how are they different from an OS that made more
           | of a clean break?
        
             | selfhoster11 wrote:
             | Your comment makes a very good point. Android really does
             | seem like a Linux system when described in this way. I may
             | need to re-evaluate my attitudes here.
        
             | pjmlp wrote:
             | Except most of that stuff is only visible via Java APIs,
             | NDK userspace is hands-off to such tools
             | 
             | A fact that termux people refuse to accept, hence why it
             | doesn't run on the latest versions, unless they now finally
             | accepted that POSIX isn't part of the official NDK stable
             | APIs and have started calling into JNI.
             | 
             | Plenty of Linux software won't be compilable just with
             | these APIs, unless they are game based,
             | 
             | https://developer.android.com/ndk/guides/stable_apis
        
               | marcan_42 wrote:
               | That's an upper level platform policy question, which is
               | rather difficult to compare to because... Linux doesn't
               | really have anything like that. Try running a dynamically
               | linked executable with more than the basic dependencies
               | on a Linux distro 2 years newer and see how many missing
               | dependency libraries you run into due to ABI changes and
               | soname bumps...
               | 
               | FWIW, Termux works perfectly fine on the latest version
               | of Android - what they can't do is push updates through
               | the Play Store, because the minimum required API level
               | now imposes security restrictions (no running executables
               | from your data directory) that break it. But that doesn't
               | make Android not a Linux system; you can still adb shell
               | into it and run commands and shell scripts and copy new
               | binaries in and run them.
               | 
               | This is not unlike Linux container systems, which also
               | break various apps. It comes with the territory of
               | containerizing applications that you have to break
               | insecure legacy APIs; this is not unique to Android.
        
               | pjmlp wrote:
               | Fork() is not part of the API, that is one of their
               | issues.
               | 
               | Regular users don't have any idea what adb is, and it
               | requires developer mode to be enabled.
        
         | teddyh wrote:
         | > _incredibly arrogant and ridiculous_
         | 
         | > _The FSF (and particularly Stallman) hates_
         | 
         | > _FSF 's response to these things are_ [...] _controlling and
         | attempting to stifle competition_
         | 
         | The "hate" seem to be all on your part.
        
           | hyproxia wrote:
           | Most of the people that dislike GNU base their dislike on
           | political reasons (because they hate the GPL or Stallman or
           | whatever) and then try to embarrassingly justify their hate
           | by shoehorning technical jargon.
        
             | marcan_42 wrote:
             | Most of the people that support the FSF base their support
             | on vague poorly-grounded ideological reasons (because they
             | drank the Stallman kool-aid or whatever) and then try to
             | embarrassingly justify the missteps of their idols by
             | deferring to said vague ideology to deflect from the
             | elephant in the room.
             | 
             | I have a whole Twitter thread on how the modern FSF's
             | policies actually _hurt_ user freedom while being
             | completely inconsistent with their own ideals, if you 'd
             | perhaps consider opening up your mind to criticism of them:
             | https://twitter.com/marcan42/status/1377899929209774081
        
               | bregma wrote:
               | The FSF is a political organization. Supporting it for
               | political reasons is wholly appropriate. Disparaging the
               | people who do so with put-downs and insults instead of
               | engaging in reasoned debate is not.
        
               | marcan_42 wrote:
               | The FSF has long been shifting from being a political
               | organization to being a religious organization. Its
               | policies are no longer consistent with their own views of
               | user freedom. Read the thread for more info. They are
               | literally promoting things that hurt user freedoms -
               | things like promoting ignorance of security flaws,
               | promoting hiding proprietary firmware (because it's only
               | a problem if it _looks_ like a blob), promoting actively
               | crippling hardware (thus reducing its usefulness with
               | present and future free software), and more. Those who
               | blindly support them without taking a deep look into
               | whether their actual policies are consistent and rational
               | and further their goals are no different from religious
               | fanatics who stand by ancient scripture while ignoring
               | thousands of years of progress.
               | 
               | I support user freedom. I support users having control
               | over their own devices, knowledge of what software runs
               | on them, and knowledge of what choices are available so
               | they can make an informed decision. I spend most of my
               | time working on reverse engineering and porting Linux to
               | proprietary hardware (Apple M1) so users have the freedom
               | to run whatever OS they want. I cannot support the FSF,
               | an organization which supports censoring security
               | vulnerability warnings when fixing them involves updating
               | proprietary firmware (that already exists anyway); that
               | supports burying proprietary firmware in non-
               | introspectable read-only memory because then they can
               | "pretend it's hardware", then selling the result as
               | "fully libre" (even though the same device with the same
               | firmware _visible_ and _accessible_ to the user would be
               | much more free and transparent, allowing introspection,
               | auditing, and replacement with a free alternative); that
               | supports physically destroying hardware components that
               | presently require a proprietary driver to function,
               | ignoring the possibility that free software drivers might
               | appear in the future. These are real FSF policies and
               | actions. This is what you are supporting when you support
               | the FSF. It 's not user freedom any more. It's religious
               | nonsense like "blobs in /lib/firmware are bad, we can't
               | have any blobs be out in the clear".
        
               | type0 wrote:
               | > that supports burying proprietary firmware in non-
               | introspectable read-only memory because then they can
               | "pretend it's hardware", then selling the result as
               | "fully libre" (even though the same device with the same
               | firmware visible and accessible to the user would be much
               | more free and transparent, allowing introspection,
               | auditing, and replacement with a free alternative);
               | 
               | Totally agree, they have been completely swallowed by
               | their own ideology. This shows that their actions are
               | contradicting the same things FSF says publicly: that
               | reverse-engineering is important.
        
           | marcan_42 wrote:
           | "The most notable thing about this project is it allows
           | proprietarization while GNU coreutils doesnt"
           | 
           | That's a GitHub issue title filed by an FSF director on a
           | project whose goal is to rewrite the basic POSIX core
           | utilities in Rust, for security and maintainability. Because
           | they MIT licensed them. They are literally telling a new
           | competing project that they are worthless and an attack on
           | the FSF due to their license choice.
        
             | teddyh wrote:
             | > _"The most notable thing about this project is it allows
             | proprietarization while GNU coreutils doesnt"_
             | 
             | > _They are literally telling a new competing project that
             | they are worthless and an attack on the FSF due to their
             | license choice._
             | 
             | If that's your interpretation of that quote, I'm not sure I
             | can help you.
        
       | Mc91 wrote:
       | > I could've talked about Android and embedded Linux. I didn't
       | want to, though. But me not talking about them doesn't mean they
       | also show that the FSF telling half truths when it comes to what
       | GNU is.
       | 
       | > If you thought I was going to go the "Android route" of
       | argumentation... You know... saying that Android shows that Linux
       | can be used without GNU... Sorry! I'm way more sophisticated than
       | that!
       | 
       | Sophisticated in what sense? That when you search the Android
       | source tree you find FSF code?
       | 
       | https://cs.android.com/android/platform/superproject/+/maste...
        
         | marcan_42 wrote:
         | Finding a few files containing (BSD-licensed!) code that
         | originated in the FSF doesn't sound like a particularly
         | compelling argument that people _have_ to use their code. Of
         | course people _will_ use their code when it does the job and
         | the license fits, it 'd be silly not to.
         | 
         | FWIW, here's a search for FSF-copyright code that excludes
         | build generator output (autotools/automake/libtool/etc) and
         | gcc/bison/etc related stuff (which many other projects which
         | are not themselves FSF-authored use), as well as licenses
         | themselves:
         | 
         | https://cs.android.com/search?q=copyright.*free%5C%20softwar...
         | 
         | 193 hits, and a lot of that is ffi and libbacktrace stuff.
         | Exclude those two projects, and you're down to 47 hits, most of
         | which are random things like headers, test shell scripts, and
         | some translations. I think it's fair to say that Android does
         | not include any significant amount of GNU/FSF code.
         | 
         | (Keep in mind that the Android codebase is _massive_ and
         | vendors a huge amount of third-party projects, so it 's
         | actually quite remarkable that there is so little FSF code in
         | here - part of that speaks to how little FSF people contribute
         | to other projects!)
        
       | ho_schi wrote:
       | The GNU implementation of 'yes' looks like a meme, true. And FSF
       | behaves sluggish, true. The rants about the bash and glibc lack
       | actual foundation. Same for the comparsion with C++. And there is
       | nothing wrong with long options or adding more useful options.
       | 
       | 1956
       | 
       | Thanks the the consent decree from 1956 AT&T wasn't allowed to
       | enter new markets and license patents royalty free, what we got
       | was UNIX and C and open code. They regulated AT&T positively!
       | Probably the best thing the United States Department of Justice
       | did. They ditched capitalism and everything got better by
       | magnitudes!
       | 
       | 1983
       | 
       | The US Department of Justic setteled a consent degree with AT&T.
       | Probably the worst thing the Department of Justice did. They
       | allowed them to split up and do whatever they would. Full
       | capitalism! Since then the US have seen no market regulation.
       | What followed wear UNIX-Wars, lawsuits and finally companies like
       | Microsoft, Google, Amazon, Facebook and Apple.
       | 
       | You want blame someone? Blame the government. But I see two
       | lessons. The regulation has worked. Single fines (punishment) or
       | splitting about doesn't. AT&T is again the largest
       | telecommunication company and UNIX was busted.
       | 
       | I'm thankfully for what we learned from UNIX, that POSIX gave us
       | some guidelines in the past, the C Language and finally all the
       | descendants - Linux, GNU, C++, GCC, BSD Network Stack and
       | GCC...and finally LSP (works wonderfull with NEOVIM and CLANG).
        
       | forgotpwd16 wrote:
       | The author didn't really bother researching much the historical
       | points. Someone can read the initial GNU bulletins to see that
       | Stallman was planning a kernel before those tools. It isn't that
       | he chose (as said) to write the userland first but did while
       | waiting for TRIX to be released as free, something that never
       | happened.
       | 
       | Of course when Linux became a viable they decided to abandon
       | their plan and concentrate resources on userland. Kinda opposite
       | to the usual of similar projects being co-developed leading to
       | fragmentation. If there's an already capable kernel, why write
       | another?
       | 
       | Another problematic point is the "look how much lines it takes,
       | such a bloat" for `yes`. And then proceed to call it convoluted
       | for pointless reasons. I guess being[1] about 100x (you read that
       | correctly) faster is a pointless reason if a binary program you
       | use rather develop can be written in fewer lines of code. Those
       | GNU devs really should be more lazy.
       | 
       | Also there's "portability". If you write a program that is
       | utilizing Linux' specific calls then your program isn't portable
       | to other Unix-like systems. Same way that if you write
       | `/usr/bin/env bash` at your script it won't be portable to other
       | shells. You can of course install some POSIX utils implementation
       | and use those, and you'll limiting yourself, but at least you'll
       | have portability to systems you aren't using.
       | 
       | [1]:
       | https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes...
        
         | pwdisswordfish0 wrote:
         | > waiting for TRIX to be released as free, something that never
         | happened
         | 
         | Needs correction.
        
       | the_af wrote:
       | I suppose this is part of the new generation of people getting
       | into software (not saying Ariadna is one of them, but it wouldn't
       | surprise me). She is right that in the Spanish world (and in
       | Latin America in particular) RMS and the FSF are well-respected,
       | with little of the controversy that sparked in the English-
       | speaking world -- thankfully!
       | 
       | The article raises interesting points, but the whole rant against
       | GNU and FSF is weird. GNU (yes, _and_ Linux) and FSF is why many
       | of us are in this business. They played a huge role in the career
       | and passions of many of us -- I feel entitled to say  "us" just
       | like the author of TFA carelessly speaks about "we" -- and
       | misunderstanding the history of how we got there doesn't help.
       | 
       | To me it feels as if a new generation of tech minded people have
       | started taking things for granted, "why do we even need all those
       | movements fighting for users' freedom, if I am free _now_? ".
       | It's a bit depressing.
       | 
       | The different approaches and goals of Linus Torvalds and RMS are
       | both valid, and only in hindsight can we say one triumphed and
       | the other didn't, but the article makes it look as if one of the
       | two was obviously wrongheaded.
       | 
       | So some interesting points, but it could do without the whole
       | rant against GNU and the FSF, and without the accusations of
       | cultishness.
        
         | matheusmoreira wrote:
         | > To me it feels as if a new generation of tech minded people
         | have started taking things for granted
         | 
         | Indeed. Most fundamentally, they take their computing freedom
         | for granted. There are powerful forces who want to take it away
         | from us. There are powerful and rich people out there who think
         | it's too dangerous for mere citizens to have access to
         | unrestricted computers.
         | 
         | People focus on Stallman's software licenses as if that's what
         | he's all about. They barely matter. People ignore the big
         | picture: computing freedom. It's not just important, it's
         | fundamental. Without this freedom, there is no hacking as we
         | know it. There is no way to write and run our own software.
         | What good is free software if a corporation or government
         | signature is required to run it?
         | 
         | Stallman saw this coming before most if not all of us.
        
           | jabl wrote:
           | > Most fundamentally, they take their computing freedom for
           | granted. There are powerful forces who want to take it away
           | from us. There are powerful and rich people out there who
           | think it's too dangerous for mere citizens to have access to
           | unrestricted computers.
           | 
           | To an extent, I agree. I wonder whether the general move in
           | the open source community will turn out to be a Faustian
           | bargain. Are open source developers just a bunch of suckers
           | being taken advantage of to provide building blocks for
           | various proprietary business models? OTOH I'm thinking that
           | more open source code out there is a public good, and we
           | should rejoice in that regardless of 'proprietary free
           | riders'.
           | 
           | > People ignore the big picture: computing freedom. It's not
           | just important, it's fundamental.
           | 
           | No. What's fundamental is freedom for people. Computing
           | freedom matters only as a means to that end.
        
             | the_af wrote:
             | > What's fundamental is freedom for people. Computing
             | freedom matters only as a means to that end.
             | 
             | I agree, and I'm going to guess the person you're replying
             | to also agrees. In fact, RMS would also agree. It's just
             | that we are narrowly focusing on a single aspect of freedom
             | in this conversation, but yes: freedom to live, to work, to
             | education, to health, are all more important :)
        
             | matheusmoreira wrote:
             | > Are open source developers just a bunch of suckers being
             | taken advantage of to provide building blocks for various
             | proprietary business models?
             | 
             | Perhaps. The whole point of the GPL is to give free
             | software developers advantages and create leverage we can
             | use against those who would exploit our labor. Permissive
             | licenses allow that exploitation.
             | 
             | In the end, it's irrelevant. All this software, all this
             | positioning for advantages and leverage, none of it will
             | matter if the machine itself is taken away from us.
             | 
             | We'll never be truly free until computer manufacturing is
             | as democratized as software development. Ideally we should
             | be able to make computers at home.
             | 
             | > No. What's fundamental is freedom for people.
             | 
             | Absolutely. Computing freedom is a subset of personal
             | freedom.
        
               | type0 wrote:
               | > We'll never be truly free until computer manufacturing
               | is as democratized as software development. Ideally we
               | should be able to make computers at home.
               | 
               | If we had a few NGOs that were committed to freedom, were
               | transparent and produced good hardware it would be a more
               | reasonable option. Sure I can dream about the future
               | where I can 3D print all electronics at home, but that
               | computer wouldn't run very good and we all know this.
        
         | zekrioca wrote:
         | The well regards for GNU and RMS in the Latin world is due to
         | the strong philosophy against closed software, specially from
         | MS. During most of the 90's and beginnings of 2000's, M$ would
         | force their expensive licenses in governmental systems and
         | would make everything to avoid interoperability, even within
         | versions of their own systems.
         | 
         | End result was that countries would spend millions just to be
         | able to share documents across agencies. Things started
         | changing when KDE/Slackware, Ubuntu, Firefox, OpenOffice and
         | other software systems started to become user-friendly, with
         | nicer and intuitive interfaces. From this point on, governments
         | started teaching GNU/Linux in schools and universities,
         | explaining the benefits, the rights, etc, and then switching to
         | open-sourced and free-software systems.
        
           | the_af wrote:
           | Agreed that we in Latin America saw these upsides of
           | switching to FOSS and are therefore friendlier to its
           | philosophy.
        
         | paxcoder wrote:
         | Only - we're not free. You have a point about young people not
         | being to appreciate not having freedoms perhaps. But our
         | generation has already dropped the ball. We're non-free when it
         | comes to most hardware, web services, mobile software. This is
         | because people don't really care about their freedoms. They
         | settle for "pragmatic" benefits of open source software. People
         | enjoy freedoms themselves, mind you, but they the problem is
         | that they think that anything beyond that there be conspiracy
         | theorists or something. Along with Stallman's social
         | awkwardness, the culprit is Linus' siding with TiVoization and
         | against GPLv3 in my opinion.
         | 
         | Anyway, It's not over, and knowing how markets tend to
         | monopolies, we'll be fighting forever. Which won't be a problem
         | once numbers are on our side. Right now we're in a stale mate
         | with much of the front being taken by proprietary software.
         | That is not likely to change until the free software community
         | gets a better face, but agenda-pushing codes of conduct won't
         | do that. We need a serious discussion about software freedoms
        
         | djur wrote:
         | I'm in the English-speaking world and I wasn't aware of any
         | particular controversy with the FSF other than issues regarding
         | RMS himself and his personal conduct. Is that what you're
         | referring to?
        
           | jabl wrote:
           | There is certainly controversy around RMS, as you say.
           | 
           | But I think more generally, wrt FSF there's not so much
           | controversy [1] as disappointment in the FSF failing to stay
           | relevant. Copyleft was a solution to the 80/90'ies software
           | world. The FSF tried with the AGPL to answer the 'threat' of
           | SaaS, but largely the world has shunned it except as a poison
           | pill license to upsell a proprietary version. Similarly with
           | the GPLv3 the FSF tried to answer to the threat of
           | Tivoization, but again, largely failed to gain adherents in
           | the low level components, like the Linux kernel, where this
           | would have mattered.
           | 
           | [1] Well, the FSF taking RMS back on its board did produce a
           | tsunami of corporate (financial) contributors leaving ship.
        
             | the_af wrote:
             | The "failure to stay relevant" is an odd comment that I
             | have indeed read many times (mostly from English-speakers;
             | as I said, in Latin America the FSF is admired).
             | 
             | It's odd because it's worded in a way that sounds as if the
             | FSF wasn't necessary now (or maybe even never), instead of
             | thinking that the FSF is needed more than ever, now that
             | there's a war against general purpose computing and against
             | privacy and users' rights, and that if the GPL3 and AGPL
             | didn't work -- which is possible! -- then _how do we fix
             | that?_
             | 
             | Instead it's either apathy and even scorn against the FSF,
             | which is alarming to me.
        
               | type0 wrote:
               | > Instead it's either apathy and even scorn against the
               | FSF, which is alarming to me.
               | 
               | It's not just FSF, there's also ethical software types
               | trying to destroy OSI from within. We are seeing so many
               | attempts to dismantle important organizations now it
               | leaves me baffled.
        
           | the_af wrote:
           | Mostly yes. But also the feeling that FSF is "out of touch"
           | or that RMS is a weirdo is much less prevalent in Latin
           | America, where (in general, the people/organizations I know
           | of at least) view them with more admiration than in the
           | English-speaking world.
        
       | jmmv wrote:
       | Good article.
       | 
       | Just wanted to point out https://jmmv.dev/2021/08/useless-use-of-
       | gnu.html, which also covers the portability problems that GNU has
       | widely introduced and describes alternatives to the common
       | issues.
        
         | thayne wrote:
         | Interesting that the section on make gives an alternative to
         | `$(shell ...)` that actually relies on a bashism. `$( )`
         | command substitution isn't POSIX compatible. you would need to
         | use backticks.
        
           | forgotpwd16 wrote:
           | Opposite to common belief `$()` is the way to do it by the
           | standard[0]. POSIX sh differs from Bourne shell.
           | 
           | [0]: https://pubs.opengroup.org/onlinepubs/9699919799/utiliti
           | es/V...
        
       | [deleted]
        
       | r283492 wrote:
       | > the BS the FSF spits out
       | 
       | The whole article didn't mention even one concrete thing the FSF
       | has said wrong, it just slanders them several times. No wonder it
       | says to the FSF "don't bother to contact me."
        
       | bitwize wrote:
       | GNU is more than a shitty POSIX userland. Most of the interesting
       | stuff is happening outside coreutils: Emacs, gcc, Guile, Guix,
       | GIMP. The next phase of the project is to bootstrap a trustworthy
       | free software OS from as small a binary kernel as possible, which
       | is what GNU Mes is all about.
        
         | nix23 wrote:
         | >small a binary kernel as possible, which is what GNU Mes is
         | all about
         | 
         | Hurd or seL4...but obviously no one is interested in such an
         | Kernel for servers, mobile or the desktop.
         | 
         | From MY perspective, the OSS OS community was in a much
         | healthier state in the ~05's then it is now (Linux, BSD,
         | Solaris, Minix etc) where all maintained and gave plenty of
         | selection of ~OSS operating-systems, now it's just that Linux.
        
           | tut-urut-utut wrote:
           | Well, that kinda proves that FSF was right. Linus, the only
           | GPL licensed OS of the ones you mentioned, is the only one
           | that survived the test of time.
        
             | nix23 wrote:
             | Yes, i think the same about the Kernel/FSF. However i don't
             | care about the license (since i use BSD)
        
             | pjmlp wrote:
             | That is why the Linux Foundation is now pushing Zephyr for
             | IoT, right?
        
               | formerly_proven wrote:
               | Zephyr seems to mostly target Cortex-M-based devices,
               | which can't run Linux in the first place.
        
               | pjmlp wrote:
               | Zephyr is just one among many MIT/BSD/Apache POSIX
               | alternatives to Linux on IoT space, which CPUs it runs on
               | is secondary.
        
               | nix23 wrote:
               | No one here talks about IoT, i talk about a real OS...you
               | as a Windows person should know the difference ;)
               | 
               | Edit: Linux is not a OS but a Kernel...got it? Your
               | should know the difference as a Windows/UNIX person ;)
        
               | pjmlp wrote:
               | So when Linux runs on IoT devices it stops being a real
               | OS? Got it.
               | 
               | By the way I am a Windows/UNIX person, note the UNIX
               | part.
        
               | nix23 wrote:
               | >That is why the Linux Foundation
               | 
               | The FSF is not the Linux Foundation
        
           | pjmlp wrote:
           | The IoT space is full of POSIX alternatives, all
           | BSD/MIT/Apache licensed, and this is what will eventually
           | drive Linux away from that market.
           | 
           | Fucshia is already shipping on the Nest, lets see what
           | happens next.
        
             | nix23 wrote:
             | Where did i mentioned IoT? I wrote especially
             | Server/Desktop/Mobile...NOT IoT.
        
               | pjmlp wrote:
               | Mobile phones are basically IoT on steroids.
        
               | nix23 wrote:
               | Then Servers (or appliances) are IoT's on steroid
               | too...with your logic.
        
           | forgotpwd16 wrote:
           | >no one is interested in such an Kernel for servers, mobile
           | or the desktop
           | 
           | Excluding Google (Fuschia) and Huawei (HarmonyOS).
        
             | nix23 wrote:
             | Both are not made for Server or Desktop Systems, one is for
             | IoT possibly Mobile, the other is...well i don't
             | know..freedom from Android..politics?
        
           | bitwize wrote:
           | Not even Hurd or seL4, but like... some binary runtime
           | environment small enough to be audited at the machine code
           | level, that could bootstrap something bigger, that could
           | bootstrap a tiny simple C compiler, that could bootstrap GCC,
           | that could _then_ be used to bootstrap the most successful
           | GNU kernel, Linux-libre.
        
           | froh wrote:
           | How do you see fuchsia in that list of micro kennels?
        
             | nix23 wrote:
             | Not as a Server/Desktop OS. Both are not intended as a
             | generic OS, but rather specialized solutions..just like for
             | example QNX. Don't get me wrong, i would love being wrong
             | about that.
        
       | don-code wrote:
       | While I generally agree with the author that the userland
       | monoculture isn't helpful for portability, that argument belies
       | the fact that most people I've worked with _want_ those extra
       | features that GNU gives them. I started using Linux and IRIX
       | around the same time - but I actually didn't really "understand"
       | the difference, because someone had gone out of their way to
       | install the GNU userland.
       | 
       | That's something the article leaves out: while GNU and Linux are
       | many times seen as a unit, there's a rich history of installing
       | the GNU tools on other Unixes, because of the extra functionality
       | they offer.
       | 
       | There is, of course, the argument against portability. At my last
       | job, as the only Linux user on my team, I more than once wrote
       | shell scripts that only worked for me - as soon as someone on
       | macOS ran them, they'd run into a missing feature on `sed`, or a
       | different calling convention on `date`. Which is why, at my
       | current job, I'm very begrudgingly a macOS user - it makes me a
       | better coworker.
        
         | mplanchard wrote:
         | This has always been a problem for me as well, but we've pretty
         | much solved the issue at my current job by using nix to manage
         | the development environment. With nix-shell and direnv, we can
         | know that anyone working on the project is using the same
         | versions of coreutils, sed, grep, make, etc. The learning curve
         | on nix is a little steep at first, but it's been worth it:
         | we've got devs running five distributions of Linux, plus a
         | couple on MacOS.
        
         | spinax wrote:
         | One of the first things we did on Solaris installs was install
         | the GNU userland (it's been so many decades, I forget the
         | specifics - packaged somehow, not ./configure; make) so we
         | could get GNU sed and awk (and bash and vim) amongst all the
         | other things. My anecdotal experience matches yours, we
         | _wanted_ those GNU features on our Solaris experience, they
         | were /are useful extensions.
        
       | simion314 wrote:
       | The author uses "we" a lot but who are this "We"? For sure there
       | is a large number of Linux users that are not part of his "we". I
       | consider myself someone that is into the technical stuff but at
       | the same time I care about the philosophy and meaning of "Free
       | Software".
        
         | the_af wrote:
         | Agreed. There is no "we". I, and many others, do not agree with
         | the author in that she values the technical more than the
         | philosophical goals.
        
       | djur wrote:
       | The accusation of vendor lock-in against GNU doesn't land for me.
       | It's hard to look at GNU Autotools and see that as coming from a
       | project desiring world domination. Yes, it helped them get GNU
       | software onto more systems, but they went out of their way to
       | make Autotools usable for non-GNU software as well. If there's
       | any history of GNU attempting hostile measures against their main
       | free "competitors", the BSDs, I haven't heard it.
        
       | greyw wrote:
       | > And we like things following the standards already put in
       | place. Because we don't give a damn about helping the FSF do
       | their thing: We care about tech. We care about and love the
       | legacy of UNIX, its philosophy, and we want to adhere to it as
       | strictly as possible.
       | 
       | Who is this 'we'? I don't care about the UNIX philosophy (I'm an
       | emacs user). First thing I do on bsd systems is install the GNU
       | userland. BSD tools follow the POSIX spec like a cult refusing to
       | add useful extensions. Look how hopelessly broken posix sh is. I
       | work quite often with busybox on small embedded systems and the
       | limitedness of its vi implementation makes me irrationally angry.
        
         | [deleted]
        
         | the_af wrote:
         | Totally agreed.
         | 
         | Be wary of posts and articles which talk about an universal
         | "we" as if everyone thought the same.
         | 
         | I, for example, care more about the philosophical aims of the
         | FSF and RMS than about the finer technical points. That Linux
         | is a very useful OS for me is a bonus. So "we" do not just care
         | about tech; "we" also care about users rights and freedom.
        
       | blacktriangle wrote:
       | She makes me want to brush up my Spanish so I can join their
       | community that apparently still believes in the goals of GNU and
       | the FSF.
        
       ___________________________________________________________________
       (page generated 2021-09-30 23:02 UTC)