BLOAT

Why the fuck would you add an option for something so fucking simple?

Also bloat general

Other urls found in this thread:

sbcl.org/>.SBCL
github.com/Drive-Trust-Alliance/syslinux).
freebsd.org/cgi/man.cgi?query=ls&sektion=1
twitter.com/SFWRedditImages

# cat hello.rsfn main() { println!("Hello World!");}# rustc hello.rs# strip hello# ./helloHello World!# ls -alt hello-rwxr-xr-x 1 root root 384360 Oct 31 17:49 hello

# cat hello.gopackage mainimport "fmt"func main() { fmt.Println("hello world")}# go build hello.go# strip hello# ./hellohello world# ls -alt hello-rwxr-xr-x 1 root root 1226248 Oct 31 17:53 hello

Why would you add a binary for something so fucking simple?


ls -a | grep -Ev '^\.{1,2}$'
or
ls -a | grep -Ev '^\.\.?$'

Running 'go' as root. What are you doing kiddo?

wew
# sbclThis is SBCL 1.3.14.debian, an implementation of ANSI Common Lisp.More information about SBCL is available at sbcl.org/>.SBCL is free software, provided as is, with absolutely no warranty.It is mostly in the public domain; some portions are provided underBSD-style licenses. See the CREDITS and COPYING files in thedistribution for more information.* (defun main () (format t "Hello world.~%"))MAIN* (sb-ext:save-lisp-and-die "hello" :toplevel #'main :executable t)[undoing binding stack and other enclosing state... done][defragmenting immobile space... done][saving current Lisp image into hello:writing 4800 bytes from the read-only space at 0x20000000writing 3216 bytes from the static space at 0x20100000writing 905216 bytes from the immobile space at 0x20300000writing 12253888 bytes from the immobile space at 0x21b00000writing 31457280 bytes from the dynamic space at 0x1000000000done]# ./helloHello world.# ls -alt hello-rwxr-xr-x 1 root root 45023280 Oct 31 18:05 hello

Multiple accounts are bloat.

Carry on sir.

wow

Read that HD raw nigger. File System block headers are pure bloat, and waste space you could put to use.

Look at this faggot with all that bloated DNA code. Just be like me, turn into an HIV strain so you can have a purely functional, simple RNA.

...

What year is this?

syscall is fine too

...

Gross. Do it on bare metal PA-RISC.

~ $ cat hello#!/bin/sed 1deat shit ~ $ chmod a+x hello ~ $ ./helloeat shit ~ $ ls -axolotl -dingdong hello636 -rwxr-xr-x 1 23 Nov 1 05:38 hello

41K /usr/bin/sed*

Your OS is bloat tbh fam.

Sorry, can't post GNU's echo. The source code is too long for Holla Forums.

Still smaller than the assembly rice
832K /usr/bin/as

ls -A .*ls -a .* | egrep -v ‘^\.$|^\.\.$’

Checkmate, Rob Pike.

$ cat hello.c#include int main(int argc, char *argv[]){ printf("hello world\n");}$ gcc -s -Os -fno-stack-protector -ffunction-sections -fdata-sections -Wl,--gc-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-math-errno -fno-unroll-loops -fmerge-all-constants -fno-ident -mfpmath=387 -fsingle-precision-constant -ffast-math hello.c$ ls -alt a.out-rwxrwxr-x 1 6120 Nov 1 15:39 a.out
stdio was a mistake

$ cat hello.cint main(){}$ gcc -s -Os -fno-stack-protector -ffunction-sections -fdata-sections -Wl,--gc-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-math-errno -fno-unroll-loops -fmerge-all-constants -fno-ident -mfpmath=387 -fsingle-precision-constant -ffast-math hello.c$ ls -alt a.out-rwxrwxr-x 1 6048 Nov 1 15:39 a.out
6048 bytes for what?

do you even vectorize

I'd submit grub2 as an example of BLOAT. /boot/grub is 10MiB, pulls in another 20MiB of dependencies, both the tools and the boot portion need to be installed on a host that needs new kernels installed, and the bootloader itself is so fat that it needs to stuff itself into the first meg after the partition data or have a dedicated efi partition. The code is also a complete nightmare, probably some of the worst code still in use on a modern Linux system, and is close to undebuggable. If you ever have to debug a low-level bug in grub, reserve a week for it.
extlinux on the other hand has a tiny bootsector that can literally be installed via cat, a very small second stage (0.1MiB), and boots lightning fast. There's no point to grub, anymore. Anything you could do with grub could instead be done better in less space with a boot kernel and kexec loaded by extlinux.

shiggy

can extlinux do encrypted boot partition?

These are things that shouldn't be part of your bootloader. It's kitchen sink bloat. You could either have extlinux boot a kernel with an initramfs that understands how to deal with an encrypted root (LUKS setups install initramfs hooks for cryptdevice) or boot a full OS that understands how to deal with an encrypted root and will kexec to the real kernel (much more flexible but slightly larger). There are also modified versions of syslinux if you're using a SED drive via OPAL and want a SecureBoot chain to TPM (github.com/Drive-Trust-Alliance/syslinux).

GNU ls is quite something
ls -patchouli -is -bast -girl
ls -is -that -fucking -so
ls -op -sucks -millions -of -cocks
ls -autism
ls -boipussi
$man ls|wc -w
922
I have never fully read the manpage for LS, and still dont know what most of those flags do.
Flags I actually use:
-a, -F, -R --color=auto, sometimes -l.

I use 'ls -alt' almost always. --full-time is sometimes useful. And -1.

