Classificazioni del software:
Un programma è un insieme di istruzioni che devono essere eseguite da un calcolatore.
Esistono programmi di diversa natura e di diversa complessità.
Un programma può:
Per applicazione si intende un programma (o un insieme di programmi) che svolgono qualcosa di concretamente utile per l'utente finale.
Un sistema operativo è un programma (o un insieme di programmi) che ha lo scopo di permettere l'uso concreto di un calcolatore e l'accesso alle sue risorse.
I compiti fondamentali di un sistema operativo sono:
Un esempio di programma:
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
Il programma sorgente viene compilato per ottenere un programma eseguibile (dalla "ricetta" si ottiene la torta).
Mangereste un alimento (o assumereste un farmaco) di cui nessuno conosce la ricetta (salvo chi l'ha prodotto)?
La Free Software Foundation è un'organizzazione senza scopo di lucro che ha come obiettivo la promozione dello sviluppo di software libero, definito tramite le seguenti caratteristiche:
La FSF ha, tra le altre cose, promosso la creazione di una versione di sistema operativo completo, ispirato a Linux, chiamato GNU (GNU's Not Unix).
Il software, come qualsiasi opera d'ingegno, è tutelato dal diritto d'autore: chi lo produce ha il diritto di:
Nel mondo anglosassone esiste il concetto di copyright (lett. "diritto sulle copie"), sulla base del quale sono state elaborate delle licenze che, a determinate condizioni, concedono diritti anziché limitarli. Con un gioco di parole, si parla di copyleft.
La FSF ha promosso alcuni tipi di licenze con cui un programmatore può distribuire il software prodotto:
Altre licenze (non FSF) prevedono la distribuzione del codice sorgente, con maggiori o minori restrizioni.
L'Open Source Initiative ha stilato una lista di caratteristiche che una licenza deve avere per essere considerata open source:
Molto software viene distribuito con licenze diverse, che solitamente vengono raggruppate nelle seguenti categorie:
freeware
public domain