Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Busybox

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Busybox - vienas iš populiaresnių šelų, kurie naudojami su įvairiais UNIX ar Linux. Skirtingai nuo kitų šelų, Busybox yra padarytas kaip "All in one" programa, kurioje būtų visai nesilaikoma įprasto KISS principo, tačiau užtat gautųsi daug didesnis veikimo greitis, o taip pat daug mažiau užimtų vietos ir diske, ir operacinėje atmintyje.

Busybox šelas nėra tipiškas įvairioms UNIX ar Linux sistemoms, tačiau labai paplitęs tais atvejais, kai reikia žūtbūt sumažinti UNIX tipo sistemą, išlaikant jos funkcionalumą.


Busybox idėja ir programų optimizacija

Reikalas yra tas, kad jei daromos dvi kad ir panašios programos, didele dalimi jų vidinės funkcijos dubliuojasi, netgi kai naudojamos išorinės programinės bibliotekos. Itin smarkiai tas dubliavimas pasijunta, kai naudojami optimizuojantys kompiliatoriai - kai kada padvigubinus programos teksto apimtį, galima atrasti, kad visa programa padidėjo vos kokiu 100 baitų ir užima ne kokius nors 10 kilobaitų, o vos tais pat 100 baitų daugiau. Tai susiję su tuo, kad labai daugelis operacijų yra atsikartojančios, taigi, kompiliatorius labai daug ką gali pernaudoti.

Todėl bendras dėsnis yra toksai: norint kažkokį programų paketą pagreitinti ir sumažinti, viską reikia jungti į vieną krūvą. Štai taip ir padaryta buvo.


Busybox funkcionalumas

Busybox turi bazinį klasikinio sh funkcionalumą, bet kartu yra pridėtas funkcionalumas iš papildomų UNIX komandų. Visas komandas galima gauti ir šiaip pasileidus busybox kaip šelą, bet galima padaryti ir symlinką į busybox, besivadinantį, kaip atitinkama komanda. Tada busybox atpažįsta, kad yra kviečiamas kaip atitinkama komanda, o taip atitinkamai ir pats ima elgtis, lyg būtų visai kita programa.

Pasižiūrėjus į Busybox funkcionalumą, pasidaro aišku, kad čia beveik visas ištisas UNIX į jį sudėtas. Faktiškai taip ir yra - pridėjus kernelį (t.y., tikrą OS), tinkamą katalogų struktūrą (pagrindinai /dev/ ir /etc/), gaunama daugmaž normali UNIX tipo sistema (aišku, be jokių ten serverių, grafinės aplinkos ar dar ko nors gudresnio).

Busybox palaikomų komandų sąrašas yra toksai:

  • [
  • [[
  • acpid
  • addgroup
  • adduser
  • adjtimex
  • ar
  • arp
  • arping
  • ash
  • awk
  • basename
  • beep
  • blkid
  • brctl
  • bunzip2
  • bzcat
  • bzip2
  • cal
  • cat
  • catv
  • chat
  • chattr
  • chgrp
  • chmod
  • chown
  • chpasswd
  • chpst
  • chroot
  • chrt
  • chvt
  • cksum
  • clear
  • cmp
  • comm
  • cp
  • cpio
  • crond
  • crontab
  • cryptpw
  • cut
  • date
  • dc
  • dd
  • deallocvt
  • delgroup
  • deluser
  • depmod
  • devmem
  • df
  • dhcprelay
  • diff
  • dirname
  • dmesg
  • dnsd
  • dnsdomainname
  • dos2unix
  • dpkg
  • du
  • dumpkmap
  • dumpleases
  • echo
  • ed
  • egrep
  • eject
  • env
  • envdir
  • envuidgid
  • expand
  • expr
  • fakeidentd
  • FALSE
  • fbset
  • fbsplash
  • fdflush
  • fdformat
  • fdisk
  • fgrep
  • find
  • findfs
  • flash_lock
  • flash_unlock
  • fold
  • free
  • freeramdisk
  • fsck
  • fsck.minix
  • fsync
  • ftpd
  • ftpget
  • ftpput
  • fuser
  • getopt
  • getty
  • grep
  • gunzip
  • gzip
  • hd
  • hdparm
  • head
  • hexdump
  • hostid
  • hostname
  • httpd
  • hush
  • hwclock
  • id
  • ifconfig
  • ifdown
  • ifenslave
  • ifplugd
  • ifup
  • inetd
  • init
  • inotifyd
  • insmod
  • install
  • ionice
  • 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
  • lzmacat
  • lzop
  • lzopcat
  • makemime
  • man
  • md5sum
  • mdev
  • mesg
  • microcom
  • mkdir
  • mkdosfs
  • mkfifo
  • mkfs.minix
  • mkfs.vfat
  • mknod
  • mkpasswd
  • mkswap
  • mktemp
  • modprobe
  • more
  • mount
  • mountpoint
  • mt
  • mv
  • nameif
  • nc
  • netstat
  • nice
  • nmeter
  • nohup
  • nslookup
  • od
  • openvt
  • passwd
  • patch
  • pgrep
  • pidof
  • ping
  • ping6
  • pipe_progress
  • pivot_root
  • pkill
  • popmaildir
  • printenv
  • printf
  • ps
  • pscan
  • pwd
  • raidautorun
  • rdate
  • rdev
  • readlink
  • readprofile
  • realpath
  • reformime
  • renice
  • reset
  • resize
  • 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
  • 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
  • TRUE
  • tty
  • ttysize
  • udhcpc
  • udhcpd
  • udpsvd
  • umount
  • uname
  • uncompress
  • unexpand
  • uniq
  • unix2dos
  • unlzma
  • unlzop
  • unzip
  • uptime
  • usleep
  • uudecode
  • uuencode
  • vconfig
  • vi
  • vlock
  • volname
  • watch
  • watchdog
  • wc
  • wget
  • which
  • who
  • whoami
  • xargs
  • yes
  • zcat
  • zcip


Visokios svarbios Linux temos, kurias turi žinoti kiekvienas
Linux-logo-tux-pingvinas.jpg
Linux distribucijos:
Red Hat Fedora SUSE OpenSUSE Debian Alpine Linux Linux Mint Slackware Arch Linux CentOS Ubuntu
Desktopai:
XFCE LXDE Gnome MATE Cinnamon CDE KDE GnuStep Enlightenment
Svarbios sąvokos:
Xterm Šelas X-Window Langų menedžeris
Svarbios programos:
Midnight Commander Vi Busybox Lynx Wine
Ne Linux:
GNU/Linux UNIX FreeBSD MacOS-X QNX