Les systèmes LINUX sont construits à l'aide de centaines de petits paquets logiciels, chacun d'eux réalisant des groupes d'opérations logiques. Sur LINUX, des paquets autonomes intéragissent de manière à produire plus de fonctionnalités que ne le feraient de grands ensembles logiciels unitaires. Il n'y a pas de distinction nette entre les parties propres du système d'exploitation et les applications; chaque fonction est un paquet.
Un paquet logiciel (software package) sur un système RedHat typique est distribué sous forme d'un fichier RPM (pour RedHat Package Manager) qui présente une extension .rpm. Dans le cas d'une distribution Debian, un fichier équivalent est caractérisé par une extension .deb; pour une Slackware, l'extension est .tgz. Les paquets d'une Gentoo ont un suffixe .ebuild qui permet au sein de Portage de compiler les sources sous forme .tar.gz ou .tar.bz2. [le lecteur se rapportera à la description de Portage sur http://www.gentoo.org].
Lors de son installation, chaque paquet est developpé en plusieurs fichiers distribués dans tout le système. Les paquets ne créent généralement pas de répertoires majeurs mais au lieu de cela, les fichiers qui le constituent sont disposés dans des répertoires existant clairement identifiés.