GNU is Bloated!

Sdílet
Vložit
  • čas přidán 19. 05. 2019
  • WEBSITE: lukesmith.xyz 🌐❓🔎
    DONATE NOW: lukesmith.xyz/donate 💰😎👌💯
  • Věda a technologie

Komentáře • 471

  • @jreneew2
    @jreneew2 Před 5 lety +737

    Richard Stallman is bloated

    • @ulissemini5492
      @ulissemini5492 Před 5 lety +69

      this is true

    • @Swenthorian
      @Swenthorian Před 5 lety +79

      It's all those toe-nuggets

    • @hrishikeshlearning3273
      @hrishikeshlearning3273 Před 3 lety +89

      What you refer to as Richard Stallman is actually GNU/Richard Stallman or as I have taken to calling it, GNU + Richard Stallman

    • @oneirophon8912
      @oneirophon8912 Před 3 lety +27

      @@hrishikeshlearning3273 And GNU / Richard Stallman doesn't "open" jars, he "frees" them!

  • @Andre-bi3gq
    @Andre-bi3gq Před 5 lety +1349

    I bet after the videos he just opens up his Ubuntu gnome setup

  • @ilyamakarchuk
    @ilyamakarchuk Před 5 lety +903

    Core utilities work differently on other operating systems. For example, on Windows they don't work at all!

    • @Booming-letsplays
      @Booming-letsplays Před 5 lety +45

      You now did proof that linux is absolutely bloated and if you want to change it, delete all of it. Congrats.

    • @ilyamakarchuk
      @ilyamakarchuk Před 5 lety +132

      @@Booming-letsplays Computers are all bloat essentially. Books, abacuses and pen and paper are enough.

    • @ertwro
      @ertwro Před 5 lety +1

      @Илья Макарчук but they do...

    • @AlucardNoir
      @AlucardNoir Před 5 lety +89

      @@ilyamakarchuk books? when you could memories? abacuses? what's wrong with using your mind? Pens? PAPER! unnecessary luxuries.

    • @outeast7344
      @outeast7344 Před 5 lety +17

      @@AlucardNoir unironically this

  • @0M9H4X_Neckbeard
    @0M9H4X_Neckbeard Před 5 lety +297

    If your scripts don't run on Alpine Linux and OpenBSD don't talk to me or my son ever again

    • @johndoe-fu3qr
      @johndoe-fu3qr Před 5 lety +116

      *my wife's son

    • @ivbit
      @ivbit Před 5 lety +36

      *my son's wife

    • @notyilli_2481
      @notyilli_2481 Před 4 lety +4

      Danganronpa can only be bought with DRM, bloat

    • @excitableboy7031
      @excitableboy7031 Před 4 lety +9

      Make scripts POSIX compliant! Reeeeee!

    • @gorgecunth1581
      @gorgecunth1581 Před 2 lety +1

      I spent years studieing all the GNU options. Finally I approach mastery. Every morning I scream at the mirror "My scripts may never work on the beasts system and his name is the mac"

  • @rexevan6714
    @rexevan6714 Před 5 lety +749

    Looks like Luke is off his meds again.

    • @klintmuse2241
      @klintmuse2241 Před 5 lety +40

      Get woke don't drink tap water out of plastic.

    • @dill__pickles
      @dill__pickles Před 5 lety +13

      @bws floride is a neurotoxin

    • @SomeAngryGuy1997
      @SomeAngryGuy1997 Před 3 lety +6

      all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle all these squares make a circle
      What the fuck are you even doing all the way down here? Are you crazy? :P

    • @rafnavi4500
      @rafnavi4500 Před 3 lety +1

      @@SomeAngryGuy1997 are you aight mate?

    • @kawo666
      @kawo666 Před 3 lety +1

      @@SomeAngryGuy1997 'make a circle all these squares'. Message received.

  • @nikkalex6141
    @nikkalex6141 Před 5 lety +420

    No one:
    Luke: temple OS is BlOaTeD

    • @dumbcatposter
      @dumbcatposter Před 5 lety +85

      That's why Terry released the 2mb Lite ISO

    • @fossforever512
      @fossforever512 Před 2 lety +6

      @@dumbcatposter anything more than 1mb is bloated

    • @bebekngayang
      @bebekngayang Před 2 lety +3

      Temple OS is bloated, make your own kernel !

  • @timh6088
    @timh6088 Před 5 lety +254

    269 videos?! Your channel is bloated my man

  • @maxardis
    @maxardis Před 5 lety +228

    TIPS:
    1. Most Linux distributions come with both GNU and POSIX manpages. When writing POSIX compliant scripts I always check POSIX manpages for all the supported options. `man 1 cmd` - GNU manpage; `man 1p cmd` - POSIX manpage.
    2. POSIX way of doing sed -i:
    $ create temporary file (mktemp is not in POSIX, POSIX ways of creating temp files is to use noclobber or mkdir -m 700 with randomly generated name)
    $ sed '...' file > temp_file
    $ mv temp_file file
    3. I recommend creating that temporary file in the same folder - not in /tmp etc. Reason for this is that mkdir and mv (when both input and output paths are on the same filesystem) are the only atomic filesystem operations. If we create temp file in /tmp and then do `mv` it might do `rename` internally or it might become `cp + rm` combo - and cp is not atomic.
    Example:
    $ create temp_file
    $ sed '...' file > temp_file
    $ cp temp_file file
    This way might leave you with damaged file if you stop cp in the middle of copying. mv (if and only if both input and output paths are on the same filesystem) turns into `rename` which is atomic and this guarantees us ACID - our file will never get corrupted, it will either get updated completely or not at all.

    • @firstnamelastname7248
      @firstnamelastname7248 Před 5 lety +1

      Is it ok if I do not create temp_file but directly output to it (command > temp_file) ? It automatically creates temp_file for me

    • @maxardis
      @maxardis Před 5 lety +3

      ​@@firstnamelastname7248 Yes and no. Depends what you really want/need.
      1. If you do not need to protect yourself against parallel execution then it is OK.
      2. But if you do run script twice in parallel (and they will use same name for temp_file) then they both will create the file and fight against each other.
      3. One of the solutions could be to use noclobber option like I mentioned `set -C`. This way redirection cmd > temp_file will fail if the file already exists, so one script will create a file and proceed corectly and the second script will fail.
      4. The question is then how to handle that fail: you can use `set -e` and then your script will simply exit with failure, or you can put cmd > temp_file in a loop until it finally succedes preferrably changing the temp_file name randomly to avoid clashing with other parallel instance of the script.

    • @dlarge6502
      @dlarge6502 Před 5 lety +6

      You may find the posix manpages are in their own package for example on debian you need to install the manpages-posix package

    • @chrkrngl
      @chrkrngl Před 5 lety

      intredasting. thanks!

    • @needthistool
      @needthistool Před 4 lety +2

      @@dlarge6502 What happens if you try the *man p1* trick without those packages available on the system? Does it throw an error or does it just show the local (potenteially non-POSIX) manual?

  • @hephaestus3420
    @hephaestus3420 Před 5 lety +164

    8:28 what a boomer moment :D

  • @MickeyD2012
    @MickeyD2012 Před 5 lety +65

    Terry Davis was right.

  • @Booming-letsplays
    @Booming-letsplays Před 5 lety +240

    Video 1: Bash is bloated.
    Video 2: Gnu is bloated.
    Next video: Real life is bloated.

    • @yoshi314
      @yoshi314 Před 5 lety +6

      @Joel Silva i get like that when i get no fiber at all.

    • @perpetualcollapse
      @perpetualcollapse Před 3 lety +2

      @Joji
      Thanos was on to something

    • @bebekngayang
      @bebekngayang Před 2 lety +2

      We need lite version of solar system

  • @tc40390
    @tc40390 Před 5 lety +234

    Just switch to BSDs already, we all know that you're going to end up using one of them in the near future

    • @nixlad
      @nixlad Před 5 lety +10

      tbh

    • @charlesdean03
      @charlesdean03 Před 3 lety +2

      That thing I was thinking what the heck not BSD??

    • @puyatecla9903
      @puyatecla9903 Před 3 lety +6

      He can't because of how much he love that redhat paycheck, he's just an IBM/redhat/systemd shill

    • @user-ux2kk5vp7m
      @user-ux2kk5vp7m Před 3 lety +30

      @@puyatecla9903 he doesn’t even use systemd
      Or this this a wooosh

    • @daveshouldaine2520
      @daveshouldaine2520 Před 3 lety +1

      @redwill17 lmao

  • @oddbob6230
    @oddbob6230 Před 5 lety +101

    Sooner or later, you're going to end up reading the Unix Hater's Handbook.

    • @AlucardNoir
      @AlucardNoir Před 5 lety +35

      No, he's going to end up writing the sequel.

    • @jan_harald
      @jan_harald Před 5 lety +7

      @@AlucardNoir Unix, the Proper Way

    • @MrBeiragua
      @MrBeiragua Před 5 lety +1

      Luke is bald Lunduke confirmed

  • @TrevorSpencer
    @TrevorSpencer Před 5 lety +28

    Everything but a typewriter is bloat.

  • @auxilus00
    @auxilus00 Před 5 lety +193

    bash is bloated
    GNU is bloated
    next up: Linux is bloated

    • @tato-chip7612
      @tato-chip7612 Před 5 lety +29

      By definition yes it is.

    • @mariusandersons
      @mariusandersons Před 5 lety +4

      of course linux is bloated but i like bloated.

    • @ertwro
      @ertwro Před 5 lety +2

      It is.

    • @perahh7659
      @perahh7659 Před 5 lety +2

      people who commented "it is" are autistic. period.

    • @pokefreak2112
      @pokefreak2112 Před 5 lety +17

      But of course
      Linux is a monolithic kernel and as everyone knows monolithic is synonymous with bloated

  • @AlucardNoir
    @AlucardNoir Před 5 lety +39

    I agree with 99% of this video - the 1% I disagree with? the "is bloated" part.

  • @victorprokop6868
    @victorprokop6868 Před 5 lety +14

    No one:
    Luke: Atoms are bloated

  • @dhanarsantika
    @dhanarsantika Před 5 lety +23

    Luke : use free software
    Also Luke : GNU is bloated
    😂😂😂

  • @CoordinateNewton
    @CoordinateNewton Před 5 lety +142

    I’d just like to interject for a moment. What you’re refering to as Linux, is in fact, GNU/LInux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux

    • @jamesthompson7694
      @jamesthompson7694 Před 2 lety +14

      This is going to be a terrific copypasta

    • @paulvorderegger1522
      @paulvorderegger1522 Před 2 lety +10

      @@jamesthompson7694 wdym this is already copypasta for a couple of years

    • @jamesthompson7694
      @jamesthompson7694 Před 2 lety +2

      @@paulvorderegger1522 I know

    • @aldelta19
      @aldelta19 Před 2 lety +2

      It’s Linux… not GNU/Linux. Accept.

    • @Shonicheck
      @Shonicheck Před 2 lety +8

      No, Richard, it's 'Linux', not 'GNU/Linux'. The most important contributions that the FSF made to Linux were the creation of the GPL and the GCC compiler. Those are fine and inspired products. GCC is a monumental achievement and has earned you, RMS, and the Free Software Foundation countless kudos and much appreciation.
      Following are some reasons for you to mull over, including some already answered in your FAQ.
      One guy, Linus Torvalds, used GCC to make his operating system (yes, Linux is an OS -- more on this later). He named it 'Linux' with a little help from his friends. Why doesn't he call it GNU/Linux? Because he wrote it, with more help from his friends, not you. You named your stuff, I named my stuff -- including the software I wrote using GCC -- and Linus named his stuff. The proper name is Linux because Linus Torvalds says so. Linus has spoken. Accept his authority. To do otherwise is to become a nag. You don't want to be known as a nag, do you?
      (An operating system) != (a distribution). Linux is an operating system. By my definition, an operating system is that software which provides and limits access to hardware resources on a computer. That definition applies whereever you see Linux in use. However, Linux is usually distributed with a collection of utilities and applications to make it easily configurable as a desktop system, a server, a development box, or a graphics workstation, or whatever the user needs. In such a configuration, we have a Linux (based) distribution. Therein lies your strongest argument for the unwieldy title 'GNU/Linux' (when said bundled software is largely from the FSF). Go bug the distribution makers on that one. Take your beef to Red Hat, Mandrake, and Slackware. At least there you have an argument. Linux alone is an operating system that can be used in various applications without any GNU software whatsoever. Embedded applications come to mind as an obvious example.
      Next, even if we limit the GNU/Linux title to the GNU-based Linux distributions, we run into another obvious problem. XFree86 may well be more important to a particular Linux installation than the sum of all the GNU contributions. More properly, shouldn't the distribution be called XFree86/Linux? Or, at a minimum, XFree86/GNU/Linux? Of course, it would be rather arbitrary to draw the line there when many other fine contributions go unlisted. Yes, I know you've heard this one before. Get used to it. You'll keep hearing it until you can cleanly counter it.
      You seem to like the lines-of-code metric. There are many lines of GNU code in a typical Linux distribution. You seem to suggest that (more LOC) == (more important). However, I submit to you that raw LOC numbers do not directly correlate with importance. I would suggest that clock cycles spent on code is a better metric. For example, if my system spends 90% of its time executing XFree86 code, XFree86 is probably the single most important collection of code on my system. Even if I loaded ten times as many lines of useless bloatware on my system and I never excuted that bloatware, it certainly isn't more important code than XFree86. Obviously, this metric isn't perfect either, but LOC really, really sucks. Please refrain from using it ever again in supporting any argument.
      Last, I'd like to point out that we Linux and GNU users shouldn't be fighting among ourselves over naming other people's software. But what the heck, I'm in a bad mood now. I think I'm feeling sufficiently obnoxious to make the point that GCC is so very famous and, yes, so very useful only because Linux was developed. In a show of proper respect and gratitude, shouldn't you and everyone refer to GCC as 'the Linux compiler'? Or at least, 'Linux GCC'? Seriously, where would your masterpiece be without Linux? Languishing with the HURD?
      If there is a moral buried in this rant, maybe it is this:
      Be grateful for your abilities and your incredible success and your considerable fame. Continue to use that success and fame for good, not evil. Also, be especially grateful for Linux' huge contribution to that success. You, RMS, the Free Software Foundation, and GNU software have reached their current high profiles largely on the back of Linux. You have changed the world. Now, go forth and don't be a nag.
      Thanks for listening.

  • @ScaryHutmanPictures
    @ScaryHutmanPictures Před 5 lety +31

    I'd just like to interject for a moment. It is GNU plus Linux, Luke

    • @Klblaz
      @Klblaz Před 5 lety +6

      Ganooo plas Linooks

  • @CygnusExOne
    @CygnusExOne Před 5 lety +27

    I inherit all my prejudices from cat-v.

    • @disk0__
      @disk0__ Před 5 lety +5

      my prejudices are cat-v compliant

  • @spicybaguette7706
    @spicybaguette7706 Před 5 lety +13

    The Linux kernel is bloated

    • @zyan983
      @zyan983 Před 3 lety

      linux-suckless
      - No more unnecessary LKMs out of the box.
      - Specialized for your hardware.
      - Fast as fuck.
      - All written in Assembly

  • @dumbcatposter
    @dumbcatposter Před 5 lety +8

    Richard Stallman wants to know your location.

    • @meanmole3212
      @meanmole3212 Před 5 lety +4

      And then again, he doesn't (because that would be a violation of his principles)

  • @binbashchannel
    @binbashchannel Před 5 lety +15

    Why i feel like Luke is just realizing that minimal software and Unix philosophy are Memes, and he's gonna switch to Ubuntu with Gnome the next video

  • @krux02
    @krux02 Před 5 lety +19

    --posix disable all GNU extensions.

    • @LukeSmithxyz
      @LukeSmithxyz  Před 5 lety +45

      --posix is a GNU extension. That's the problem.

    • @luiswirth
      @luiswirth Před 5 lety +9

      @@LukeSmithxyz lol 😂🤯

    • @Joe3D
      @Joe3D Před 3 lety +2

      @@LukeSmithxyz not having the flag does not mean automatically that is POSIX compliant. Also commands should not overlap, GNU versions should be gnu-sed, gnu-awk, etc. like gawk and so forth they present themselves as different.

  • @MadsenAltamirano
    @MadsenAltamirano Před 5 lety +69

    Luke:
    GNU is bloated, be suckless my viewers
    Also Luke:
    Use systemd my viewers

  • @asdfzxcvman2567
    @asdfzxcvman2567 Před 5 lety +71

    Luke:
    *sed -i* does work in BSD. At least in OpenBSD. From its manual:
    " *-i* [ _extension_ ]
    Edit files in place, saving backups with the specified extension. If a zero length extension is given, no backup will be saved. It is not recommended to give a zero length extension when in place editing files, as it risks corruption or partial content in situations where disk space is exhausted, etc. In *-i* mode, the hold space, line numbers, and ranges are reset between files."
    Maybe not exactly the same, but many times, the same in practice.
    Plan 9 and Plan 9's utilities aren't POSIX-compliant. If something in it happens to be, it is rather by coincidence than by conscious effort. The cat-v crowd doesn't generally like POSIX.
    And writing your scripts in, say, rc shell (Plan 9's) would make your scripts much less portable, as the users would have to install plan9port to use them.
    One last thing: have you tried acme(1) more extensively as of late? It may be a bit of an acquired taste, but I seriously think you can like it a lot.

    • @Joe3D
      @Joe3D Před 3 lety +3

      Great tip thanks!

  • @microcolonel
    @microcolonel Před 4 lety +11

    I will say, I am fond of many GNU coreutils innovations. The one kinda annoying thing is their tar, GNU tar is cool for personal archives, but often really annoying when you don't want some of the features. Sometimes you don't want your tarball to preserve your "immutable" or "append-only" extended attributes.

  • @evanesoteric
    @evanesoteric Před 5 lety +41

    Let's be real... Richard Stallman is bloated.....

  • @gonzafernan
    @gonzafernan Před 5 lety +5

    From Mac to GNU+Linux to use sed. RMS win

  • @ehhwhatevericantthinkofago8903

    What do you mean by concatenate? I use cat as my text editor, everything else is too bloated.

    • @FLMKane
      @FLMKane Před rokem

      Makes sense. Just don't ever have a typo

  • @soupwithpotatos1542
    @soupwithpotatos1542 Před 5 lety +9

    Next Video: The Linux Kernel is Bloated!

    • @pasdenom.9062
      @pasdenom.9062 Před 3 lety +1

      It actually is, and the first one to say it is Linus himself.

  • @nerdsvillellc2941
    @nerdsvillellc2941 Před 4 lety +9

    Random comment about this... when you had the man page open for sed I noticed that there is a --posix flag, so you could test with all GNU extensions disabled which could be helpful for making a posix compliant version on a GNU version of a utlity (assuming it is common across other utils)
    Awesome video as always :D

    • @Joe3D
      @Joe3D Před 3 lety +3

      Yeah but if you run that flag on FreeBSD commands probably will crash.

    • @thalesfm
      @thalesfm Před rokem +1

      @@Joe3D Ideally you wouldn't put it in your scripts. You _could_ set the flag using an alias, but then that might break other things that rely on GNU extensions...

  • @meanmole3212
    @meanmole3212 Před 5 lety +19

    C++ is bloated. Change my mind.

  • @tugfngjfuvj
    @tugfngjfuvj Před 5 lety +15

    The coreutils are like that and get features because of convenience. SOme tasks are unnecessarily complex to implement otherwise or would need needless reimplementation by each damn user because Coreutils doesn't come with a complete solution.
    This problem with different "vendor" versions of some tools behaving differently only pertains users that try to port scripts to other OSs or use different OSs with different vendor versions of those tools.
    I think the existing solution (expanding the Coreutils' functionality) does much more good than bad in comparison to not doing it and keeping them all the same on all OSs. Some tools also _need_ to behave differently because of different APIs (E.g. ifconfig on Linux, ifconfig on 'BSD).

    • @jan_harald
      @jan_harald Před 5 lety +4

      the problem is they don't SAY what is their own convenience feature...
      people assume that because it's not said otherwise, stuff like cat -v would work on other posix-compliant systems...
      also unix philosophy is to do one thing only, which is why utilities like `nl` are separate, and `cat -n` shouldn't be a thing...
      etc, etc...

    • @MrDadidou
      @MrDadidou Před 5 lety +2

      I absolutely agree with you. i think even Luke would rather use the -i arg rather than output changes in file.new and replace file.old by file.new .
      But i don't think that this video is really a rant about the huge list of argument or even that he is defending the cat -v team.
      I think he just used the word "bloat" because it's a meme at this point but really he wanted to say that not all unix are made equal and that just like with higher level langages, if you don't have the same version of the lib then your code is not portable.
      In this case bash and gnu core utils are not the same everywhere

    • @jan_harald
      @jan_harald Před 5 lety

      I mean you cooouuuulld use ed instead of sed and get around the edit-in-place problem....but still...
      and yeah that's a problem, but there's a solution... busybox! ;P
      statically compiled busybox against musl or something like that, and boom, ya got most everything you'd need ;)

  • @realEchoz
    @realEchoz Před 5 lety +5

    lmao i knew he would stumble upon cat-v when he started going on about systemd

    • @benschools
      @benschools Před 5 lety +1

      He talked about cat-v in a video 5 months ago.

  • @napiray
    @napiray Před 5 lety +6

    Luke is on his way towards OpenBSD :-)

  • @realEchoz
    @realEchoz Před 5 lety +15

    inb4 luke smith is harmful page on cat-v

  • @DigitalMetal
    @DigitalMetal Před 5 lety +1

    Thanks for this. I new there where differences, but I never really looked into it, so I didn't know what they were.

  • @killermenpl9619
    @killermenpl9619 Před 5 lety +8

    GNU/bloat

  • @Kaar
    @Kaar Před 3 lety +3

    When invoking sed you will want to use the -posix flag in order to disable all GNU-specific extensions and allow for portability.

  • @hinach4n698
    @hinach4n698 Před 5 lety +11

    Hah, I see what you did there, GIMP = Green Is My Pepper

    • @corey8704
      @corey8704 Před 5 lety

      Thought is was Gimp Isn't Microsoft Paint

    • @tylerdean980
      @tylerdean980 Před 3 lety +1

      @@corey8704 it’s GNU Image Manipulation Program, but the green is my pepper thing is from an email someone send to stallman, he didn’t know what gimp was and they used the green default pepper in GIMP to show that they where using free software, and stallman erroneously assumed that GIMP means Green Is My Pepper.

    • @corey8704
      @corey8704 Před 3 lety +2

      @@tylerdean980 missed the joke.

  • @aryanadiazcakasana4414
    @aryanadiazcakasana4414 Před 5 lety +10

    Bash bloated
    GNU bloated
    really interesting i want to see more..

  • @ahmadalwazzan384
    @ahmadalwazzan384 Před 4 lety +8

    In my experience with other Unix utilities (find, grep, see, awk). GNU utilities are much faster. if I'm using a Unix OS like Solaris, I prefer using the GNU utilities.

  • @surferbum618
    @surferbum618 Před 4 lety +1

    Thank you for sharing knowledge with a newb

  • @xxxbrenorxxx
    @xxxbrenorxxx Před 5 lety +1

    life is bloated, period.

  • @dlarge6502
    @dlarge6502 Před 5 lety +6

    Its worth pointing out that the GNU utils maybe bloated but, GNU's Not Unix ;)
    GNU was written to be "upwardly" compatible with UNIX. So it can do UNIX (POSIX) stuff and will be compatible with it. I think Stallman went this route so he could avoid having legal battles based on his OS being a UNIX (all the battles between those who claim to own UNIX are fun reading).
    Also when he started writing GNU he had never even used UNIX. Its great he chose to be compatible with it and to write GNU to target the 32 bit cpu's (the 386) that he was sure were going to be the most popular architecture.

  • @empresslithia
    @empresslithia Před 5 lety +3

    Strictly speaking, any program that can do more than one thing is bloat. Bloat is necessary for us to work quickly. For humans to work with computers.

  • @garryiglesias4074
    @garryiglesias4074 Před 5 lety +12

    You might want to rename your channel as "Bloat TeeVee". Or "The Love Bloat"...

  • @Andre-bi3gq
    @Andre-bi3gq Před 5 lety +4

    Life's bloated

  • @GoodOwl0
    @GoodOwl0 Před 5 lety +2

    Processors are bloated. Do the processing in your mind

  • @MutoShack
    @MutoShack Před 5 lety +2

    I'm a total GNU nut, but I can totally agree. GNU utilities come with way too much fluff.
    I pronounce "Core Utils" with more emphasis on the I, like "you-TILL-s" as in "uTILity". Is this just a preference or is it really "Core-yoodles"?

  • @psykotedy
    @psykotedy Před 5 lety +2

    A few years ago, I went through the exercise of installing and having the Plan 9 coreutils in my path prior to the GNU coreutils and found that running almost anything that I hadn't explicitly written myself became a monumental pain in the backside. So I uninstalled the Plan 9 coreutils to remedy the issue; I might play with them again on a non-critical system at some point.
    I think I was pretty late to the game on discovering the GNU sed easy mode -i option. I used "sed 's/pattern/replacement/' file > /tmp/file && mv /tmp/file file" all the time before my enlightenment. (And yes, there was much data loss since all of my files were named file. It was the dark ages, what can I say?)

    • @aedd3307
      @aedd3307 Před 3 lety +1

      I know this is old, but the plan9 coreutils aren't POSIX compliant, the coreutils used in *BSD would be better for that.

  • @george3662
    @george3662 Před 5 lety +30

    there is no system but GNU and Linux is one of its kernels

    • @pojntfxlegacy611
      @pojntfxlegacy611 Před 5 lety +6

      Hail Saint iGNUcious!

    • @AlucardNoir
      @AlucardNoir Před 5 lety +2

      No, no, no. It's:
      There is no system but GNU and Linux is it's one true Kernel.

    • @solmann5989
      @solmann5989 Před 5 lety +1

      Is this the shahada ?

    • @jan_harald
      @jan_harald Před 5 lety +4

      all hail GNU/HURD

    • @benschools
      @benschools Před 5 lety +2

      Just make sure you don't draw a picture of the kernel or the extremists will bomb you.

  • @tobiasstamenkovic9628
    @tobiasstamenkovic9628 Před 5 lety +7

    You know, the SHITTY thing is, apparently alot of thees things are quite handy (otherwise you wouldnt use them) but instead of adding similar
    "GNUisms" to POSIX aaaaaanything, even the good stuff, thats developed on/for Linux is vehemently ignored by the rest of the "Unix world"...
    Oh boy would it be terrible if those Mac users had actually convenient shell commands, right?
    I say, embrace the good stuff (feel free to hate on things that are actually terrible ofc) and if others dont want to improve, hf debugging.
    I mean, last time ive checked all of this stuff was still open source.

    • @casperes0912
      @casperes0912 Před 2 lety

      A) I don't think you'd miss anything if you were on a Mac. + As mentioned in the video BSDs and Mac also add their own extensions that can be just as good as the GNU ones just with different syntax.
      2) You can just run the GNU utils if you prefer them on macOS or whatever.
      3) Source code being available doesn't mean easy adaptation. The GNU Core Utils are made pretty portably, but a great tool like diskutil on macOS unfortunately can't easily be ported to Linux even with full source code availability

  • @papaoese6258
    @papaoese6258 Před 5 lety +2

    For in-place editing, I suggest ed - the unix editor

  • @ThreelionsSFIV
    @ThreelionsSFIV Před 3 lety +1

    Ohh cat-v.org from Uriel, thanks for still showing that page. It's not possible to understand suckless.org without him, he was very involved in wmii/dwm/and other tools and advices. Descansa en pau Uriel. R.I.P

  • @thomasripper8616
    @thomasripper8616 Před 5 lety +2

    A little nitpick - Plan 9 tools aren't minimally POSIX compliant; POSIX makes a number of compromises and accounts for common extensions that arose amongst GNU and multiple free and proprietary unices, so they could have vague source-level compatibility. Half the point of Plan 9, meanwhile, was to make a clean break in userland. They've got their APE subsystem, the “ANSI/POSIX Environment”, but that's another story.

  • @drumpf4all
    @drumpf4all Před 5 lety +2

    Reality is bloated!!!

  • @SixGorillion
    @SixGorillion Před 5 lety

    What does the --posix flag seen on the screen at 7:20 do? I was thinking it would just prevent me from using non posix compliant flags and options, but it actually just appears to do nothing on my machine. Oh well.

  • @TheBlenderblob
    @TheBlenderblob Před 5 lety +1

    the GNU version of YES(1) is 10 trillion loc, but its the only one that will come close to maxing out your IO with the number of y prompts

  • @stoneHeHenge
    @stoneHeHenge Před 5 lety +3

    Less harmful alternatives: Go ... wtf, who wrote this

  • @evanharvey7059
    @evanharvey7059 Před 5 lety +24

    Hey Luke, have you ever thought about the fact that the birth of Unix and Unix-like operating systems as we know it today was essentially the result of an epic gamer moment? Ken Thompson was perhaps the original oppressed gamer. I'd like to see a video on your opinions on this subject.

    • @NicolasGoulart42
      @NicolasGoulart42 Před rokem

      I know you are joking but this is unironically a good point.

    • @shallex5744
      @shallex5744 Před rokem

      @@NicolasGoulart42 how so

    • @redcoat4348
      @redcoat4348 Před rokem

      @@NicolasGoulart42 how is it the case

  • @stewie410
    @stewie410 Před 5 lety

    Dunno if anyone commented in regards to the ``sed -i`` options -- but you may want to try ``sed -i'' 's/FILE/file/' file``. Providing an empty string for the "backup suffix" should allow you to just overwrite the original file, without generating a backup file.

  • @undefined879
    @undefined879 Před 5 lety +4

    >cat-v
    into the trash it goes with uriel

    • @-yttrium-1187
      @-yttrium-1187 Před 5 lety +1

      At least Uriel understood life was bloated.

  • @jan_harald
    @jan_harald Před 5 lety +3

    use busybox's versions when possible ;P
    busybox is dope, and doesn't do the extra options...

    • @Joe3D
      @Joe3D Před 3 lety +1

      Busybox is for smartphones, they don't even include nmanpages.

  • @diegobellani
    @diegobellani Před 5 lety +3

    6:23 the correct way is to use ed(1) in your script if you have to edit a file.

    • @jan_harald
      @jan_harald Před 5 lety +3

      except f*in debian removed it from the standard setup...
      do those morons not know it's the standard editor...
      smh...
      ;P

  • @YouKnowMeDuh
    @YouKnowMeDuh Před 5 lety +2

    Instead of utils he says yoodles. First time ever hearing this XD

  • @thetdg
    @thetdg Před 4 lety +1

    You can use the commands with --posix flag to disable GNU extensions.

    • @Joe3D
      @Joe3D Před 3 lety +1

      Probably will fail on FreeBSD commands like "Invalid flag"

  • @floppa9415
    @floppa9415 Před rokem

    2:19 I was bracing myself for him to say among us. Shit hits different in 2022.

  • @tonnylins
    @tonnylins Před 5 lety +1

    7:18 what does it do if you run it with the --posix option Luke? Does that satisfy the portability requirements?

    • @Joe3D
      @Joe3D Před 3 lety +1

      Probably the --posix option will make the command crash on FreeBSD "Unknown option" or something like that didn't try.

  • @baka0815
    @baka0815 Před 5 lety +4

    posix is good if you have to be portable, for example in an opensource project which supports multiple platforms, but for anything else on linux, please use bash and the gnu utils. it makes your life way easier. don't go back to the 90's!

  • @whahala555
    @whahala555 Před 5 lety

    Could you use the posix option when writing scripts to make them more useful?

  • @playerguy2
    @playerguy2 Před 5 lety

    Narrow POSIX compliant cat has 2 'options' or switches based on the manual you showed: '-m' read until the end of the file instead of only one line and '-n nline' read no more than 'nline' lines

  • @l2ubio
    @l2ubio Před 5 lety

    this hits close to home to someone working with docker or embedded devices

  • @233kosta
    @233kosta Před 2 lety +1

    Perhaps we should all be reminded that GNU is *not* Unix

  • @kajunek4419
    @kajunek4419 Před 5 lety +1

    I've been waiting for a video about cat -v for a looong time

  • @guitarloser07
    @guitarloser07 Před 5 lety +9

    "Cat outputs a file to your terminal"?! Don't you know that _less_ is _more?!_

    • @Joe3D
      @Joe3D Před 3 lety +1

      Probably use printf.

  • @probE466
    @probE466 Před 5 lety +3

    cat file | sed "s/FILE/file/g" | cat > file
    I am not sure why, but this works

  • @tkenben
    @tkenben Před 2 měsíci

    Makes sense. With the unbloated cat, you would redirect standard output to a filter in order to perform your own `-v` manipulation. As you say, cat isn't designed to print to necessarily a terminal, but rather to concatenate to standard output.

  • @seba2122
    @seba2122 Před 4 lety +1

    Hello,
    A quick question.
    What should we use to print the content of a file, if not cat?
    more/less/head/tail, depending of the desired outcome that we want?
    Is there a command that throws everything just like cat does?
    Thank You for reading my question(s).

  • @cmplstofB
    @cmplstofB Před 5 lety +1

    Why did you quote the command for sed (like: $ sed 's/file/FILE/' file)?
    I think there is no blob and other special character of shell in that command line.

    • @jan_harald
      @jan_harald Před 5 lety +1

      it's a good habit though
      just like you could do
      echo hello there...
      without quotes, but's it's a good idea to always quote, just in case...

  • @enkaipan1
    @enkaipan1 Před 5 lety +2

    Now I know where cat -v comes from.

  • @Newtube_Channel
    @Newtube_Channel Před 5 lety

    I for sure thought you were going to say something about the performance of gnu-coreutils in shell scripts. The excessive use of coreutils in shell scripts does indeed deter overall system performance significantly. I digress..

  • @TheSulross
    @TheSulross Před 3 lety +3

    posix may be the spec standard but Linux and its cadre of gnu tools is by now the predominate defacto standard for Unix flavored OS; i.e., more books are sold on instructing how to use gnu tools on Linux than books on, say, FreeBSD or the command line tools of the shell on Mac OSX

    • @FLMKane
      @FLMKane Před rokem

      Not really. You'll have issues porting between different distros.
      If you write a non POSIX script for arch it will NOT work by default on Debian. Takes only a small modification to make it work on Debian bit then you have a performance hit

  • @martingeorgiev999
    @martingeorgiev999 Před rokem +7

    A small addition, you can compile GNU utilities on your own so they are strictly POSIX compliant.

  • @joetheman74
    @joetheman74 Před 4 lety +1

    Every time you say "yootles" I want to reach through my screen.

  • @MattTheriot
    @MattTheriot Před 3 lety

    "Core uduls"
    Just found this channel, good shit.

  • @echoptic775
    @echoptic775 Před rokem

    So, there should be no improvements in tools for 30+ years?

  • @secondsettweezer9884
    @secondsettweezer9884 Před 4 lety +1

    having an operating system is bloat

  • @nathanruben3372
    @nathanruben3372 Před 2 lety +1

    mac has its own flags. Bsd as as well. I prefer to use the feature rich one. If you are aiming multi platform stuff, use a programming language like perl, python, ruby. Otherwise you have to live with that.

  • @hmagellanlinux307
    @hmagellanlinux307 Před 5 lety

    It is worth noting that Plan 9 is not POSIX compliant. It's not Unix, and doesn't try to be.

  • @ruadeil_zabelin
    @ruadeil_zabelin Před 3 lety +1

    I knew they called it Plan9, but I never knew they called it Plan9 from user space. That name is awesome.

    • @ruadeil_zabelin
      @ruadeil_zabelin Před 2 lety

      @@unsafecast3636 Plan 9 from Outer Space is a movie from the 50's by director/writer Ed Wood. It's a terrible terrible movie, which makes it so interresting. I think Monty Python references that; though I've never seen that reference in their sketches?

  • @unownunown1530
    @unownunown1530 Před 3 lety +1

    Then why dont you just create your own core-utils if it pisses you of so much that gnu core-utils are a couple bytes bigger than their unix-equivalent

  • @armpitpuncher
    @armpitpuncher Před 5 lety +1

    Maybe they should have made it gnucat, gnused, etc... And made the posix names into symlinks. Then if you want to write a script that you intended to distribute that uses gnu only options, you could use the prefixed versions to ensure they will fail on systems without gnu utilities, rather than having unintended results.

    • @Joe3D
      @Joe3D Před 3 lety +1

      They have gawk but distros symlink the desired version to "unix way".

  • @kemo_-ks6pk
    @kemo_-ks6pk Před 6 měsíci

    I noticed in 7:21 the --posix option, would't that solve everything?

  • @ianhamilton350
    @ianhamilton350 Před 4 lety +2

    I'm a bit late for this, but Plan9 is not about POSIX compliance. Like not at all. The system utilities are even written with Plan9's own "standard" library of C functions. The reason the Plan9 utilities are considered "non-harmful" is because they implement only the functionality they need to in order to do their job effectively. It sounds like you may have read this paper (harmful.cat-v.org/cat-v/unix_prog_design.pdf) before making this video, but if you haven't it explains the perspective the designers of Plan9 had when writing the system.
    Also, the Plan9 cat program does have two options, -m and -n, while the POSIX standard cat has one option, -u. You didn't notice them because Plan9 manpages aren't formatted like we are used to, with each option as a separate subsection.

    • @smorrow
      @smorrow Před 3 lety

      Plan 9 cat doesn't have options.

  • @SupBro31
    @SupBro31 Před rokem

    It really bugs me the -i option of sed needing a space under gnu and not under bsd or vice-versa. I never remember.

  • @martinstent5339
    @martinstent5339 Před 2 lety +9

    But the problem was just caused by enthuasm. I wrote some unix utilities as an excersice when I was learning C and while you are writing them, all these good ideas keep popping into your head, like when you do the option to append, you think, "why not add an option for the line-before-last" and so on. All those bloated options are written by programmers who were just bubbling over with good (and sometimes not-so-good) ideas! It's just something we have to live with. You can't stop people trying to improve things. It would be wrong.

  • @Florin76
    @Florin76 Před 4 lety +3

    Since there's no binary compatibility between FreeBSD / OpenBSD / NetBSD / GNU Linux / MacOS there's no fuss with why GNU Linux commands offer more options than other :)

    • @Joe3D
      @Joe3D Před 3 lety +1

      There's a reason there were UNIX variants in the past.