Reduciendo linux (ii)

Ya tenemos una pequeña version de Linux, ahora viene lo dificil, hacer una pequeña version del sistema base. Para esto usaremos una herramienta muy poderosa que fue pensada para eso: Busy box.

Busy box fue desarrollado para usarse en los discos de arranque de Debian, ya que este debia contener el sistema y proveer todas las funciones necesarias en un espacio muy reducido. Desde ese momento hasta nuestros dias Busy box ha sido la solucion para todos los sistemas que necesitan ahorrar espacio sin perder la funcionalidad, algunas cosas que podemos usar de esta aplicacion estan en la siguiente lista:

$ busybox
BusyBox v1.18.0 (2010-12-01 19:10:28 CET) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, [[, acpid, add-shell, addgroup, adduser, adjtimex, ar, arp, arping,
	awk, base64, basename, bbconfig, beep, blkid, blockdev, bootchartd,
	brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp,
	chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp,
	comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date,
	dc, dd, deallocvt, delgroup, deluser, depmod, devfsd, devmem, df,
	dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg,
	dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env,
	envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset,
	fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs,
	flash_eraseall, flash_lock, flash_unlock, flashcp, flock, fold, free,
	freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser,
	getopt, getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump,
	hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown,
	ifenslave, ifplugd, ifup, inetd, init, inotifyd, insmod, install,
	ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute,
	iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last,
	length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap,
	logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr,
	lsmod, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime,
	man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo,
	mkfs.ext2, mkfs.minix, mkfs.reiser, mkfs.vfat, mknod, mkpasswd, mkswap,
	mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, msh, mt,
	mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nmeter,
	nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping,
	ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff,
	powertop, printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev,
	readahead, readlink, readprofile, realpath, reboot, reformime,
	remove-shell, renice, reset, resize, rev, rfkill, rm, rmdir, rmmod,
	route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir,
	rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole,
	setfont, setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum,
	sha256sum, sha512sum, showkey, slattach, sleep, smemcap, softlimit,
	sort, split, start-stop-daemon, stat, strings, stty, su, sulogin, sum,
	sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac,
	tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
	time, timeout, top, touch, tr, traceroute, traceroute6, true, tty,
	ttysize, tunctl, tune2fs, ubiattach, ubidetach, udhcpc, udhcpd, udpsvd,
	umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop,
	unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock,
	volname, wall, watch, watchdog, wc, wget, which, who, whoami, xargs,
	xz, xzcat, yes, zcat, zcip

Como podremos ver es un sistema Gnu base en una sola aplicacion de aproximadamente 476 kB – 1308 kB

Tambien existen otras herramientas como Dropbear que nos sirve para SSH que se puede conseguir aqui http://matt.ucc.asn.au/dropbear/

Un pequeño compilador de C http://bellard.org/tcc/ el cual sirve para compilar el kernel de linux siguiendo estas instrucciones http://bellard.org/tcc/tccboot.html lo cual con un poco de estratedia puede usarse para un sistema base

Una version minima de Grep http://robur.slu.se/jensl/ugrep/ de Getty http://www.fefe.de/fgetty/ y un clon de Wget http://www.fefe.de/fget/ diseñados para dietC. Tambien existe una version de Sedque proviene de un grupo de desarrolladores diferente al de los de las herramintas anteriores http://www.exactcode.de/site/open_source/minised/

Por ultimo una libreria de SSL que reduce el tamaño, y que tal ves el unico detalle es el tipo de licencia que maneja http://polarssl.org/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s