Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Bloat

Name: !jEtRn2gPRg 2011-09-18 2:22

Software bloat and its impact on computing today

I've been noticing a disappointing trend of modern developers creating software
that is becoming more and more inefficient: in code size, memory usage, and
run times, for basically equivalent tasks. As the days where software had to
share 640 KiB of memory have long disappeared, so has the skill of developing
fundamentally simple and cruft-free software it seems.

A key example is a comparison of implementations of `cat' over various
operating systems from the UNIX family [1], which is meant to be an extremely
simple program. GNU's `cat' consists of 782 lines, which is absolutely
ridiculous for a program that is, at a fundamental level, intended to
concatenate streams. `cat' is not meant to number lines, squeeze blank lines,
or format non-printable characters, and these features are arguably almost
never used.

I am becoming frustrated by popular software projects, even in the open-source
world, that suffer from extreme levels of unnecessary cruft. It disappoints me
to mention the GNU project as being a notorious offender in the creation of
bloated software. `emacs' is often jokingly referred to as an `entire operating
system', but this metaphor is far closer to reality than many people realise.
`GRUB', the GNU project's bootloader, is not a bootloader; it is also
comparable, in size and functionality, to an `operating system', and much of
its functionality is blatantly unnecessary for its perceived core purpose:
booting operating systems.

It is rare to find software today that follows the traditional UNIX philosophy,
even on operating systems inspired by UNIX. The UNIX philosophy consists of
concepts whereby software should be simple, orthogonal in nature, and modular,
among other good development practices. `Plan 9 from Bell Labs' gets it right
in many areas where other, more popular operating systems, don't. Unfortunately
it has not become a success over its predecessor, UNIX, because UNIX is widely
seen as `good enough', however technically inferior it may be.

However, in comparison to today's operating systems, even traditional UNIX
looks impressively lean, clear and simple. At some point in the future I do
plan to develop an operating system that is somewhat inspired by the design and
philosophy of UNIX.

[1] https://gist.github.com/665971

Name: tdavis 2011-09-18 6:36

I agree on Grub!!  There's some obvfsucating going-on or something.  I wanted to boot my LoseThos partition which is just a chainloaded OS.  They had this crazy customize crap with an extra level of indirection.  It was obsvucating, evil bastards!


#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sdb2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(/dev/sdb,msdos2)'
    search --no-floppy --fs-uuid --set=root BAE02E36E02DF971
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###
menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux    /boot/vmlinuz-2.6.38-8-generic root=UUID=59a819c4-7e13-4350-9803-f59d136854d8 ro   quiet splash vt.handoff=7
    initrd    /boot/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    echo    'Loading Linux 2.6.38-8-generic ...'
    linux    /boot/vmlinuz-2.6.38-8-generic root=UUID=59a819c4-7e13-4350-9803-f59d136854d8 ro single
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.38-8-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux16    /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

menuentry "LoseThos D" {
    insmod chain
    set root=(hd0,msdos1)
    chainloader +1
}

menuentry "LoseThos E" {
    insmod chain
    set root=(hd0,msdos5)
    chainloader +1
}

menuentry "LoseThos I" {
    insmod chain
    set root=(hd1,msdos5)
    chainloader +1
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List