FreeBSD is worse. They don't like long options.
freebsd.org/cgi/man.cgi?query=ls&sektion=1

Mostly baseline noise to support dynamic linking and exceptions. The .text is only about 400 bytes.
Sections:Idx Name Size VMA LMA File off Algn 0 .interp 0000001c 0000000000000238 0000000000000238 00000238 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .note.ABI-tag 00000020 0000000000000254 0000000000000254 00000254 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 2 .note.gnu.build-id 00000024 0000000000000274 0000000000000274 00000274 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .gnu.hash 0000001c 0000000000000298 0000000000000298 00000298 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .dynsym 000000c0 00000000000002b8 00000000000002b8 000002b8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 5 .dynstr 00000096 0000000000000378 0000000000000378 00000378 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 6 .gnu.version 00000010 000000000000040e 000000000000040e 0000040e 2**1 CONTENTS, ALLOC, LOAD, READONLY, DATA 7 .gnu.version_r 00000020 0000000000000420 0000000000000420 00000420 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 8 .rela.dyn 000000f0 0000000000000440 0000000000000440 00000440 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 9 .rela.plt 00000018 0000000000000530 0000000000000530 00000530 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 10 .init 00000017 0000000000000548 0000000000000548 00000548 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 11 .plt 00000020 0000000000000560 0000000000000560 00000560 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 12 .plt.got 00000008 0000000000000580 0000000000000580 00000580 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE 13 .text 000001e2 0000000000000590 0000000000000590 00000590 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 14 .fini 00000009 0000000000000774 0000000000000774 00000774 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 15 .rodata 0000000c 000000000000077d 000000000000077d 0000077d 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 16 .eh_frame_hdr 0000003c 000000000000078c 000000000000078c 0000078c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 17 .eh_frame 00000104 00000000000007c8 00000000000007c8 000007c8 2**3 CONTENTS, ALLOC, LOAD, READONLY, DATA 18 .init_array 00000010 0000000000200dd0 0000000000200dd0 00000dd0 2**3 CONTENTS, ALLOC, LOAD, DATA 19 .fini_array 00000008 0000000000200de0 0000000000200de0 00000de0 2**3 CONTENTS, ALLOC, LOAD, DATA 20 .jcr 00000008 0000000000200de8 0000000000200de8 00000de8 2**3 CONTENTS, ALLOC, LOAD, DATA 21 .dynamic 000001e0 0000000000200df0 0000000000200df0 00000df0 2**3 CONTENTS, ALLOC, LOAD, DATA 22 .got 00000030 0000000000200fd0 0000000000200fd0 00000fd0 2**3 CONTENTS, ALLOC, LOAD, DATA 23 .got.plt 00000020 0000000000201000 0000000000201000 00001000 2**3 CONTENTS, ALLOC, LOAD, DATA 24 .data 00000008 0000000000201020 0000000000201020 00001020 2**3 CONTENTS, ALLOC, LOAD, DATA 25 .bss 00000008 0000000000201028 0000000000201028 00001028 2**0 ALLOC 26 .comment 00000026 0000000000000000 0000000000000000 00001028 2**0 CONTENTS, READONLY
You might notice .eh_frame is pretty fat. Lennart loves this as it's what he uses to support RTTI in C via attribute((cleanup(...))), despite it massively bloating all C code. I'm sure you're familiar with this because you've all looked at systemd's code before criticizing it on image boards. While the poster added '-fno-unwind-tables' to try to get rid of this section, glibc's init has them and will be merged in by the linker.

ls -a|grep -v "^\.\+$"
Or if using a sane regexp
ls -a|grep -v "^\.+$"

how do you get rid of this?

Bloat doesn't exist.

use musl

The .eh_frame stuff? Rebuild your distro with it disabled. Enabling it was pretty controversial when it happened, but it was before Holla Forums had been to Hour of Code classes and listened to feminists tell them they need to get into STEM so they don't remember.

I shit myself when I looked at GNU true. Many many lines, when 3 lines would suffice.

Party game idea: try to guess what happens if you use your own name for ls's argument list.

...

echo is another example of the stupidity of UNIX. What does echo do? It prints a string to standard output and GNU echo can parse backslash escapes. Why do you need separate programs to do that? Because the shell sucks. Most of these "tools" are because the shell sucks. awk is because the shell sucks (and awk sucks too). Why aren't the features of awk built into the shell?

Does printing a string really need to start a new process with its own PID and its own address space and everything else? Isn't that just "print" in a normal language? That's how badly the shell sucks. The real bloat comes from needing a whole separate executable file and having to create a new process just to print a line of text.

bash has echo as a built in.

dont worry soon enough it will be systemd-bash and it'll all run under pid 1

Yeah except all of the autists don't realize that there's speed and portability and various other considerations in gnu coreutils.
For example, take GNU yes. It's, at worst, 50 TIMES faster than OpenBSD/FreeBSD yes. Usually 70 to 80 times faster.
That's because GNU chose technical considerations over readability. None of you morons know what you're talking about.

It's even funnier when you realize that GNU echo is recognizing escape sequences while also being faster.

A better Linux wouldn't even have echo in shells. It's a workaround for the process model being poorly thought out and having a large startup time. A modern OS would work more like a cellphone where the echo app would be left running in case more requests were made of it and shut down transparently when not needed.

perl -le 'opendir(D,"."); /^\.{1,2}$/ or print while(readdir(D))'
tbh fam

You're retarded, aren't you?

Get on my non-being non-existing level

Can't wait for SystemD to replace Linux.

...

I guess it's time to install openbsd + GPL software