F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso Fulvio Bartoloni
F. Bartoloni SW: di base, applicativo, linguaggi, licenze d'uso 1Il sistema operativo: descrizione, componenti, tipologie 2Sistemi operativi Microsoft: storia, versioni, evoluzione 3Sistema operativo Unix: storia, versioni, evoluzione 4Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSD 5Sistemi operativi OpenSource Unix like: Linux 6SW applicativo: tipologie e prodotti 7Office Automation MS e OpenSource 8SW di sviluppo: compilatori, interpreti, linguaggi di programmazione 9Linguaggi di script: shell, Perl 10Linguaggi a oggetti: C++, Java 11Linguaggi orientati ai DB: SQL, MySQL… 12Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASP 13Licenze d'uso OpenSource: storia, versioni, differenze 14Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula)
F. Bartoloni Il sistema operativo: descrizione, componenti, tipologie Si intende per Sistema Operativo (o software di sistema) un gruppo di programmi che gestisce il funzionamento di base del computer. Il sistema operativo rimane sempre attivo dal momento in cui viene caricato (allaccensione della macchina) fino allo spegnimento. Sono gestite dal sistema operativo tutte le funzioni generali della macchina, come laspetto grafico delle visualizzazioni su monitor, la scrittura e la lettura dai dischi, la messa in esecuzione e la chiusura dei vari programmi, la ricezione e trasmissione di dati attraverso tutti i dispositivi di I/O. Non fanno invece parte del sistema operativo i vari programmi applicativi (software applicativo) come ad esempio i programmi di scrittura, di ritocco fotografico, gli antivirus, ecc. che vengono acquistati a parte e installati sulla macchina dopo che questa contiene già il sistema operativo. In definitiva si può dire che il Software di sistema serve alla macchina per funzionare, mentre il Software applicativo serve all'utente per lavorare.software applicativo
F. Bartoloni Il sistema operativo: descrizione, componenti, tipologie Il sistema operativo risiede sullhard disk come tutti gli altri programmi e viene caricato nella memoria RAM allaccensione della macchina. Un computer appena uscito dalla fabbrica non è neppure in grado di funzionare ma può solo eseguire il boot e arrestarsi con un messaggio d'errore quando rileva l'assenza del sistema operativo. In questo caso occorre eseguire l'installazione del sistema prima di qualunque altra operazione. boot Esistono molti sistemi operativi: i più diffusi oggi sono i vari Windows della Microsoft (98, Me, NT, 2000), MacOS della Apple per i computer Macintosh, Linux e Unix in ambito universitario e della ricerca, o in generale per la gestione di reti di computer, e altri ancora. Molto diffuso fino ad alcuni anni fa era anche lMS-DOS, oggi soppiantato da Windows.
F. Bartoloni Sistemi operativi Microsoft: storia, versioni, evoluzione In Italia il sistema operativo più diffuso sui PC è Windows della Microsoft: - per i computer di uso personale, dopo il DOS, si sono succeduti Windows 1, 2, 3, 95, 98, Me (Millennium edition) e dall'autunno 2001 è in commercio Windows XP (experience); - per i computer usati all'interno di reti condivise da più utenti, dove esiste un problema di sicurezza dei dati, sono stati prodotti Windows NT e Windows 2000; - per i nuovi computer palmari, in commercio dalla fine del 1999, esiste la versione "leggera" Windows CEcomputer palmari
F. Bartoloni Sistema operativo Unix: storia, versioni, evoluzione Unix, utilizzato principalmente in ambito universitario e della ricerca, o in generale per la gestione di reti di computer (Internet). Presente anche nei sistemi informativi delle aziende private e pubbliche. Linux e Unix sono sistemi operativi cosiddetti a linea di comando La prima versione girerà su una macchina della Digital Equipment Co. (DEC) Il programma è scritto in assembler. Verrà poi riscritto usando il linguaggio "C. Prodotte tante versioni per quante sono le macchine su cui gira (hardware).
F. Bartoloni Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSD BSD (Berkley Software Distribution) è un sistema operativo disponibile su molte piattaforme. Estensione dello UNIX della AT&T. Codice sorgente noto come 4.4BSD-Lite. Comprende numerosi pacchetti tra i quali il progetto GNU. FreeBSD è completamente gratuito (freeware) ed in costante evoluzione. Circa 10 milioni diinstallazioni. Include XFree86 che è un ambiente grafico. E una delle varianti di UNIX più diffusa. In Russia è il n. 1. Si è affermato come s.o. per server Intranet e Internet. Molte le applicazioni disponibili: Apache, Squid, Sendmail, Qpopper, Samba, Majordomo, MySQL, BIND, ecc.. Contiene librerie per la compatibilità con Linux e UNIX. IBM, Microsoft, Apple, ecc. hanno prelevato codice da FreeBSD per sviluppare i loro s.o. più recenti. Si scarica gratuitamente da Internet.
F. Bartoloni Sistemi operativi OpenSource Unix like: BSD, FreeBSD, OpenBSD, NetBSD OpenBSD è completamente gratuito. Il team di sviluppo Canadese si finanzia con donazioni, vendita di CD e magliette. Offre più integrazione con il software criptografico: OpenSSH, versione freeware di un tool per la crittografia di tutto il traffico, metodi di autenticazione, ecc.. NetBSD è un s.o. Unix like altamente portabile, libero, multipiattaforma (dal server Alpha a 64 bit fino ai palmari). Usato in ambienti produttivi e di ricerca. Cose complesse realizzate nella maniera più semplice.
F. Bartoloni Sistemi operativi OpenSource Unix like: Linux Ideato dal Linus Torvalds alletà di 22 anni (Università di Helsinki) con laiuto di migliaia di persone sparse per il mondo. In realtà Linux è soltanto il kernel e non il sistema operativo. E un completamento del sistema GNU. Il punto di forza dello sviluppo e della diffusione è stata lindipendenza da tutto e da tutti. E gratis! Negli ultimi anni Linux si è imposto sul mercato dei server Web Internet: si stima che Il 30% dei server si basa su questo sistema operativo La prima versione girerà su una macchina della Digital Equipment Co. (DEC) Il programma è scritto in assembler. Verrà poi riscritto usando il linguaggio "C. Prodotte tante versioni per quante sono le macchine su cui gira (hardware). Dal rilascio della versione 4.0, Red Hat Linux funziona su tre principali piattaforme: PC Intel compatibili, Digital Alpha e Sun SPARC.
F. Bartoloni SW applicativo: tipologie e prodotti Classificazione degli applicativi in 5 categorie: Utilità di Sistema - si tratta di programmi che servono per migliorare la gestione e la sicurezza della macchina, come ad esempio gli stessi antivirus, oppure programmi per l'ottimizzazione delle risorse, per il controllo dello stato del sistema, la ripulitura dell'hard disk, ecc. Office Automation - programmi di ausilio nei normali lavori d'ufficio, quindi creazione e elaborazione di testi (word processor), gestione di basi di dati (database), fogli di calcolo, posta elettronica, navigazione in Internet, ecc.
F. Bartoloni SW applicativo: tipologie e prodotti Classificazione degli applicativi in 5 categorie: Applicazioni aziendali - progammi creati per le necessità specifiche delle aziende, come ad esempio i programmi per la fatturazione o per la gestione del personale, dei magazzini, dei macchinari industriali. Spesso si tratta di programmi creati ad hoc da aziende di produzione software. Strumenti di sviluppo - programmi per la creazione di oggetti multimediali (pagine Web, animazioni e CD interattivi), elaborazione audio/video/immagini, programmi che servono per la creazione di nuovi applicativi (authoring tools). Giochi e svago - giochi, emulatori, lettori audio e video. Queste distinzioni vanno prese come categorie concettuali e non come rigide classificazioni.
F. Bartoloni Office Automation MS e OpenSource MS Office 2000: Word, Excel, Power Point e Access StarOffice v. 6: gratis solo per le scuole. Writer, Calc, Draw, Base OpenOffice: simile a StarOffice e a Windows. Affidabile. The Gimp: software gratuito per la grafica, tipo Photoshop Mozilla 1: browser gratuito ma anche editor html e client , newsgroup, ecc.
F. Bartoloni SW di sviluppo: compilatori, interpreti, linguaggi di programmazione In un ambiente di sviluppo generalmente esistono strumenti quali editor di testo, compilatori, linker, dubugger per lanalisi degli errori,librerie, wizard (autocomposizioni), monitor degli eventi e browser degli oggetti che permettono lo sviluppo e la manutenzione del software. Assembler o compilatore è il programma che traduce il linguaggio comprensibile al programmatore in linguaggio macchina e dunque eseguibile sul computer Interprete è linterfaccia tra operatore e macchina. Simile ad un compilatore ma agisce sempre e non solo una volta prima dellesecuzione del programma. I Linguaggi di programmazione: –Linguaggi di script (es. Perl, CGI, PHP, ASP, Python, ecc.). –Linguaggi ad oggetti (es. Java, C++, Delphi, MS Visual Basic,
F. Bartoloni Linguaggi di script: shell, Perl Shell Script Breve elenco di comandi shell salvati insieme in un file ed eseguiti dalla shell. Gli script della shell sono paragonabili ai file Batch del DOS che venivano usati un tempo per configurare il DOS e i primi sistemi Windows. AUTOEXEC.BAT era quindi una sorta di script della shell DOS. Perl Linguaggio di programmazione libero e gratuito a lungo utilizzato in ambiente Unix, grosso modo assimilabile al BASIC ma più potente. Viene usato nella creazione di siti Web, nella amministrazione del sistema operativo e, più raramente, nella creazione di semplici applicazioni. Perl è largamente utilizzato in ambiente Linux.
F. Bartoloni Linguaggi a oggetti: C++, Java I linguaggi orientati agli oggetti permettono allutente di scegliere se utilizzare funzioni classiche o funzioni membro di oggetto, variabili o attributi di oggetto (OOP - Object Oriented Programming) C++: estensione (anni 80) del linguaggio di alto livello, ideato nei primi anni 70 da Dennis Ritchie nei Bell Laboratories. Usato in diversi s.o. Quasi tutto il lavoro nel mondo open source è stato fatto in C, tuttavia la situazione sta cambiando man mano che altri linguaggi vengono implementati per Linux. Persino il C++ non è così usato come il C. (La maggior parte dei programmatori che utilizzano compilatori C++ li usano per compilare semplice codice in C. Il C++ consente la programmazione ad oggetti.) Java, Linguaggio di programmazione sviluppato da Sun Microsystem nel Viene utilizzato per costruire le Applet, piccoli programmi caricati nel browser come parti integrate di un sito Web. Deriva dal linguaggio C++ e permette di eseguire qualsiasi applicazione software sul qualsiasi Web client.
F. Bartoloni Linguaggi orientati ai DB: SQL, MySQL… SQL (Structured Query Language) è un linguaggio di interrogazione nella manipolazione di query e nella manutenzione di database in generale (standard). MySQL è un RDBMS (Relational Database Management System – Sistema di gestione per database relazionali. Il più veloce e funzionale nel mondo open source (è gratis). E implementato in forma client/server. Supporta molti linguaggi (C, C++, Java, Perl, Python e TCL per mezzo di API (Application Programming Interface)
F. Bartoloni Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASP HTML HyperText Markup Language è il linguaggio dei browser http. Il concetto di ipertesto e` quello di un documento che contiene, oltre al testo, anche immagini, suoni, applicazioni, aree interattive e rimandi ad altri documenti (hyperlinks). È un semplice "linguaggio" di marcatura di testo (tag). XML è un metodo per inserire dati strutturati un un file di testo (non leggibile dagli umani). Consiste in una serie di regole, linee guida, convenzioni per designare dati testuali (fogli excel, mdb, dbf, doc, txt, ecc.). Anche qui si fa uso dei c.d. tag.. Panacea per le problematiche derivanti dallinterscambio dati tra sistemi, standard internazionali, ecc. JAVA è un linguaggio di programmazione per applicazioni multimediali e multiambiente, indipendente dalla piattaforma. Offre la possibilità di creare applicazioni (applet) in grado di essere richiamate ed eseguite da un Web client. Tutte le istruzioni sono contenute nelle classi (è qui che si differenzia dal C++. Multithread, ovvero un singolo programma può eseguire più compiti separati allo stesso tempo.
F. Bartoloni Linguaggi orientati al WEB: HTML, XML, JAVA, Javascript, PHP, ASP Javascript. Linguaggio di scripting orientato agli oggetti. E complementare a Java e si integra con esso; viene utilizzato per modificare le proprietà e i comportamenti del browser e delle applet Java. Il codice risiede allinterno della pagine HTML caricate dal browser. Sviluppato da Sun Microsystems e Netscape. ASP Active Server Pages, linguaggio di programmazione per la realizzazione di web dinamici. Si basa interamente su tecnologia Microsoft (Microsoft IIS - Internet Information Server - e Microsoft Windows NT). PHP Linguaggio di programmazione basato su Linux e server Apache con database Mysql o Sql. Tale linguaggio è molto diffuso sia perchè gratuito sia perchè molto flessibile nella programmazione.
F. Bartoloni Licenze d'uso OpenSource: storia, versioni, differenze Open Source significa Sorgente Aperto, ovvero leggibile (free software) Il concetto di "sorgente aperto" è legato alla storia di BSD e Unix, ma soltanto nel 1998 è ufficializzato dalla comunità Internet. Non significa semplicemente accesso al codice sorgente. La distribuzione in termini di programmi open-source deve soddisfare i seguenti criteri: –- Ridistribuzione Libera e Gratuita (no royalties) –- Il programma deve includere il codice sorgente, e deve permetterne la distribuzione così come per la forma compilata. Il codice sorgente nascosto non è permesso. –- La licenza deve permettere modifiche e prodotti derivati, ecc. Licenze GPL, LGPL, BSD, SPL, Apache, APSL, SISSL
F. Bartoloni Licenze d'uso OpenSource: storia, versioni, differenze Licenza GPL: General Public License ha lo scopo di mantenere i sorgenti liberi e distribuibili, impedendo a qualche approfittatore di apporre una sua licenza proprietaria. Licenza BSD La distribuzione e l'uso dei sorgenti e del codice eseguibile, con o senza modifiche, sono permessi secondo le seguenti condizioni: –1. Il codice sorgente o l'eseguibile devono essere accompagnati dalla licenza BSD. –2. Il nome dell'autore/i non puo' essere usato senza permesso da terzi per promuovere software derivati dal programma originale. Dal 1999 questa clausola e' pero' stata abolita, e non e' piu' valida per le licenze BSD successive. Licenza MIT E' in pratica identica alla vecchia licenza BSD.
F. Bartoloni Licenze d'uso OpenSource: storia, versioni, differenze Licenza SPL La SUN Public License permette di copiare, distribuire e modificare il software, ma non di rivenderlo. Licenza SISSL Sun Industry Standards Source License Apache Software License E' una specie di licenza BSD, con cui si pu, redistribuire il software e i sorgenti con o senza modifiche, ma occorre mantenere l'intestazione: "This product includes software developed by the Apache Software Foundation ( Software derivato dal codice di Apache non puo' inoltre fregiarsi del suo nome a meno di un permesso scritto concesso da Apache Software Foundation. Licenza APSL La Apple Public Source License e' nata per il nuovo core open source del MacOS X. Essa consente di modificare, copiare, ridistribuire il codice sorgente MA solo per uso personale e di ricerca interna.
F. Bartoloni Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula) Esercitazioni Prompt dei comandi di XP
F. Bartoloni Analisi del SW di base, applicativo e di sviluppo in dotazione (ai PC di Aula) Esercitazioni La shell di XP