GNU / Linux (tot i que habitualment es sol conèixer com Linux) és un sistema operatiu (SO) lliure. Va néixer a partir del nucli Linux creat el 1991 per Linus Torvalds. El nucli (Linux) juntament amb la resta d’aplicacions que componen un sistema operatiu (creades en el projecte GNU) és el que habitualment coneixem com GNU/Linux o, simplement, Linux. Actualment és àmpliament utilitzat com a servidor web, entre altres coses perquè es pot instal·lar en diferents màquines, és estable i lluire. Així, Facebook, Gmail, LinkedIn o Yahoo utilitzen servidors GNU/Linux, la qual cosa pot donar una idea de la importància d’aquest SO.
Pràcticament totes les empreses d’allotjament web (hosting en anglès) ofereixen plans d’allotjament basats en Linux. També per a grans empreses es poden crear xarxes de servidors funcionant amb GNU/Linux.
Per simplificar, a partir d’aquest moment, ens referirem a GNU/Linux com Linux, encara que convé no oblidar que Linux és només el nucli del sistema.
El sistema operatiu
La funció de qualsevol sistema operatiu (SO) és proporcionar una interfície per utilitzar les prestacions del maquinari d’un ordinador. Els programadors accedeixen a aquestes prestacions a través del SO i poden dissenyar aplicacions amb objectius específics per a usuaris finals. Aquests, al seu torn, utilitzen el SO per poder executar aquestes aplicacions.
Linux pertany a la família de sistemes anomenada Unix i la seva filosofia està heretada d’aquest tipus de sistemes. En endavant, quan definim moltes de les característiques, funcionament i fins i tot comandaments de Linux, podem assumir que es poden aplicar a qualsevol maquinari Unix amb mínims canvis. Així per exemple, ja podem dir que Linux és un sistema multiusuari i multitasca, és a dir, permet a diversos usuaris treballar simultàniament i executar diverses aplicacions al mateix temps. Aquestes característiques determinen de manera important el funcionament del sistema, el qual ha de garantir que tota aquesta càrrega de treball simultània es dugui a terme de forma segura i eficient.
Linux està organitzat per capes. La capa més profunda correspon al maquinari, que proporciona una sèrie de serveis (procés, gestió de fitxers, impressió, etc.). L’única capa que interactua directament amb el maquinari és el nucli (kernel). D’aquesta manera, els programes no necessiten saber res sobre el maquinari i només es comuniquen amb el nucli. Un dels avantatges d’aquesta estructura és que la majoria de programes són independents del maquinari i es poden portar d’un model d’ordinador a un altre.
Les aplicacions que funcionen sobre el nucli constitueixen l’últim nivell i l’únic visible per als usuaris. Algunes d’aquestes aplicacions són programes bàsics per a la gestió de la informació i l’execució de programes i ja vénen amb el sistema operatiu, pel que és habitual parlar de Linux referint-se no només al nucli, sinó també a aquest conjunt d’utilitats, desenvolupades per el projecte GNU.
Qui m’escolta?
Una de les idees fonamentals de Linux que deriva de l’estructura de capes és que els usuaris no ‘parlen’ directament amb el sistema, sinó que ho fan a través d’una aplicació anomenada intèrpret d’ordres (shell). Aquesta aplicació està constantment ‘escoltant’ tot el que l’usuari tecleja i interpreta (a partir d’unes certes regles sintàctiques) les seves peticions.
L’intèrpret d’ordres disposa d’una sèrie d’ordres internes que ell mateix executa, però, alhora, pot executar altres ordres externes, passant les opcions que l’usuari ha especificat. A la imatge veiem la comanda cat que permet visualitzar el contingut d’un fitxer especificat per l’usuari. Algunes ordres executen aplicacions que proporcionen la seva pròpia interfície i conjunts d’ordres per interactuar amb els usuaris, com l’editor de text vi, que també es mostra com a exemple a la imatge.