cultura lliure cultura lliure
Inici  | Llibres |  Música   |   Sobre Culturalliure.cat    

Inici » Llibres » Programari lliure, societat lliure: » Nota sobre programari


Nota sobre programari



[1]

Aquest apartat està destinat als lectors que tinguin pocs coneixements, o cap ni un, sobre els aspectes tècnics de la informàtica. No cal llegir aquest apartat per entendre els escrits i les conferències que es presenten en aquest llibre, però pot ser útil per als lectors que desconeguin alguns dels termes que s'acostumen a fer servir en el camp de la programació i la informàtica.

Un programador informàtic escriu programari (programes d'ordinador). Un programa ve a ser una recepta d'ordres que indiquen a l'ordinador què ha de fer per dur a terme determinades tasques. De ben segur que el lector coneix molts programes diferents: el navegador web, el processador de textos, el client de correu electrònic, etc.

Els programes normalment es comencen a construir en forma de codi font. El conjunt d'ordres de nivell més alt s'escriu en un llenguatge de programació com ara C o Java. Posteriorment, una eina que rep el nom de compilador les tradueix a un llenguatge de nivell més baix conegut com a llenguatge d'assemblatge. Una altra eina, l'assemblador, tradueix el codi d'assemblatge al nivell més baix, el llenguatge màquina, que l'ordinador entén com a llengua nativa.

Imatge de Cultura Lliure

Suposem que tenim el programa "Hola al món", un dels primers programes que fa servir normalment la gent que aprèn el llenguatge C, llenguatge que (un cop compilat i executat) imprimeix "Hola al món!" a la pantalla [2].



 int main(){
    printf(''Hola al món!'');
    return 0;
 }



En el llenguatge de programació Java, el mateix programa s'escriuria de la manera següent:



 public class hello {
    public static void main(String args[]) {
      System.out.println(''Hola al món!'');
    }
 }



En llenguatge màquina, però, una petita part del programa podria tenir un aspecte semblant a això:



1100011110111010100101001001001010101110 0110101010011000001111001011010101111101 0100111111111110010110110000000010100100 0100100001100101011011000110110001101111 0010000001010111011011110111001001101100 0110010000100001010000100110111101101111



La representació anterior de llenguatge màquina és la més bàsica i es coneix com a binària. Totes les dades dels ordinadors estan formades per una sèrie de valors 0 i 1, però per a una persona seria extremadament difícil entendre'n el significat. Per a fer un petit canvi al codi binari caldria saber perfectament com interpreta un ordinador determinat el llenguatge màquina. Això podria ser factible en el cas de programes petits com els esmentats més amunt, però en un programa important els canvis petits comportarien una feinada esgotadora.

A tall d'exemple, imaginem que volguéssim introduir un canvi al programa "Hola al món" escrit en C perquè, enlloc d'imprimir "Hola al món!" en català, ho fes en anglès. El canvi seria ben senzill i aquí tenim el programa nou:



 int main(){
    printf (''Hello World!'');
    return 0;
 }



No és pas gaire difícil deduir com s'hauria d'introduir el mateix canvi al programa escrit en el llenguatge de programació Java, però fins i tot molts programadors no sabrien ni per on començar si volguessin modificar la representació binària. Quan parlem de codi font no ens referim al llenguatge màquina que només entenen els ordinadors, sinó als llenguatges de nivell més alt, com ara C o Java. D'altres llenguatges de programació coneguts són C++, Perl i Python. Alguns són més difícils que d'altres a l'hora d'entendre'ls i de programar-hi, però tots ells són molt més senzills que l'enrevessat llenguatge màquina en què es converteixen un cop s'han compilat i assemblat els programes.

Un altre concepte important és el de sistema operatiu. Un sistema operatiu és el programari que gestiona les entrades i sortides, l'assignació de memòria i la planificació de tasques. Per regla general, es considera que programes habituals o útils com ara la interfície gràfica d'usuari (GUI, Graphical User Interface) són part del sistema operatiu. El sistema operatiu GNU/Linux inclou tant programari GNU com programari extern (no-GNU), i un nucli anomenat Linux. El nucli gestiona les tasques de baix nivell de les quals depenen les aplicacions, com ara les entrades i sortides o la planificació de tasques. El programari GNU inclou la major part de la resta del sistema operatiu, com ara el GCC (un compilador genèric per a molts llenguatges), el GNU Emacs (un editor de textos ampliable amb moltíssimes funcions), el GNOME (l'escriptori del GNU), la GNU libc (una biblioteca que han d'utilitzar tots els programes, tret del nucli, per tal de comunicar-se amb aquest) i el Bash (l'intèrpret d'ordres del GNU que llegeix les línies d'ordres introduïdes per l'usuari). Molts d'aquests programes van ser ideats per Richard Stallman a les beceroles del projecte GNU i s'inclouen en tots els sistemes operatius GNU/Linux moderns.

Cal tenir en compte que encara que el lector no sàpiga modificar el codi font d'un programa determinat o fer servir directament totes aquestes eines, no és gaire difícil trobar algú que sí que en sàpiga. Per tant, si es disposa del codi font d'un programa, sovint això implica tenir la capacitat de modificar, corregir, personalitzar i aprendre el programa. Aquesta capacitat no es té sense el codi font. Disposar del codi font és una de les condicions perquè el programari sigui lliure. La resta de condicions s'expliquen en aquest recull d'articles, juntament amb la filosofia i els principis en què es basen. Espero que us agradi!



Richard E. Buckman
Joshua Gay




NOTES

· ^ 1. Es permet la còpia literal i la distribució per qualsevol mitjà de tot aquest article, sempre que es reprodueixi aquest avís.

· ^ 2. En altres llenguatges de programació, com ara l'Scheme, el programa "Hola al món" no acostuma a ser el primer programa. En l'Scheme normalment es comença per un programa com ara aquest:



  (define (factorial n)
    (if (= n 0)
    1
    (* n (factorial (- n 1)))))



Aquest programa calcula la factorització d'un nombre. És a dir, si s'executa (factorial 5), s'obté 120, que és el resultat de multiplicar 5 * 4 * 3 * 2 * 1 * 1.



Taula de continguts
blocs | capítols | completa ]



PortadaPORTADA
Nota de l'editorNOTA DE L'EDITOR
Nota sobre programari NOTA SOBRE PROGRAMARI
Guia TemàticaGUIA TEMàTICA
IntroduccióINTRODUCCIó
Secció U. El projecte GNU i el programari lliureSECCIó U. EL PROJECTE GNU...
Secció Dos. Copyright, copyleft i patentsSECCIó DOS. COPYRIGHT, CO...
Secció Tres. Llibertat, Societat i ProgramariSECCIó TRES. LLIBERTAT, S...
Secció Quatre. Les llicènciesSECCIó QUATRE. LES LLICèN...

logo_secretaria2.png

Valid XHTML 1.0 Transitional