Apache, il cui sviluppo (ricordiamo che il team è formato da volontari,
noti come l'Apache Group) è arrivato alla versione 1.3.12, è nato come
rimpiazzo per il webserver httpd 1.3 sviluppato dal NCSA (National Center for
Supercomputing Applications), inglobandone le carrateristiche,
risolvendone i problemi ed implementando nuove features.
Come sopra accennato, Apache è un webserver per il protocollo HTTP,
designato per poter girare come un processo standalone, senza ciò
chiedere l'appoggio ad altre applicazioni o direttamente all'utente.
Per poter fare ciò, Apache, una volta che sia stato avviato, crea dei
sottoprocessi (comunemente e meglio detti "children processes") per poter
gestire le richieste: questi processi, comunque, non potranno mai
interferire con il processo maggiore, ma può succedere l'opposto:
mandando un segnale di stop a questo, anche i children saranno
terminati.
Un tipico albero dei processi di Apace potrebbe essere qualcosa di
simile a:
USER | PID | %CPU | %MEM | SIZE | RSS | TTY | STAT | START | TIME | COMMAND |
root | 203 | 0.01 | 1.01 | 4952 | 720 | ? | S | 17.20 | 0.03 | /usr/sbin/apache |
user | 212 | 0.00 | 2.03 | 5012 | 1456 | ? | S | 17.20 | 0.00 | _ /usr/sbin/apache |
user | 213 | 0.00 | 2.02 | 5008 | 1424 | ? | S | 17.20 | 0.00 | _ /usr/sbin/apache |
user | 214 | 0.00 | 0.00 | 4976 | 0 | ? | SW | 17.20 | 0.00 | _ (apache) |
user | 216 | 0.00 | 0.00 | 4976 | 0 | ? | SW | 17.20 | 0.00 | _ (apache) |
user | 473 | 0.00 | 1.06 | 4976 | 1072 | ? | S | 18.05 | 0.00 | _ /usr/sbin/apache |
user | 477 | 0.00 | 1.07 | 4976 | 1076 | ? | S | 18.05 | 0.00 | _ /usr/sbin/apache |
user | 478 | 0.00 | 2.04 | 5012 | 1544 | ? | S | 18.05 | 0.00 | _ /usr/sbin/apache |
Ricordiamo inoltre che Apache è distribuito come free software, per
esplicito desiderio del team che lo sviluppa: questi, infatti, ritengono
che strumenti di questo genere debbano essere accessibili a tutti, e che
le software house debbano guadagnarci solo producendo addons o simili di
valore, o magari personalizzati per alcune categorie di utenti. Inoltre,
lasciando il software in mano di chiunque nonchè completo di sorgenti, è
possibile che costoro contribuiscano, sia tramite feedback sia tramite vere e
proprie patch, a migliorare il prodotto finale. Date le loro premesse, come
dare loro torto?