«a2» e «a3», ovvero «appunti di informatica libera», «appunti linux» e «from the ground up»

«a2», prima «appunti di informatica libera» e prima ancora «appunti linux» è il risultato di un lavoro di studio dell'informatica --ormai conclusosi-- che ha occupato gli anni dal 1997 al 2013 e che ha richiesto anche la produzione di strumenti tipografici adatti alla sua realizzazione, partendo da un formato SGML ad hoc che si è sviluppato assieme all'opera. A fianco del lavoro principale in italiano c'è stato anche uno studio relativo alla logica digitale, denominato «from the ground up», abbreviabile come «a3», scritto però in inglese.

Tutte le edizioni disponibili di questo lavoro sono conservate presso archive.org:

Il sito informaticalibera.net, indicato nell'edizione 2013.11.11 di «a2» e nell'edizione I-2013b di «a3», che avrebbero dovuto essere il punto di riferimento dell'opera, non è più disponibile. I file contrassegnati con la data di edizione 2013.11.11a e I-2013c sono stati ritoccati a mano, per togliere quel riferimento ora non più valido. Al suo posto appare l'indirizzo del profilo professionale, contenente anche tutti i riferimenti a questo lavoro (linkedin.com/in/appunti2).

From the ground up: table of context

Download the latest edition (20130819c) from Archive.org

Part i Logic circuits

1 Logic functions and logic gates

1.1 NOT

1.2 .not-inverter. or .buffer.

1.3 AND

1.4 OR

1.5 XOR

1.6 Logic networks

1.7 Operator precedence

1.8 Irrelevant values inside the truth table

1.9 Equivalence

1.10 Sum of products

1.11 Karnaugh maps

1.12 Logic gates and multiple lines

1.13 Electronic logic gates

1.14 HDL

2 Introduction to Verilog

2.1 Minimal notions

2.2 Hello world!

2.3 Compiler directives

2.4 Signal values

2.5 Literal constants

2.6 Data types

2.7 Ports

2.8 Parameters

2.9 Module declaration

2.10 Module instance

2.11 Fully qualified path names

2.12 Primitives

2.13 Expressions

2.14 Vector and array addressing

2.15 Strings

2.16 Functions

2.17 Netlist modules: combinational circuits

2.18 Behavioural modules

2.19 Procedural assignments

2.20 Blocking delays

2.21 Wait for a level event

2.22 Wait for an event expressions

2.23 Event variables

2.24 System tasks and functions

2.25 Control structures

2.26 Thread control

3 Combinational circuits

3.1 Decoder

3.2 Demultiplexer

3.3 Multiplexer

3.4 Multiplexer and demultiplexer with parallel I/O

3.5 Binary encoder

3.6 Priority encoder

3.7 Logic units

3.8 Shift and rotation

3.9 Addition

3.10 Subtraction

3.11 Addition and subtraction together

3.12 Carry lookahead

3.13 Increment and decrement

3.14 2's complement

3.15 Multiplication

3.16 Division

3.17 Magnitude comparator

4 Arithmetic-logic unit

4.1 Status flags

4.2 Size truncation

4.3 Sign inversion

4.4 Addition and subtraction

4.5 Shift and rotation

4.6 Magnitude comparison

4.7 Multiplication

4.8 Division

4.9 Logic unit

4.10 Joining all the modules together

4.11 Bit sliced ALU

5 Latch and flip-flop

5.1 Propagation delay

5.2 Truth tables

5.3 SR latch

5.4 Bounce-free switch

5.5 Gated SR latches

5.6 SR flip-flop

5.7 Time: setup/hold and recovery/removal

5.8 D latch and D flip-flop

5.9 T flip-flop

5.10 JK flip-flop

5.11 Troublesome JK flip-flops

6 Registers

6.1 Multiplexer

6.2 Simple data register

6.3 Shift register

6.4 Asynchronous counter with T flip-flop

6.5 Synchronous T flip-flop counters

6.6 Synchronous counters with D flip-flops

6.7 Synchronous counters with parallel load

7 Bus and control unit

7.1 Tri-state buffer

7.2 Hardcoded bus control unit

7.3 Microcode

8 TKGate 2 introduction and troubleshooting

8.1 Modules

8.2 Module library or cut and paste between files

8.3 Bit-size

8.4 Cut and paste troubles

8.5 File PostScript and EPS

8.6 Multiplexers, demultiplexers and encoders depiction

u1 Traditional logic integrated circuits

u1.1 Data distributors or demultiplexers

i1.1.1 74138 3-to-8 data distributor or demultiplexer

i1.1.2 74139 dual 2-to-4 data distributor or demultiplexer

i1.1.3 74154 4-to-16 data distributor or demultiplexer

i1.1.4 74238 3-to-8 data distributor or demultiplexer

u1.2 Data selectors or multiplexers

i1.2.1 74150 1-of-16 data selector or multiplexer

i1.2.2 74151 1-of-8 data selector or multiplexer

i1.2.3 74153 dual 1-of-4 data selector or multiplexer

i1.2.4 74157 quad 1-of-2 data selector or multiplexer

u1.3 Special circuits

i1.3.1 74148 8-to-3 priority encoder

u1.4 Arithmetic units

i1.4.1 7483 4-bit binary full-adder

i1.4.2 7485 4-bit magnitude comparator

i1.4.3 74181 .a. ALU

i1.4.4 74181 .b. ALU

i1.4.5 74182 carry lookahead generator

i1.4.6 74381 4-bit ALU

i1.4.7 74382 4-bit ALU

u2 References

Part ii Simple CPU

9 A simple 8-bit CPU: version *A*

9.1 Version *A1*: fetch and execution

9.2 Version *A2*: memory index

9.2.1 Loading instructions

9.2.2 Storing instructions

9.3 Version *A3*: general purpose registers

9.4 Version *A4*: ALU

9.4.1 Instruction *not*

9.4.2 Instruction *and*

9.4.3 Instruction *or*

9.4.4 Instruction *xor*

9.4.5 Instruction *lshl* and *lshr*

9.4.6 Instruction *ashl* and *ashr*

9.4.7 Instruction *rotl* and *rotr*

9.4.8 Instruction *add*

9.4.9 Instruction *sub*

9.5 Version *A5*: flags

9.5.1 Instruction *rotcl* and *rotcr*

9.5.2 Instruction *add.carry*

9.5.3 Instruction *sub.borrow*

9.6 Version *A6*: branching

9.7 Version *A7*: stack

9.7.1 Instruction *push* and *pop*

9.7.2 Instruction *call* and *return*

9.8 Version *A8*: I/O

9.8.1 Communication with asynchronous devices

9.8.2 I/O devices implementation

9.8.3 External appearance of the synchronous interfaces

9.8.4 Synchronous keyboard interface

9.8.5 Synchronous display interface

9.8.6 The CPU data bus with the I/O interfaces

9.8.7 Instruction *out*

9.8.8 Instruction *in*

10 Version *B*: optimization

10.1 Uniform registers

10.2 Module *RAM*

10.3 Module *SEL*

10.4 Module *ALU*

10.5 Module *TTY*: the terminal

10.6 Module *CTRL*: control unit

10.7 Memories, fields, arguments and opcodes

10.8 Microcode

10.9 Macrocode: routine call

10.10 Macrocode: keyboard input and screen output

10.11 Version *B2*

11 Version *C*: 16-bit little-endian

11.1 General purpose 16-bit registers

11.2 Module *BUS*

11.3 Module *ALU*

11.4 Module *SEL*

11.5 Module *RAM*

11.6 Module *IRQ*

11.7 Module *IVT*

11.8 Module *CTRL*

11.9 Opcodes

11.10 Microcode

11.11 Interrupts management

11.12 Module *RTC*: real time clock

11.13 Module *TTY*

11.14 Module *HDD*

11.15 Macrocode: terminal usage example, through interrupts

12 Version *D*

12.1 General purpose registers

12.1.1 Module *RANK*

12.1.2 Modules *D.select* and *Q.select*

12.2 Module *VRn*

12.3 Module *RAM*

12.4 Module *ALU* and related submodules

12.5 Module *BUS*

12.6 Module *IRQ*

12.7 Modules *Dn*

12.8 Module *IVT*

12.8.1 Module *DRn*

12.9 Module *RTC*: real time clock

12.10 Module *TTY*

12.11 Module *HDD*

12.12 Module *CTRL*

12.12.1 Modules *Fn*

12.12.2 Module *CLK.CLR*

12.13 Memory and microcode fields

12.14 Opcodes

12.15 Microcode

12.16 Macrocode

13 Version *E*

13.1 General purpose modules

13.2 Module *MEM*

13.2.1 Module *MAR*

13.2.2 Module *MIR*

13.2.3 Module *MDR*

13.3 General purpose registers

13.4 Module *ALU* and related submodules

13.5 Module *BUS*

13.6 Module *IRQ*

13.7 Module *IVT*

13.8 Module *RTC*: real time clock

13.9 Module *TTY*

13.10 Module *HDD*

13.11 Module *CTRL*

13.11.1 Modules *Fn*

13.11.2 Module *CLK.CLR*

13.12 Memory and microcode fields

13.13 Opcodes

13.14 Microcode

13.15 Macrocode

14 Version *F*: 32-bit registers, big-endian, privileges

14.1 General purpose modules

14.2 Addition modules

14.3 Multiple clock lines

14.4 Bus

14.5 Registers: simple and with post-increment

14.6 Memory segmentation

14.7 Module *DA*

14.8 Module *CA*

14.9 Modules *M* and *RAM*

14.10 Module *IR*

14.11 Module *MD*

14.12 Module *IRQ*

14.13 Module *IVT*

14.14 Module *ALU*

14.15 Module *FL*

14.16 Module *TTY*

14.17 Module *HDD*

14.18 Module *CTRL*

14.19 Memory and microcode fields

14.20 Opcodes

14.21 Data initialization

14.22 Microcode

14.23 Process mode and interrupts

14.24 Macrocode example: .memcpy.

14.25 Macrocode example: TTY with interrupt

14.26 Macrocode example: user and supervisor

u3 References

«a2», ex «appunti di informatica libera»: indice dei contenuti

Scarica l'ultima edizione (20131111a) da Archive.org

i1 Premessa

i2 Caratteristiche della versione elettronica dell'opera

Volume I Sistemi GNU/Linux

Parte i Uso e amministrazione generale

1 Software e libertà

1.1 Software libero

1.2 Software non libero

1.3 Software commerciale

1.4 Dal software all'arte in generale: Creative Commons

1.5 Origini del software libero

1.5.1 BSD

1.5.2 GNU

1.5.3 Minix

1.5.4 Linux

1.5.5 Debian

1.5.6 Internet Archive

1.5.7 Open Source

1.5.8 Creative Commons

1.5.9 Open Invention Network

1.5.10 Standard Unix

1.6 Riferimenti

2 Aritmetica elementare

2.1 Sistemi di numerazione

2.1.1 Sistema decimale

2.1.2 Sistema binario

2.1.3 Sistema ottale

2.1.4 Sistema esadecimale

2.2 Conversioni numeriche di valori interi

2.2.1 Numerazione ottale

2.2.2 Numerazione esadecimale

2.2.3 Numerazione binaria

2.2.4 Conversione tra ottale, esadecimale e binario

2.3 Conversioni numeriche di valori non interi

2.3.1 Conversione da base 10 ad altre basi

2.3.2 Conversione a base 10 da altre basi

2.3.3 Conversione tra ottale, esadecimale e binario

2.4 Le operazioni elementari e il sistema binario

2.4.1 Complemento alla base di numerazione

2.4.2 Complemento a uno e complemento a due

2.4.3 Addizione binaria

2.4.4 Sottrazione binaria

2.4.5 Moltiplicazione binaria

2.4.6 Divisione binaria

2.5 Riferimenti

3 Introduzione all'uso

3.1 L'elaboratore

3.2 Dispositivi

3.2.1 Tastiera

3.2.2 Schermo

3.2.3 Stampante

3.2.4 Dispositivi di memorizzazione

3.3 File e file system

3.4 Sistema operativo

3.5 Kernel

3.6 Shell

3.7 Programmi

3.8 Distinzione tra lettere maiuscole e lettere minuscole

3.9 Root

3.10 Utenti

3.11 Avvio

3.12 Inizializzazione e gestione dei processi

3.13 Demoni

3.14 Gestione dei servizi di rete

3.15 Registrazione e controllo degli accessi

3.16 Strumenti di sviluppo software

3.17 Arresto o riavvio del sistema

3.18 File e directory in un sistema Unix

3.19 Collegamenti

3.20 Nomi dei file

3.21 Permessi

3.21.1 Permessi speciali: S-bit

3.22 Date

3.23 Utenza e accesso

3.24 Interpretazione dei comandi

3.25 Ridirezione e condotti

3.26 Comandi e programmi di servizio di uso comune

3.27 Programma o eseguibile

3.28 ABC dei comandi Unix

3.28.1 ls: ''list''

3.28.2 cd: ''change directory''

3.28.3 mkdir: ''make directory''

3.28.4 cp: ''copy''

3.28.5 ln: ''link''

3.28.6 rm: ''remove''

3.28.7 mv: ''move''

3.28.8 cat: ''concatenate''

3.29 Glossario introduttivo

3.29.1 Sistema operativo in generale

3.29.2 Utenza

3.29.3 File e file system

3.29.4 Rete

3.29.5 Programmi, esecuzione e processi elaborativi

3.29.6 Varie

3.30 Unità di misura

3.31 Riferimenti

4 Esercizi pratici

4.1 Console virtuali

4.2 Accesso al sistema e conclusione dell'attività

4.2.1 Cambiamento di identità

4.2.2 Chi sono?

4.2.3 Terminare una sessione di lavoro

4.2.4 Spegnimento

4.2.5 Diventare temporaneamente amministratore

4.2.6 Conclusione

4.3 Gestione delle parole d'ordine

4.3.1 L'utente ''root'' che cambia la parola d'ordine di un utente comune

4.3.2 L'utente comune che cambia la propria parola d'ordine

4.3.3 Conclusione

4.4 Navigazione tra le directory

4.4.1 Directory corrente

4.4.2 Spostamenti assoluti e relativi

4.4.3 Spostamenti a ritroso

4.4.4 Riferimento preciso alla directory corrente

4.4.5 Directory corrente e ''.''

4.4.6 Directory personale, o directory ''home''

4.4.7 Conclusione

4.5 Contenuti

4.5.1 Contenuto delle directory

4.5.2 Contenuto dei file

4.5.3 Determinazione del tipo

4.5.4 Spazio utilizzato e spazio disponibile

4.5.5 Conclusione

4.6 Creazione, copia ed eliminazione di file

4.6.1 Creazione di un file

4.6.2 Copia di file

4.6.3 Eliminazione di file

4.6.4 Conclusione

4.7 Creazione, copia ed eliminazione di directory

4.7.1 Creazione di una directory

4.7.2 Copia di directory

4.7.3 Eliminazione di directory

4.7.4 Eliminazione di directory il cui nome inizia con un punto

4.7.5 Conclusione

4.8 Spostamenti e collegamenti di file e directory

4.8.1 Spostamento e ridenominazione

4.8.2 Collegamenti

4.8.3 Conclusione

4.9 La shell

4.9.1 Completamento automatico

4.9.2 Sostituzione

4.9.2.1 Asterisco

4.9.2.2 Punto interrogativo

4.9.2.3 Parentesi quadre

4.9.3 Protezione

4.9.4 Verifica della sostituzione

4.9.5 Ridirezione

4.9.6 Condotti

4.9.7 Alias

4.9.8 Conclusione

4.10 Controllo dei processi

4.10.1 Visualizzazione dello stato dei processi

4.10.2 Eliminazione dei processi

4.10.3 Processi sullo sfondo

4.10.4 Conclusione

4.11 Permessi

4.11.1 Permessi sui file

4.11.2 Permessi sulle directory

4.11.3 Maschera dei permessi: umask

4.11.4 Conclusione

4.12 Creazione e modifica di file di testo

4.12.1 Modalità di comando e di inserimento

4.12.2 Creazione

4.12.3 Inserimento di testo

4.12.4 Spostamento del cursore

4.12.5 Cancellazione

4.12.6 Salvataggio e conclusione

4.12.7 Apertura di un file esistente

4.12.8 Conclusione

4.13 File eseguibili

4.13.1 Avvio di un programma e variabile di ambiente ''PATH''

4.13.2 Comandi interni di shell

4.13.3 Script e permessi di esecuzione

4.13.4 Conclusione

4.14 Ricerche

4.14.1 Find

4.14.2 Grep

4.14.3 Conclusione

4.15 Memoria di massa e file system con i dischetti

4.15.1 Inizializzazione a basso livello

4.15.2 Predisposizione del file system

4.15.3 Innestare e staccare i dischetti

4.15.4 Conclusione

4.16 Dispositivi

4.16.1 File ''/dev/null''

4.16.2 Dispositivi di memorizzazione

4.16.3 Conclusione

5 Trovare le informazioni necessarie

5.1 Testo puro

5.1.1 Variabile di ambiente ''LESSCHARSET''

5.2 Pagine di guida

5.2.1 Collocazione fisica e convenzioni nazionali

5.2.2 Utilizzo dei programmi per accedere alle pagine di manuale

5.3 Info

5.3.1 Utilizzo del sistema attraverso l'eseguibile info

5.4 Documentazione allegata ai pacchetti applicativi

5.5 HOWTO

5.6 FAQ

5.7 LDP

5.8 Altra documentazione

5.9 Ricerche tra i documenti in linea

5.10 Ricerche nel passato

5.11 Ricerche geografiche

5.12 Riferimenti

6 Installazione e avvio di un sistema GNU/Linux

6.1 Scelta della distribuzione

6.2 Nomi dei dispositivi delle unità di memorizzazione

6.3 Preparazione

6.4 Partizioni e file system

6.5 Moduli

6.6 Aggiornamento di un'installazione precedente

6.7 Creazione delle partizioni e inizializzazione

6.8 Parametri di avvio

6.9 MBR

6.10 SYSLINUX

6.10.1 Installazione del sistema di avvio

6.10.2 Configurazione

6.10.3 File di aiuto

6.10.4 Componenti aggiuntivi

6.10.5 Avvio di un disco ottico

6.10.6 Conversione di un disco ottico avviabile in un'unità di memoria solida

6.10.7 Avvio dalla rete, senza dischi locali

6.11 Riferimenti

7 Pacchetti di applicazioni per GNU/Linux

7.1 Applicativi originali distribuiti in forma sorgente

7.2 Fasi tipiche di una compilazione e installazione

7.3 File di differenze, o ''patch''

7.4 Installazione di programmi già compilati

7.4.1 Scelta della piattaforma

7.4.2 Eseguibili e variabili di ambiente

7.4.3 Librerie dinamiche

7.4.4 Verifica delle librerie utilizzate dagli eseguibili

7.5 Aggiornamento delle librerie standard

7.6 Pacchetti applicativi confezionati appositamente per le distribuzioni GNU

7.6.1 Distinguere tra ''pacchetti'' e ''archivi''

7.6.2 Binari e sorgenti

7.6.3 Interdipendenza tra i pacchetti

7.6.4 Fasi dell'installazione e della disinstallazione di un pacchetto

7.6.5 Caratteristiche di un pacchetto nei confronti di un sistema funzionante

7.6.6 Aggiornamento

7.6.7 File di configurazione comuni

7.7 Pacchetti Debian

7.7.1 Priorità di un pacchetto

7.7.2 Dipendenze secondo i pacchetti Debian

7.7.3 Stato di un pacchetto

7.7.4 Disponibilità di un pacchetto

7.7.5 Stratificazione degli strumenti di gestione dei pacchetti Debian

7.7.6 Gestione elementare attraverso gli strumenti fondamentali

7.7.7 Gestione più evoluta dei pacchetti: organizzazione di una copia della distribuzione

7.7.8 APT a livello essenziale

7.7.9 Ricerca dei file che apparentemente non appartengono ad alcun pacchetto

7.7.10 Ricerca dei pacchetti che possono essere disinstallati senza problemi di dipendenze

7.7.11 Riconfigurazione

7.7.12 Pacchetti Debian sorgenti

7.8 Ricompilazione dei pacchetti Debian sorgenti

7.9 Dselect

7.9.1 Menù iniziale

7.9.2 Metodo di accesso ai pacchetti della distribuzione

7.9.3 Accesso attraverso un disco ottico unico

7.9.4 Accesso attraverso un insieme di dischi

7.9.5 Accesso attraverso un file system di rete

7.9.6 Accesso attraverso un file system già innestato localmente

7.9.7 Accesso attraverso APT

7.9.8 Aggiornamento dell'elenco locale dei pacchetti

7.9.9 Selezione dei pacchetti

7.9.10 Installazione e aggiornamento dei pacchetti selezionati

7.9.11 Configurazione

7.9.12 Cancellazione dei pacchetti

7.10 APT

7.10.1 Configurazione generale

7.11 Approfondimento: raccolta di pacchetti Debian

7.11.1 Composizione del nome degli archivi Debian

7.11.2 Eliminazione delle versioni precedenti

7.11.3 Distribuzione completa su un supporto unico

7.11.4 Distribuzione suddivisa su diversi supporti

7.11.5 Un esempio banalizzato, ma funzionante

7.12 Riferimenti

8 Kernel Linux

8.1 Ricompilazione del kernel

8.2 Compilazione del kernel in una distribuzione GNU/Linux Debian

8.3 Elementi della configurazione

8.3.1 General setup

8.3.2 Enable loadable module support

8.3.3 Processor type and features

8.3.4 Power management and ACPI options

8.3.5 Bus options

8.3.6 Executable file formats

8.3.7 Networking

8.3.8 Device drivers

8.3.8.1 Device drivers, parallel port support

8.3.8.2 Device drivers, plug and play support

8.3.8.3 Device drivers, block devices

8.3.8.4 Device drivers, SCSI support

8.3.8.5 Device drivers, serial ATA and paralel ATA drivers

8.3.8.6 Device drivers, multi-device support

8.3.8.7 Device drivers, network device support

8.3.8.8 Device drivers, input device support

8.3.8.9 Device drivers, character devices

8.3.8.10 Device drivers, graphic support

8.3.8.11 Device drivers, sound card support

8.3.8.12 Device drivers, USB support

8.3.9 Filesystems

8.3.10 Kernel hacking

8.4 Come fare per configurare correttamente il kernel che si vuole compilare

8.5 Parametri di avvio del kernel Linux

8.5.1 File system principale «root»

8.5.2 Memoria

8.5.3 Varie

8.5.4 Interfacce di rete Ethernet

8.6 Gestione dei moduli

8.6.1 Dipendenza tra i moduli

8.6.2 Parametri

8.6.3 Utilizzo di ''insmod''

8.6.4 Utilizzo di ''rmmod''

8.6.5 Utilizzo di ''lsmod''

8.6.6 Utilizzo di ''depmod''

8.6.7 Utilizzo di ''modprobe''

8.6.8 Informazione sui moduli

8.7 Configurazione dei moduli

8.7.1 Direttiva alias

8.7.2 Direttiva options

8.8 Firmware

8.9 File di dispositivo

8.9.1 Creazione dei file di dispositivo

8.9.2 kernel Linux e uDev

8.9.3 Messaggio: ''unable to open an initial console''

8.10 Disco RAM iniziale: Initrd

8.10.1 Teoria e visione generale

8.10.2 Creazione automatica di un disco RAM iniziale

8.10.3 Esempio di un disco RAM iniziale

8.11 Combinazioni magiche con ''R sist'', ovvero ''SysRq''

8.12 Riferimenti

9 Hardware

9.1 Alimentatori AT e ATX

9.1.1 Interruttore e cambio tensione

9.1.2 Fusibile

9.1.3 Dissipazione del calore

9.1.4 Pulizia

9.1.5 Alimentazione e affidabilità dell'elaboratore

9.1.6 Connettori comuni di alimentazione

9.2 Alimentatori ATX

9.2.1 Collegamento principale con la scheda madre: 20 poli

9.2.2 Collegamento principale con la scheda madre: 24 poli

9.2.3 Collegamento ausiliario con la scheda madre, +12 V

9.2.4 Collegamento ausiliario con la scheda madre ''P6'', +3,3 V, +5 V,

9.2.5 Controllo del funzionamento

9.2.6 Utilizzo di un alimentatore ATX per scopi vari

9.3 «P»ATA: AT attachment

9.3.1 Caratteristiche generali del sistema PATA

9.3.2 Geometria dei dischi

9.3.3 Caratteristiche del protocollo PATA e configurazione del firmware

9.3.4 Standard PATA e gergo comune

9.3.5 Gestione da parte di un kernel Linux delle unità PATA

9.3.6 Informazioni da un kernel Linux

9.4 SATA: Serial ATA

9.4.1 Adattatori

9.4.2 Gestione da parte del kernel Linux

9.4.3 Informazioni da un kernel Linux

9.4.4 Sistemi RAID SATA

9.5 Da ISA a PCI

9.5.1 ISA

9.5.2 MCA

9.5.3 EISA

9.5.4 VESA local bus

9.5.5 PCI

9.5.6 Informazioni da un kernel Linux

9.5.7 AGP

9.5.8 AMR

9.5.9 PCI Express

9.6 USB

9.6.1 Caratteristiche generali

9.6.2 Alimentazione elettrica

9.6.3 Collegamento di una porta USB

9.6.4 Tipi di unità di controllo

9.7 USB e il Kernel Linux

9.7.1 Avvio di un sistema GNU/Linux da un'unità USB, con kernel monolitico

9.7.2 Sequenza di caricamento dei moduli del kernel

9.8 Introduzione al BIOS

9.8.1 Collocazione fisica del BIOS

9.8.2 Blocco di avvio

9.8.3 Modifica del BIOS

9.8.4 BIOS di ''marca''

9.8.5 Salvare e riscrivere il BIOS

9.8.6 BIOS Award

9.8.7 BIOS AMI

9.8.8 UniFlash

9.8.9 Recupero disperato di un BIOS

9.9 Modifica di un BIOS modulare

9.9.1 BIOS modulari Award

9.9.2 BIOS modulari AMI

9.10 Memoria centrale difettosa

9.10.1 Esclusione di altri fattori

9.10.2 Memtest86+

9.10.3 Parametri di avvio del kernel

9.11 Restauro

9.11.1 Ripulitura

9.11.2 Lavaggio di unità a dischetti

9.11.3 Pulizia dei monitor

9.11.4 Pulizia azzardata dei monitor

9.11.5 Pulizia della tastiera

9.11.6 Batteria

9.11.7 Osservazioni sulla configurazione BIOS di elaboratori molto vecchi

9.12 Connettori e cablaggi

9.12.1 Video MGA, CGA, EGA, Hercules

9.12.2 Tastiere

9.12.3 Porte seriali

9.12.4 Porte parallele

9.12.5 Reti Ethernet

9.13 Riferimenti

10 Processi di elaborazione

10.1 Introduzione ai processi

10.1.1 Tabella dei processi

10.1.2 Nascita e morte di un processo

10.1.3 Comunicazione tra processi

10.1.4 Scheduling e priorità

10.1.5 Privilegi dei processi

10.1.6 Variabili di sistema

10.2 Procedura di inizializzazione del sistema «System V»

10.2.1 Init

10.2.2 File di configurazione ''/etc/inittab''

10.2.3 Script ''/etc/initscript''

10.2.4 Procedura di attivazione e disattivazione dei servizi

10.3 Situazione dei processi

10.3.1 Process status

10.3.2 Utilizzo di ''ps''

10.3.3 Utilizzo di ''pstree''

10.3.4 Utilizzo di ''top''

10.3.5 Utilizzo di ''htop''

10.3.6 Determinazione del numero PID

10.4 Accesso ai file

10.4.1 Fuser

10.4.2 Lsof

10.5 Informazioni riepilogative

10.5.1 Utilizzo di ''uptime''

10.5.2 Utilizzo di ''free''

10.6 Controllo diagnostico con Strace

10.7 Invio di segnali ai processi

10.7.1 Segnali attraverso la tastiera

10.7.2 Segnali attraverso la shell

10.7.3 Comandi ''kill...''

10.8 Controllo dei ''job'' di shell

10.8.1 Processi in primo piano e processi sullo sfondo

10.8.2 Avvio di un gruppo di elaborazione sullo sfondo

10.8.3 Sospensione di un gruppo di elaborazione in primo piano

10.8.4 Utilizzo di ''jobs''

10.8.5 Riferimenti ai gruppi di elaborazione

10.8.6 Comando ''fg''

10.8.7 Comando ''bg''

10.8.8 Comando ''kill''

10.9 Cattura dei segnali con la shell

10.9.1 Comando ''trap''

10.10 Trasformare dei programmi comuni in demoni

10.10.1 Utilizzo di ''nohup''

10.10.2 Utilizzo di ''daemon''

11 Orologio, pianificazione e calendario

11.1 Orario locale

11.2 Distinzione tra hardware e software

11.2.1 Orologio hardware

11.2.2 Orologio del kernel e orario locale

11.3 Modifica dell'orario

11.4 Strumenti per la gestione dell'orologio

11.4.1 Utilizzo di ''date''

11.4.2 Utilizzo di ''clock''

11.4.3 Utilizzo di ''hwclock''

11.4.4 File ''/etc/adjtime''

11.5 Cron

11.5.1 Utilizzo di ''cron''

11.5.2 Utilizzo di ''crontab''

11.5.3 File ''/var/spool/cron/crontabs/* ''

11.5.4 File ''/etc/crontab''

11.5.5 File ''/etc/cron.d/* ''

11.6 Anacron

11.6.1 File ''/etc/anacrontab''

11.6.2 Avvio di ''anacron''

11.7 At

11.7.1 Ambiente

11.7.2 Restituzione dell'output

11.7.3 Utilizzo di ''at'', ''batch'', ''atq'' e ''atrm''

11.7.4 Analisi di un esempio

11.8 Priorità

11.8.1 Utilizzo di ''nice''

11.8.2 Utilizzo di ''renice''

11.9 Calendario

11.9.1 Utilizzo di ''cal''

11.9.2 Utilizzo di ''ccal''

11.9.3 Utilizzo di ''ncal''

11.9.4 Utilizzo di ''gcal''

11.9.5 Utilizzo di ''calendar''

11.9.6 Utilizzo di ''pcal''

11.9.7 File di ricorrenze e scadenze compatibile

12 Informazioni varie

12.1 Pacchetto Procinfo

12.1.1 Utilizzo di ''procinfo''

12.1.2 Utilizzo di ''lsdev''

12.1.3 Utilizzo di ''socklist''

12.2 Pacchetto Linux PCI utilities

12.3 Lsusb

12.4 Lshw

12.5 Definizione del nome del sistema

12.6 Altre caratteristiche identificative del sistema

12.7 Numero di serie

12.8 LinuxInfo

13 Convenzioni nazionali

13.1 Sigle identificative delle caratteristiche locali

13.2 Preparazione delle localizzazioni disponibili

13.3 Configurazione delle localizzazioni nelle distribuzioni Debian

14 Terminali a caratteri

14.1 Introduzione alla tastiera

14.1.1 Funzionamento essenziale della macchina da scrivere tipica

14.1.2 Caratteri maiuscoli, minuscoli e altri simboli

14.1.3 Disposizione anatomica dei tasti

14.1.4 Mappa dei tasti

14.1.5 Fissamaiuscole

14.1.6 Avanzamento, arretramento e composizione

14.1.7 Tabulatore

14.1.8 Telescrivente

14.1.9 Mutazione della mappa italiana

14.2 Tastiera di un elaboratore

14.2.1 Livelli

14.2.2 Alfabeti non latini

14.2.3 Tasti morti e composizione

14.2.4 Inserimento numerico del codice di un simbolo

14.2.5 Alfabeti asiatici

14.2.6 Pittogrammi ISO 9995-7

14.3 Tastiera della console di un sistema GNU/Linux

14.3.1 Tastiera locale e tastiera remota

14.3.2 Console virtuali

14.3.3 Controllo della modalità di funzionamento della tastiera con ''kbd.mode''

14.3.4 Controllo sullo stato della tastiera con ''setleds''

14.3.5 Mappa della tastiera

14.3.6 Visualizzazione dei codici dei tasti con ''showkey''

14.3.7 Caricamento di una mappa con ''loadkeys''

14.3.8 Analisi della configurazione attuale con ''dumpkeys''

14.4 Personalizzazione della mappa della tastiera

14.4.1 Modificatori

14.4.2 Specificazione di mappa

14.4.3 Istruzione ''keycode''

14.4.4 Funzionalità speciali

14.5 Approfondimento: tastiera italiana conforme a X

14.5.1 Codifica

14.5.2 Modificatori virtuali ''control'' e ''meta''

14.5.3 Combinazioni numeriche

14.5.4 Accenti morti e composizione

14.5.5 Lettere accentate maiuscole

14.5.6 Barra spaziatrice

14.5.7 Tasti funzionali

14.6 Identificazione del terminali

14.7 Configurazione del terminale

14.7.1 Linea TTY

14.7.2 Utilizzo di ''stty''

14.7.3 Termcap e Terminfo

14.7.4 Variabile di ambiente ''TERM''

14.7.5 Adattabilità di un programma e abilità dell'utilizzatore

14.7.6 Ripulitura dello schermo

14.7.7 Definizione degli attributi del terminale con ''setterm''

14.8 Approfondimento: codifica UTF-8

14.8.1 Caratteri per la console

14.8.2 Mappa della tastiera

14.8.3 Localizzazione

14.8.4 Attivare e disattivare l'utilizzo della codifica UTF-8

14.8.5 Utilizzo di ''luit''

14.9 Console grafica VGA nei sistemi GNU/Linux

14.9.1 Parametri di avvio: ''vga=ask''

14.9.2 Modifica dei caratteri

14.9.3 Console VGA e ''frame buffer''

14.9.4 ''Frame buffer'' dall'avvio

14.10 Utilizzo del dispositivo di puntamento

14.10.1 Dispositivo del mouse

14.10.2 Utilizzo di ''gpm''

14.10.3 Avvio del servizio di gestione del mouse

14.11 Monitoraggio di una sessione di lavoro

14.11.1 Utilizzo di ''script''

14.11.2 File di dispositivo ''/dev/vcs*''

14.12 Strumenti per la gestione delle console virtuali

14.12.1 Utilizzo di ''open''

14.12.2 Utilizzo di ''switchto''

14.13 Terminali virtuali, o finestre, con il programma Screen

14.13.1 Funzionamento e organizzazione generale

14.13.2 Utilizzo di ''screen''

14.13.3 Comandi interattivi

14.13.4 Configurazione

14.14 Console parallele con Pconsole

14.15 Getty

14.15.1 Utilizzo di un programma Getty

14.15.2 File ''/etc/issue''

14.15.3 Utilizzo di MinGetty

14.15.4 Utilizzo di Agetty

14.15.5 Annotazione per la predisposizione di un terminale seriale

14.16 Console nei sistemi GNU/Linux

14.16.1 Definizione esplicita della console

14.16.2 Usare o non usare la console

14.16.3 Annotazioni per una console su un terminale seriale

14.17 Terminali per non vedenti

14.17.1 Codifica semplificata

14.17.2 Braille a otto punti

14.17.3 Tabelle di conversione

14.17.4 Sistemi di interazione per non vedenti

14.17.5 Lettura di ciò che appare sullo schermo

14.17.6 Terminali braille

14.17.7 Brltty

14.18 Riferimenti

15 Utilizzo corretto della tastiera

15.1 Posizione

15.2 Disposizione delle dita sui tasti

15.3 Esercizi di digitazione: la riga base

15.3.1 Esercizi sui tasti base: mano sinistra

15.3.2 Esercizi sui tasti base: mano destra

15.3.3 Esercizi sui tasti base: entrambe le mani

15.3.4 Esercizi sui tasti base con lo spostamento degli indici

15.3.5 Esercizi sui tasti base con lo spostamento aggiuntivo del mignolo destro

15.3.6 Esercizi sulla riga base con l'uso delle maiuscole

15.4 Esercizi di digitazione: la riga superiore

15.4.1 Esercizi sui tasti della riga superiore: mano sinistra

15.4.2 Esercizi sui tasti della riga superiore: mano destra

15.4.3 Esercizi sui tasti della riga superiore con entrambe le mani

15.4.4 Esercizi con l'aggiunta delle lettere maiuscole

15.5 Esercizi di digitazione: la riga inferiore

15.5.1 Esercizi sui tasti della riga inferiore: mano sinistra

15.5.2 Esercizi sui tasti della riga inferiore: mano destra

15.5.3 Esercizi sui tasti della riga inferiore con entrambe le mani

15.5.4 Esercizi con l'aggiunta delle lettere maiuscole

15.6 Esercizi di digitazione: conclusione

15.6.1 Favole di Esopo

15.7 Livelli ulteriori

15.8 Ktouch

15.8.1 Avvio e configurazione

15.8.2 Esercizio con Ktouch

15.8.3 Personalizzazione della tastiera

15.8.4 Personalizzazione degli esercizi

15.9 Gtypist

15.9.1 Avvio

15.9.2 Personalizzazione degli esercizi

15.10 Typeit

15.10.1 Esempio di utilizzo

15.10.2 Menù di file

15.10.3 Preparazione degli esercizi

16 Utenti

16.1 Gestione del registro del sistema

16.1.1 Registro del sistema

16.1.1.1 Utilizzo di ''syslogd''

16.1.1.2 File ''/etc/syslog.conf''

16.1.1.3 Archiviazione dei file delle registrazioni del sistema

16.1.1.4 Riservatezza delle informazioni

16.1.1.5 Utilizzo di ''logger''

16.1.1.6 Utilizzo di ''klogd''

16.1.2 Rotazione dei file

16.1.2.1 Rotazione dei file delle registrazioni di sistema nelle distribuzioni Debian

16.1.2.2 Logrotate

16.1.3 Console-log

16.2 Controllo degli accessi

16.2.1 Identità reale o efficace

16.2.2 Login, ovvero la procedura di accesso

16.2.2.1 Utilizzo di ''login''

16.2.2.2 File ''/etc/passwd''

16.2.2.3 File ''/etc/group''

16.2.2.4 File ''/etc/shadow''

16.2.2.5 File ''/var/run/utmp''

16.2.2.6 File ''/var/log/wtmp''

16.2.2.7 File ''/etc/motd''

16.2.2.8 File ''/etc/nologin''

16.2.2.9 File ''/etc/securetty''

16.2.2.10 Casella di posta elettronica

16.2.2.11 File ''./.hushlogin''

16.2.2.12 File ''/var/log/lastlog''

16.2.3 Cambiamento di identità

16.2.3.1 Utilizzo di ''su''

16.2.3.2 Utilizzo di ''newgrp''

16.2.4 Informazioni sugli accessi

16.2.4.1 Utilizzo di ''users''

16.2.4.2 Utilizzo di ''w''

16.2.4.3 Utilizzo di ''who''

16.2.4.4 Utilizzo di ''pinky''

16.2.4.5 Utilizzo di ''whoami''

16.2.4.6 Utilizzo di ''logname''

16.2.4.7 Utilizzo di ''groups''

16.2.4.8 Utilizzo di ''id''

16.3 Parole d'ordine cifrate

16.3.1 Funzione ''crypt«»''

16.3.2 Trasferimento delle utenze

16.3.3 Debolezza del sistema di parole d'ordine cifrate

16.4 Utenti e gruppi

16.4.1 Utilizzo di ''adduser'' e ''useradd''

16.4.2 File ''/etc/skel/*''

16.4.3 Utilizzo di ''passwd''

16.4.4 Utilizzo di ''chsh''

16.4.5 File ''/etc/shells''

16.4.6 Utilizzo di ''chfn''

16.5 Utenti e gruppi importanti

16.6 Eliminazione di un utente

16.7 Trucchi per la gestione degli utenti

16.7.1 Utente con funzione specifica

16.7.2 Gruppo di utenti con lo stesso UID

16.7.3 Uno stesso UID e GID per più nominativi-utente

16.7.4 Un gruppo per ogni utente «gruppi privati»

16.7.5 Directory personali controllate rigidamente dall'amministratore

16.7.6 Directory personali controllate da un utente ''tutore''

16.7.7 Creazione di un'utenza in più contesti

16.8 Parole d'ordine oscurate

16.8.1 Funzioni delle parole d'ordine oscurate

16.8.1.1 File ''/etc/shadow''

16.8.1.2 File ''/etc/passwd''

16.8.2 Amministrazione degli utenti

16.8.2.1 File ''/etc/login.defs''

16.8.2.2 Utilizzo di ''pwconv''

16.8.2.3 Utilizzo di ''pwunconv''

16.8.2.4 Utilizzo di ''useradd''

16.8.2.5 File ''/etc/default/useradd''

16.8.2.6 Utilizzo di ''userdel''

16.8.2.7 Utilizzo di ''usermod''

16.8.2.8 Utilizzo di ''chage''

16.8.3 Amministrazione dei gruppi

16.8.3.1 File ''/etc/gshadow''

16.8.3.2 Utilizzo di ''grpconv''

16.8.3.3 Utilizzo di ''grpunconv''

16.8.3.4 Utilizzo di ''gpasswd''

16.8.3.5 Utilizzo di ''groupadd''

16.8.3.6 Utilizzo di ''groupdel''

16.8.4 Caso particolare di ''adduser'' e ''addgroup'' nella distribuzione GNU/Linux Debian

16.8.5 Verifiche di coerenza

16.8.5.1 utilizzo di ''pwck''

16.8.5.2 Utilizzo di ''grpck''

16.8.6 Copie di sicurezza

16.9 Moduli PAM

16.9.1 Servizi PAM

16.9.2 File di configurazione e moduli

16.9.3 Verifica nel registro del sistema

16.9.4 Configurazione particolareggiata dei moduli

16.9.5 Descrizione di alcuni moduli

16.9.5.1 Modulo ''pam.warn.so''

16.9.5.2 Modulo ''pam.permit.so''

16.9.5.3 Modulo ''pam.deny.so''

16.9.5.4 Modulo ''pam.exec.so''

16.9.5.5 Modulo ''pam.unix.so''

16.10 Contabilità dell'utilizzo di risorse del sistema

16.10.1 Formato dei file

16.10.2 Contabilità basata sul file ''/var/log/wtmp''

16.10.2.1 Utilizzo di ''last''

16.10.2.2 Utilizzo di ''ac''

16.10.3 Contabilità dei processi

16.10.3.1 Utilizzo di ''lastcomm''

16.10.3.2 Utilizzo di ''sa''

16.11 Configurazione e personalizzazione

16.11.1 Frammentazione del sistema di configurazione

16.11.1.1 Collocazione

16.11.1.2 Sequenza

16.11.1.3 Effetto

16.11.2 Configurazione in base alla nazionalità: localizzazione

16.11.2.1 Disponibilità della localizzazione

16.11.2.2 Scelta della definizione

16.11.2.3 Variabili per la localizzazione

16.11.2.4 Definizioni standard di localizzazione

16.11.2.5 Utilizzo di ''locale''

16.11.3 Insieme di caratteri

16.11.3.1 Variabile di ambiente ''LESSCHARSET''

16.11.3.2 File ''/etc/man.config'' o ''/etc/manpath.config''

16.11.4 Configurazioni comuni varie

16.11.4.1 Invito della shell

16.11.4.2 Prevenzione dalla cancellazione involontaria

16.11.4.3 Libreria Readline

16.11.5 Fuso orario

16.12 Limiti alle utenze

16.12.1 Una shell per impedire l'accesso

16.12.2 Controllo dello spazio utilizzato, senza l'uso tradizionale delle quote

16.12.3 Accesso consentito soltanto ad alcuni utenti

16.13 Samba e utenze Unix

16.13.1 Avvio del servizio di rete

16.13.2 Configurazione essenziale

16.13.3 Elenco degli utenti

16.13.4 Gestione delle utenze

16.13.5 Allineamento delle utenze

16.14 Sintesi dei comandi principali

16.15 Riferimenti

17 Shell Unix

17.1 Introduzione alla shell Unix

17.1.1 Shell POSIX

17.1.2 Invito della shell

17.1.3 Storico dei comandi

17.1.4 Comandi interni

17.1.5 Alias

17.1.6 Ambiente

17.1.7 Condotti

17.1.8 Script

17.1.9 Sostituzione o espansione

17.1.9.1 Caratteri jolly o metacaratteri

17.1.9.2 Variabili e parametri

17.1.9.3 Sostituzione di comandi

17.1.9.4 Protezione dalla sostituzione e dall'espansione

17.1.10 Suddivisione in parole

17.2 Utilizzo generale

17.2.1 Avvio e conclusione

17.2.2 Interpretazione dei comandi: parametri, variabili, espansione e sostituzione

17.2.2.1 Protezione

17.2.2.2 Parametri e variabili

17.2.2.3 Espansione

17.2.2.4 Espansione della tilde

17.2.2.5 Espansione di parametri e variabili

17.2.2.6 Sostituzione dei comandi

17.2.2.7 Espansione di espressioni aritmetiche

17.2.2.8 Suddivisione di parole

17.2.2.9 Espansione di percorso

17.2.3 Comandi

17.2.3.1 Valore restituito dai comandi: ''exit status''

17.2.3.2 Condotto

17.2.3.3 Lista di comandi

17.2.3.4 Avvio sullo sfondo con ''&''

17.2.3.5 Alias

17.2.4 Ridirezione

17.2.4.1 Ridirezione e script

17.2.5 Controllo dei job

17.2.6 Esecuzione dei comandi

17.2.7 Configurazione di ambiente

17.2.8 Particolarità importanti della shell Bash

17.2.8.1 File di configurazione

17.2.8.2 Opzioni

17.2.8.3 Uso sommario della tastiera

17.2.8.4 Invito o ''prompt''

17.3 Programmazione

17.3.1 Caratteristiche di uno script

17.3.2 Strutture

17.3.2.1 for

17.3.2.2 case

17.3.2.3 if

17.3.2.4 while

17.3.2.5 until

17.3.2.6 Funzioni

17.3.3 Espressioni aritmetiche

17.3.4 Comandi interni

17.3.4.1 Comando ''getopts''

17.3.4.2 Comando ''set''

17.4 Accesso ai file

17.4.1 Utilizzo dei descrittori

17.4.2 Lettura e scrittura

17.4.2.1 Gestione degli spazi

17.4.3 Contenuto senza file

17.5 Traduzione dei messaggi

17.5.1 Esempio iniziale

17.5.2 utilizzo più sofisticato

17.6 Libreria Readline

17.6.1 Comandi

17.6.2 Completamento automatico

17.6.3 Configurazione

17.6.4 Utilizzo di ''cle''

17.7 Tabelle riepilogative

17.7.1 Particolarità della shell Bash

17.7.2 Parametri comuni

17.7.3 Variabili di ambiente comuni

17.7.4 Espansione e sostituzione

17.7.5 Comandi e job

17.7.6 Ridirezione

17.7.7 Strutture di controllo

17.7.8 Comando ''echo''

17.7.9 Comando ''set''

17.7.10 Comando ''test''

17.7.11 Comando ''ulimit''

17.7.12 Altri comandi interni

17.8 Riferimenti

18 Script e affini

18.1 Eseguibili, interpretabili e automazione dell'interpretazione

18.1.1 Script

18.1.2 Programmi da interpretare che non sono script

18.1.3 Gestione del kernel dei binari eterogenei

18.1.3.1 Configurazione

18.1.3.2 Realizzazione pratica

18.2 Scansione di parole

18.2.1 Il ciclo ''for'' di una shell standard

18.2.2 Scansione con ''xargs''

18.3 Scansione delle opzioni della riga di comando

18.3.1 Programma ''getopt''

18.3.2 Il funzionamento di ''getopt'' nella versione dei programmi di servizio Linux

18.4 File temporanei

18.5 Ambiente

18.6 Interazione con l'utente

18.6.1 Utilizzo di ''echo'' e di ''printf''

18.6.2 Utilizzo di ''read''

18.6.3 Utilizzo di ''select''

18.6.4 Utilizzo di ''yes''

18.6.5 Dialog e simili

18.7 Espressioni

18.7.1 Utilizzo di ''false'' e ''true''

18.7.2 Utilizzo di ''test'' o di ''[''

18.7.3 Utilizzo di ''expr''

18.8 Ridirezione

18.8.1 Utilizzo di ''tee''

18.9 Pause

18.9.1 Utilizzo di ''sleep''

18.10 Raccolta di funzioni per una shell POSIX

18.10.1 Estrapola da ''/etc/passwd'' le righe di un certo intervallo di numeri UID

18.10.2 Estrapola da ''/etc/passwd'' le righe di un certo intervallo di numeri GID

18.10.3 Estrapola da ''/etc/group'' le righe di un certo intervallo di numeri GID

18.10.4 Seleziona un utente interattivamente

18.10.5 Seleziona un campo di una certa riga da un file come ''/etc/passwd'', ''/etc/group'' e simili

18.10.6 Aggiunge un utente Unix e Samba, simultaneamente

18.10.7 Cambia la parola d'ordine a un utente Unix e Samba, simultaneamente

18.10.8 Elimina un utente Unix e Samba, simultaneamente

18.10.9 Seleziona interattivamente salvando la selezione

18.10.10 Verifica che l'utente proprietario di un file possa accedervi

18.10.11 Verifica che il gruppo proprietario di un file possa accedervi

18.10.12 Verifica che gli utenti diversi possano accedere a un file

18.10.13 Estrapola il nome dell'utente proprietario di un file

18.10.14 Estrapola la directory personale di un utente

18.10.15 Estrapola il numero UID di un utente

18.11 Approfondimento: un esercizio con Dialog

18.11.1 Gestione dei file di testo

18.11.2 Copie delle versioni precedenti

18.11.3 Esportazione e importazione dati

18.11.4 Stampa

18.12 Riferimenti

19 Memoria di massa e file system

19.1 Introduzione alla memoria di massa

19.1.1 Nastro

19.1.2 Disco

19.1.2.1 Dischi fissi e rimovibili

19.1.2.2 Dischi magnetici

19.1.2.3 Geometria

19.1.2.4 Dischi magneto-ottici

19.1.2.5 Dischi ottici

19.1.2.6 Memorie solide

19.1.3 Collocazione e accesso ai dati

19.1.4 Partizioni secondo la modalità MS-Windows

19.1.4.1 MBR

19.1.4.2 Partizioni primarie ed estese

19.1.5 Firmware

19.1.6 Modalità di accesso ai settori

19.1.7 Memoria cache

19.1.8 File system Unix

19.1.8.1 Directory e inode

19.1.8.2 Collegamenti o ''link''

19.2 Preparazione e controllo

19.2.1 Preparazione dei file system

19.2.1.1 Utilizzo di ''badblocks''

19.2.1.2 Utilizzo di ''fdisk''

19.2.1.3 Utilizzo di ''cfdisk''

19.2.1.4 Utilizzo di ''sfdisk''

19.2.1.5 Salvataggio e recupero delle informazioni sulle partizioni principali

19.2.1.6 Sistemazione delle partizioni Dos-FAT

19.2.1.7 Utilizzo di ''mke2fs'', ''mkfs.ext2'', ''mkfs.ext3'' e ''mkfs.ext4''

19.2.1.8 Utilizzo di ''mkdosfs'' e ''mkfs.msdos''

19.2.1.9 Utilizzo di ''mkfs''

19.2.2 Controllo dei file system

19.2.2.1 Utilizzo di ''disktype''

19.2.2.2 Utilizzo di ''dumpe2fs''

19.2.2.3 Utilizzo di ''e2fsck'', ''fsck.ext2'', ''fsck.ext3'' e ''fsck.ext4''

19.2.2.4 Utilizzo di ''dosfsck'' e ''fsck.msdos''

19.2.2.5 Utilizzo di ''fsck''

19.2.2.6 La directory ''lost+found''

19.2.3 Gestione di file system NTFS

19.2.4 Compatibilità dei nomi tra un file system e l'altro

19.3 Memoria di massa: gestione delle partizioni

19.3.1 Gpart

19.3.2 Parted

19.3.3 Partimage

19.3.3.1 Archiviazione

19.3.3.2 Ripristino

19.4 Attivazione e utilizzo

19.4.1 Attivazione dei file system

19.4.1.1 Tipi di file system

19.4.1.2 Implicazioni legate all'innesto di un file system

19.4.1.3 Opzioni

19.4.1.4 Utilizzo di ''mount''

19.4.1.5 Utilizzo di ''umount''

19.4.1.6 File ''/etc/fstab''

19.4.1.7 File ''/etc/mtab''

19.4.1.8 Utilizzo di ''df''

19.4.1.9 Utilizzo di ''di''

19.4.1.10 Utilizzo di ''du''

19.4.1.11 Utilizzo di ''stat''

19.4.2 Memoria cache

19.5 Memoria virtuale

19.5.1 Creazione di una partizione o di un file di scambio

19.5.1.1 Partizione di scambio

19.5.1.2 File di scambio

19.5.2 Inizializzazione

19.5.3 Attivazione e disattivazione della memoria virtuale

19.5.3.1 Utilizzo di ''swapon'' e ''swapoff''

19.5.3.2 Gestione automatica attraverso il file ''/etc/fstab''

19.5.3.3 Procedura di inizializzazione del sistema

19.6 Controllo delle ''quote'' nei sistemi GNU/Linux

19.6.1 Quota utente e quota di gruppo

19.6.2 Configurazione con il file ''/etc/fstab''

19.6.3 Registrazione delle quote e attivazione del controllo

19.6.4 Quote relative a file system condivisi attraverso la rete

19.6.5 Utilizzo di ''quotacheck''

19.6.6 Utilizzo di ''quotaon'' e ''quotaoff''

19.6.7 Assegnazione e verifica delle quote

19.6.8 Utilizzo di ''setquota''

19.6.9 Utilizzo di ''edquota''

19.6.10 Utilizzo di ''repquota''

19.6.11 Utilizzo di ''quota''

19.7 Dischi ottici: file system

19.7.1 Caratteristiche di massima di un CD

19.7.2 Caratteristiche di massima di un DVD

19.7.3 Caratteristiche di massima di un BD

19.7.4 Creazione dell'immagine di un disco ottico

19.7.4.1 Estensioni Rock Ridge

19.7.4.2 Estensioni Zisofs

19.7.4.3 Estensioni El-Torito

19.7.4.4 Estensioni Joliet

19.7.4.5 Strumenti per la creazione di un file-immagine ISO 9660 e UDF

19.7.4.6 Esperimenti con il file system ISO 9660

19.7.4.7 ISOLINUX

19.8 Registrare su dischi ottici con GNU/Linux

19.8.1 Problemi legati alla scrittura di dischi ottici

19.8.2 Wodim

19.8.3 Growisofs e DVD+rw-format

19.8.4 Dischi ottici con file system inusuali

19.9 File system compressi

19.9.1 Cloop

19.9.2 Squashfs

19.9.3 Cramfs

19.9.4 Zisofs

19.10 Gestione della memoria di massa in modo ridondante

19.10.1 RAID

19.10.2 RAID hardware e software

19.10.3 RAID-1 via software con i sistemi GNU/Linux

19.10.3.1 Predisposizione del kernel

19.10.3.2 Partizioni e installazione

19.10.3.3 Sostituzione di un'unità difettosa

19.10.3.4 Situazioni più gravi

19.10.3.5 Aggiungere un'unità

19.10.3.6 Creare un sistema RAID-1 senza dover travasare i dati

19.11 FUSE: ''file system in user space''

19.11.1 Attivazione di FUSE

19.11.2 Limiti di accesso

19.11.3 Innesto e distacco

19.11.4 SSHfs

19.11.4.1 Utilizzo di SSHfs

19.11.4.2 Estendere le facoltà di accesso

19.11.5 CurlFtpFS

19.11.5.1 Configurazione

19.11.5.2 Utilizzo normale di CurlFtpFS

19.11.5.3 Estendere le facoltà di accesso

19.11.5.4 Altre opzioni

19.11.6 NTFSprogs e NTFS-3g

19.11.6.1 Innesto di un file system NTFS

19.11.6.2 Opzioni

19.11.7 EncFS

19.11.7.1 Un esempio per iniziare

19.11.7.2 Cura nell'uso di EncFS

19.11.7.3 Manutenzione di EncFS

19.11.7.4 Opzioni per facilitare l'accesso ai dati

19.12 Gerarchia del file system

19.12.1 Directory ''/'': la radice

19.12.2 Directory ''/bin/'' e ''/sbin/'': binari essenziali

19.12.3 Directory ''/boot/'': file statici per l'avvio del sistema

19.12.4 Directory ''/dev/'': file di dispositivo

19.12.5 Directory ''/etc/'': configurazione particolare del sistema

19.12.6 Directory ''/home/'': directory personali degli utenti

19.12.7 Directory ''/lib/'': librerie condivise essenziali e moduli del kernel

19.12.8 Directory ''/mnt/'': punto di innesto per l'inserzione temporanea di altri file system

19.12.9 Directory ''/opt/'': applicativi aggiunti

19.12.10 Directory ''/proc/'' e ''/sys/'': informazioni vitali sul kernel e sui processi

19.12.11 Directory ''/root/'': directory personale dell'utente root

19.12.12 Directory ''/tmp/'': file temporanei

19.12.13 Directory ''/usr/'': gerarchia secondaria «dati statici e condivisibili»

19.12.14 Directory ''/usr/bin/'' e ''/usr/sbin/'': binari non essenziali

19.12.15 Directory ''/usr/games/'': giochi e programmi didattici

19.12.16 Directory ''/usr/include/'': file di intestazione

19.12.17 Directory ''/usr/lib/'': librerie per la programmazione e per gli applicativi

19.12.18 Directory ''/usr/local/'': programmi locali

19.12.19 Directory ''/usr/share/'': dati indipendenti dall'architettura

19.12.20 Directory ''/usr/share/man/'': pagine di manuale

19.12.21 Directory ''/usr/share/misc/'': file di dati vari

19.12.22 Directory ''/usr/src/'': sorgenti

19.12.23 Directory ''/var/'': dati variabili

19.12.24 Directory ''/var/cache/'': directory per la memorizzazione transitoria

19.12.25 Directory ''/var/lock/'': file per il controllo dell'accesso alle risorse

19.12.26 Directory ''/var/log/'': file delle registrazioni

19.12.27 Directory ''/var/mail/'': caselle postali degli utenti

19.12.28 Director ''/var/opt/'': dati variabili per gli applicativi aggiuntivi

19.12.29 Directory ''/var/run/'': dati variabili di esecuzione

19.12.30 Directory ''/var/spool/'': code di dati

19.12.31 Directory ''/var/tmp/'': file temporanei preservati all'avvio del sistema

19.13 Approfondimenti

19.13.1 Inizializzazione a basso livello dei dischetti

19.13.1.1 Utilizzo di ''fdformat''

19.13.1.2 Utilizzo di ''superformat''

19.13.2 Dischi senza partizioni

19.13.3 File-immagine

19.13.3.1 Creazione di un file-immagine normale

19.13.3.2 Accedere a un file-immagine normale

19.13.3.3 File-immagine suddiviso in partizioni

19.13.3.4 trasferimento di un file-immagine in un'unità reale

19.13.4 Unità di memorizzazione senza file system

19.13.5 Controllo dell'unità per dischi ottici

19.13.6 Estrazione della prima traccia dati

19.13.6.1 Verifica di un disco appena registrato

19.14 Riferimenti

20 File e directory

20.1 Unità di riferimento

20.2 Directory

20.2.1 Utilizzo di ''mkdir''

20.2.2 Utilizzo di ''rmdir''

20.3 Percorsi

20.3.1 Utilizzo di ''pwd''

20.3.2 Utilizzo di ''basename''

20.3.3 Utilizzo di ''dirname''

20.3.4 Utilizzo di ''namei''

20.3.5 Utilizzo di ''pathchk''

20.4 Contenuti

20.4.1 Utilizzo di ''ls'', ''dir'' e ''vdir''

20.4.2 Utilizzo di ''dircolors''

20.4.3 Utilizzo di ''file''

20.4.4 Utilizzo di ''du''

20.5 Collocazione degli eseguibili

20.5.1 Utilizzo di ''which''

20.5.2 Utilizzo di ''whereis''

20.6 Proprietà

20.6.1 Utilizzo di ''chown''

20.6.2 Utilizzo di ''chgrp''

20.7 Modalità dei permessi

20.7.1 SGID e SUID

20.7.2 Maschera dei permessi: umask

20.7.3 Utilizzo di ''chmod''

20.8 Attributi speciali

20.8.1 Utilizzo di ''chattr''

20.8.2 Utilizzo di ''lsattr''

20.9 ACL POSIX con i sistemi GNU/Linux

20.9.1 Kernel, file system e programmi di servizio

20.9.2 ACL POSIX

20.9.3 ACL in pratica

20.9.4 Ereditarietà

20.10 Data

20.10.1 Utilizzo di ''touch''

20.11 Copia e collegamento

20.11.1 Collegamenti simbolici

20.11.2 Collegamenti fisici

20.11.3 Directory e collegamenti fisici

20.11.4 Errori comuni con i collegamenti simbolici

20.11.5 Utilizzo di ''cp''

20.11.6 Utilizzo di ''ln''

20.11.7 Utilizzo di ''install''

20.11.8 Utilizzo di ''dd''

20.11.9 Utilizzo di ''ddrescue''

20.12 Spostamento e cancellazione

20.12.1 Utilizzo di ''mv''

20.12.2 Utilizzo di ''rm''

20.12.3 Cestino personale

20.12.4 Utilizzo di ''unlink''

20.12.5 Utilizzo di ''shred''

20.13 Archiviazione

20.13.1 Utilizzo di Cpio

20.13.2 Utilizzo di Tar

20.14 Compressione

20.14.1 Utilizzo di ''gzip'', ''gunzip'' e ''zcat''

20.14.2 Utilizzo di ''bzip2'' e ''bunzip2''

20.14.3 UPX

20.14.4 Utilizzo di ''unp'' e di ''ucat''

20.15 File FIFO

20.15.1 Utilizzo di ''mkfifo''

20.16 File di dispositivo

20.16.1 Utilizzo di ''mknod''

20.16.2 File ''/dev/MAKEDEV''

20.17 Tabelle riepilogative

20.18 Riferimenti

21 Cancellazione, recupero e copie di sicurezza

21.1 Recupero dei dati cancellati

21.1.1 Recupero da un file system generico con Foremost

21.2 Libreria per la conservazione dei dati cancellati

21.2.1 Variabile di ambiente ''LD.PRELOAD''

21.2.2 Delsafe

21.2.3 Preparazione di Libdelsafe

21.2.4 Predisposizione dei cestini

21.2.5 Script ausiliari a Libdelsafe

21.3 Controllo dello spazio rimasto libero

21.3.1 Secure-delete

21.3.2 Esempio di programma per la sovrascrittura dello spazio libero

21.4 Copie di sicurezza

21.4.1 Archiviazione

21.4.2 Percorsi assoluti o relativi

21.4.3 Strategia nelle copie

21.4.4 Generazioni delle copie

21.4.5 Livelli delle copie

21.4.6 Distribuire le responsabilità

21.4.7 Supporti

21.4.8 Compressione

21.5 Archiviazione e recupero attraverso tar e gzip

21.5.1 Archiviazione diretta su dispositivi di memorizzazione

21.5.2 Archiviazione normale su file

21.5.3 Archiviazione e percorsi

21.5.4 Archiviazione di periodi

21.5.5 Archiviazione limitata a un'unità

21.5.6 Estrazione dei percorsi

21.5.7 Recupero

21.5.8 Recupero parziale

21.5.9 Elenco e controllo

21.5.10 Archiviazione di un file system

21.5.11 Strumenti per il recupero

21.6 Riferimenti

22 Programmi di servizio vari

22.1 Gestione dei file di testo

22.1.1 Codice di interruzione di riga

22.1.2 Spazi

22.2 Riemissione completa di un file di testo

22.2.1 Utilizzo di ''cat''

22.2.2 Utilizzo di ''tac''

22.2.3 Utilizzo di ''nl''

22.2.4 Utilizzo di ''od''

22.2.5 Utilizzo di ''rev''

22.2.6 Utilizzo di ''dog''

22.3 Rimpaginazione di un file di testo

22.3.1 Utilizzo di ''fmt''

22.3.2 Utilizzo di ''pr''

22.3.3 Utilizzo di ''fold''

22.3.4 Utilizzo di ''column''

22.3.5 Utilizzo di ''colrm''

22.4 Composizione

22.4.1 Utilizzo di ''col'' e di ''colcrt''

22.4.2 Utilizzo di ''ul''

22.5 Estrazione parziale e statistiche

22.5.1 Utilizzo di ''head''

22.5.2 Utilizzo di ''tail''

22.5.3 Utilizzo di ''split''

22.5.4 Utilizzo di ''csplit''

22.5.5 Utilizzo di ''wc''

22.6 Ordinamento di un file di testo

22.6.1 Utilizzo di ''sort''

22.6.2 Utilizzo di ''uniq''

22.6.3 Utilizzo di ''comm''

22.7 Campi

22.7.1 Utilizzo di ''cut''

22.7.2 Utilizzo di ''paste''

22.7.3 Utilizzo di ''join''

22.8 Conversione

22.8.1 Utilizzo di ''expand''

22.8.2 Utilizzo di ''unexpand''

22.9 Traslitterazione o cancellazione di caratteri

22.9.1 Rappresentazione dei caratteri in una stringa di ''tr''

22.9.2 Traslitterazione

22.9.3 Cancellazione e compattamento

22.10 Controlli sommari

22.10.1 Utilizzo di ''sum''

22.10.2 Utilizzo di ''cksum''

22.10.3 Utilizzo di ''md5sum''

22.10.4 Utilizzo di ''sha1sum''

22.11 Lettura di file binari

22.11.1 Utilizzo di ''hexdump'' o di ''hd''

22.11.2 Utilizzo di ''hexcat''

22.12 Differenze tra i file

22.12.1 Creazione di un file di differenze con ''diff''

22.12.1.1 Regolazione della sensibilità di ''diff''

22.12.1.2 Confronto binario o testuale

22.12.1.3 Differenze senza contesto

22.12.1.4 Formato contestuale standard

22.12.1.5 Formato contestuale unificato

22.12.1.6 Confronto dei file di due directory

22.12.1.7 Come si prepara un file di differenze

22.12.2 Applicazione delle modifiche con ''patch''

22.12.2.1 Definizione dei file da modificare e del file di differenze

22.12.2.2 Definizione esplicita del formato del file di differenze

22.12.2.3 Differenze multiple e directory

22.12.2.4 Conservazione delle versioni precedenti

22.12.2.5 Applicazione di modifiche imperfette

22.12.2.6 Altre anomalie

22.12.2.7 Differenze invertite

22.13 Elaborazioni matematiche

22.13.1 Utilizzo di ''factor''

22.13.2 Utilizzo di ''seq''

22.14 BC: linguaggio aritmetico a precisione arbitraria

22.14.1 Base di numerazione

22.14.2 Approssimazione

22.14.3 Linguaggio di programmazione

22.14.3.1 Variabili semplici e array

22.14.3.2 Funzioni

22.14.3.3 Emissione delle informazioni

22.14.3.4 Espressioni

22.14.3.5 Funzioni standard

22.14.3.6 Strutture di controllo di flusso

22.14.4 Utilizzo di BC

22.14.5 BC nella realizzazione GNU

22.15 Creazione e modifica di file di testo: VI

22.15.1 Avvio

22.15.2 Modalità di funzionamento

22.15.3 Posizione attiva

22.15.4 Moltiplicatori

22.15.5 Inserimento

22.15.6 Navigazione

22.15.7 Modificatori

22.15.8 Cancellazione

22.15.9 Sostituzione

22.15.10 Copia e spostamento di porzioni di testo

22.15.11 Copia e spostamento con nome

22.15.12 Ricerche

22.15.13 Ricerche e sostituzioni

22.15.14 Annullamento dell'ultimo comando

22.15.15 Caricamento, salvataggio e conclusione

22.15.16 Variabili

22.15.17 Comandi particolari

22.15.18 File di configurazione

22.15.19 Problemi di portabilità

22.16 File manager: Midnight Commander

22.16.1 Funzionamento

22.16.2 Avvio di Midnight Commander

22.16.3 Uso del mouse

22.16.4 Tastiera

22.16.5 Menù

22.16.6 Configurazione

22.16.7 File system virtuali

22.17 Mcedit: programma integrato per la gestione dei file di testo

22.17.1 Avvio

22.17.2 Configurazione

22.17.3 Comandi comuni

22.17.4 Blocchi di testo e le funzionalità di taglia-copia-incolla

22.17.5 Composizione del testo

22.17.6 Macro

22.17.7 Ricerche e sostituzioni

22.17.8 Collegamento ''mcedit'' e variabile di ambiente ''EDITOR''

22.17.9 Limiti di memoria

22.18 Giochi e simili

22.18.1 Banner

22.18.2 Arithmetic

22.18.3 Primes

22.18.4 POM

22.18.5 Worms

22.18.6 Rain

22.18.7 Fortune

22.18.8 Worm

22.18.9 Tetris

22.19 Alternative nella distribuzione Debian

22.19.1 Organizzazione particolare della distribuzione Debian

22.19.2 Organizzare manualmente un sistema di alternative

22.20 Riferimenti

23 Ricerca, scansione ed elaborazione di file

23.1 Espressioni regolari standard

23.1.1 RE: BRE e ERE

23.1.2 Problemi di localizzazione

23.1.3 Composizione di un'espressione regolare e corrispondenza

23.1.3.1 Ancoraggio iniziale e finale

23.1.3.2 Delimitazione di una o più sottoespressioni

23.1.3.3 Riferimento a una sottoespressione precedente «solo BRE»

23.1.3.4 Sottoespressioni alternative «solo ERE»

23.1.3.5 Corrispondenza con un carattere singolo

23.1.3.6 Corrispondenze multiple

23.1.4 Espressioni tra parentesi quadre

23.1.4.1 Corrispondenza con un elemento di collazione

23.1.4.2 Corrispondenza con una classe di equivalenza

23.1.4.3 Corrispondenza con una classe di caratteri

23.1.4.4 Intervalli di caratteri

23.1.4.5 Protezione all'interno di espressioni tra parentesi quadre

23.1.5 Precedenze

23.2 Confronto sintetico tra le espressioni regolari ''reali''

23.3 Grep

23.3.1 Grep e Gzip integrati

23.4 Find

23.5 SED

23.5.1 Avvio dell'eseguibile

23.5.2 Logica di funzionamento

23.5.3 Script e direttive multiple

23.5.4 Direttive

23.5.5 Esempi

23.6 Introduzione a AWK

23.6.1 Principio di funzionamento e struttura fondamentale

23.6.1.1 Selezione e azione predefinita

23.6.1.2 Campi

23.6.1.3 Criterio di selezione e condizioni particolari

23.6.1.4 Un programma banale per cominciare

23.6.1.5 Variabili predefinite

23.6.1.6 Struttura ideale di un programma AWK

23.6.2 Avvio dell'interprete

23.6.3 Espressioni

23.6.3.1 Costanti

23.6.3.2 Campi e Variabili

23.6.3.3 Operazioni e operatori

23.6.3.4 Conversione tra stringhe e numeri

23.6.3.5 Esempi di espressioni

23.6.4 Istruzioni

23.6.4.1 Istruzioni fondamentali

23.6.4.2 Ridirezione dell'output

23.6.4.3 Strutture di controllo di flusso

23.6.4.4 Chiamata di funzione e funzioni predefinite

23.6.5 Variabili predefinite

23.6.6 Esempi

23.6.7 Dichiarazione di funzioni

23.6.8 Array

23.6.8.1 Dichiarazione e utilizzo di un array

23.6.8.2 Scandire gli elementi di un array

23.6.8.3 Cancellazione di un elemento

23.6.8.4 Indici numerici e indici ''nulli''

23.6.8.5 Trasformare una stringa delimitata in un array

23.6.8.6 Array pseudo-multidimensionali

23.7 Introduzione a M4

23.7.1 Principio di funzionamento

23.7.2 Convenzioni generali

23.7.2.1 Macro

23.7.2.2 Definizione di una macroistruzione

23.7.2.3 Simboli speciali

23.7.2.4 Eliminazione di una macroistruzione

23.7.3 Istruzioni condizionali, iterazioni e ricorsioni

23.7.3.1 Macro ''ifdef''

23.7.3.2 Macro ''ifelse''

23.7.3.3 Macro ''shift''

23.7.3.4 Macro ''forloop''

23.7.4 Altre macroistruzioni interne degne di nota

23.7.4.1 Macro ''dnl''

23.7.4.2 Macro ''changecom''

23.7.4.3 Macro ''include'' e ''sinclude''

23.7.4.4 Macro ''divert'' e ''undivert''

23.8 Riferimenti

24 Perl

24.1 Struttura fondamentale

24.1.1 Istruzioni

24.1.2 Nomi

24.1.3 Contesto operativo

24.1.4 Tipi di dati

24.1.5 Esecuzione dei programmi Perl

24.2 Variabili e costanti scalari

24.2.1 Variabili

24.2.2 Variabili predefinite

24.2.3 Costanti

24.2.3.1 Costanti numeriche

24.2.4 Esempi

24.3 Array e liste

24.3.1 Liste

24.3.2 Array

24.4 Array associativi o hash

24.5 Operatori ed espressioni

24.5.1 Operatori che intervengono su valori numerici, stringhe e liste

24.5.2 Operatori logici

24.5.3 Operatori particolari

24.5.4 Raggruppamenti di espressioni

24.6 Strutture di controllo del flusso

24.6.1 Strutture condizionali: ''if'' e ''unless''

24.6.2 Iterazioni con condizione di uscita iniziale: ''while'' e ''until''

24.6.3 Iterazioni con condizione di uscita finale: ''do-while'' e ''do-until''

24.6.4 Iterazione enumerativa: ''for''

24.6.5 Iterazione con scansione di valori: ''foreach''

24.6.6 Istruzioni condizionate

24.7 Funzioni interne

24.8 Input e output dei dati

24.8.1 Esecuzione di comandi di sistema

24.8.2 Gestione dei file

24.8.3 File globbing

24.9 Funzioni definite dall'utente

24.9.1 Chiamata per riferimento e chiamata per valore

24.9.2 Campo di azione delle variabili

24.10 Variabili contenenti riferimenti

24.10.1 Riferimenti diretti

24.10.2 Riferimenti simbolici

24.10.3 Dereferenziazione

24.10.4 Array multidimensionali

24.10.5 Alias

24.11 Avvio di Perl

24.12 Operatori di delimitazione di stringhe

24.12.1 Stringa letterale non interpolata: ''q//'' o ''' '''

24.12.2 Stringa letterale interpolata: ''qq//'' o ''. .''

24.12.3 Comando di sistema: ''qx//'' o ''. .''

24.12.4 Lista di parole: ''qw//''

24.12.5 Modello di confronto: ''m//'' o ''//''

24.12.6 Modello di sostituzione: ''s//''

24.12.7 Sostituzione di caratteri: ''tr//'' o ''y//''

24.13 Espressioni regolari

24.13.1 Modificatori

24.13.2 Metacaratteri

24.13.3 Classi di caratteri

24.13.4 Qualificatori: operatori di ripetizione

24.13.5 Raggruppamenti

24.14 Gestione generale dei file

24.14.1 Apertura

24.14.2 Codifica di file già aperti

24.14.3 Chiusura

24.15 Condivisione dei file

24.15.1 Blocco dei file

24.16 I/O con i file

24.16.1 Lettura

24.16.2 Scrittura

24.16.3 Spostamento del puntatore

24.16.4 Identificazione dei flussi di file

24.17 Funzioni interne

24.17.1 File

24.17.2 Directory

24.17.3 I/O

24.17.4 Interazione con il sistema

24.17.5 Funzioni matematiche

24.17.6 Funzioni di conversione

24.17.7 Gestione delle espressioni

24.17.8 Array e hash

24.17.9 Controllo dell'esecuzione del programma

24.18 Riferimenti

25 Introduzione a *roff

25.1 Logica di funzionamento ed esempio di partenza

25.1.1 Avvio degli eseguibili ''troff'' e ''nroff''

25.1.2 Macro e stile

25.1.3 Istruzioni contenute nel testo sorgente

25.1.4 Spazi superflui

25.1.5 Esempio per cominciare

25.2 Istruzioni fondamentali di Troff

25.2.1 Argomenti numerici e unità di misura

25.2.2 Dimensione e distanza tra le righe

25.2.3 Caratteri da stampa

25.2.4 Rientri e dimensioni varie

25.2.5 Allineamento e interruzione del testo

25.2.6 Tabulazioni

25.2.7 Comandi che causano un ''break''

25.2.8 Macro

25.2.9 Margini e Intestazioni

25.2.10 Ambienti

25.2.11 Titoli

25.2.12 Importazione di file esterni

25.3 Precompilatori

25.3.1 Tbl

25.3.2 Eqn

25.4 Groff

25.5 Documentazione Man

25.6 Riferimenti

26 Formati per la stampa

26.1 PostScript

26.1.1 File PostScript

26.1.2 Ghostscript

26.1.3 Ghostscript e HPIJS

26.1.4 Ghostscript per ingrandire le immagini EPS

26.1.5 Anteprima di stampa

26.1.6 Distillazione

26.1.7 Estrazione di disegni

26.1.7.1 Pstoedit

26.2 Rielaborazione PostScript

26.2.1 Sequenza di stampa

26.2.1.1 Piega doppia

26.2.2 PSUtils

26.2.2.1 Utilizzo di ''psresize''

26.2.2.2 Utilizzo di ''psselect''

26.2.2.3 Utilizzo di ''psnup''

26.2.2.4 Utilizzo di ''psbook''

26.2.2.5 Utilizzo di ''pstops''

26.2.2.6 Esempi particolari

26.2.3 Problemi di allineamento della stampa

26.3 DVI

26.3.1 Dvips

26.3.1.1 Configurazione di Dvips

26.3.1.2 Riga di comando di Dvips

26.3.2 Dvipdfm

26.3.3 Anteprima di stampa

26.3.4 Dvilj

26.3.5 Programmi di servizio vari sul formato DVI

26.3.5.1 Utilizzo di ''dvicopy''

26.3.5.2 Utilizzo di ''dviselect''

26.3.5.3 Utilizzo di ''dvidvi''

26.3.5.4 Utilizzo di ''dviconcat''

26.3.5.5 Utilizzo di ''dvi2fax''

26.3.5.6 Utilizzo di ''dvipng''

26.3.5.7 Utilizzo di ''dvired''

26.4 PDF

26.4.1 Xpdf

26.4.1.1 Utilizzo di ''pdftops''

26.4.1.2 Utilizzo di ''pdftotext''

26.4.1.3 Utilizzo di ''pdfimages''

26.4.1.4 Utilizzo di ''pdffonts''

26.4.1.5 Utilizzo di ''pdfinfo''

26.4.2 Okular

26.4.3 Modifica di file PDF

26.4.4 Filtro di stampa

26.5 Riferimenti

27 Stampare

27.1 Introduzione alla stampa

27.1.1 Dispositivi e stampa brutale

27.1.2 Visione generale e astratta

27.1.3 Problemi collegati con la stampa remota

27.1.4 Filtri di stampa

27.1.5 Stampanti virtuali multiple

27.1.6 Quando il meccanismo dei filtri non funziona bene

27.2 Sistema di stampa BSD o compatibile

27.2.1 Configurazione con ''/etc/printcap''

27.2.2 Servizio di stampa

27.2.3 Stampante predefinita

27.2.4 Clienti di stampa

27.2.5 Esame delle code di stampa

27.2.6 Rimozione dei processi di stampa dalle code

27.2.7 Controllo del sistema di stampa

27.2.8 Particolarità del sistema BSD vero e proprio

27.2.9 Particolarità di LPRng

27.2.10 Stampare attraverso X con un sistema di stampa BSD

27.2.11 Librerie GTK 2

27.2.12 Sviluppo successivo

27.3 Stampa remota attraverso Rlpr

27.4 Stampa automatica da un file

27.5 File e filtri per la stampa

27.5.1 File per la stampa

27.5.2 Filtri di stampa

27.5.2.1 Filtro diagnostico

27.5.2.2 Filtri elementari

27.5.2.3 Filtri PostScript

27.5.2.4 Problemi

27.5.2.5 Filtri sofisticati

27.5.3 Magicfilter

27.5.3.1 Configurazione di Magicfilter

27.5.3.2 Funzionamento e utilizzazione pratica di Magicfilter

27.5.4 PostScript printer description

27.5.5 Foomatic-RIP

27.5.6 Controllo dell'impostazioni della carta

27.6 Uniformità del sistema di stampa: da testo a PostScript

27.6.1 A2ps

27.6.2 Enscript

27.7 Filtri particolari con LPRng

27.7.1 Schema di funzionamento

27.7.2 Script ''lpr'' e ''lp''

27.7.3 Funzioni usate da ''client-side-print-filter''

27.7.4 Lo script ''client-side-print-filter''

27.8 Introduzione a Cups

27.8.1 Visione generale

27.8.2 Stampanti logiche, classi e istanze

27.8.3 Configurazione di una stampante locale

27.8.4 Configurazione di una stampante remota

27.9 Cups: programmi di servizio e configurazione

27.9.1 Individuazione automatica delle stampanti

27.9.2 Amministrazione

27.9.3 Configurazione principale del servizio di stampa

27.9.4 Configurazione dal lato dei clienti

27.9.5 Utilizzo comune attraverso la riga di comando

27.9.6 Personalizzazione dal lato cliente

27.9.6.1 Istanze

27.9.7 Accesso remoto

27.9.7.1 Configurazione per l'accesso remoto al servente IPP Cups

27.9.7.2 Accesso a una coda remota

27.9.7.3 Autenticazione digest

27.9.7.4 Problemi di accesso attraverso un proxy

27.9.8 Compatibilità con il sistema di stampa BSD

27.9.9 Considerazioni finali

27.10 Riferimenti

28 X

28.1 Struttura

28.1.1 Hardware

28.1.2 Cliente-servente

28.2 X.Org

28.3 Lettura del file di configurazione

28.4 Accesso a un servente di caratteri

28.5 Funzionamento e accesso

28.5.1 Procedura di avvio

28.5.1.1 Utilizzo di ''xinit''

28.5.1.2 Utilizzo di ''startx''

28.5.1.3 Script ''./.xinitrc''

28.5.1.4 Configurazione globale e sequenza di script

28.5.2 Privilegi per il funzionamento di un servente grafico

28.5.3 Stazioni grafiche virtuali multiple

28.5.4 Definizione dello schermo

28.5.5 Accedere allo schermo

28.5.5.1 Utilizzo di ''xauth''

28.5.5.2 Utilizzo di ''mcookie''

28.5.5.3 Riepilogo sull'utilizzo del file di autorizzazione

28.5.5.4 Utilizzo di ''xhost''

28.5.5.5 Utilizzo di ''xon''

28.5.6 Accedere allo schermo con Secure Shell

28.5.7 Cambiare identità

28.5.8 Tipi di carattere

28.5.9 X e l'uso senza dispositivo di puntamento

28.6 La tastiera e la sua configurazione ''elementare''

28.6.1 Livelli, tasti morti, composizione e gruppi

28.6.2 Configurazione elementare

28.6.3 Geometria

28.7 Configurazione più dettagliata della tastiera e del mouse

28.7.1 Componenti della configurazione

28.7.2 Modificatori

28.7.3 Configurazione

28.7.3.1 Sintesi della configurazione

28.7.3.2 Aggiungere nuovi file di configurazione

28.7.4 Configurazione con ''xmodmap''

28.7.4.1 Utilizzo di ''xmodmap''

28.7.4.2 Configurazione della tastiera numerica

28.7.4.3 Configurazione dei tasti del mouse

28.7.4.4 Riconfigurazione della mappa della tastiera

28.8 Metodi di inserimento intelligente con SCIM

28.8.1 SCIM

28.8.2 Attivazione del metodo di inserimento intelligente

28.8.3 La configurazione locale

28.8.4 Utilizzo

28.9 Gestore di finestre: Fvwm

28.10 Accorgimenti per la costruzione di un menù

28.10.1 Verifica della disponibilità

28.10.2 Verificare che un programma non sia già in funzione

28.10.3 Informare della fase di avvio del programma

28.10.4 Mettere assieme le varie fasi di controllo

28.10.5 Innesto di un file system

28.10.6 Separazione di un file system

28.11 X: login grafico

28.11.1 Configurazione generale

28.11.2 Utilizzo attraverso la rete

28.11.3 Avvio

28.11.4 Xdm

28.11.5 Gdm

28.11.6 Kdm

28.11.7 Wdm

28.12 Sessione

28.12.1 Il problema che motiva il concetto di ''sessione''

28.12.2 Gli script che controllano l'avvio della sessione

28.12.3 Gestori di sessione

28.12.4 Gnome

28.12.4.1 Gnome control center

28.12.4.2 Gnome panel

28.12.5 KDE

28.12.5.1 Kpersonalizer

28.12.5.2 Kcontrol

28.12.5.3 Kmenuedit

28.12.5.4 Khelpcenter

28.13 Accesso remoto alla sessione di lavoro

28.13.1 Funzionamento di VNC in generale

28.13.2 Avvio e conclusione del funzionamento del servente VNC in un sistema GNU

28.13.3 Avvio del servente VNC in condizioni difficili in un sistema GNU

28.13.4 Configurazione e utilizzo dei caratteri tipografici

28.13.5 Accesso a un servente VNC

28.13.6 Utilizzo comune di VNC

28.13.7 VNC attraverso un tunnel cifrato con il protocollo SSH

28.13.8 Inserire VNC automaticamente all'avvio di X

28.13.9 RealVNC e TightVNC

28.13.10 Script ''vncrc''

28.13.11 Conclusione

28.14 Composizione video

28.15 Il futuro di X

28.16 Riferimenti

29 Applicazioni comuni per X

29.1 X: configurazione dei clienti

29.1.1 Riga di comando delle applicazioni X

29.1.1.1 Opzione ''.display''

29.1.1.2 Opzione ''.geometry''

29.1.1.3 Opzione ''.background''

29.1.1.4 Opzione ''.foreground''

29.1.1.5 Opzione ''.title''

29.1.1.6 Opzione ''.font''

29.1.2 Risorse

29.1.2.1 Nomi delle risorse

29.1.2.2 Configurazione delle applicazioni

29.1.2.3 Altre risorse

29.1.2.4 Utilizzo di ''xrdb''

29.1.2.5 Opzione ''.xrm''

29.2 Programmi di servizio tradizionali

29.2.1 Terminale

29.2.2 Clipboard

29.2.2.1 Utilizzo di ''xclipboard''

29.2.3 Caratteri

29.2.3.1 Utilizzo di ''xlsfonts''

29.2.3.2 Utilizzo di ''xfontsel''

29.2.3.3 Utilizzo di ''xfd''

29.2.4 Informazioni sulle finestre e sul servente

29.2.4.1 Utilizzo di ''xwininfo''

29.2.4.2 Utilizzo di ''xdpyinfo''

29.2.5 Impostazione dello schermo

29.2.5.1 Utilizzo di ''xset''

29.2.5.2 Utilizzo di ''xsetroot''

29.2.5.3 Disegno del puntatore del mouse

29.2.6 Programmi di servizio vari

29.2.6.1 Utilizzo di ''xclock''

29.2.6.2 Utilizzo di ''xcalc''

29.3 Gestori di file

29.3.1 XFE

29.3.2 Nautilus

29.3.3 Konqueror

29.3.4 File-roller

29.4 Accesso remoto tradizionale

29.4.1 Putty

29.5 Monitor di vario tipo

29.5.1 Gmemusage

29.5.2 Etherape

29.6 Applicativi comuni per l'ufficio

29.6.1 LibreOffice

29.6.2 Gnumeric

29.6.3 AbiWord

29.6.4 XFig

29.6.4.1 Formato FIG

29.6.4.2 Struttura generale dell'interfaccia grafica del programma

29.6.4.3 Utilizzo comune del mouse

29.6.4.4 Esportazione e importazione di formati differenti

29.7 Riferimenti

30 Immagini, audio e video

30.1 File multimediali: contenitori e contenuti.

30.1.1 Impronta

30.1.2 Intestazioni

30.1.3 Etichette

30.1.4 Involucri

30.1.5 Exif

30.1.6 ID3

30.2 Exiftool

30.2.1 Tipi di informazioni

30.2.2 Modifica delle informazioni

30.3 Uso dello scanner con SANE

30.3.1 Lucchetto

30.3.2 Schema generale

30.3.3 Configurazione

30.3.4 Gruppo ''scanner''

30.3.5 Individuazione dello scanner locale

30.3.6 Permessi

30.3.7 Raggiungere uno scanner attraverso la rete

30.3.7.1 Problemi tra cliente e servente

30.3.8 Utilizzo di ''scanimage''

30.3.9 Altri programmi frontali

30.3.10 Pagine di manuale

30.4 Gestione delle immagini

30.4.1 Programmi specifici per la cattura dallo schermo

30.4.1.1 Utilizzo di ''xwd''

30.4.1.2 Utilizzo di ''xwud''

30.4.1.3 Utilizzo di ''xgrab''

30.4.2 Xloadimage

30.4.2.1 Avvio del programma

30.4.2.2 Opzioni globali

30.4.2.3 Opzioni particolari

30.4.2.4 Opzioni del tipo di immagine

30.4.2.5 Configurazione

30.4.3 XPaint

30.4.4 Gimp

30.4.5 ImageMagick

30.4.5.1 Utilizzo di ''convert''

30.4.5.2 Utilizzo di ''mogrify''

30.4.5.3 Utilizzo di ''animate''

30.4.5.4 Utilizzo di ''montage''

30.4.5.5 Utilizzo di ''import''

30.4.5.6 Utilizzo di ''display''

30.4.6 GraphicsMagick

30.4.7 Kolourpaint

30.4.8 Gpaint

30.4.9 Tuxpaint

30.4.10 Geeqie, ex GQview

30.5 Concetti generali su audio e sui formati audio digitali

30.5.1 Numero ISRC

30.5.2 Composizione del suono

30.5.3 Rappresentazione digitale del suono

30.5.4 Formati audio non compressi

30.5.5 Formati audio compressi

30.5.6 Informazioni di un contenitore MP3

30.5.7 Informazioni di un contenitore Ogg

30.6 Lettore CD audio

30.6.1 Dcd

30.6.2 TCD

30.6.3 Cdcd

30.6.4 AsCD

30.6.5 Gcd

30.6.6 CDDB

30.7 Tracce CDDA

30.7.1 Cdparanoia

30.7.2 Grip

30.8 Etichette e copertine

30.8.1 Disc-Cover

30.8.2 Cdlabelgen

30.9 Audio con i sistemi GNU/Linux

30.9.1 File di dispositivo

30.10 Gestione della scheda audio

30.10.1 Aumix

30.10.1.1 Funzionamento interattivo di Aumix

30.10.1.2 Avvio di Aumix

30.10.1.3 Configurazione

30.10.2 Alsamixer

30.10.3 Gnome-volume-control

30.10.4 Esecuzione e registrazione di brani campionati

30.10.5 Wavtools

30.10.6 Sound-recorder

30.10.7 Aplay e Arecord

30.10.8 Sox

30.10.8.1 Avvio dell'eseguibile

30.10.8.2 Riduzione del rumore

30.10.8.3 Regolazione del volume

30.10.8.4 Script play e rec

30.10.9 Normalize

30.10.10 Xwave

30.10.11 Audacity

30.11 Sintesi vocale

30.11.1 eSpeak

30.11.1.1 Scelta del linguaggio

30.11.1.2 Modifica dell'intonazione e della cadenza

30.11.1.3 Controllo dell'input e dell'output

30.12 MIDI

30.12.1 File MIDI

30.12.2 Midge

30.12.3 Timidity++

30.13 Programmi per la gestione di formati audio compressi

30.13.1 MP3info

30.13.2 LAME

30.13.3 Toolame

30.13.4 Vorbis Tools

30.13.5 Flac

30.13.6 Mpg321

30.13.7 MP3blaster

30.13.8 Xmms

30.13.9 FreeAmp

30.13.10 Zinf

30.14 Audio attraverso la rete

30.14.1 Icecast 1

30.14.1.1 Trasmissione al ripetitore

30.14.1.2 Ricezione del flusso audio digitale

30.14.2 Ricezione di radio attraverso Internet

30.14.2.1 Applicativi comuni per la ricezione di stazioni radio via Internet

30.14.2.2 Indirizzi di accesso a stazioni radio via Internet

30.14.2.3 Streamtuner

30.14.2.4 Streamripper

30.15 Concetti generali sui formati video digitali

30.15.1 Composizione di un'immagine fissa

30.15.2 Dall'immagine fissa al filmato

30.15.3 Digitalizzazione di un filmato

30.15.4 Confezionamento di un filmato

30.15.5 Contenitore multimediale

30.15.6 Trasformazione in teoria

30.15.7 Trasformazione di un formato ''multiplex''

30.16 Programmi per l'esecuzione di filmati digitali

30.17 Programmi per la registrazione video dello schermo

30.18 Elaborazione di formati video

30.18.1 FFmpeg

30.18.2 Mjpegtools

30.18.2.1 Utilizzo di ''jpeg2yuv'' e di ''png2yuv''

30.18.2.2 Utilizzo di ''yuvplay''

30.18.2.3 Utilizzo di ''mpeg2enc''

30.18.2.4 Utilizzo di ''mplex''

30.18.3 Transcode

30.18.4 Creazione di un filmato da un'immagine fissa

30.18.5 Funzioni per l'elaborazione dei filmati quadro per quadro

30.19 Introduzione ai DVD video

30.19.1 Descrizione superficiale dell'organizzazione di un DVD video

30.19.2 Copia di un DVD video normale

30.19.3 Copia parziale di un DVD video normale

30.19.4 Utilizzo di Dvdbackup

30.19.5 Primi esperimenti per realizzare un DVD con contenuti propri

30.19.6 Inserire delle diapositive in un DVD video

30.19.7 Menù di un DVD video

30.19.8 Creazione di un DVD con menù

30.20 DVDStyler

30.20.1 Avvio di DVDStyler

30.20.2 Configurazione dello standard video

30.20.3 Costruzione del menù

30.20.4 Inserimento dei filmati

30.20.5 Creazione del DVD video

30.21 Riferimenti

31 Simulazione, emulazione e virtualizzazione

31.1 Ospitalità

31.2 Tipologia del contesto riprodotto

31.3 File-immagine e partizioni

31.4 QEMU

31.4.1 Emulazione per gli applicativi

31.4.2 Emulazione per un sistema completo

31.4.3 Console di QEMU

31.4.4 Unità di memorizzazione e file-immagine

31.5 L'acceleratore KQEMU

31.6 KVM

31.7 Installazione di una distribuzione Debian ARM con QEMU

31.8 Riferimenti

Parte ii Comunicazione e sicurezza

32 Nozioni elementari sulle reti

32.1 Introduzione alle reti

32.1.1 Estensione

32.1.2 Topologia

32.1.3 Pacchetto

32.1.4 Protocollo

32.2 Modello ISO-OSI

32.2.1 Un esempio per associazione di idee

32.2.2 Comunicazione tra i livelli e imbustamento

32.3 Interconnessione tra le reti

32.3.1 Topologia relativa al livello di astrazione

32.4 Introduzione al TCP/IP

32.4.1 ARP

32.4.2 Indirizzi IPv4

32.4.3 Classi di indirizzi IPv4

32.4.4 Indirizzi speciali IPv4

32.4.5 Indirizzi riservati per le reti private

32.4.6 Sottoreti e instradamento

32.4.7 Maschere IP e maschere di rete

32.4.8 Sottoreti particolari in classe C

32.4.9 Indirizzi di rete critici

32.4.10 Nomi a dominio

32.4.11 Servizio di risoluzione dei nomi a dominio

32.4.12 Kernel Linux, configurazione per la rete

32.5 Hardware di rete comune

32.5.1 Nomi di interfaccia

32.5.2 Ethernet: IEEE 802.3/ISO 8802.3

32.5.3 IEEE 802.3/ISO 8802.3: cavi UTP, normali e incrociati

32.5.3.1 Commutatori di pacchetto e porte ''up link''

32.5.3.2 Router specifici e componenti simili

32.6 Hardware di rete molto vecchio

32.6.1 IEEE 802.3/ISO 8802.3: dal cavo coassiale al cavo UTP

32.6.1.1 Esempio di configurazione della scheda NE2000 con il kernel Linux

32.6.2 IEEE 802.3/ISO 8802.3: ripetitori, e limiti di una rete

32.6.2.1 10base5 senza ripetitori

32.6.2.2 10base2 senza ripetitori

32.6.2.3 10baseT

32.6.2.4 Regole elementari di progettazione

32.6.3 PLIP

32.6.3.1 Problemi con le porte parallele

32.7 WiFi, IEEE 802.11, ISO/IEC 8802.11

32.7.1 LAN e WLAN

32.7.2 Standard di comunicazione

32.7.3 Canale di comunicazione

32.7.4 ESSID: extended service set id

32.7.5 Crittografia

32.7.6 Configurazione di un punto di accesso

32.7.7 Configurazione automatica dei nodi periferici

32.7.8 Ruoli o modalità di funzionamento

32.7.9 Preparazione del kernel Linux

32.7.10 Microcodice

32.7.11 Individuazione e attivazione dell'interfaccia di rete senza fili

32.7.12 NDISwrapper

32.7.12.1 Casi particolari

32.7.12.2 WINE per estrarre i file

32.7.13 Utilizzo di ''iwconfig''

32.7.14 Utilizzo di ''iwlist''

32.7.15 Gestione attraverso WPA Supplicant

32.7.15.1 Configurazione di WPA Supplicant

32.8 Definizione dei protocolli e dei servizi

32.8.1 Protocolli di trasporto e di rete

32.8.2 Servizi

32.8.3 Messaggi ICMP

32.9 IPv4: configurazione delle interfacce di rete

32.9.1 Configurazione delle interfacce di rete

32.9.1.1 Loopback

32.9.1.2 Ethernet

32.9.1.3 Connessioni punto-punto

32.9.2 Configurazione delle interfacce di rete con un sistema GNU/Linux

32.9.2.1 Utilizzo di ''ifconfig''

32.9.2.2 Alias IP

32.10 IPv4: instradamento locale

32.10.1 Rete locale

32.10.1.1 Loopback

32.10.1.2 Ethernet

32.10.1.3 Connessioni punto-punto

32.10.1.4 L'ordine delle voci nella tabella degli instradamenti

32.10.2 Definizione degli instradamenti nelle reti locali e verifiche con un sistema GNU/Linux

32.10.2.1 Utilizzo di ''route''

32.10.3 Verifica di un instradamento

32.10.3.1 Utilizzo di ''ping''

32.10.4 ARP

32.10.4.1 Utilizzo di ''arp''

32.10.4.2 File ''/etc/ethers''

32.11 IPv4: instradamento oltre l'ambito della rete locale

32.11.1 Destinazione irraggiungibile

32.11.2 Router per accedere ad altre reti e instradamento predefinito

32.11.3 Configurazione di un router con un sistema GNU/Linux

32.11.3.1 Router unico per tutte le reti

32.11.3.2 Router verso un altro router

32.11.4 Verifica di un instradamento attraverso i router

32.12 Inoltro IP attraverso il NAT/PAT

32.12.1 Instradamento dal router NAT/PAT e verso il router NAT/PAT

32.12.2 Definizione della traduzione degli indirizzi

32.12.3 Configurazione e controllo con iptables

32.12.4 Note finali

32.13 IPv4 con il pacchetto Iproute

32.13.1 Sintassi generale

32.13.2 Configurazione comune delle interfacce di rete

32.13.3 Indirizzi multipli per una stessa interfaccia di rete

32.13.4 ARP

32.13.5 Instradamento

32.14 Introduzione a IPv6

32.14.1 Rappresentazione simbolica di un indirizzo IPv6

32.14.2 Prefissi di indirizzo

32.14.3 Tipi di indirizzi

32.14.4 Allocazione dello spazio di indirizzamento

32.14.5 Indirizzi unicast

32.14.5.1 Identificatori di interfaccia

32.14.5.2 Indirizzo non specificato

32.14.5.3 Indirizzo locale di loopback

32.14.5.4 Indirizzi link-local

32.14.5.5 Indirizzi site-local

32.14.5.6 Indirizzi unicast globali aggregabili

32.14.6 Indirizzi multicast

32.14.7 Indirizzi Anycast

32.14.8 Indirizzi IPv6 che incorporano indirizzi IPv4

32.14.8.1 IPv4-compatible IPv6 addresses

32.14.8.2 IPv4-mapped IPv6 addresses

32.14.8.3 6to4

32.14.9 Tunnel 6to4

32.15 Utilizzo di IPv6

32.15.1 kernel Linux

32.15.2 Preparazione dei file di configurazione

32.15.3 Attivazione di IPv6 e definizione degli indirizzi link-local

32.15.4 Definizione degli indirizzi site-local

32.15.5 Instradamento manuale

32.15.6 Configurazione e instradamento automatici

32.15.7 Tunnel 6to4

32.15.7.1 Inserire la rete locale in un tunnel 6to4

32.15.7.2 Utilizzare un tunnel 6to4 attraverso un router NAT

32.15.8 Caratteristiche del tunnel per il filtro dei pacchetti IPv4

32.15.9 Tunnel 6to4 attraverso Freenet6

32.16 Esercitazioni

32.17 Riferimenti

33 Risoluzione dei nomi

33.1 Indirizzi e nomi

33.1.1 Configurazione del tipo di conversione: file ''/etc/host.conf''

33.1.2 File per la conversione

33.1.2.1 File ''/etc/hosts''

33.1.2.2 File ''/etc/networks''

33.1.2.3 File ''/etc/resolv.conf''

33.2 DNS come base di dati distribuita

33.2.1 Nome a dominio

33.2.2 Zone

33.2.3 Record di risorsa

33.2.4 Risoluzione inversa

33.2.5 Registrazione di un nome a dominio

33.3 Esempio di configurazione del DNS

33.3.1 Prima di gestire un servente DNS

33.3.2 Predisposizione di un servente DNS elementare

33.3.3 Gestire anche la rete locale

33.3.4 Gli altri elaboratori della rete

33.3.5 Gestire la posta elettronica locale

33.3.6 Gestire gli alias

33.3.7 Isolamento dall'esterno

33.4 Gestione del servizio di risoluzione dei nomi

33.4.1 Utilizzo di ''named''

33.4.2 Nslookup

33.4.3 Host

33.4.4 Dig

33.4.5 Verifica del funzionamento del servizio

33.5 File di configurazione più in dettaglio

33.5.1 File ''/etc/named.conf'' o ''/etc/bind/named.conf''

33.5.2 Memoria cache del dominio principale

33.5.3 Gestione delle zone su cui si ha autorità

33.5.4 Riproduzione delle informazioni di un altro DNS

33.5.5 File di zona

33.5.6 SOA -- Start of authority

33.5.7 NS -- Name Server

33.5.8 MX -- Mail Exchanger

33.5.9 A, AAAA, A6 -- Address

33.5.10 PTR -- Pointer

33.5.11 CNAME -- Canonical Name

33.5.12 File dei serventi principali

33.6 Serventi DNS secondari

33.7 Servente DNS di inoltro

33.8 Esercitazione: individuazione dei nomi a dominio disponibili e occupati

33.9 Riferimenti

34 Socket e UCSPI

34.1 Principio di funzionamento

34.2 Socket di dominio Unix

34.3 Socket di dominio Internet

34.4 Unix client-server program interface

34.5 UCSPI-unix

34.6 UCSPI-tcp

34.7 Riferimenti

35 Dalla porta seriale a ''Internet mobile''

35.1 Porte seriali

35.1.1 Configurazione con il kernel Linux

35.1.2 Connettori

35.1.3 Controllo del flusso o handshaking

35.1.4 Cavi RS-232C

35.2 Modem

35.2.1 Insieme esteso di comandi Hayes

35.2.2 Indicatori luminosi dei modem esterni

35.2.3 Codici di risposta

35.2.4 Sequenze di escape

35.3 File di dispositivo e collegamenti

35.3.1 Gestione oculata dei permessi

35.4 Programmi di comunicazione

35.4.1 Accesso brutale al modem

35.4.2 Utilizzo sommario di Minicom

35.4.3 Utilizzo sommario di Seyon

35.5 Configurazione del modem

35.5.1 Profilo di configurazione del modem

35.6 Rapidità di modulazione e velocità di trasmissione

35.7 Impostazione della velocità

35.8 Introduzione al PPP

35.8.1 Funzionalità del kernel Linux

35.9 Funzionamento generale del demone per il PPP

35.9.1 Struttura del sistema di configurazione

35.9.2 Struttura del sistema di autenticazione

35.9.3 Interfacce PPP e funzioni privilegiate

35.9.4 Indirizzi IP

35.9.5 Script di contorno

35.10 Avvio e opzioni

35.10.1 Opzioni principali

35.11 File per il sistema di autenticazione

35.11.1 Configurazione PAP

35.11.2 Configurazione CHAP

35.12 Script

35.12.1 Verifica dell'ambiente

35.12.2 Gestione dinamica degli indirizzi DNS

35.13 Impostazione della distribuzione GNU/Linux Debian

35.14 Connessioni su porte seriali

35.14.1 Programma di comunicazione

35.15 Connessione PPP senza autenticazione

35.15.1 Script di connessione

35.15.2 Verifica della connessione

35.15.3 Varianti

35.16 Linea dedicata

35.16.1 Ruolo dei modem

35.16.2 Simulazione con l'aiuto di Minicom

35.16.3 Connessione con pppd

35.17 Autenticazione con il protocollo PPP

35.17.1 Autenticazione tradizionale

35.17.2 Autenticazione attraverso il PPP

35.18 Cliente PPP che utilizza un sistema di identificazione tradizionale

35.18.1 Chat

35.18.2 Script di chat

35.18.3 Demone per il PPP e Chat assieme

35.19 Cliente PPP che fornisce esclusivamente un'identificazione PAP o CHAP

35.20 WvDial

35.20.1 Configurazione automatica di WvDial

35.20.2 Configurazione automatica e trasparente di pppd

35.20.3 Configurazione manuale

35.20.4 Avvio e funzionamento

35.21 Connessione mobile con ''chiavetta''

35.21.1 Problematiche con i sistemi GNU/Linux

35.21.2 Modem USB

35.21.3 WvDial e le ''chiavette''

35.22 Riferimenti

36 Servizi di rete fondamentali

36.1 Supervisore dei servizi di rete

36.1.1 Supervisore dei servizi di rete BSD

36.1.2 TCP wrapper

36.1.3 Dichiarazione all'interno di ''/etc/inetd.conf''

36.1.4 Configurazione del TCP wrapper

36.2 RPC: Remote Procedure Call

36.2.1 Informazioni sulle RPC

36.2.2 Controllo sulle RPC

36.3 NFS con i sistemi GNU/Linux

36.3.1 Dal lato del servente

36.3.2 Verifica del servizio

36.3.3 Porte coinvolte

36.3.4 Dal lato del cliente

36.4 NIS

36.4.1 Concentrazione amministrativa del NIS versione 2

36.4.1.1 Mappe NIS

36.4.1.2 Dominio NIS

36.4.1.3 Servente principale e serventi secondari

36.4.2 Distinzione dei ruoli tra servente e cliente

36.4.2.1 Propagazione delle informazioni

36.4.3 NIS e DNS

36.4.4 RPC

36.4.5 Allestimento di un servente NIS versioni 1 e 2

36.4.5.1 Dominio NIS

36.4.5.2 Avvio del servente

36.4.5.3 Configurazione principale

36.4.5.4 Configurazione dei diritti di accesso

36.4.5.5 Configurazione e preparazione delle mappe

36.4.5.6 Gestione delle parole d'ordine

36.4.6 Predisposizione del servente secondario

36.4.6.1 Riproduzione delle mappe nel servente secondario

36.4.6.2 Sincronizzazione

36.4.7 Organizzazione di una distribuzione

36.4.8 Cliente NIS

36.4.8.1 Gli utenti

36.4.8.2 Attivazione del demone

36.4.8.3 Altri programmi di contorno

36.4.9 Directory personali

36.4.10 Porte coinvolte

36.5 DHCP

36.5.1 Sistemazioni generali per il kernel Linux

36.5.2 Rete di competenza e router

36.5.3 Conflitto con il supervisore dei servizi di rete

36.5.3.1 Informazioni gestibili attraverso DHCP

36.5.4 Servente DHCP ISC

36.5.4.1 Avvio e arresto del servizio

36.5.4.2 Interfaccia di rete e alias con i sistemi GNU/Linux

36.5.5 Relè DHCP ISC

36.5.6 Cliente DHCP

36.5.6.1 Cliente DHCP ISC

36.5.6.2 Script per l'utilizzo delle informazioni ottenute da un cliente DHCP ISC

36.6 Informazioni sugli utenti della rete

36.6.1 Who remoto

36.6.2 Informazioni attraverso RPC

36.6.3 Finger: informazioni personali

36.6.3.1 File personali

36.7 Accesso remoto

36.7.1 Accesso remoto normale

36.7.2 Shell remota

36.7.3 Copia tra elaboratori

36.8 TELNET

36.8.1 Dal lato del servente

36.8.2 Dal lato del cliente

36.8.3 Colloquiare con una porta

36.9 Trivial FTP

36.9.1 Dal lato del servente

36.9.2 Dal lato del cliente

36.10 Allineamento della data e dell'orario attraverso la rete

36.10.1 Rdate

36.10.2 NTP

36.10.2.1 Accesso a un servente NTP

36.10.2.2 Preparazione di un servente NTP per l'utilizzo locale

36.11 SNMP

36.11.1 Nomi delle variabili, OID e MIB

36.11.2 Note essenziali sul protocollo

36.11.3 Autenticazione e limitazione degli accessi

36.11.4 Interrogazione generica di un servizio SNMP

36.11.5 Interrogazioni più specifiche di un servizio SNMP

36.11.6 Attivazione di un servizio SNMP con NET SNMP

36.11.7 MRTG

36.11.7.1 Configurazione

36.11.7.2 Utilizzo del programma

36.11.7.3 Il risultato

36.12 Rsync

36.12.1 Tipi di utilizzo

36.12.2 Origine, destinazione e percorsi

36.12.3 Proprietà dei file

36.12.4 Avvio del programma

36.12.5 Accesso attraverso autenticazione

36.12.6 Servente Rsync

36.12.6.1 File degli utenti e delle parole d'ordine secondo Rsync

36.12.7 Tempi morti e scadenze

36.12.8 Problemi di ricezione

36.13 Riferimenti

37 Messaggistica istantanea «instant messaging»

37.1 Messaggi sul terminale Unix

37.1.1 Accesso al proprio terminale

37.1.2 Comunicazione diretta attraverso la rete

37.1.3 Invio di un messaggio circolare

37.2 IRC

37.2.1 Canali, utenti e operatori

37.2.2 Divisione e ricongiunzione di reti IRC

37.2.3 Comportamenti spiacevoli

37.2.4 Dal lato del servente

37.2.4.1 Messaggio del giorno

37.2.4.2 Configurazione

37.2.4.3 Avvio del demone

37.2.5 Dal lato del cliente

37.2.6 Utilizzo di massima di un cliente IRC

37.3 ICQ: ''I-seek-you''

37.3.1 Licq

37.3.2 Pidgin

37.4 Abbreviazioni di Internet

37.5 Riferimenti

38 FTP

38.1 Caratteristiche elementari del protocollo

38.2 Identificazione e privilegi

38.3 Facilitare le ricerche

38.4 Cliente FTP tradizionale

38.4.1 Esempi

38.4.1.1 Prelievo di file

38.4.1.2 Invio di dati

38.4.2 Midnight Commander

38.5 Servente OpenBSD FTP

38.5.1 Configurazione

38.6 Riferimenti

39 Posta elettronica

39.1 Servizio di rete e servizio di consegna locale

39.2 Uso della posta elettronica

39.2.1 Elementi di intestazione

39.2.2 Risposta, proseguimento e riservatezza

39.3 MTA tradizionale «Sendmail»

39.3.1 Alias

39.3.2 Coda dei messaggi

39.3.3 Rinvio

39.4 Recapito della posta elettronica: la variabile ''MAIL''

39.5 Mail user agent

39.5.1 Ricezione e invio dei messaggi da parte del MUA

39.5.2 Cartelle e formato dei dati

39.6 Invio di messaggi attraverso un MTA compatibile con Sendmail

39.7 Mailx

39.7.1 Avvio e funzionamento

39.7.2 Configurazione di Mailx

39.7.3 Nail

39.8 Mutt

39.9 Configurazione compatibile tra Mailx, Nail e Mutt

39.10 Ricerche nei file delle cartelle di messaggi

39.11 Messaggi giunti presso recapiti remoti

39.11.1 IMAP toolkit: ipop3d, ipop2d, imapd

39.11.2 Popclient

39.11.3 Fetchmail

39.11.4 Gestione remota della posta elettronica

39.12 Messaggi, allegati ed estensioni MIME

39.12.1 Allegati

39.12.2 Uuencode

39.12.3 Involucro MIME

39.12.4 Messaggi contenenti più parti MIME

39.12.5 Sistemazione manuale di un allegato MIME

39.12.6 Mpack

39.13 Gestione della posta elettronica in generale

39.13.1 Composizione di un messaggio

39.13.2 Messaggi contraffatti e punto di iniezione

39.13.3 Identificazione della destinazione

39.13.4 Misure di sicurezza

39.13.5 Referente per l'amministrazione del servizio

39.14 Pratica manuale con i protocolli

39.14.1 SMTP attraverso un cliente TELNET

39.14.2 POP3 attraverso un cliente TELNET

39.14.3 POP3s attraverso un cliente TELNET-SSL

39.14.4 Script per l'invio di un messaggio attraverso Telnet

39.15 Procmail

39.15.1 Configurazione di partenza e verifica del funzionamento

39.15.2 Attivazione di Procmail

39.15.3 Esempi semplici di configurazione

39.16 SpamAssassin

39.16.1 Configurazione di SpamAssassin

39.16.2 Cosa fa SpamAssassin

39.16.3 Filtrare i messaggi automaticamente

39.16.4 Autoapprendimento

39.17 Liste di posta elettronica

39.17.1 Lista elementare

39.17.2 Mailman

39.17.2.1 Privilegi durante il funzionamento

39.17.2.2 Configurazione

39.17.2.3 Creazione e cancellazione di una lista

39.17.2.4 Amministrazione della lista

39.17.2.5 Accesso alla lista da parte degli utilizzatori normali

39.18 Riferimenti

40 HTTP

40.1 W3M

40.2 Servente HTTP: Mathopd

40.2.1 Utilizzo generale

40.2.2 Configurazione

40.2.3 Indici delle directory

40.2.4 Registro degli accessi

40.3 Protocollo HTTP

40.3.1 Analisi di una connessione HTTP

40.3.2 Tipi MIME

40.3.3 Campi di richiesta

40.3.4 Campi di risposta

40.4 HTTP e CGI

40.4.1 URI e query

40.4.2 Input dell'utente

40.4.3 Primo approccio alla programmazione CGI

40.4.4 Percorso aggiuntivo

40.4.5 Elementi ''FORM''

40.4.5.1 Attributo ''ACTION''

40.4.5.2 Attributo ''METHOD''

40.4.6 Elementi dell'ambiente ''FORM''

40.4.6.1 INPUT generico

40.4.6.2 INPUT type=.password.

40.4.6.3 INPUT type=.checkbox.

40.4.6.4 INPUT type=.radio.

40.4.6.5 INPUT type=.submit.

40.4.6.6 INPUT type=.image.

40.4.6.7 INPUT type=.hidden.

40.4.6.8 Elemento ''TEXTAREA''

40.4.6.9 Elementi ''SELECT'' e ''OPTION''

40.4.7 Metodi e variabili

40.4.7.1 Un po' di pratica

40.5 Programmazione CGI

40.5.1 Problemi

40.5.2 Decodifica

40.5.3 Esempi elementari di applicazioni CGI

40.5.3.1 File ''manuali.html''

40.5.3.2 File ''apropos.pl''

40.5.3.3 File ''whatis.pl''

40.5.3.4 File ''man.pl''

40.5.4 Librerie CGI già pronte

40.6 Indicizzazione e motori di ricerca

40.6.1 Configurazione e scansione periodica

40.6.2 Interrogazione del motore di ricerca

40.6.3 Configurazioni multiple

40.7 Statistiche di accesso

40.7.1 Webalizer

40.8 Wget

40.8.1 Forma dell'URI

40.8.2 File di configurazione

40.8.3 Utilizzo del programma

40.8.4 Scansione a partire da un file locale

40.8.5 Scansione ricorsiva

40.8.6 Selezione dei file in base al loro nome

40.8.7 Identificazioni e parole d'ordine

40.8.8 Riproduzione speculare e informazioni data-orario

40.8.9 Funzionalità varie

40.9 Riferimenti

41 Introduzione a PHP

41.1 Delimitazione del codice PHP

41.2 Struttura fondamentale del linguaggio

41.3 Analisi sintattica

41.4 Variabili e costanti

41.4.1 Valore nullo

41.4.2 Variabili e costanti logiche «booleane»

41.4.3 Variabili e costanti numeriche

41.4.4 Stringhe

41.4.5 Stringhe delimitate da apici singoli

41.4.6 Stringhe delimitate da apici doppi

41.4.7 Cast

41.4.8 Array

41.4.9 Stringhe trattate come array

41.4.10 La definizione di costanti

41.5 Campo di azione delle variabili

41.6 Riferimento a una variabile

41.7 Operatori ed espressioni

41.8 Strutture di controllo di flusso

41.8.1 Struttura condizionale: ''if''

41.8.2 Struttura di selezione: ''switch''

41.8.3 Iterazione con condizione di uscita iniziale: ''while''

41.8.4 Iterazione con condizione di uscita finale: ''do-while''

41.8.5 Ciclo enumerativo: ''for''

41.8.6 Ciclo di scansione degli array: ''foreach''

41.9 Funzioni

41.10 Suddivisione del programma in più file

41.11 Input di dati

41.12 Sessione

41.13 Accesso ai file

41.14 Espressioni regolari

41.15 Accesso a basi di dati MySQL

41.16 Il problema dell'iniezione di codice SQL

41.17 GWADM

41.18 Riferimenti

42 Filtri, proxy e ridirezione del traffico IP

42.1 Traffico IPv4 e filtri

42.1.1 Caratteristiche elementari dei protocolli fondamentali

42.1.2 Porte

42.1.3 Frammentazione IP

42.1.4 Pacchetti SYN

42.1.5 Conseguenze nell'introduzione di un filtro

42.1.5.1 Messaggi ICMP

42.1.5.2 Protocolli basati su TCP

42.1.5.3 Protocolli basati su UDP

42.2 Cache proxy

42.2.1 Schema essenziale

42.2.1.1 Servire un segmento di rete

42.2.1.2 Proxy a più livelli

42.2.1.3 Proxy come filtro verso l'esterno

42.2.2 Dal lato del cliente

42.2.3 Caratteristiche comuni ai cache proxy da considerare

42.2.4 Tinyproxy

42.3 PICS: Platform for Internet content selection

42.3.1 Come si classifica

42.3.2 Come si pubblica la classificazione

42.3.3 Come si sceglie e come si interpreta la classificazione

42.4 Introduzione ai concetti di firewall e di NAT/PAT

42.4.1 Firewall in forma di filtri di pacchetto

42.4.1.1 Punto di applicazione e significato dell'intercettazione

42.4.1.2 Ricomposizione dei pacchetti frammentati

42.4.2 Esempi di utilizzo di firewall

42.4.3 Annotazioni finali sulla gestione di un firewall

42.4.3.1 Pacchetti ICMP

42.4.3.2 Pacchetti UDP

42.4.4 NAT/PAT

42.4.4.1 Conversione dinamica degli indirizzi IP

42.4.4.2 Conversione dinamica delle porte: PAT

42.4.4.3 Problemi

42.5 Firewall con kernel Linux

42.5.1 Schema generale di funzionamento del kernel

42.5.2 IPTables per l'amministrazione del firewall

42.5.2.1 Un po' di confidenza con IPTables per la gestione del firewall

42.5.2.2 Opzioni di contorno

42.5.2.3 Regole che non fanno riferimento a un protocollo

42.5.2.4 Utilizzo pratico di regole elementari

42.5.2.5 Regole per i protocolli TCP e UDP

42.5.2.6 Regole per il protocollo ICMP

42.5.2.7 Pacchetti frammentati

42.5.3 Estensioni particolari

42.5.3.1 Limiti

42.5.3.2 Stato delle connessioni

42.5.4 Strategie

42.5.4.1 UDP e DNS

42.5.4.2 Contraffazione dell'origine: IP spoof

42.5.4.3 Esempi

42.5.5 Contabilizzazione del traffico

42.5.6 Registrazione del traffico

42.5.7 Raggruppamenti di regole al di fuori dei punti di controllo standard

42.6 NAT/PAT con kernel Linux

42.6.1 Struttura e punti di intervento

42.6.2 Gestione con IPTables

42.6.3 Modifica dell'origine

42.6.4 Modifica della destinazione

42.7 Annotazioni sull'uso di un router ADSL per le utenze comuni

42.7.1 Protocolli di comunicazione

42.7.2 Comunicazione e configurazione con il router ADSL

42.7.3 Controllo

42.7.4 DNS

42.7.5 Protezione e accesso dall'esterno

42.7.5.1 Firewall

42.7.5.2 Tunnel 6to4

42.7.6 Configurazione con indirizzi statici

42.8 Riferimenti

43 Sicurezza e controllo

43.1 Introduzione ai problemi di sicurezza con la rete

43.1.1 Problemi legali

43.1.2 Informazioni: la prima debolezza

43.1.2.1 Finger

43.1.2.2 NFS

43.1.2.3 Servizi RPC

43.1.2.4 SNMP

43.1.2.5 Indirizzo fisico

43.1.3 Errori comuni di configurazione

43.1.3.1 FTP anonimo

43.1.3.2 Accesso remoto

43.1.4 Servizi e programmi pericolosi per loro natura

43.1.4.1 Trivial FTP

43.1.4.2 NIS

43.1.4.3 X

43.1.4.4 Sendmail

43.1.5 Fiducia e interdipendenza tra i sistemi

43.1.5.1 Fiducia incondizionata

43.1.5.2 Chiavi di identificazione

43.1.5.3 Cifratura delle comunicazioni

43.1.6 Backdoor: cosa ci si può attendere da un sistema compromesso

43.1.7 Regole dettate dal buon senso

43.2 Virus, vermi e cavalli di Troia

43.2.1 Dazuko

43.2.2 Clamav

43.2.2.1 Aggiornamento delle impronte virali

43.2.2.2 Scansioni più o meno automatiche

43.2.2.3 Utilizzo di ''clamdscan''

43.2.2.4 Verifica del funzionamento

43.2.2.5 Utilizzare Procmail per scandire automaticamente i messaggi di posta elettronica

43.2.3 Clamuko

43.2.3.1 Preparazione del demone ''clamd''

43.2.3.2 Configurazione del demone ''clamd''

43.2.3.3 Sequenza di attivazione e verifica del funzionamento

43.2.3.4 Problemi

43.3 Protocollo IDENT

43.3.1 Ident2

43.3.2 Interrogazione del servizio e librerie

43.3.3 Autenticazione interna tramite IDENT

43.3.4 Proxy trasparente

43.4 TCP wrapper in dettaglio

43.4.1 Limiti e particolarità del TCP wrapper

43.4.2 Configurazione del TCP wrapper

43.4.2.1 Demoni e clienti specificati in modo più preciso

43.4.2.2 Comandi di shell

43.4.2.3 Esempi e trappole

43.4.2.4 Comandi e servizi UDP

43.4.3 Verifica della configurazione

43.4.4 Verifica delle corrispondenze

43.4.5 Un Finger speciale

43.4.6 Verifica della propria identificazione

43.5 Cambiare directory radice

43.5.1 Un esempio pratico: TELNET

43.6 Verifica dell'integrità dei file con AIDE

43.6.1 Configurazione di AIDE: ''aide.conf''

43.6.2 Utilizzo

43.7 Verifica della vulnerabilità della propria rete

43.7.1 Queso

43.7.2 Raccess

43.7.3 Nmap

43.8 Strumenti per il controllo e l'analisi del traffico IP

43.8.1 Netstat

43.8.2 Fuser

43.8.3 Tcpdump

43.8.4 IPTraf

43.8.5 Sniffit

43.8.6 Wireshark

43.8.7 IPlogger

43.8.8 Psad

43.8.9 Netcat

43.9 Protezione della sessione di lavoro

43.9.1 Utilizzo di ''vlock''

43.9.2 Utilizzo di ''xlock''

43.9.3 Utilizzo di ''xtrlock''

43.10 Riferimenti

44 Riservatezza e certificazione delle comunicazioni

44.1 Introduzione ai problemi legati alla crittografia e alla firma digitale

44.1.1 Crittografia

44.1.2 Firma digitale

44.1.3 Gestione delle chiavi, certificazione e fiducia

44.1.4 Cosa può succedere se...

44.1.5 Servizi per la diffusione delle chiavi pubbliche

44.1.6 Problemi legali

44.2 GnuPG: GNU Privacy Guard

44.2.1 Creazione delle chiavi e del certificato di revoca

44.2.2 Scambio di chiavi pubbliche

44.2.3 Utilizzo della crittografia

44.2.4 Firma di documenti

44.2.5 Gestione della fiducia

44.2.6 Accesso a un servente di chiavi

44.2.7 Gnome PGP

44.3 Autorità di certificazione e certificati

44.3.1 Catena di certificazione

44.3.2 Numero di serie, scadenza e revoca dei certificati

44.3.3 Certificato X.509

44.3.4 Richiesta di certificato X.509

44.3.5 Revoca dei certificati

44.4 Connessioni cifrate e certificate

44.4.1 SSL/TLS

44.4.2 SSH

44.4.2.1 Autenticazione RHOST

44.4.2.2 Autenticazione RHOST+RSA

44.4.2.3 Autenticazione RSA

44.4.2.4 Autenticazione attraverso la parola d'ordine tradizionale

44.4.2.5 Chiave privata e chiave pubblica

44.4.2.6 Verifica dell'identità dei serventi

44.5 Introduzione a OpenSSL

44.5.1 Collocazione e impostazione

44.5.2 Procedimento per ottenere un certificato

44.5.2.1 File contenente dati casuali

44.5.2.2 Chiave privata

44.5.2.3 Richiesta di certificazione

44.5.2.4 Certificato fittizio

44.5.3 Cenni sulla configurazione di OpenSSL

44.5.3.1 Politica dell'autorità di certificazione

44.5.4 Simulazione dell'allestimento e del funzionamento di un'autorità di certificazione

44.5.4.1 Autorità di certificazione autonoma

44.5.4.2 Rilascio di certificazioni

44.5.4.3 Revoca dei certificati

44.5.4.4 Conversione nei formati

44.6 Applicazioni che usano OpenSSL

44.6.1 Aggiornare l'elenco dei servizi

44.6.2 Opzioni comuni

44.6.3 Certificati dei servizi

44.6.4 Telnet-SSL

44.6.5 SSLwrap

44.6.6 Stunnel

44.7 OpenSSH

44.7.1 Preparazione delle chiavi

44.7.2 Verifica dell'identità dei serventi

44.7.3 Autenticazione RHOST

44.7.4 Autenticazione RHOST sommata al riconoscimento della chiave pubblica

44.7.5 Autenticazione basata sul controllo della chiave pubblica

44.7.6 Autenticazione normale

44.7.7 Servente OpenSSH

44.7.8 Cliente OpenSSH

44.7.9 Verifica del funzionamento di un servente OpenSSH

44.7.10 X in un tunnel OpenSSH

44.7.11 Creazione di un tunnel cifrato generico con OpenSSH

44.7.12 Installazione

44.8 VPN: virtual private network

44.8.1 Interfacce dei tunnel

44.8.2 Introduzione a OpenVPN

44.8.3 OpenVPN attraverso un router NAT

44.8.4 Utilizzare un servizio anonimizzatore con OpenVPN

44.8.5 VPN attraverso OpenSSH

44.8.5.1 Configurazione e opzioni significative

44.8.5.2 Attivazione del tunnel dal lato ''cliente''

44.8.5.3 Configurazione dal lato ''servente''

44.8.5.4 Autenticazione automatica

44.9 Steganografia

44.9.1 Tecniche steganografiche

44.9.2 Outguess

44.9.3 Stegdetect

44.9.4 Steghide

44.9.5 Codici audio

44.10 Riferimenti

45 Cloud computing: il ritorno all'informatica centralizzata

45.1 Sistemi tradizionali di accesso remoto

45.2 Applicazioni ''web''

45.3 Applicazioni ''web'' invadenti

45.4 eyeOS 1.*

45.4.1 Manutenzione e ripristino dell'utenza amministrativa

45.4.2 Installazione presso Altervista o un servizio simile

45.5 eyeOS 2.*

45.5.1 Osservazioni su eyeOS 2.5

45.5.2 Riutilizzo di una versione 2.5 già installata

45.5.3 Installazione presso un provider HTTP esterno

45.6 Lucid desktop 1.*

45.7 Feng Office

45.8 Google documenti

45.8.1 Creazione, caricamento e gestione dei file

45.8.2 Condivisione, nel senso di collaborazione e attribuzione di responsabilità

45.8.3 Osservazioni e problematiche da considerare

45.9 Riferimenti

46 Strumenti ''cloud'' per la didattica

46.1 Google documenti nella didattica

46.1.1 Utenze

46.1.2 Organizzazione nella denominazione dei file

46.1.3 File per le comunicazioni personali

46.1.4 File per le comunicazioni alla classe

46.1.5 Esercitazioni svolte con Google documenti

46.1.6 Esercitazioni svolte con altri programmi che producono documenti PDF

46.1.7 Pagina personale del docente con Google Blogger

46.1.8 Predisposizione di modelli

46.1.9 Cronologia

46.1.10 Fornire una copia elettronica delle verifiche

46.1.11 Dal formulario al test di verifica

46.2 Servizi di memorizzazione remota

46.2.1 Adrive

46.3 Servizi ''pastebin''

46.3.1 Registrazione e utilizzo del servizio Ideone

46.3.2 Codepad

46.3.3 Utilizzo didattico dei servizi ''pastebin''

46.4 Xeround

46.4.1 Iscrizione e creazione di un'istanza DB

46.4.2 Creazione di una base di dati con phpMyAdmin

46.4.3 Utilizzo di una base di dati Xeround attraverso un'applicazione PHP

46.5 Servizi di ''freehosting''

46.6 Analisi del codice web

46.7 Gestione di file PDF

46.7.1 PDFescape

46.8 Gazie e GZT

46.9 WIMS: ''www interactive multipurpose server''

46.10 Mappe mentali

46.11 Riferimenti

u1 Indice analitico del volume

Volume II Scrittura e pubblicazione

47 Editoria e stile

47.1 Formati standard della carta

47.1.1 Utilizzo pratico dei vari formati ISO 216

47.1.2 Formati multipli

47.2 Nozioni elementari di tipografia

47.2.1 Carattere

47.2.1.1 Specie alfabetica

47.2.1.2 Gruppo stilistico

47.2.1.3 Serie

47.2.2 Tipometria

47.2.2.1 Corpo, dimensioni e scala

47.2.2.2 Giustezza, spaziatura e giustificazione orizzontale

47.2.2.3 Giustificazione verticale

47.2.3 Il carattere nel software di composizione

47.2.3.1 Terminologia

47.2.3.2 Caratteristiche di una carattere tipografico elettronico

47.2.3.3 Codifica

47.2.4 Problemi legati ai caratteri

47.2.5 Il libro

47.3 Stile letterario

47.3.1 Regole di composizione del testo

47.3.1.1 Punteggiatura e spaziatura

47.3.1.2 Utilizzo dei simboli di interpunzione

47.3.1.3 Accenti e troncamenti

47.3.1.4 Segnaccento obbligatorio «UNI 6015»

47.3.1.5 Uso della ''d'' eufonica

47.3.1.6 Elisione davanti alla lettera ''h''

47.3.1.7 Uso delle maiuscole

47.3.1.8 Plurali

47.3.1.9 Interfacce o interfaccie?

47.3.1.10 Elenchi

47.3.1.11 Citazioni

47.3.1.12 Acquisizione di termini stranieri

47.3.2 Anglofilia eccessiva

47.3.3 Unità di misura

47.3.3.1 Come si scrive una grandezza

47.3.3.2 Nomi e simboli

47.3.3.3 Prefissi moltiplicatori

47.3.3.4 Prefissi per multipli binari

47.3.4 Rappresentazione di valori

47.3.4.1 Valori percentuali

47.3.4.2 Valori numerici

47.3.5 Stile tipografico

47.3.5.1 Blocchi di testo letterale

47.3.5.2 Nomi di file e directory

47.3.5.3 Schermate, listati e simili

47.3.5.4 Variabili di ambiente

47.3.5.5 Comandi e istruzioni

47.3.5.6 Nomi di applicativi

47.3.5.7 Concetti e termini nuovi

47.3.5.8 Nomi proprietari e logotipi

47.3.5.9 Titoli

47.3.5.10 Didascalie

47.3.5.11 Elenchi descrittivi

47.3.5.12 Richiami in nota

47.3.5.13 Indicizzazione

47.3.5.14 Riferimenti bibliografici e simili

47.4 Evoluzione dell'editoria elettronica

47.4.1 Evoluzione

47.4.2 Codifica del testo «markup»

47.4.2.1 Linguaggio di markup

47.4.2.2 Vantaggi di un linguaggio descrittivo

47.4.3 SGML

47.4.4 XML, XSLT e XSL-FO

47.5 Lettera, codifica e carattere da stampa

47.6 Ambiguità nel concetto di ''carattere''

47.6.1 CCS: insieme di caratteri codificato

47.6.2 CEF: forma codificata del carattere

47.6.3 CES: schema di codifica del carattere

47.6.4 TES: sintassi di codifica per il trasferimento

47.7 Codifica in pratica: da Unicode a ASCII

47.7.1 UTF-8

47.7.2 Schema di codifica e firma di riconoscimento

47.7.3 Tipi di dati nuovi

47.7.4 Apparenza e realtà

47.7.5 ASCII «ISO 646»

47.7.6 ISO 8859-n

47.7.7 IBM Code Page nnn Character Set

47.7.8 Utilizzo di ''ascii''

47.7.9 Utilizzo di ''unicode''

47.7.10 Gucharmap

47.8 Trasformazione della codifica

47.8.1 Recode

47.8.2 Iconv

47.8.3 Utilizzo di ''luit''

47.9 Analisi lessicale

47.9.1 Ispell

47.9.1.1 Dizionari

47.9.1.2 Avvio e opzioni fondamentali

47.9.1.3 Funzionamento interattivo

47.9.1.4 Funzionamento non interattivo

47.9.1.5 Programmi di servizio di contorno a Ispell

47.9.1.6 Gestione dei dizionari personali

47.9.2 Aspell

47.9.3 Myspell e Hunspell

47.10 Analisi sintattica e stilistica con Textchk

47.10.1 Principio di funzionamento

47.10.1.1 Espressioni regolari

47.10.2 Configurazione

47.10.2.1 Gerarchia della configurazione

47.10.2.2 Casi particolari

47.10.2.3 L'indicazione di parole doppie

47.10.3 Come si usa

47.10.3.1 Come vengono mostrati gli errori e i dati diagnostici

47.10.4 Come si installa

47.10.4.1 Gettext

47.10.4.2 Dipendenze

47.11 Dizionari

47.11.1 Dictd o Serpento

47.11.2 Interrogazione manuale di un servizio DICT

47.11.3 Il programma Dict per l'interrogazione del servizio

47.12 Riferimenti

48 PostScript: un linguaggio per la composizione finale

48.1 Impostazione generale

48.1.1 Piano di lavoro e unità di misura

48.1.2 Posizione corrente

48.1.3 Istruzioni speciali più importanti

48.1.4 Aspetto delle istruzioni normali

48.2 Linee e aree

48.2.1 Archi e curve

48.3 Salvare e recuperare le impostazioni grafiche

48.4 Spostamento del piano cartesiano e modifica della scala

48.5 Ripetizione

48.6 Testo

48.7 Salvataggio e recupero delle impostazioni della pagina nel complesso

48.8 La pila

48.9 Funzioni comuni

48.10 Operazioni sulle stringhe

48.11 Funzioni

48.11.1 Variabili

48.12 Dizionari

48.13 Caratteri da stampa

48.14 Aspetto dei caratteri da stampa comuni

48.15 Distorsione e spostamento dei caratteri da stampa

48.16 Esempi di funzioni

48.16.1 Unità di misura

48.16.2 Funzioni diagnostiche

48.16.3 Gestione di stringhe

48.17 Approfondimento: modifica sistematica dei contenuti

48.17.1 Modifica del file PostScript

48.17.2 Due programmi Perl che fanno tutto da soli

48.17.3 Utilizzo pratico di questi programmi

48.18 Riferimenti

49 TeX

49.1 La distribuzione Unix di TeX

49.1.1 Collocazione

49.1.2 Configurazione

49.1.3 Funzionamento fondamentale di TeX

49.1.4 Interazione con TeX

49.2 Elementi essenziali del linguaggio TeX

49.2.1 Testo letterale, parole e simboli di controllo

49.2.2 Raggruppamenti

49.2.3 Inclusione di file esterni

49.3 Variabili e tipi di dati

49.3.1 Stringhe

49.3.2 Trasformazione delle stringhe

49.3.3 Contatori

49.3.4 Lunghezze

49.3.5 Lunghezze elastiche

49.3.6 Operazioni con i valori numerici

49.3.7 Trasformazione in stringa di dati numerici

49.3.8 Controllo del campo di azione delle variabili

49.3.9 Ordine nell'espansione delle sequenze di controllo

49.4 Dichiarazione di macroistruzioni

49.4.1 Chiamata di macroistruzioni che richiedono l'indicazione di argomenti

49.5 Riferimenti ad altre parole o simboli di controllo

49.6 Testo normale e ambienti matematici

49.7 Modalità orizzontale e modalità verticale

49.8 Strutture di controllo

49.8.1 Istruzione ''.ifodd''

49.8.2 Istruzione ''.ifmmode''

49.8.3 Istruzione ''.ifnum''

49.8.4 Istruzioni ''.ifhmode'' e ''.ifvmode''

49.9 Verifica del significato di un'istruzione elementare

49.10 Caratteri

49.10.1 Caratteri speciali

49.10.2 Accenti

49.10.3 Apici, trattini e legati automatici

49.10.4 Istruzioni alternative per generare simboli particolari

49.10.5 Caratteri da stampa standard

49.10.6 Sottolineatura

49.11 La pagina

49.11.1 La parte centrale della pagina

49.11.2 Intestazione e fondo pagina

49.11.3 Numerazione delle pagine

49.11.4 Note a piè di pagina

49.11.5 Oggetti fluttuanti

49.12 Paragrafi

49.12.1 Spaziatura orizzontale automatica e separazione automatica dei paragrafi in righe

49.12.2 Rientri particolari

49.12.3 Paragrafi etichettati

49.12.4 Attuazione dei comandi riferiti ai paragrafi

49.12.5 Tolleranza estetica

49.12.6 Sillabazione

49.12.7 Spaziature verticali

49.13 Righe

49.13.1 Spazi orizzontali

49.13.2 Spazio rigido

49.13.3 Linee guida

49.13.4 Linee

49.14 Scatole

49.14.1 Spostamento orizzontale delle scatole

49.14.2 Scatole più complesse

49.15 Tabelle

49.15.1 Tabulazione

49.15.2 Tabelle più complesse

49.16 Ambienti matematici

49.16.1 Due situazioni differenti

49.17 Spazi orizzontali

49.17.1 Caratteri e simboli

49.17.2 Dimensione del testo matematico

49.17.3 Punteggiatura

49.17.4 Frazioni e simili

49.17.5 Apici e pedici

49.17.6 Radici

49.17.7 Sottolineature e sopralineature

49.17.8 Funzioni

49.17.9 Delimitatori

49.17.10 Matrici e sistemi di equazioni

49.17.11 Dichiarazione di teoremi e corollari

49.17.12 Equazioni in evidenza

49.18 Riferimenti

50 LaTeX

50.1 LaTeX: introduzione

50.1.1 Comandi e modelli sintattici

50.1.2 Opzioni e argomenti

50.1.3 Esempio iniziale

50.1.4 Sopravvivere nel caos

50.1.5 Struttura essenziale di un documento LaTeX

50.1.6 Composizione per approssimazione successiva

50.2 Personalizzazione

50.2.1 Definizione e ridefinizione di macro

50.2.2 File di stile

50.3 Localizzazione

50.3.1 Terminologia

50.3.2 Sillabazione

50.3.3 Inconvenienti legati alla sillabazione

50.3.4 Spaziatura orizzontale

50.3.5 Codifica

50.3.6 Localizzazione in pratica

50.4 Variabili e tipi di dati

50.4.1 Lunghezze

50.4.2 Contatori

50.5 Struttura del documento

50.5.1 Dichiarazione dello stile generale

50.5.2 Preambolo

50.5.3 Inizio e fine del documento

50.5.4 Suddivisione del documento

50.5.5 Ambienti

50.6 LaTeX: la pagina

50.6.1 Dimensioni della pagina

50.6.2 Flusso verticale del testo, colonne e salti pagina

50.6.3 Stile della pagina

50.6.4 Numerazione delle pagine

50.6.5 Note a piè di pagina

50.6.6 Sillabazione

50.7 Caratteri

50.7.1 Caratteri che hanno un significato speciale

50.7.2 Corpi uniformi

50.7.3 Caratteri da stampa

50.7.3.1 Enfatizzazione

50.7.4 Definizione dettagliata del carattere da stampa

50.7.5 Linee e cornicette attorno al testo

50.7.6 Spostamento verticale del testo

50.8 LaTeX: blocchi di testo

50.8.1 Caratteristiche normali di un paragrafo

50.8.2 Allineamento del testo

50.8.3 Elenchi

50.8.4 Citazioni

50.8.5 Versi

50.8.6 Testo letterale

50.8.7 Ambienti fluttuanti

50.9 Spazi e scatole

50.9.1 Spazi orizzontali

50.9.2 Spazi verticali

50.9.3 Elasticità controllabile

50.9.4 Interlinea

50.9.5 Scatole

50.9.6 Testo da salvare e da recuperare

50.9.7 Linee

50.10 Riferimenti incrociati

50.10.1 Indice generale, indice delle tabelle e delle figure

50.10.2 Riferimenti liberi

50.10.3 Indice analitico

50.10.4 Bibliografie

50.11 Tabelle

50.11.1 Tabella fatta di tabulazioni

50.11.2 Tabella fatta di colonne e righe

50.11.3 Tabella a cavallo di più pagine

50.12 LaTeX: figure

50.12.1 Disegnare con LaTeX

50.12.2 Importazione di file EPS esterni

50.12.3 Estrazione di file EPS dal file PostScript finale

50.13 Ambienti matematici

50.13.1 Definizione della modalità matematica

50.13.2 Spazi orizzontali e punteggiatura

50.13.3 Caratteri e simboli

50.13.4 Delimitatori

50.13.5 Modifica delle caratteristiche del carattere

50.13.6 Espressioni varie

50.13.7 Matrici e sistemi di equazioni

50.13.8 Teoremi, corollari e dichiarazioni simili

50.14 File esterni

50.14.1 Importazione

50.14.2 Importazione letterale

50.14.3 Creazione di file

50.15 Riferimenti

51 SGML

51.1 DTD: definizione del tipo di documento

51.1.1 Elementi

51.1.1.1 Abbreviazioni nell'indicazione degli elementi

51.1.1.2 Primo impatto con un DTD

51.1.2 Regole di minimizzazione

51.1.3 Modello del contenuto

51.1.3.1 Indicatori di ripetizione

51.1.3.2 Connettori

51.1.3.3 Raggruppamenti

51.1.3.4 Eccezione

51.1.3.5 Elementi vuoti

51.1.4 Dichiarazione multipla

51.1.5 Attributi

51.1.6 Entità

51.1.6.1 Acquisizione dall'esterno

51.1.6.2 Codici macro speciali

51.1.7 Sezioni marcate

51.1.8 Dettagli importanti

51.1.8.1 Commenti

51.1.8.2 Maiuscole e minuscole

51.1.8.3 Delimitatori di stringa

51.1.8.4 Tipo di contenuto di un'entità generale

51.1.8.5 Contenuto elementare degli elementi

51.1.9 Abbinare il DTD al documento SGML

51.1.9.1 Strategie

51.1.9.2 Entità generali

51.1.9.3 Entità parametriche

51.1.9.4 Ultime annotazioni sulla dichiarazione del DTD

51.1.10 Mappe di sostituzione «shortref»

51.1.10.1 Dichiarazione e abbinamento delle mappe di sostituzione

51.1.10.2 Spaziature e interruzioni di riga

51.1.10.3 Limitazioni ed esagerazioni

51.1.10.4 Soluzione normale

51.1.11 Elementi di testo riportato letteralmente

51.1.11.1 Tipo di contenuto letterale

51.1.11.2 Sezioni marcate

51.1.12 Cataloghi

51.1.12.1 Riferimenti esterni

51.1.12.2 Il catalogo in pratica

51.2 Elaborazione SGML

51.2.1 SP

51.2.1.1 Avvio di nsgmls

51.2.1.2 Variabili di ambiente

51.2.1.3 Formato dell'output

51.2.2 Sgmls

51.2.3 SGMLSpm

51.2.3.1 File con le specifiche di sostituzione

51.2.3.2 Scheletro pronto con ''skel.pl''

51.2.3.3 Ridirezione dell'output e altre sofisticazioni

51.2.3.4 Verifica sintattica secondo Perl

51.2.4 Esempio di un mini-sistema SGML

51.2.4.1 Il DTD

51.2.4.2 Il catalogo

51.2.4.3 Le entità standard

51.2.4.4 Rimpiazzo ASP

51.2.4.5 I documenti SGML

51.2.4.6 I comandi necessari

51.2.5 Lo scalino successivo

51.2.5.1 Gestione simultanea di più sistemi di composizione

51.2.5.2 Insieme di caratteri

51.2.6 Organizzazione degli strumenti SGML in una distribuzione GNU/Linux

51.2.7 perlSGML: analisi di un DTD

51.3 Dichiarazione SGML

51.3.1 Codifica

51.3.2 Capacità

51.3.3 Ambito

51.3.4 Sintassi concreta

51.3.4.1 Caratteri da evitare

51.3.4.2 Codifica nell'ambito della sintassi concreta

51.3.4.3 Codici con funzioni speciali

51.3.4.4 Nomi

51.3.4.5 Delimitatori

51.3.4.6 Nomi riservati

51.3.4.7 Quantità

51.3.5 Proprietà

51.3.6 Applicazione di una dichiarazione SGML in pratica

51.3.7 Esempio conclusivo

51.4 Riferimenti

52 XML

52.1 Transizione da SGML a XML

52.1.1 Codifica

52.1.2 Commenti

52.1.3 Marcatori ed elementi vuoti

52.1.4 Entità predefinite

52.1.5 Entità parametriche

52.1.6 Altre sezioni marcate

52.1.7 Istruzioni di elaborazione

52.1.8 Convenzioni dell'XML

52.1.9 Correttezza formale e validità

52.1.10 Verifica della validità con SP

52.1.11 Domini applicativi: ''namespace''

52.2 Introduzione ai fogli di stile XSLT

52.2.1 Struttura ad albero, percorsi e modelli di confronto

52.2.2 Struttura generale del foglio di stile XSLT

52.2.3 Modelli di confronto e trasformazione

52.2.4 Testo

52.2.4.1 Formato generale del risultato della trasformazione

52.2.4.2 Inserimento di testo aggiuntivo

52.2.4.3 Estrazione del valore contenuto in un nodo

52.2.5 Creazione di componenti XML e HTML

52.2.5.1 Creazione di elementi e di attributi

52.2.5.2 Creazione di commenti e di istruzioni di elaborazione

52.2.6 Xalan

52.2.7 Esempio completo

52.2.7.1 Trasformazione in un sorgente LaTeX

52.2.7.2 Trasformazione in un sorgente HTML

52.2.7.3 Trasformazione in un sorgente XHTML

52.3 Introduzione a XSL-FO

52.3.1 Preparazione degli strumenti

52.3.2 Struttura generale del documento secondo XSL-FO

52.3.3 Margini e direzione

52.3.4 Un DTD per XSL-FO

52.4 XSL-FO: impaginazione

52.4.1 Impaginazione semplificata

52.4.2 Impaginazione più articolata

52.4.3 Contenuto

52.5 XSL-FO: contenuto

52.5.1 Blocchi di testo comuni

52.5.2 Testo lineare

52.5.3 Elenchi

52.5.4 Tabelle

52.5.5 Inserzione di immagini

52.5.6 Linee orizzontali

52.5.7 Riferimenti incrociati

52.5.8 Componenti autonomi rispetto al testo

52.6 XSLT e XSL-FO

52.7 XMLTeX e PassiveTeX

52.7.1 XMLTeX

52.7.2 PassiveTeX

52.8 Riferimenti

53 LinuxDoc, DocBook e TEI

53.1 Sistemi SGML basati su Qwertz

53.1.1 Struttura di LinuxDoc

53.1.1.1 Utilizzo sommario

53.1.1.2 Supporto per altri SGML

53.1.2 LinuxDoc più in dettaglio

53.1.2.1 Preambolo e definizione dello stile

53.1.2.2 Suddivisione del documento

53.1.2.3 Paragrafi

53.1.2.4 Elenchi

53.1.2.5 Inclusione di testo letterale

53.1.2.6 Testo citato

53.1.2.7 Enfatizzazioni

53.1.2.8 Riferimenti incrociati

53.1.2.9 Indici

53.1.2.10 Inclusione di immagini

53.1.2.11 Tabelle

53.1.2.12 Mappa dei caratteri

53.1.3 Struttura di DebianDoc

53.1.3.1 Organizzazione del catalogo, del DTD e delle entità

53.1.3.2 Utilizzo sommario

53.1.4 Guida rapida di DebianDoc

53.2 Introduzione a DocBook

53.2.1 Edizioni e varianti del DTD

53.2.2 Esperimenti con il DTD e convalida

53.2.3 Strumenti per la composizione

53.2.4 Struttura generale

53.2.5 Corpo del documento

53.2.5.1 Elenchi

53.2.5.2 Tabelle

53.2.5.3 Immagini

53.2.5.4 Riferimenti interni ed esterni

53.2.6 Conclusione

53.3 Introduzione a TEI

53.3.1 Strumenti per la composizione

53.3.2 Struttura generale di un documento TEI

53.3.2.1 Suddivisione del testo

53.3.2.2 Blocchi comuni

53.3.3 Elenchi

53.3.4 Tabelle

53.3.5 Figure

53.3.6 Forme di evidenziamento

53.3.7 Note

53.3.8 Riferimenti incrociati e riferimenti esterni

53.3.9 Documentazione tecnica

53.3.10 Indici

53.4 Riferimenti

54 HTML

54.1 URI e IRI

54.1.1 Trascrivibilità

54.1.2 Sintassi

54.1.2.1 Accesso a un servente attraverso la rete

54.1.2.2 Riferimento agli URI

54.1.2.3 Esempi

54.1.3 Limitazioni nell'uso dei caratteri

54.2 Aspetti generali di HTML

54.2.1 HTML e SGML

54.2.1.1 Attributi comuni attraverso le entità parametriche

54.2.1.2 Classificazione fondamentale degli elementi

54.2.2 Stili

54.2.3 Struttura di un documento HTML

54.2.3.1 Intestazione e informazioni supplementari

54.2.3.2 Corpo del documento

54.3 Attributi comuni

54.3.1 Linguaggio

54.3.2 Codifica

54.3.3 Direzione del testo

54.3.4 Titolo

54.3.5 Identificazione di un elemento

54.3.6 Classificazione degli elementi

54.4 HTML: corpo

54.4.1 Delimitazione di blocchi e di testo normale

54.4.2 Titoli e struttura implicita del testo

54.4.3 Testo

54.4.3.1 Paragrafi e interruzioni

54.4.3.2 Elementi tipici utilizzati all'interno delle frasi

54.4.3.3 Citazioni

54.4.3.4 Testo preformattato

54.4.4 Elenchi

54.4.5 Tabelle

54.4.6 Riferimenti ipertestuali

54.4.6.1 Riferimenti a una pagina intera

54.4.6.2 Riferimenti a una posizione di una pagina

54.4.6.3 Collegamenti simmetrici

54.4.6.4 Utilizzo dell'attributo ID

54.4.7 Inserzioni di oggetti

54.4.7.1 Immagini

54.5 XHTML

54.5.1 Scheletro di un file XHTML

54.5.2 Verifica della validità di un file XHTML

54.6 CSS

54.6.1 Logica del linguaggio CSS

54.6.1.1 Ereditarietà e collegamento in cascata

54.6.1.2 Selettori

54.6.1.3 Stili in cascata

54.6.2 Proprietà

54.6.3 Definizione della pagina

54.7 JavaScript

54.7.1 Verifica sintattica

54.7.2 Caratteristiche generali del linguaggio di programmazione

54.7.3 Variabili, costanti, tipi di dati ed espressioni

54.7.4 Funzioni e campo di azione delle variabili

54.7.5 Strutture di controllo di flusso

54.7.6 Array

54.7.7 Funzioni standard

54.7.8 Gestione delle stringhe

54.7.9 Moduli ''FORM''

54.7.10 Esempi di programmazione

54.7.10.1 Fattoriale

54.7.10.2 Massimo comune divisore

54.7.10.3 Numero primo

54.7.10.4 Ricerca sequenziale

54.8 Approfondimento: verifiche automatiche con JavaScript

54.8.1 Utilizzo del programma

54.8.2 Codice HTML

54.8.3 Variabili globali

54.8.4 Conto alla rovescia

54.8.5 Scansione di un elenco di tipo ''RADIO''

54.8.6 Valutazione della verifica

54.9 HTML2ps

54.9.1 Configurazione di HTML2ps

54.9.1.1 Configurazione della regola corrispondente al selettore speciale .html2ps

54.9.1.2 Configurazione in cascata

54.9.2 Avvio di HTML2ps

54.9.3 Particolarità nell'HTML

54.9.4 Programma frontale per semplificare l'utilizzo di HTML2ps

54.10 Introduzione a Amaya

54.10.1 Navigazione e composizione

54.10.1.1 Modifica del documento

54.10.2 Configurazione

54.10.3 Aggregazione di un documento composto

54.11 HTMLDOC

54.11.1 Sorgente HTML

54.11.2 Funzionamento

54.11.3 Definizione dei file sorgenti

54.11.4 Composizione

54.11.5 Formato e aspetto delle pagine

54.11.6 Indice generale

54.11.7 Carattere da stampa

54.11.8 Altre opzioni

54.11.9 Programmazione della composizione

54.11.10 Informazioni particolari nel sorgente

54.12 Motori di ricerca e robot

54.12.1 Elementi META

54.12.2 Filtro iniziale alla scansione dei robot

54.13 Riferimenti

55 HTML: lezioni pratiche e verifiche

55.1 Struttura generale e intestazione

55.1.1 File ''struttura-01.html''

55.1.2 File ''struttura-02.html''

55.1.3 File ''struttura-03.html''

55.1.4 File ''struttura-04.html''

55.2 Caratteri speciali

55.2.1 File ''macro-01.html''

55.2.2 File ''macro-02.html''

55.2.3 Verifica sulla struttura generale e sull'uso delle macro

55.3 Contenuto del testo lineare

55.3.1 File ''testo-lineare-01.html''

55.3.2 File ''testo-lineare-02.html''

55.3.3 Verifica sull'uso degli elementi interni al testo lineare

55.3.4 Seconda verifica sull'uso degli elementi interni al testo lineare

55.4 Testo preformattato

55.4.1 File ''testo-preformattato-01.html''

55.4.2 File ''testo-preformattato-02.html''

55.4.3 File ''testo-preformattato-03.html''

55.4.4 Verifica sull'uso degli elementi per il testo preformattato

55.5 Elenchi

55.5.1 File ''elenchi-01.html''

55.5.2 Verifica sull'uso degli elenchi

55.6 Tabelle

55.6.1 File ''tabelle-01.html''

55.6.2 File ''tabelle-02.html''

55.6.3 Verifica sull'uso di tabelle elementari

55.7 Tabelle complesse

55.7.1 File ''tabelle-03.html''

55.7.2 Verifica sull'uso di tabelle complesse

55.8 Riferimenti ipertestuali

55.8.1 File ''riferimenti-01.html''

55.8.2 Verifica sull'uso dei riferimenti ipertestuali

55.9 Citazioni

55.9.1 File ''citazioni-01.html''

55.10 Inserzione di oggetti

55.10.1 File ''oggetti-01.html''

55.10.2 File ''oggetti-02.html''

55.10.3 Verifica sull'inserzione di oggetti

55.11 Inserzione di immagini

55.11.1 File ''immagini-01.html''

55.11.2 File ''immagini-02.html''

55.11.3 Verifica sull'inserzione di immagini

55.12 Fogli di stile CSS

55.12.1 File ''stile-01.html''

55.12.2 File ''stile-02.html'' e ''stile-02.css''

55.13 Linguaggio CSS

55.13.1 File ''linguaggio-css-01.html''

55.13.2 Elementi ''DIV'' e ''SPAN''

55.14 Controllo del carattere

55.14.1 File ''caratteri-css-01.html''

55.14.2 File ''caratteri-css-02.html''

55.14.3 Verifica sull'uso delle proprietà riferite ai caratteri

55.15 Colore e sfondo

55.15.1 File ''colori-css-01.html''

55.15.2 File ''colori-css-02.html''

55.15.3 File ''sfondo-css-01.html''

55.15.4 File ''sfondo-css-02.html''

55.15.5 Verifica sull'uso delle proprietà riferite ai colori

55.16 Testo

55.16.1 File ''testo-css-01.html''

55.16.2 Verifica sull'uso delle proprietà riferite al testo

55.17 Blocchi

55.17.1 File ''blocchi-css-01.html''

55.17.2 File ''blocchi-css-02.html''

55.17.3 File ''blocchi-css-03.html''

55.17.4 Verifica sull'uso delle proprietà riferite ai blocchi

55.18 Contesto dinamico

55.18.1 File ''dinamica-css-01.html''

55.19 Rispetto del diritto d'autore

55.19.1 Verifica conclusiva

55.20 Riferimenti

56 introduzione a RDF: collegamento dei dati nel web

56.1 Un esempio prima di cominciare

56.2 Una base di dati fatta di ''triple''

56.3 Vocabolari

56.4 Abbreviazioni

56.5 Nodi vuoti

56.6 Tipo di nodo o classe

56.7 RDFa

56.8 N-Triples

56.9 Turtle

56.10 Riferimenti

57 Spartiti musicali

57.1 Concetti elementari sulle notazioni musicali

57.1.1 Denominazione delle note

57.1.2 Disposizione simbolica delle note sul pentagramma

57.1.3 Rappresentazione delle note e delle pause sul pentagramma

57.1.4 Unità di tempo

57.1.5 Alterazioni

57.2 Introduzione a LilyPond

57.2.1 Note e pause

57.2.2 Alterazioni

57.2.3 Impaginazione

57.2.4 File MIDI

57.2.5 Altri formati

57.2.6 Programmi frontali

57.2.7 Progetto Mutopia

57.3 Riferimenti

58 Codici a barre

58.1 Codice di controllo ''modulo n''

58.2 UPC-E e UPC-A

58.3 EAN-8 e EAN-13

58.4 Codici UCC ed EAN

58.5 ISBN

58.5.1 ISSN

58.6 Code 39

58.6.1 Code 39 esteso

58.7 Code 128

58.7.1 UCC/EAN 128

58.8 ITF, ovvero i25

58.9 Barcode

58.10 Codice QR

58.11 ZBar

58.12 Codice PDF417

58.13 Codice DataMatrix e Semacode

58.14 Riferimenti

59 Usare i programmi di scrittura visuale

59.1 La pagina

59.1.1 Pagine non omogenee

59.1.2 Formato della carta, orientamento e margini esterni

59.1.3 Intestazione e fondo pagina

59.1.4 Colonne

59.1.5 Pagine destre e sinistre

59.1.6 Esercizio

59.2 Il ''paragrafo''

59.2.1 Dimensioni

59.2.2 Controllo del flusso del testo

59.2.3 Allineamento

59.2.4 Tabulazione

59.2.5 Elenchi

59.2.6 Righello

59.3 Il testo

59.3.1 La specie alfabetica e il tipo di carattere

59.3.2 Gruppo stilistico, serie e corpo

59.3.3 Effetti comuni applicabili al carattere

59.3.4 Maiuscole e minuscole

59.3.5 Direzione del testo

59.3.6 Controllo ortografico

59.3.7 Correzione ortografica

59.3.8 Simboli speciali e il limite della tastiera

59.3.9 Visualizzazione dei ''caratteri non stampabili''

59.3.10 Inserzione di codici con funzioni speciali

59.4 Selezione, spostamento, copia

59.4.1 Selezione

59.4.2 Spostamento

59.4.3 Taglia-copia-incolla

59.5 Tabelle

59.5.1 Creazione di una tabella

59.5.2 Interazione con le tabelle

59.5.3 Righe, colonne e fusione delle celle

59.5.4 Bordi e sfondi

59.5.5 Righe di intestazione

59.5.6 Copia dal foglio elettronico

59.6 Incorporazione di oggetti

59.6.1 Scorrimento

59.6.2 Ancoraggio

59.7 Carta legale

59.7.1 Modello didattico

59.7.2 Impaginazione

59.7.3 Esercizio

59.7.4 Esercizio

59.8 Stili e indici

59.8.1 Competenze

59.8.2 Stili predefiniti

59.8.3 Modifica degli stili

59.8.4 Creazione di stili propri

59.8.5 Stili di uso comune

59.8.6 Indice generale

59.9 Stampa in serie o ''stampa unione''

59.9.1 Preparazione di un elenco di indirizzi

59.9.2 Acquisizione degli indirizzi

59.9.3 Inserimento dei campi

59.9.4 Visualizzazione dei dati

59.9.5 Stampa in serie

59.9.6 Associazione di un elenco alternativo

60 Lavagna elettronica

60.1 Bluetooth con i sistemi GNU/Linux

60.2 Bluetooth con i sistemi MS-Windows

60.2.1 Problemi con il PIN

60.3 Wiimote

60.4 Wminput

60.5 Wmgui

60.6 Penna a infrarossi

60.7 Inquadratura dello schermo

60.8 Gtkwhiteboard

60.9 WiimoteWhiteboard

60.10 Uniboard «non libero»

60.11 Riferimenti

61 Linguaggio naturale, tra uomo e macchina

61.1 AIML

61.1.1 Esempio iniziale

61.1.2 Stimoli

61.1.3 Responsi semplici

61.1.4 Responsi contenenti variabili

61.1.5 Ultimo responso

61.1.6 Contesto

61.1.7 Responso scelto casualmente

61.1.8 Responso scelto in base a una variabile

61.1.9 Lo scambio di persona, ma solo per la lingua inglese

61.1.10 Installazione e configurazione di un sistema basato su AIML: ''Program-O''

61.1.11 File AIML già pronti

61.1.12 Considerazioni finali

61.2 Analisi automatica del testo

61.2.1 POS: le parti del discorso

61.2.2 Treebank o corpus

61.2.3 Lemma, o radice della parola

61.2.4 NLP: elaborazione del linguaggio naturale

61.3 Freeling

61.3.1 Sistema di etichette per la lingua italiana

61.3.2 Uso del sistema già pronto

61.3.3 Altre osservazioni

61.3.4 Riferimenti

u2 Indice analitico del volume

Volume III Programmazione

Parte iii Dal linguaggio macchina al C

62 Algoritmi e notazioni

62.1 Notazione BNF

62.1.1 BNF essenziale

62.1.2 Estensioni usuali

62.2 Pseudocodifica

62.3 Problemi elementari di programmazione

62.3.1 Somma tra due numeri positivi

62.3.2 Moltiplicazione di due numeri positivi attraverso la somma

62.3.3 Divisione intera tra due numeri positivi

62.3.4 Elevamento a potenza

62.3.5 Radice quadrata

62.3.6 Fattoriale

62.3.7 Massimo comune divisore

62.3.8 Numero primo

62.3.9 Successione di Fibonacci

62.4 Scansione di array

62.4.1 Ricerca sequenziale

62.4.2 Ricerca binaria

62.5 Problemi classici di programmazione

62.5.1 Bubblesort

62.5.2 Fusione tra due array ordinati

62.5.3 Torre di Hanoi

62.5.4 Quicksort «ordinamento non decrescente»

62.5.5 Permutazioni

62.6 Gestione dei file

62.6.1 Fusione tra due file ordinati

62.6.2 Riordino attraverso la fusione

62.7 Trasformazione in lettere

62.7.1 Da numero a sequenza alfabetica pura

62.7.2 Da numero a numero romano

62.7.3 Da numero a lettere, nel senso verbale

62.8 Algoritmi elementari con la shell POSIX

62.8.1 ARCS0: ricerca del valore più grande tra tre numeri interi

62.8.2 ARCS1: moltiplicazione di due numeri interi

62.8.3 ARCS2: valore assoluto della differenza tra due valori

62.8.4 ARCS3: somma tra due numeri

62.8.5 ARCS4: prodotto tra due numeri

62.8.6 ARCS5: quoziente

62.8.7 ARCS6: verifica della parità di un numero

62.8.8 ARCS7: fattoriale

62.8.9 ARCS8: coefficiente binomiale

62.8.10 ARCS10: massimo comune divisore

62.8.11 ARCS11: massimo comune divisore

62.8.12 ARCS12: radice quadrata intera

62.8.13 ARCS13: numero primo

62.8.14 ARCS14: numero primo

62.9 Riferimenti

63 Linguaggio macchina

63.1 Organizzazione della memoria

63.1.1 Pila per salvare i dati

63.1.2 Chiamate di funzioni

63.1.3 Funzioni attraverso le istruzioni di salto

63.1.4 Variabili e array

63.1.5 Gestione alternativa degli indici

63.1.6 Ordine dei byte

63.1.7 Stringhe, array e puntatori

63.1.8 Utilizzo della memoria

63.2 Architettura, linguaggio, contesto virtuale, terminologia

63.2.1 Memoria e registri

63.2.2 Indicatori o ''flag''

63.2.3 ''Opcode''

63.2.4 Accesso alla memoria

63.2.5 Modello della memoria nei sistemi Unix

63.2.6 Sintassi ''AT&T'' e ''Intel''

63.2.7 Macchina virtuale

63.2.8 Compilazione e collegamento

63.3 Rappresentazione di valori numerici

63.3.1 Codifica delle singole cifre

63.3.2 Rappresentazione binaria di numeri interi senza segno

63.3.3 Rappresentazioni binarie superate di numeri interi con segno

63.3.4 Complemento a due

63.3.5 Rappresentazione binaria di numeri in virgola mobile

63.3.6 Rappresentazione in virgola mobile IEEE 754

63.3.7 Ordine dei byte

63.4 Calcoli con i valori binari rappresentati nella forma usata negli elaboratori

63.4.1 Modifica della quantità di cifre di un numero binario intero

63.4.2 Sommatorie con i valori interi con segno

63.4.3 Somme e sottrazioni con i valori interi senza segno

63.4.4 Somme e sottrazioni in fasi successive

63.4.5 Indicatori

63.5 Scorrimenti, rotazioni, operazioni logiche

63.5.1 Scorrimento logico

63.5.2 Scorrimento aritmetico

63.5.3 Scorrimento e indicatori

63.5.4 Moltiplicazione

63.5.5 Divisione

63.5.6 Rotazione

63.5.7 Rotazione e indicatori

63.5.8 Operatori logici

63.5.9 Intervenire su bit singoli

63.5.10 Somme e sottrazioni abbinate agli operatori logici

63.6 Confronti attraverso la sottrazione

63.6.1 Confronto di valori senza segno

63.6.2 Confronto di valori con segno

63.7 Riferimenti

64 Microprocessori x86-32

64.1 Terminologia impropria

64.2 Registri principali fino ai 32 bit

64.3 Sintesi delle istruzioni principali

64.4 Primo approccio al linguaggio assemblatore per x86

64.4.1 Il primo programma

64.4.2 Utilizzo di GDB

64.4.3 Modalità ''TUI''

64.4.4 Utilizzo di DDD

64.4.5 Alcune istruzioni comuni

64.4.5.1 MOV

64.4.5.2 ADD

64.4.5.3 SUB

64.4.5.4 INC e DEC

64.4.6 Dimensione dei dati nelle istruzioni

64.4.7 Direttive per il compilatore

64.4.7.1 Commenti

64.4.7.2 Direttiva ''equ''

64.4.7.3 Direttive di dichiarazione dei dati

64.4.8 Sezioni del sorgente

64.4.9 Usare GNU AS con la notazione Intel

64.5 Esempi con le ''quattro operazioni''

64.5.1 Somma

64.5.1.1 Traboccamento

64.5.1.2 Riporto

64.5.1.3 Somma di valori molti grandi

64.5.2 Sottrazione

64.5.2.1 Inversione del segno

64.5.2.2 Sottrazione per fasi successive

64.5.3 Moltiplicazione senza segno

64.5.4 Moltiplicazione con segno

64.5.5 Divisione

64.6 Esempi con gli ''spostamenti''

64.6.1 Scorrimento logico

64.6.2 Scorrimento aritmetico

64.6.3 Rotazione

64.6.4 Rotazione con riporto

64.7 Esempi con i confronti

64.8 Le istruzioni di salto

64.8.1 Portata del salto

64.8.2 Salto incondizionato

64.8.3 Salto condizionato dallo stato di un indicatore

64.8.4 Salto condizionato da un confronto

64.8.5 Cicli

64.9 Esempi di programmi con strutture di controllo

64.9.1 Somma attraverso l'incremento unitario

64.9.2 Moltiplicazione attraverso la somma

64.9.3 Divisione attraverso la sottrazione

64.9.4 Elevamento a potenza

64.9.5 Moltiplicazione attraverso lo scorrimento e la somma

64.9.6 Conteggio dei bit a uno

64.10 Funzioni

64.10.1 Esempio banale di chiamata

64.10.2 Salvataggio dei registri prima della chiamata

64.10.3 Passaggio di parametri attraverso la pila

64.10.4 Utilizzo del registro ''EBP''

64.10.5 Allocazione dello spazio per le variabili locali e preservazione dei registri

64.10.6 Convenzioni di chiamata

64.10.7 Nota sugli array ''locali''

64.11 Esempi di funzioni ricorsive

64.11.1 Elevamento a potenza

64.11.2 Fattoriale

64.12 Indirizzamento dei dati

64.12.1 Gestione di array

64.12.2 Istruzione ''LEA''

64.13 Rappresentazione dei dati in memoria attraverso un esempio

64.14 Esempi con gli array

64.14.1 Ricerca sequenziale

64.14.2 Ricerca binaria

64.14.3 Bubblesort

64.15 Calcoli con gli indirizzi in fase di compilazione

64.15.1 Distanza tra due indirizzi

64.15.2 Riempimento di spazio inutilizzato

64.16 Interazione con il sistema operativo

64.16.1 Parametri di chiamata del programma

64.16.2 Funzioni del sistema operativo

64.16.3 Esempi di lettura e scrittura con i flussi standard

64.17 Riferimenti

65 Compilazione e formato binario eseguibile

65.1 Compilazione di programmi composti da più file sorgenti

65.1.1 Inclusione di file

65.1.2 Due file sorgenti da collegare assieme

65.1.3 Incorporazione di codice in linguaggio C

65.2 Librerie dinamiche e librerie statiche

65.2.1 Il processo di ''collegamento'' dinamico

65.2.2 Creazione di una libreria dinamica

65.2.3 Creare un programma che utilizza una libreria dinamica

65.2.4 Creare un file che utilizza una libreria dinamica standard

65.2.5 Librerie statiche

65.3 Dal sorgente all'immagine in memoria

65.3.1 File oggetto

65.3.2 File eseguibile

65.3.3 Immagine del processo nella memoria virtuale

65.3.4 Allineamento dei segmenti in memoria

65.3.5 Script per il collegamento

65.3.6 Osservazioni sui simboli

65.3.7 Formati dei file oggetto

65.4 Formato ELF

65.4.1 Sezioni e segmenti

65.4.2 Intestazione ELF

65.4.3 Descrizione dei segmenti

65.4.4 Definizione manuale di un formato ELF

65.4.5 Esempio più complesso

65.5 Programmi completamente autonomi

65.5.1 Le specifiche ''multiboot''

65.5.1.1 Formato del file che deve essere avviato

65.5.1.2 Situazione dopo l'avvio del file-immagine

65.5.1.3 Informazioni passate dal sistema di avvio al programma

65.5.2 Esempio di programma da avviare secondo le specifiche ''multiboot''

65.5.3 Visualizzazione di messaggi

65.5.4 Colori dello schermo

65.6 Compilazione C dal basso in alto

65.6.1 Compilazione di un programma che non fa uso di librerie

65.6.2 Uso di GDB e di DDD

65.6.3 Da ''.start'' a ''main''

65.6.4 Compilazione naturale di un programma in linguaggio C

65.7 Compilazione C dall'alto in basso

65.7.1 Le fasi della compilazione

65.7.2 Precompilatore

65.7.3 Compilazione dei file intermedi

65.7.4 L'uso di librerie

65.7.5 Librerie statiche e librerie dinamiche

65.7.6 L'ordine dei file e delle librerie nella compilazione

65.7.7 Prevenzione e ricerca degli errori

65.7.8 Problemi con l'ottimizzazione

65.8 Compilazione guidata con Make

65.8.1 Obiettivo, dipendenze e comandi

65.8.2 Obiettivi fittizi

65.8.3 Scelta dell'obiettivo

65.8.4 Interpretazione dei comandi che portano a un obiettivo

65.8.5 Variabili o ''macro''

65.8.6 Utilizzo oculato delle variabili

65.8.7 Espansione e continuazione al di fuori dei comandi

65.8.8 Variabili automatiche

65.8.9 Regole implicite

65.8.10 Uno script per ogni sottodirectory

65.8.11 Una regola per più obiettivi

65.8.12 Regole fittizie tipiche

65.8.13 Variabili per l'installazione

65.8.14 Definizione della shell

65.8.15 Installazione dei programmi

65.9 Riferimenti

66 Introduzione al linguaggio C

66.1 Nozioni minime

66.1.1 Struttura fondamentale

66.1.2 Ciao mondo!

66.1.2.1 Compilazione

66.1.2.2 Emissione dati attraverso ''printf«»''

66.1.3 Variabili e tipi

66.1.3.1 Bit, byte e caratteri

66.1.3.2 Tipi primitivi

66.1.3.3 Costanti letterali comuni

66.1.3.4 Valore numerico delle costanti carattere

66.1.3.5 Campo di azione delle variabili

66.1.3.6 Dichiarazione delle variabili

66.1.3.7 Variabili costanti e variabili volatili

66.1.3.8 Il tipo indefinito: ''void''

66.1.4 Operatori ed espressioni

66.1.4.1 Operatori aritmetici

66.1.4.2 Operatori di confronto e operatori logici

66.1.4.3 Operatori binari

66.1.4.4 Conversione di tipo

66.1.4.5 Espressioni multiple

66.1.5 Strutture di controllo di flusso

66.1.5.1 Struttura condizionale: ''if''

66.1.5.2 Struttura di selezione: ''switch''

66.1.5.3 Iterazione con condizione di uscita iniziale: ''while''

66.1.5.4 Iterazione con condizione di uscita finale: ''do-while''

66.1.5.5 Ciclo enumerativo: ''for''

66.1.6 Funzioni

66.1.6.1 Dichiarazione di un prototipo

66.1.6.2 Descrizione di una funzione

66.1.6.3 File di intestazione e libreria

66.1.7 Vincoli nei nomi

66.1.8 I/O elementare

66.1.9 Restituzione di un valore

66.1.10 Attributi per GNU C

66.2 Istruzioni del precompilatore

66.2.1 Linguaggio a sé stante

66.2.2 Direttiva ''#include''

66.2.3 Direttiva ''#define''

66.2.4 Direttiva ''#define'' con parametri

66.2.5 Direttive ''#if'', ''#else'', ''#elif'' e ''#endif''

66.2.6 Direttive ''#if defined'', ''#if !defined'', ''#ifdef'' e ''#ifndef''

66.2.7 Direttiva ''#undef''

66.2.8 Direttiva ''#line''

66.2.9 Direttiva ''#error''

66.2.10 Macro predefinite

66.2.11 Pragma

66.3 Dal campo di azione alla compilazione

66.3.1 Il punto di vista del ''collegatore''

66.3.2 Campo di azione legato al file sorgente

66.3.3 Semplificazione dovuta all'uso comune dei file di intestazione

66.3.4 Campo di azione interno alle funzioni

66.3.5 Campo di azione interno ai raggruppamenti di istruzioni

66.3.6 Funzioni annidate

66.3.7 Visibilità, accessibilità, staticità

66.3.8 Compilazione di un progetto composto da più file

66.3.9 Osservazioni sulla vita delle costanti letterali

66.3.10 Libreria standard e file di intestazione

66.4 Annotazioni sulla terminologia

66.4.1 Parametri e argomenti

66.4.2 Byte e caratteri

66.4.3 Unità di traduzione

66.4.4 ''Linkage''

66.4.5 Durata di memorizzazione

66.4.6 ''Lvalue'' e ''rvalue''

66.4.7 ''Digraph'' e ''Trigraph''

66.5 Puntatori, array, stringhe e allocazione dinamica della memoria

66.5.1 Espressioni a cui si assegnano dei valori

66.5.2 Puntatori

66.5.3 Array

66.5.4 Array multidimensionali

66.5.5 Natura dell'array

66.5.6 Puntatori costanti

66.5.7 Array e funzioni

66.5.8 Aritmetica dei puntatori

66.5.9 Osservazioni sui puntatori

66.5.10 Stringhe

66.5.11 Parametri della funzione main«»

66.5.12 Puntatori a puntatori

66.5.13 Puntatori a più dimensioni

66.5.14 Puntatori e funzioni

66.5.14.1 Puntatori a funzione, membri di una struttura

66.5.15 Puntatori a variabili distrutte

66.5.16 Puntatore nullo

66.5.17 Utilizzo della memoria in modo dinamico

66.5.18 Puntatori ''ristretti''

66.6 Le funzioni

66.6.1 Pila dei dati

66.6.2 Dichiarazione e chiamata di una funzione

66.6.3 Elenco indefinito di parametri

66.6.4 Annotazioni su ''printf«»'' e altre funzioni simili

66.6.5 Costante predefinita ''..func..''

66.7 Struttura, unione, campo, enumerazione, costante composta

66.7.1 Enumerazioni

66.7.2 Strutture

66.7.3 Assegnamento, inizializzazione, campo di azione e puntatori delle strutture

66.7.4 Scostamento all'interno delle strutture

66.7.5 Unioni

66.7.6 Campi

66.7.7 Istruzione ''typedef''

66.7.8 Costanti letterali composte

66.8 Tipi di dati speciali, di uso comune

66.8.1 Tipo ''.Bool''

66.8.2 Tipo ''void''

66.8.3 Tipo ''size.t''

66.8.4 Tipo ''ptrdiff.t''

66.8.5 Tipo ''va.list''

66.8.6 Tipo ''wchar.t''

66.8.7 Tipo ''wint.t''

66.8.8 Tipo ''time.t''

66.8.9 Tipo ''struct tm''

66.8.10 Tipo ''FILE''

66.8.11 Tipo ''fpos.t''

66.9 Configurazione locale

66.9.1 Configurazione locale nei sistemi Unix e simili

66.9.2 Configurazione locale nel linguaggio C

66.9.3 Caratteri multibyte e caratteri estesi

66.9.4 Concatenamento eterogeneo

66.9.5 Conversione tra caratteri multibyte e caratteri estesi

66.10 Organizzazione dei file sorgenti

66.10.1 File di intestazione

66.10.2 Funzioni pubbliche

66.10.3 Funzioni e variabili private

66.10.4 Esempio di ''stdlib.h''

66.10.5 Parametri delle macroistruzioni

66.10.6 Compilazione

66.11 K&R

66.11.1 Prototipi e chiamate delle funzioni

66.11.1.1 La macroistruzione ''.PROTOTYPE'' di Minix

66.11.2 Dichiarazione delle funzioni

66.11.3 Operatori composti di assegnamento

66.11.4 Tipi numerici

66.11.5 Tipo ''void *''

66.11.6 Direttive del preprocessore

66.11.7 Altre osservazioni su K&R

66.11.8 Unproto

66.12 Riferimenti

67 Gestione dei flussi di file in C

67.1 Concetti generali

67.1.1 Dal file al flusso di file

67.1.2 File di testo e file binari

67.1.3 Fine del file

67.1.4 Memoria tampone

67.1.5 Flussi standard

67.1.6 Orientamento

67.2 Utilizzo comune dei file

67.2.1 Apertura e chiusura

67.2.2 Lettura e scrittura

67.2.3 Indicatore interno al file

67.2.4 File di testo

67.2.5 I/O standard

67.2.6 Ridirezione

67.2.7 Controllo degli errori

67.3 Conversione di input e output

67.3.1 Composizione dell'output

67.3.2 Rappresentazione degli specificatori di composizione per l'emissione dei dati

67.3.3 Funzioni per la composizione dell'output

67.3.4 Concatenamento di stringhe

67.3.5 Interpretazione dell'input

67.3.6 Rappresentazione degli specificatori di conversione

67.3.7 Funzioni per l'interpretazione dell'input

67.4 Riferimenti

u3 Esempi di programmazione in C

u2.1 Problemi elementari

i3.1.1 Somma tra due numeri positivi

i3.1.2 Moltiplicazione di due numeri positivi attraverso la somma

i3.1.3 Divisione intera tra due numeri positivi

i3.1.4 Elevamento a potenza

i3.1.5 Radice quadrata

i3.1.6 Fattoriale

i3.1.7 Massimo comune divisore

i3.1.8 Numero primo

i3.1.9 Successione di Fibonacci

u2.2 Scansione di array

i3.2.1 Ricerca sequenziale

i3.2.2 Ricerca binaria

u2.3 Algoritmi tradizionali

i3.3.1 Bubblesort

i3.3.2 Torre di Hanoi

i3.3.3 Quicksort

i3.3.4 Permutazioni

68 Introduzione alle estensioni POSIX

68.1 Dal C a POSIX

68.1.1 Byte di otto bit

68.1.2 Errori

68.1.3 Gestione dei file

68.1.4 Altre funzionalità particolari

68.2 Espressioni regolari POSIX

68.2.1 Compilazione, confronto e rilascio della memoria

68.2.2 Compilazione dell'espressione regolare

68.2.3 Liberazione della memoria

68.2.4 Confronto

68.2.5 Estrapolazione di sottostringhe

68.2.6 Informazioni diagnostiche

68.2.7 Esempio completo

68.3 Avvio e conclusione dei processi

68.3.1 Biforcazione: ''fork''

68.3.2 Sostituzione: ''exec''

68.3.3 Attesa della conclusione di un processo figlio

68.3.4 Adozione dei processi

68.3.5 Gli zombie

68.3.6 Variabili di ambiente

68.3.7 Variabili di ambiente e avvio di un programma

68.4 Nozioni sui thread POSIX

68.4.1 Numero identificativo del thread

68.4.2 Creazione e conclusione di un thread aggiuntivo

68.4.3 Caratteristiche della funzione che costituisce un thread aggiuntivo

68.4.4 Avvio di thread separati e fusione successiva

68.4.5 Conflitto nell'accesso ai dati

68.4.6 Accesso alle risorse in modo mutualmente esclusivo

68.4.7 Accesso esclusivo, ma condizionato

68.4.8 Osservazioni finali

68.5 I file secondo i sistemi POSIX

68.5.1 Apertura e chiusura di un file

68.5.2 Lettura e scrittura

68.5.3 Spostamento dell'indicatore interno al file

68.5.4 Controllo degli errori

68.6 Il file system Unix e la sua gestione tipica

68.6.1 Il blocco

68.6.2 Il super blocco

68.6.3 Gli inode

68.6.4 La directory

68.6.5 Tabelle del sistema operativo

68.6.5.1 Tabella dei super blocchi

68.6.5.2 Tabella degli inode

68.6.5.3 Tabella dei file

68.6.5.4 Tabella dei descrittori dei file

68.6.5.5 Flussi di file

68.7 Il file system Minix 1

68.7.1 Blocchi e zone

68.7.2 Struttura generale

68.7.3 Super blocco

68.7.4 Mappa di inode

68.7.5 Mappa di zone

68.7.6 Inode

68.7.7 Directory

68.7.8 Il problema dell'inversione dei byte

68.8 Creazione ed eliminazione di file di qualunque tipo

68.8.1 La funzione ''mknod«»''

68.8.1.1 Creazione di un file ''normale''

68.8.1.2 Creazione di una directory

68.8.1.3 Creazione di un file FIFO

68.8.1.4 Creazione di file di dispositivo

68.8.2 La funzione ''mkdir«»''

68.8.3 La funzione ''mkfifo«»''

68.8.4 La funzione ''unlink«»''

68.8.5 La funzione ''rmdir«»''

68.8.6 La funzione ''remove«»''

68.9 Condotti

68.9.1 Realizzazione materiale del condotto

68.9.2 Condotti ''senza nome'' e condotti ''con nome''

68.9.3 Protocollo di accesso ai condotti

68.9.4 Funzione ''pipe«»''

68.9.5 Esempio di condotto attraverso un file FIFO

68.10 Lettura delle directory

68.10.1 Tipi derivati

68.10.2 Procedura per accedere a una directory

68.10.3 Attributo ''FD.CLOEXEC''

68.10.4 Esempio di utilizzo delle funzioni di accesso alle directory

68.11 Riferimenti

69 Libreria C, con qualche estensione POSIX

69.1 Funzionalità di libreria non dichiarate

69.2 File ''assert.h''

69.2.1 Utilizzo

69.3 File ''limits.h''

69.3.1 Confronto tra architetture

69.3.2 Estensioni POSIX

69.4 File ''stdint.h''

69.4.1 Tipi interi ad ampiezza esatta

69.4.2 Tipi interi di rango minimo

69.4.3 Tipi interi ''veloci''

69.4.4 Tipi interi per rappresentare dei puntatori

69.4.5 Tipi interi di rango massimo

69.4.6 Limiti per altri tipi interi

69.5 File ''errno.h''

69.6 File ''locale.h''

69.6.1 Impostazione della configurazione locale

69.6.2 Composizione dei valori numerici

69.7 File ''ctype.h''

69.7.1 Funzioni ''is... «»''

69.7.2 macroistruzioni ''is...«»''

69.7.3 Funzioni di conversione

69.7.4 macroistruzioni di conversione

69.7.5 Esempio di utilizzo delle funzioni

69.8 File ''stdarg.h''

69.8.1 Realizzazione

69.8.2 Esempio di utilizzo delle macro

69.8.3 Promozione

69.9 File ''stdlib.h''

69.9.1 Tipi di dati speciali

69.9.2 Macro-variabili

69.9.3 Conversioni numeriche

69.9.4 Funzioni per la generazione di numeri in modo pseudo-casuale

69.9.5 Funzioni standard per la generazione di numeri pseudo-casuali

69.9.6 Amministrazione della memoria

69.9.7 Conclusione forzata del programma

69.9.8 Funzioni di comunicazione con l'ambiente

69.9.9 Funzioni di ricerca e riordino

69.9.10 Funzioni per l'aritmetica con i numeri interi

69.9.11 Funzioni per la gestione di caratteri estesi e sequenze multibyte

69.9.12 Funzione ''mblen«»''

69.9.13 Funzioni ''mbtowc«»'' e ''wctomb«»''

69.9.14 Funzioni ''mbstowcs«»'' e ''wcstombs«»''

69.10 File ''inttypes.h''

69.10.1 Divisione intera con interi di rango massimo

69.10.2 Macro-variabili in qualità di specificatori di conversione

69.10.3 Valore assoluto

69.10.4 Conversione da stringa a numero intero

69.11 File ''iso646.h''

69.12 File ''stdbool.h''

69.13 File ''stddef.h''

69.14 File ''string.h''

69.14.1 Copia

69.14.1.1 Funzione ''memcpy«»'' «memory copy»

69.14.1.2 Funzione ''memccpy«»''

69.14.1.3 Funzione ''memmove«»'' «memory move»

69.14.1.4 Funzione ''strcpy«»'' «string copy»

69.14.1.5 Funzione ''strncpy«»''

69.14.1.6 Funzione ''strdup«»''

69.14.2 Concatenamento

69.14.2.1 Funzione ''strcat«»'' «string cat»

69.14.2.2 Funzione ''strncat«»''

69.14.3 Comparazione

69.14.3.1 Funzione ''memcmp«»'' «memory compare»

69.14.3.2 Funzione ''strcmp«»'' «string compare»

69.14.3.3 Funzione ''strcoll«»'' «string collate compare»

69.14.3.4 Funzione ''strncmp«»''

69.14.3.5 Funzione ''strxfrm«»'' «string transform»

69.14.4 Ricerca

69.14.4.1 Funzione ''memchr«»'' «memory character»

69.14.4.2 Funzione ''strchr«»'' «string character»

69.14.4.3 Funzione ''strrchr«»'' «string character»

69.14.4.4 Funzione ''strspn«»'' «string span»

69.14.4.5 Funzione ''strcspn«»''

69.14.4.6 Funzione ''strpbrk«»'' «string point break»

69.14.4.7 Funzione ''strstr«»''

69.14.4.8 Funzione ''strtok«»'' «string token»

69.14.4.9 Funzione ''strtok.r«»''

69.14.5 Funzioni varie

69.14.5.1 Funzione ''memset«»'' «memory set»

69.14.5.2 Funzione ''strerror«»'' «string error»

69.14.5.3 Funzione ''strerror.r«»'' «string error»

69.14.5.4 Funzione ''strlen«»'' «string length»

69.15 File ''signal.h''

69.15.1 Dichiarazione contorta

69.15.2 Tipo speciale

69.15.3 Denominazione dei segnali

69.15.4 Segnali secondo POSIX

69.15.5 Gestori fittizi di segnali

69.15.6 Funzioni

69.15.7 Esempio

69.16 File ''time.h''

69.16.1 Il tempo di CPU

69.16.2 Rappresentazione interna del tempo

69.16.3 Rappresentazione strutturata del tempo

69.16.4 Funzioni per l'elaborazione di valori legati al tempo

69.16.4.1 Funzione ''time«»''

69.16.4.2 Funzione ''difftime«»''

69.16.4.3 Funzione ''mktime«»''

69.16.4.4 Funzioni ''gmtime«»'' e ''localtime«»''

69.16.5 Conversione in stringa

69.16.5.1 Funzione ''asctime«»''

69.16.5.2 Funzione ''ctime«»''

69.16.5.3 Funzione ''strftime«»''

69.17 File ''stdio.h''

69.17.1 Tipi

69.17.2 Macro-variabili varie

69.17.3 Ipotesi di gestione del tipo ''FILE''

69.17.4 Flussi standard

69.17.5 Funzioni per la rimozione e la ridenominazione dei file

69.17.6 Funzioni per la gestione dei file temporanei

69.17.7 Funzioni per l'apertura e la chiusura dei flussi di file

69.17.8 Funzioni per la gestione della memoria tampone

69.17.9 Funzioni per la composizione dell'output

69.17.9.1 Funzioni che ricevono gli argomenti direttamente

69.17.9.2 Funzioni che ricevono gli argomenti da un'altra funzione

69.17.10 Funzioni per l'interpretazione dell'input

69.17.10.1 Funzioni che ricevono gli argomenti direttamente

69.17.10.2 Funzioni che ricevono gli argomenti da un'altra funzione

69.17.11 Funzioni per la lettura e la scrittura di un carattere alla volta

69.17.12 Funzioni per l'input e l'output di file di testo

69.17.13 Funzioni per l'input e output diretto

69.17.14 Funzioni per il posizionamento

69.17.15 Accesso esclusivo ai flussi di file

69.17.16 Condotti

69.17.17 Informazioni sul terminale

69.17.18 Gestione degli errori

69.17.19 Realizzazione di ''vsnprintf«»'' e altre collegate

69.18 Riferimenti

70 Libreria POSIX

70.1 File ''sys/types.h''

70.2 File ''sys/stat.h''

70.2.1 Macro-variabili per la definizione del contenuto di un valore di tipo ''mode.t''

70.2.2 Struttura ''stat''

70.2.3 Prototipi di funzione

70.3 File ''strings.h''

70.3.1 Funzione ''ffs«»''

70.3.2 Funzioni ''strcasecmp«»'' e ''strncasecmp«»''

70.4 File ''fcntl.h''

70.4.1 Tipi di dati derivati

70.4.2 Opzioni per la funzione ''fcntl«»''

70.4.3 Gestione del blocco dei file

70.4.4 Funzioni

70.5 File ''unistd.h''

70.5.1 Denominazione dei descrittori di file

70.5.2 Verifica dei permessi di accesso

70.5.3 Funzioni

70.5.4 Funzioni di servizio per la gestione di file e directory

70.5.4.1 Funzione ''access«»''

70.5.4.2 Funzione ''getcwd«»''

70.5.4.3 Funzione ''chdir«»''

70.5.4.4 Funzioni ''link«»'' e ''unlink«»''

70.6 File ''dirent.h''

70.6.1 Struttura ''dirent''

70.6.2 Tipo ''DIR''

70.6.3 Prototipi di funzioni

70.7 File ''termios.h''

70.7.1 Tipi speciali

70.7.2 Tipo ''struct termios''

70.7.3 Codici di controllo

70.7.4 Indicatori per il membro ''c.iflag''

70.7.5 Indicatori per il membro ''c.oflag''

70.7.6 Indicatori per il membro ''c.cflag''

70.7.7 Indicatori per il membro ''c.lflag''

70.7.8 Funzioni

70.8 Riferimenti

u4 Tabelle riepilogative della libreria C e POSIX

u2.1 File ''stdarg.h''

u2.2 File ''limits.h''

u2.3 File ''stdint.h''

u2.4 File ''inttypes.h''

u2.5 File ''ctype.h''

u2.6 File ''stdlib.h''

u2.7 File ''string.h''

u2.8 File ''time.h''

u2.9 File ''stdio.h'' per la gestione dei file e degli errori

u2.10 File ''stdio.h'' per la composizione dell'output

u2.11 File ''stdio.h'' per l'interpretazione dell'input

u2.12 File ''assert.h''

u2.13 File ''stddef.h''

u2.14 File ''locale.h''

u2.15 File ''regex.h''

u2.16 File ''sys/stat.h''

71 Gettext

71.1 Principio di funzionamento

71.2 Fasi di preparazione

71.3 Abbinamento a un ''pacchetto''

71.4 Creazione e mantenimento dei file PO

71.4.1 Commenti ''fuzzy''

71.5 Gettext con i programmi Perl

71.5.1 Adattare il sorgente Perl per facilitare l'estrazione dei messaggi da tradurre

71.5.2 Alleviare gli inconvenienti di un modulo in più

Parte iv COBOL

72 Manuale COBOL

72.1 Caratteristiche del linguaggio

72.1.1 Organizzazione del programma in forma sorgente

72.1.2 Insieme dei caratteri

72.1.3 Struttura del linguaggio

72.1.3.1 Separatori

72.1.3.2 Stringhe: ''character-string''

72.1.3.3 Parole

72.1.3.4 Parole definite dall'utente

72.1.3.5 Parole riservate

72.1.3.6 Costanti figurative

72.1.3.7 Parole di caratteri speciali

72.1.3.8 Rappresentazione delle costanti

72.1.4 Notazione sintattica

72.2 Modulo di programmazione

72.2.1 Indicatore

72.2.2 Area A e area B

72.2.3 Interpunzione

72.3 Divisione ''IDENTIFICATION DIVISION''

72.3.1 Struttura

72.3.2 Codifica della divisione

72.4 Divisione ''ENVIRONMENT DIVISION''

72.4.1 Struttura

72.4.2 Sezione ''CONFIGURATION SECTION''

72.4.2.1 Paragrafo ''SOURCE-COMPUTER''

72.4.2.2 Paragrafo ''OBJECT-COMPUTER''

72.4.2.3 Paragrafo ''SPECIAL-NAMES''

72.4.3 Sezione ''INPUT-OUTPUT SECTION''

72.4.3.1 Paragrafo ''FILE-CONTROL''

72.4.3.2 File fisici e file ''logici''

72.4.3.3 Istruzione ''SELECT'' per i file sequenziali

72.4.3.4 Istruzione ''SELECT'' per i file relativi

72.4.3.5 Istruzione ''SELECT'' per i file a indice

72.4.3.6 Riordino e fusione

72.4.3.7 Paragrafo ''I-O-CONTROL''

72.5 Divisione ''DATA DIVISION''

72.5.1 Sezione ''FILE SECTION''

72.5.1.1 Indicatore di livello ''FD''

72.5.1.2 Indicatore di livello ''SD''

72.5.1.3 Dichiarazione ''BLOCK CONTAINS''

72.5.1.4 Dichiarazione ''DATA RECORD''

72.5.1.5 Dichiarazione ''LABEL RECORD''

72.5.1.6 Dichiarazione ''RECORD CONTAINS''

72.5.1.7 Dichiarazione ''CODE-SET''

72.5.1.8 Dichiarazione ''VALUE OF''

72.5.1.9 Descrizione del record

72.5.2 Sezione ''WORKING-STORAGE SECTION''

72.5.3 Altri livelli speciali

72.6 Descrizione delle variabili

72.6.1 Oggetto della dichiarazione

72.6.2 Ridefinizione di una variabile

72.6.3 Opzione ''PICTURE''

72.6.4 Opzione ''USAGE''

72.6.5 Opzione ''SIGN''

72.6.6 Opzione ''OCCURS''

72.6.7 Opzione ''SYNCHRONIZED''

72.6.8 Opzione ''JUSTIFIED RIGHT''

72.6.9 Opzione ''BLANK WHEN ZERO''

72.6.10 Opzione ''VALUE''

72.6.11 Opzione ''RENAMES''

72.7 Tabelle

72.7.1 Dichiarazione di una tabella

72.7.2 Riferimento al contenuto di una tabella

72.7.3 Indice

72.7.4 Tabelle di dimensione variabile

72.7.5 Tabelle ordinate

72.7.6 Scansione delle tabelle

72.8 Nomi di condizione, raggruppamento e qualificazione

72.8.1 Nomi di condizione

72.8.2 Raggruppamento

72.8.3 Qualificazione

72.9 Modello di definizione della variabile

72.9.1 Dichiarazione del modello di definizione della variabile

72.9.2 Variabili alfanumeriche

72.9.3 Variabili alfanumeriche modificate

72.9.4 Variabili numeriche

72.9.5 Variabili numeriche modificate

72.10 Note sull'utilizzo dell'insieme di caratteri universale con il COBOL

72.10.1 Stringhe letterali

72.10.2 modello di definizione delle variabili

72.10.3 Costanti figurative

72.11 Divisione ''PROCEDURE DIVISION''

72.11.1 Gruppo di sezioni ''DECLARATIVES''

72.11.2 Sezioni e segmenti

72.11.3 Gruppi di istruzioni e istruzioni condizionali

72.11.4 Sezioni, paragrafi e qualificazione

72.11.5 Espressioni aritmetiche

72.11.6 Espressioni condizionali

72.11.6.1 Condizioni di relazione

72.11.6.2 Condizioni di classe

72.11.6.3 Nomi di condizione

72.11.6.4 Condizioni di segno

72.11.6.5 Condizioni composte e negate

72.11.7 Avverbi comuni

72.12 Istruzioni della divisione ''PROCEDURE DIVISION''

72.12.1 Istruzione ''ACCEPT''

72.12.2 Istruzione ''ADD''

72.12.3 Istruzione ''CLOSE''

72.12.4 Istruzione ''COMPUTE''

72.12.5 Istruzione ''DELETE''

72.12.6 Istruzione ''DISPLAY''

72.12.7 Istruzione ''DIVIDE''

72.12.8 Istruzione ''EXIT''

72.12.9 Istruzione ''GO TO''

72.12.10 Istruzione ''IF''

72.12.11 Istruzione ''INSPECT''

72.12.12 Istruzione ''MOVE''

72.12.13 Istruzione ''MULTIPLY''

72.12.14 Istruzione ''OPEN''

72.12.15 Istruzione ''PERFORM''

72.12.15.1 Chiamata semplice

72.12.15.2 Chiamata ripetuta un certo numero di volte

72.12.15.3 Chiamata ripetuta con condizione di uscita

72.12.15.4 Chiamata ripetuta con condizione di uscita e incremento di contatori

72.12.16 Istruzione ''READ''

72.12.17 Istruzione ''REWRITE''

72.12.18 Istruzione ''SEARCH''

72.12.18.1 Ricerca sequenziale

72.12.18.2 Ricerca in una tabella ordinata

72.12.19 Istruzione ''SET''

72.12.20 Istruzione ''START''

72.12.21 Istruzione ''STOP RUN''

72.12.22 Istruzione ''STRING''

72.12.23 Istruzione ''SUBTRACT''

72.12.24 Istruzione ''WRITE''

72.13 Riordino e fusione

72.13.1 Riordino

72.13.2 Fusione

72.13.3 Gestire i dati in ingresso o in uscita attraverso delle procedure

72.13.4 Lettura del risultato dell'ordinamento o della fusione attraverso una procedura

72.13.5 Acquisizione dei dati per il riordino da una procedura

72.14 Riferimenti

73 Programmare in COBOL

73.1 Preparazione

73.1.1 Problema del modulo di programmazione

73.1.1.1 Compatibilità con i compilatori

73.1.2 Riepilogo di alcuni concetti importanti del linguaggio

73.1.3 TinyCOBOL

73.1.4 OpenCOBOL

73.2 Esempi elementari

73.2.1 ELM0100: prodotto tra due numeri

73.2.2 ELM0200: prodotto tra due numeri

73.2.3 ELM0300: prodotto tra due numeri

73.2.4 ELM0400: prodotto tra due numeri

73.2.5 ELM0500: prodotto tra due numeri

73.2.6 ELM0600: inserimento dati in un vettore

73.2.7 ELM0700: inserimento dati in un vettore

73.2.8 ELM0800: inserimento dati in un vettore

73.2.9 ELM0900: ricerca sequenziale all'interno di un vettore

73.2.10 ELM1000: ricerca sequenziale all'interno di un vettore

73.2.11 ELM1100: ricerca sequenziale all'interno di un vettore

73.2.12 ELM1300: creazione di un file sequenziale

73.2.13 ELM1400: estensione di un file sequenziale

73.2.14 ELM1500: lettura di un file sequenziale

73.3 Esempi elementari con i file

73.3.1 AGO-83-1: estensione di un file sequenziale

73.3.2 AGO-83-2: lettura sequenziale e ricerca di una chiave

73.3.3 AGO-83-3: estensione di un file relativo

73.3.4 AGO-83-4: lettura di un file relativo ad accesso diretto

73.3.5 AGO-83-5: creazione di un file a indice

73.3.6 AGO-83-6: lettura di un file a indice ad accesso diretto

73.3.7 AGO-83-8: lettura di un file a indice ad accesso dinamico

73.3.8 AGO-83-10: lettura di un file a indice ad accesso dinamico

73.3.9 AGO-83-12: lettura di un file a indice ad accesso dinamico

73.3.10 AGO-83-13: creazione di un file sequenziale con dati da rielaborare

73.3.11 AGO-83-14: lettura e riscrittura di un file sequenziale

73.3.12 AGO-83-15: estensione di un file sequenziale contenente aggiornamenti successivi

73.3.13 AGO-83-16: aggiornamento di un file a indice

73.3.14 AGO-83-18: fusione tra due file sequenziali ordinati

73.3.15 AGO-83-20: riordino attraverso la fusione

73.4 Approfondimento: una tecnica per simulare la ricorsione in COBOL

73.4.1 Il concetto di locale e di globale

73.4.2 La ricorsione

73.4.3 Proprietà del linguaggio ricorsivo

73.4.4 Descrizione della tecnica per simulare la ricorsione in COBOL

73.4.5 Torre di Hanoi

73.4.6 Quicksort «ordinamento non decrescente»

73.4.7 Permutazioni

73.4.8 Bibliografia

73.5 Riferimenti

Parte v Basi di dati

74 DBMS e SQL

74.1 Introduzione ai DBMS

74.1.1 Caratteristiche fondamentali

74.1.1.1 Livelli di astrazione dei dati

74.1.1.2 Ruoli e sigle standard

74.1.2 Modello relazionale

74.1.2.1 Relazioni collegate

74.1.2.2 Tipi di dati, domini e informazioni mancanti

74.1.2.3 Vincoli di validità

74.1.2.4 Chiavi

74.1.3 Gestione delle relazioni

74.1.3.1 Unione, intersezione e differenza

74.1.3.2 Ridenominazione degli attributi

74.1.3.3 Selezione, proiezione e congiunzione

74.1.3.4 Gestione dei valori nulli

74.1.3.5 Relazioni derivate e viste

74.2 Questioni organizzative generali dei DBMS comuni

74.2.1 Configurazione e basi di dati amministrative

74.2.2 Copie di sicurezza delle basi di dati

74.2.3 Comunicazione con il DBMS e accesso alle basi di dati

74.2.4 Utenze e privilegi

74.2.5 ODBC

74.3 Introduzione a SQL

74.3.1 Concetti fondamentali

74.3.2 Terminologia

74.4 DDL

74.4.1 Tipi di dati

74.4.1.1 Stringhe di caratteri

74.4.1.2 Valori numerici

74.4.1.3 Valori Data-orario

74.4.1.4 Intervalli di tempo

74.4.2 Operatori, funzioni ed espressioni

74.4.2.1 Operatori aritmetici

74.4.2.2 Operazioni con i valori data-orario e con intervalli di tempo

74.4.2.3 Operatori di confronto e operatori logici

74.4.3 Le relazioni dal punto di vista di SQL

74.4.3.1 Creazione di una relazione

74.4.3.2 Valori predefiniti

74.4.3.3 Vincoli interni alla relazione

74.4.3.4 Vincoli esterni alla relazione

74.4.3.5 Modifica della struttura della relazione

74.4.3.6 Eliminazione di una relazione

74.5 DML

74.5.1 Inserimento, eliminazione e modifica dei dati

74.5.1.1 Inserimento di tuple

74.5.1.2 Aggiornamento delle tuple

74.5.1.3 Eliminazione di tuple

74.5.2 Interrogazioni di relazioni

74.5.2.1 Interrogazioni elementari

74.5.2.2 Interrogazioni ordinate

74.5.2.3 Interrogazioni simultanee di più relazioni

74.5.2.4 Condizioni

74.5.2.5 Aggregazioni

74.5.2.6 Raggruppamenti

74.5.3 Trasferimento di dati in un'altra relazione

74.5.3.1 Creazione di una nuova relazione a partire da altre

74.5.3.2 Inserimento in una relazione esistente

74.5.4 Viste

74.5.5 Cursori

74.5.5.1 Dichiarazione e apertura

74.5.5.2 Scansione

74.5.5.3 Chiusura

74.6 DCL

74.6.1 Gestione delle utenze

74.6.2 Gestione delle basi di dati

74.6.3 Gestione dei privilegi standard

74.6.4 Controllo delle transazioni

74.7 Riferimenti

75 PostgreSQL

75.1 Struttura e preparazione

75.1.1 Struttura dei dati nel file system

75.1.2 Amministratore

75.1.3 Creazione del sistema di basi di dati

75.1.4 Avvio del servizio

75.1.5 Configurazione del DBMS

75.1.6 Accesso e autenticazione

75.2 Gestione del DBMS

75.2.1 Accesso a una base di dati

75.2.1.1 Variabile di ambiente ''PAGER''

75.2.2 Organizzazione degli utenti

75.2.3 Creazione ed eliminazione delle basi di dati

75.2.4 La base di dati amministrativa

75.2.5 Manutenzione delle basi di dati

75.2.6 Copie di sicurezza

75.2.7 Importazione ed esportazione dei dati

75.3 Il linguaggio

75.3.1 Prima di iniziare

75.3.2 Tipi di dati e rappresentazione

75.3.3 Funzioni

75.3.4 Esempi comuni

75.3.4.1 Creazione di una relazione

75.3.4.2 Modifica della relazione

75.3.4.3 Inserimento dati in una relazione

75.3.4.4 Eliminazione di una relazione

75.3.4.5 Interrogazioni semplici

75.3.4.6 Interrogazioni simultanee di più relazioni

75.3.4.7 Alias

75.3.4.8 Viste

75.3.4.9 Aggiornamento delle tuple

75.3.4.10 Cancellazione delle tuple

75.3.4.11 Creazione di una nuova relazione a partire da altre

75.3.4.12 Inserimento in una relazione esistente

75.3.4.13 Controllare gli accessi a una relazione

75.3.5 Controllo delle transazioni

75.3.6 Cursori

75.3.7 Impostazione dell'ora locale

75.4 Accesso attraverso PgAccess

75.4.1 Accesso alla base di dati

75.4.2 Gli ''oggetti'' secondo PgAccess

75.4.3 Relazioni

75.4.4 Interrogazioni e viste

75.4.5 Stampe

75.5 Accesso attraverso WWW-SQL

75.5.1 Principio di funzionamento

75.5.2 Preparazione delle basi di dati e accesso

75.5.3 Linguaggio di WWW-SQL

75.5.3.1 Espressioni

75.5.3.2 Strutture di controllo

75.5.4 Istruzioni

75.5.4.1 Apertura e chiusura di una connessione, e accesso a una base di dati

75.5.4.2 Istruzioni di interrogazione normali

75.5.4.3 Istruzioni per la selezione dettagliata di tuple e attributi

75.6 Riferimenti

76 MySQL

76.1 Struttura e preparazione

76.1.1 Configurazione del servente

76.1.1.1 Controllo dell'accesso dalla rete

76.1.2 Avvio e arresto del servente

76.1.2.1 Struttura iniziale dei dati

76.1.3 Utenze

76.1.4 Accesso comune al servente

76.1.5 Base di dati amministrativa

76.2 Gestione del DBMS

76.2.1 Controllo delle utenze e degli accessi

76.2.2 Amministrazioni varie attraverso il sistema operativo

76.2.3 Ripristino della parola d'ordine dell'amministratore

76.2.4 Archiviazione e recupero delle basi di dati

76.3 Riferimenti

77 SQLite

77.1 Utilizzo generale

77.1.1 Utilizzo di ''sqlite3''

77.1.2 Copie di sicurezza

77.1.3 Accesso simultaneo a più basi di dati

77.2 Esempi comuni

77.2.1 Creazione di una relazione

77.2.2 Modifica della relazione

77.2.3 Inserimento dati in una relazione

77.2.4 Eliminazione di una relazione

77.2.5 Interrogazioni semplici

77.2.6 Interrogazioni simultanee di più relazioni

77.2.7 Alias

77.2.8 Viste

77.2.9 Aggiornamento delle tuple

77.2.10 Cancellazione delle tuple

77.2.11 Inserimento in una relazione esistente

77.3 Riferimenti

78 ODBC

78.1 DSN

78.2 unixODBC

78.3 ODBCConfig

78.4 Accesso a ODBC tramite ''isql'' o ''iusql''

78.5 Riferimenti

79 SQL: lezioni pratiche e verifiche

79.1 Creazione ed eliminazione delle relazioni

79.1.1 Creazione di una relazione

79.1.2 Eliminazione di una relazione

79.1.3 Verifica sulla creazione e popolazione della relazione ''Articoli''

79.1.4 Verifica sulla creazione e popolazione della relazione ''Causali''

79.1.5 Verifica sulla creazione e popolazione della relazione ''Fornitori''

79.1.6 Verifica sulla creazione e popolazione della relazione ''Clienti''

79.1.7 Verifica sulla creazione e popolazione della relazione ''Movimenti''

79.1.8 Conclusione

79.2 Interrogazione semplice di una relazione

79.2.1 Interrogazione completa

79.2.2 Interrogazione con selezione di alcuni attributi

79.2.3 Stampa del contenuto di una relazione

79.2.4 Verifica sull'interrogazione della relazione ''Articoli''

79.2.5 Verifica sull'interrogazione delle relazioni ''Fornitori'' e ''Clienti''

79.2.6 Conclusione

79.3 Interrogazione ordinata di una relazione

79.3.1 Interrogazione ordinata

79.3.2 Verifica sull'interrogazione ordinata della relazione ''Articoli''

79.3.3 Verifica sull'interrogazione ordinata della relazione ''Clienti''

79.3.4 Verifica sull'interrogazione ordinata della relazione ''Causali''

79.4 Interrogazione selettiva di una relazione

79.4.1 Interrogazione selettiva

79.4.2 Verifica sull'interrogazione selettiva della relazione ''Articoli''

79.4.3 Verifica sull'interrogazione selettiva e ordinata della relazione ''Articoli''

79.4.4 Verifica sull'interrogazione selettiva della relazione ''Causali''

79.5 Interrogazioni simultanee di più relazioni

79.5.1 Interrogazione simultanea delle relazioni ''Movimenti'' e ''Articoli''

79.5.2 Interrogazione simultanea delle relazioni ''Movimenti'', ''Articoli'' e ''Causali''

79.5.3 Verifica sull'interrogazione simultanea delle relazioni ''Movimenti'' e ''Causali''

79.5.4 Verifica sull'interrogazione simultanea delle relazioni ''Movimenti'', ''Causali'' e ''Clienti''

79.5.5 Verifica sull'interrogazione ordinata e simultanea delle relazioni ''Movimenti'', ''Causali'' e ''Clienti''

79.6 Interrogazioni simultanee di più relazioni e alias

79.6.1 Interrogazione simultanea delle relazioni ''Movimenti'', ''Articoli'' e ''Causali''

79.6.2 Verifica sull'interrogazione simultanea delle relazioni ''Movimenti'' e ''Causali''

79.6.3 Verifica sull'interrogazione simultanea delle relazioni ''Movimenti'', ''Causali'' e ''Clienti''

79.6.4 Conclusione

79.7 Viste

79.7.1 Creazione della vista ''Listino''

79.7.2 Creazione della vista ''Resi''

79.7.3 Verifica sulla creazione della vista ''Acquisti''

79.7.4 Verifica sulla creazione della vista ''Vendite''

79.7.5 Conclusione

79.8 Modifica del contenuto delle tuple

79.8.1 Modifica di una causale di magazzino

79.8.2 Modifica di diverse causali di magazzino

79.8.3 Verifica sulla modifica della relazione ''Articoli''

79.8.4 Verifica sulla modifica delle relazioni ''Clienti'' e ''Fornitori''

79.8.5 Conclusione

79.9 Eliminazione delle tuple

79.9.1 Cancellazione di una causale di magazzino

79.9.2 Cancellazione di diverse causali di magazzino

79.9.3 Verifica sulla cancellazione di alcuni articoli

79.9.4 Conclusione

79.10 Grilletti per il controllo del dominio degli attributi

79.10.1 Creazione dei grilletti ''Causali.ins'' e ''Causali.upd''

79.10.2 Creazione del grilletto ''Articoli.ins'' e ''Articoli.upd''

79.10.3 Verifica sulla creazione dei grilletti ''Movimenti.ins'' e ''Movimenti.upd''

79.10.4 Conclusione

79.11 Grilletti per il controllo della validità esterna

79.11.1 Controllo del codice articolo tra la relazione ''Movimenti'' e la relazione ''Articoli''

79.11.2 Controllo del codice cliente tra la relazione ''Movimenti'' e la relazione ''Clienti''

79.11.3 Verifica sulla creazione dei grilletti ''Movimenti.ins'', ''Movimenti.upd'' e ''Causali.del''

79.11.4 Verifica sulla creazione dei grilletti ''Movimenti.ins'', ''Movimenti.upd'' e ''Fornitori.del''

79.11.5 Conclusione

79.12 Selezione di attributi virtuali, ottenuti da un'espressione

79.12.1 Interrogazione della relazione ''Movimenti'' in modo da ottenere il valore unitario

79.12.2 Vista della relazione ''Movimenti'' in modo da ottenere il valore unitario

79.12.3 Verifica sulla creazione della vista ''MovimentiExtra''

79.12.4 Conclusione

79.13 Aggregazioni

79.13.1 Aggregazioni banali

79.13.2 Verifica sulla creazione della vista ''SituazioneMagazzino''

79.13.3 Verifica sulla creazione della vista ''SituazioneMagazzino''

79.13.4 Verifica sulla creazione della vista ''SituazioneMagazzino''

79.13.5 Conclusione

79.14 Inserimento automatico del costo medio

79.14.1 Vista ''CostoMedioValido''

79.14.2 Grilletto ''ValorizzazioneScarichi''

Parte vi Corso basilare di programmazione

u5 Introduzione

u2.1 Programma didattico

u2.2 Strumenti per la compilazione

80 Dai sistemi di numerazione all'organizzazione della memoria

80.1 Sistemi di numerazione

80.1.1 Sistema decimale

80.1.2 Sistema binario

80.1.2.1 Esercizio

80.1.2.2 Esercizio

80.1.3 Sistema ottale

80.1.3.1 Esercizio

80.1.3.2 Esercizio

80.1.4 Sistema esadecimale

80.1.4.1 Esercizio

80.1.4.2 Esercizio

80.2 Conversioni numeriche di valori interi

80.2.1 Numerazione ottale

80.2.1.1 Esercizio

80.2.1.2 Esercizio

80.2.2 Numerazione esadecimale

80.2.2.1 Esercizio

80.2.2.2 Esercizio

80.2.3 Numerazione binaria

80.2.3.1 Esercizio

80.2.3.2 Esercizio

80.2.4 Conversione tra ottale, esadecimale e binario

80.2.4.1 Esercizio

80.2.4.2 Esercizio

80.3 Conversioni numeriche di valori non interi

80.3.1 Conversione da base 10 ad altre basi

80.3.1.1 Esercizio

80.3.1.2 Esercizio

80.3.1.3 Esercizio

80.3.2 Conversione a base 10 da altre basi

80.3.2.1 Esercizio

80.3.2.2 Esercizio

80.3.2.3 Esercizio

80.3.3 Conversione tra ottale, esadecimale e binario

80.3.3.1 Esercizio

80.3.3.2 Esercizio

80.4 Operazioni elementari e sistema di rappresentazione binaria dei valori

80.4.1 Complemento alla base di numerazione

80.4.1.1 Esercizio

80.4.1.2 Esercizio

80.4.2 Complemento a uno e complemento a due

80.4.2.1 Esercizio

80.4.2.2 Esercizio

80.4.3 Addizione binaria

80.4.4 Sottrazione binaria

80.4.5 Moltiplicazione binaria

80.4.6 Divisione binaria

80.4.7 Rappresentazione binaria di numeri interi senza segno

80.4.8 Rappresentazione binaria di numeri interi con segno

80.4.8.1 Esercizio

80.4.8.2 Esercizio

80.4.8.3 Esercizio

80.4.8.4 Esercizio

80.4.8.5 Esercizio

80.4.8.6 Esercizio

80.4.9 Cenni alla rappresentazione binaria di numeri in virgola mobile

80.5 Calcoli con i valori binari rappresentati nella forma usata negli elaboratori

80.5.1 Modifica della quantità di cifre di un numero binario intero

80.5.1.1 Esercizio

80.5.1.2 Esercizio

80.5.1.3 Esercizio

80.5.2 Sommatorie con i valori interi con segno

80.5.2.1 Esercizio

80.5.2.2 Esercizio

80.5.2.3 Esercizio

80.5.3 Somme e sottrazioni con i valori interi senza segno

80.5.3.1 Esercizio

80.5.3.2 Esercizio

80.5.3.3 Esercizio

80.5.3.4 Esercizio

80.5.4 Somme e sottrazioni in fasi successive

80.6 Scorrimenti, rotazioni, operazioni logiche

80.6.1 Scorrimento logico

80.6.1.1 Esercizio

80.6.1.2 Esercizio

80.6.2 Scorrimento aritmetico

80.6.2.1 Esercizio

80.6.2.2 Esercizio

80.6.2.3 Esercizio

80.6.3 Moltiplicazione

80.6.4 Divisione

80.6.5 Rotazione

80.6.6 Operatori logici

80.6.6.1 Esercizio

80.6.6.2 Esercizio

80.6.6.3 Esercizio

80.6.6.4 Esercizio

80.7 Organizzazione della memoria

80.7.1 Pila per salvare i dati

80.7.2 Chiamate di funzioni

80.7.3 Variabili e array

80.7.3.1 Esercizio

80.7.3.2 Esercizio

80.7.3.3 Esercizio

80.7.3.4 Esercizio

80.7.3.5 Esercizio

80.7.4 Ordine dei byte

80.7.4.1 Esercizio

80.7.5 Stringhe, array e puntatori

80.7.5.1 Esercizio

80.7.5.2 Esercizio

80.7.5.3 Esercizio

80.7.6 Utilizzo della memoria

80.8 Riferimenti

80.9 Soluzioni agli esercizi proposti

81 Nozioni minime sul linguaggio C

81.1 Primo approccio al linguaggio C

81.1.1 Struttura fondamentale

81.1.2 Ciao mondo!

81.1.2.1 Esercizio

81.1.2.2 Esercizio

81.1.3 Compilazione

81.1.3.1 Esercizio

81.1.4 Emissione dati attraverso ''printf«»''

81.1.4.1 Esercizio

81.2 Variabili e tipi del linguaggio C

81.2.1 Bit, byte e caratteri

81.2.1.1 Esercizio

81.2.2 Tipi primitivi

81.2.2.1 Esercizio

81.2.2.2 Esercizio

81.2.2.3 Esercizio

81.2.2.4 Esercizio

81.2.3 Costanti letterali comuni

81.2.3.1 Esercizio

81.2.3.2 Esercizio

81.2.4 Caratteri privi di rappresentazione grafica

81.2.5 Valore numerico delle costanti carattere

81.2.5.1 Esercizio

81.2.6 Campo di azione delle variabili

81.2.7 Dichiarazione delle variabili

81.2.7.1 Esercizio

81.2.8 Il tipo indefinito: ''void''

81.3 Operatori ed espressioni del linguaggio C

81.3.1 Tipo del risultato di un'espressione

81.3.1.1 Esercizio

81.3.2 Operatori aritmetici

81.3.2.1 Esercizio

81.3.2.2 Esercizio

81.3.3 Operatori di confronto

81.3.3.1 Esercizio

81.3.3.2 Esercizio

81.3.4 Operatori logici

81.3.4.1 Esercizio

81.3.5 Operatori binari

81.3.5.1 Esercizio

81.3.5.2 Esercizio

81.3.6 Conversione di tipo

81.3.6.1 Esercizio

81.3.7 Espressioni multiple

81.3.7.1 Esercizio

81.3.7.2 Esercizio

81.4 Strutture di controllo di flusso del linguaggio C

81.4.1 Struttura condizionale: ''if''

81.4.1.1 Esercizio

81.4.1.2 Esercizio

81.4.2 Struttura di selezione: ''switch''

81.4.2.1 Esercizio

81.4.3 Iterazione con condizione di uscita iniziale: ''while''

81.4.3.1 Esercizio

81.4.3.2 Esercizio

81.4.4 Iterazione con condizione di uscita finale: ''do-while''

81.4.4.1 Esercizio

81.4.5 Ciclo enumerativo: ''for''

81.4.5.1 Esercizio

81.4.5.2 Esercizio

81.5 Funzioni del linguaggio C

81.5.1 Dichiarazione di un prototipo

81.5.1.1 Esercizio

81.5.2 Descrizione di una funzione

81.5.2.1 Esercizio

81.5.3 Vincoli nei nomi

81.5.4 I/O elementare

81.5.5 Restituzione di un valore

81.5.5.1 Esercizio

81.6 Riferimenti

81.7 Soluzioni agli esercizi proposti

82 Puntatori, array e stringhe in C

82.1 Espressioni a cui si assegnano dei valori

82.1.1 Esercizio

82.2 Puntatori

82.3 Dichiarazione di una variabile puntatore

82.3.1 Esercizio

82.4 Dereferenziazione

82.4.1 Esercizio

82.5 ''Little endian'' e ''big endian''

82.5.1 Esercizio

82.6 Chiamata di funzione con puntatori

82.6.1 Esercizio

82.6.2 Esercizio

82.7 Array

82.8 Array a una dimensione

82.8.1 Esercizio

82.8.2 Esercizio

82.8.3 Esercizio

82.9 Array multidimensionali

82.9.1 Esercizio

82.9.2 Esercizio

82.9.3 Esercizio

82.10 Natura dell'array

82.10.1 Esercizio

82.10.2 Esercizio

82.11 Array e funzioni

82.12 Aritmetica dei puntatori

82.12.1 Esercizio

82.13 Stringhe

82.13.1 Esercizio

82.13.2 Esercizio

82.14 Puntatori a puntatori

82.14.1 Esercizio

82.15 Puntatori a più dimensioni

82.15.1 Esercizio

82.16 Parametri della funzione main«»

82.17 Puntatori a variabili distrutte

82.18 Soluzioni agli esercizi proposti

u6 Indice analitico del volume

Volume IV os32

Parte vii Progetto

83 Primi passi verso un sistema per hardware x86-32

83.1 Privilegi dei segmenti

83.1.1 DPL, CPL e RPL

83.1.2 Pila dei dati

83.1.3 Segmenti, selettori e registri

83.2 Funzioni di utilità generale

83.2.1 Porte I/O

83.2.2 Sospensione e ripristino delle interruzioni hardware

83.3 Utilizzo dello schermo VGA a caratteri

83.3.1 Memoria dello schermo a caratteri

83.3.2 Cursore

83.4 GDT

83.4.1 Privilegi

83.4.2 Organizzazione e contenuti della tabella GDT

83.4.3 Struttura effettiva della tabella GDT

83.4.4 Tabella GDT elementare

83.4.5 Costruzione di una tabella GDT

83.4.6 Attivazione della tabella GDT

83.4.7 Verifica della tabella GDT

83.4.8 Istruzioni per l'attivazione

83.5 IDT

83.5.1 Struttura della tabella IDT

83.5.2 Codice per la costruzione di una tabella IDT

83.5.3 Attivazione della tabella IDT

83.5.4 Lo stato della pila al verificarsi di un'interruzione

83.5.5 Bozza di un gestore di interruzioni

83.5.6 Una funzione banale per il controllo delle interruzioni

83.5.7 Privilegi e protezioni

83.6 Gestione delle interruzioni

83.6.1 Eccezioni

83.6.2 PIC e rimappatura delle interruzioni

83.6.3 Procedura generalizzata per la gestione delle interruzioni

83.6.4 Attivazione

83.7 Gestione del temporizzatore: PIT, ovvero ''programmable interval timer''

83.8 Tastiera PS/2

83.9 Gestione di dischi PATA

83.9.1 Modalità di accesso

83.9.2 Registri per la gestione delle unità ATA

83.9.3 Alcuni comandi

83.9.3.1 Comando READ SECTORS

83.9.3.2 Comando WRITE SECTORS

83.9.3.3 Comando FLUSH CACHE

83.9.3.4 Comando IDENTIFY DEVICE

83.9.4 Individuazione dei bus utilizzati

83.9.5 Azzeramento dello stato dei dispositivi

83.9.6 Controllo delle interruzioni

83.9.7 Verifica dell'esito di un comando

83.9.8 Identificazione delle unità

83.9.9 Scomposizione dell'indirizzo

83.9.10 Lettura LBA28 PIO

83.9.11 Scrittura LBA28 PIO

83.10 PCI

83.10.1 Registri e porte

83.10.2 Strutture dei dati

83.10.3 Raccolta delle informazioni

83.11 NE2000

83.11.1 Memoria interna

83.11.2 Coda di ricezione

83.11.3 Tampone di trasmissione

83.11.4 Trasferimento dati tra la memoria interna e quella dell'elaboratore

83.11.5 Registri e porte

83.11.6 Procedura di riconoscimento

83.11.7 Procedura di inizializzazione

83.11.8 Trasmissione di un pacchetto

83.11.9 Ricezione

83.12 IPv4 in una rete Ethernet

83.12.1 ARP

83.12.2 IPv4

83.12.3 Il codice di controllo del TCP/IP

83.12.4 ICMP

83.12.5 UDP

83.12.6 TCP

83.13 Riferimenti

84 Studio per un sistema a 32 bit

84.1 Introduzione a os32

84.1.1 Organizzazione

84.1.2 Le directory

84.1.3 La struttura degli eseguibili

84.1.4 Tabelle

84.1.5 Guida di stile

84.1.6 Tipi derivati speciali

84.2 Caricamento ed esecuzione del kernel

84.2.1 Multiboot

84.2.2 File ''kernel.ld'', ''kernel/main/crt0.s'' e ''kernel/main/stack.s''

84.2.3 File ''kernel/main.h'' e ''kernel/main/* ''

84.3 Funzioni interne legate all'hardware, nei file ''kernel/ibm.i386.h'' e ''kernel/ibm.i386/... ''

84.3.1 Funzioni per l'input e l'output con le porte interne

84.3.2 Funzioni accessorie alla gestione delle interruzioni hardware

84.3.3 Gestione della tabella GDT

84.3.4 Gestione della tabella IDT

84.3.5 Gestione delle interruzioni

84.4 Gestione dei processi

84.4.1 File ''kernel/ibm.i386/isr.s''

84.4.1.1 Particolarità della routine ''isr.32'', ovvero ''irq.timer''

84.4.1.2 Particolarità della routine ''isr.128''

84.4.2 La tabella dei processi

84.4.3 Chiamate di sistema

84.4.4 Funzione ''proc.init«»''

84.4.5 Funzione ''sysroutine«»''

84.4.6 Funzione ''proc.scheduler«»''

84.4.7 Programmazione dei segnali

84.4.8 Salvataggio e recupero della pila per i ''salti non locali''

84.5 Caricamento ed esecuzione delle applicazioni

84.5.1 Caricamento in memoria

84.5.2 Il codice iniziale dell'applicativo

84.6 Gestione della memoria

84.6.1 File ''kernel/memory.h'' e ''kernel/memory/... ''

84.6.2 Scansione della mappa di memoria

84.7 Dispositivi

84.7.1 File ''kernel/dev.h'' e ''kernel/dev/... ''

84.7.2 File ''kernel/blk.h'' e ''kernel/blk/... ''

84.7.3 Numero primario e numero secondario

84.7.4 Dispositivi previsti

84.7.5 Gestione del terminale

84.7.5.1 Gestione della tastiera

84.7.5.2 Gestione dello schermo

84.7.5.3 Configurazione del terminale

84.7.6 Gestione delle unità di memorizzazione in generale

84.7.7 Gestione delle unità PATA

84.8 Gestione del file system

84.8.1 File ''kernel/fs/sb.... ''

84.8.2 File ''kernel/fs/zone.... ''

84.8.3 File ''kernel/fs/inode.... ''

84.8.4 Fasi dell'innesto di un file system

84.8.5 Condotti

84.8.6 File ''kernel/fs/file.... ''

84.8.7 Descrittori di file

84.8.8 File ''kernel/fs/path.... ''

84.8.9 File ''kernel/fs/fd.... ''

84.9 Gestione delle interfacce di rete

84.9.1 Gestione dei dispositivi NE2K

84.9.2 Tabella delle interfacce e funzioni accessorie

84.9.3 Tabella ARP

84.10 Gestione di IPv4

84.10.1 Tabella IPv4

84.10.2 Ricezione di un pacchetto IPv4

84.10.3 Instradamenti

84.11 Gestione del protocollo ICMP

84.12 Gestione dei protocolli UDP e TCP

84.12.1 UDP

84.12.2 TCP

Parte viii Manuale

85 Gestione

85.1 Disco fisso in un file-immagine

85.2 Configurazione dell'avvio e opzioni del kernel

85.3 Configurazione per l'uso della rete

85.4 Avvio di os32

85.5 Interazione con il kernel

85.6 Avvio e conclusione del sistema ''normale''

86 Sezione 1: programmi eseguibili o comandi interni di shell

86.1 os32: aaa«1»

86.2 os32: allocated«1»

86.3 os32: bbb«1»

86.4 os32: cat«1»

86.5 os32: ccc«1»

86.6 os32: chgrp«1»

86.7 os32: chmod«1»

86.8 os32: chown«1»

86.9 os32: cp«1»

86.10 os32: date«1»

86.11 os32: ed«1»

86.12 os32: kill«1»

86.13 os32: ln«1»

86.14 os32: login«1»

86.15 os32: ls«1»

86.16 os32: man«1»

86.17 os32: mkdir«1»

86.18 os32: mmcheck«1»

86.19 os32: more«1»

86.20 os32: nc«1»

86.21 os32: ps«1»

86.22 os32: rm«1»

86.23 os32: rmdir«1»

86.24 os32: shell«1»

86.25 os32: t.«1»

86.26 os32: touch«1»

86.27 os32: tty«1»

86.28 os32: yes«1»

87 Sezione 2: chiamate di sistema

87.1 os32: .Exit«2»

87.2 os32: .exit«2»

87.3 os32: accept«2»

87.4 os32: bind«2»

87.5 os32: brk«2»

87.6 os32: chdir«2»

87.7 os32: chmod«2»

87.8 os32: chown«2»

87.9 os32: clock«2»

87.10 os32: close«2»

87.11 os32: connect«2»

87.12 os32: dup«2»

87.13 os32: dup2«2»

87.14 os32: execve«2»

87.15 os32: fchdir«2»

87.16 os32: fchmod«2»

87.17 os32: fchown«2»

87.18 os32: fcntl«2»

87.19 os32: fork«2»

87.20 os32: fstat«2»

87.21 os32: getcwd«2»

87.22 os32: getgid«2»

87.23 os32: geteuid«2»

87.24 os32: getpgrp«2»

87.25 os32: getpid«2»

87.26 os32: getppid«2»

87.27 os32: getuid«2»

87.28 os32: ipconfig«2»

87.29 os32: kill«2»

87.30 os32: link«2»

87.31 os32: listen«2»

87.32 os32: longjmp«2»

87.33 os32: lseek«2»

87.34 os32: mkdir«2»

87.35 os32: mknod«2»

87.36 os32: mount«2»

87.37 os32: open«2»

87.38 os32: pipe«2»

87.39 os32: read«2»

87.40 os32: recvfrom«2»

87.41 os32: rmdir«2»

87.42 os32: routeadd«2»

87.43 os32: routedel«2»

87.44 os32: sbrk«2»

87.45 os32: send«2»

87.46 os32: setegid«2»

87.47 os32: seteuid«2»

87.48 os32: setgid«2»

87.49 os32: setjmp«2»

87.50 os32: setpgrp«2»

87.51 os32: setuid«2»

87.52 os32: signal«2»

87.53 os32: sleep«2»

87.54 os32: socket«2»

87.55 os32: stat«2»

87.56 os32: sys«2»

87.57 os32: stime«2»

87.58 os32: tcgetattr«2»

87.59 os32: time«2»

87.60 os32: umask«2»

87.61 os32: umount«2»

87.62 os32: unlink«2»

87.63 os32: wait«2»

87.64 os32: write«2»

87.65 os32: z«2»

87.66 os32: z.perror«2»

87.67 os32: z.printf«2»

87.68 os32: z.vprintf«2»

88 Sezione 3: funzioni di libreria

88.1 os32: .gcc«3»

88.2 os32: abort«3»

88.3 os32: abs«3»

88.4 os32: access«3»

88.5 os32: asctime«3»

88.6 os32: assert«3»

88.7 os32: atexit«3»

88.8 os32: atoi«3»

88.9 os32: atol«3»

88.10 os32: basename«3»

88.11 os32: byteorder«3»

88.12 os32: clearerr«3»

88.13 os32: closedir«3»

88.14 os32: creat«3»

88.15 os32: ctime«3»

88.16 os32: dirname«3»

88.17 os32: div«3»

88.18 os32: endgrent«3»

88.19 os32: endpwent«3»

88.20 os32: errno«3»

88.21 os32: exec«3»

88.22 os32: execl«3»

88.23 os32: execle«3»

88.24 os32: execlp«3»

88.25 os32: execv«3»

88.26 os32: execvp«3»

88.27 os32: exit«3»

88.28 os32: fclose«3»

88.29 os32: feof«3»

88.30 os32: ferror«3»

88.31 os32: fflush«3»

88.32 os32: fgetc«3»

88.33 os32: fgetpos«3»

88.34 os32: fgets«3»

88.35 os32: fileno«3»

88.36 os32: fopen«3»

88.37 os32: fprintf«3»

88.38 os32: fputc«3»

88.39 os32: fputs«3»

88.40 os32: fread«3»

88.41 os32: free«3»

88.42 os32: freopen«3»

88.43 os32: fscanf«3»

88.44 os32: fseek«3»

88.45 os32: fseeko«3»

88.46 os32: fsetpos«3»

88.47 os32: ftell«3»

88.48 os32: ftello«3»

88.49 os32: fwrite«3»

88.50 os32: getc«3»

88.51 os32: getchar«3»

88.52 os32: getenv«3»

88.53 os32: getgrent«3»

88.54 os32: getgrnam«3»

88.55 os32: getpwuid«3»

88.56 os32: getopt«3»

88.57 os32: getpwent«3»

88.58 os32: getpwnam«3»

88.59 os32: getpwuid«3»

88.60 os32: gets«3»

88.61 os32: gmtime«3»

88.62 os32: htonl«3»

88.63 os32: htons«3»

88.64 os32: imaxabs«3»

88.65 os32: imaxdiv«3»

88.66 os32: inet.ntop«3»

88.67 os32: inet.pton«3»

88.68 os32: input.line«3»

88.69 os32: isatty«3»

88.70 os32: labs«3»

88.71 os32: ldiv«3»

88.72 os32: llabs«3»

88.73 os32: lldiv«3»

88.74 os32: major«3»

88.75 os32: makedev«3»

88.76 os32: malloc«3»

88.77 os32: memccpy«3»

88.78 os32: memchr«3»

88.79 os32: memcmp«3»

88.80 os32: memcpy«3»

88.81 os32: memmove«3»

88.82 os32: memset«3»

88.83 os32: minor«3»

88.84 os32: mktime«3»

88.85 os32: namep«3»

88.86 os32: ntohl«3»

88.87 os32: ntohs«3»

88.88 os32: offsetof«3»

88.89 os32: opendir«3»

88.90 os32: perror«3»

88.91 os32: printf«3»

88.92 os32: putc«3»

88.93 os32: putchar«3»

88.94 os32: putenv«3»

88.95 os32: puts«3»

88.96 os32: qsort«3»

88.97 os32: rand«3»

88.98 os32: readdir«3»

88.99 os32: realloc«3»

88.100 os32: rewind«3»

88.101 os32: rewinddir«3»

88.102 os32: scanf«3»

88.103 os32: setbuf«3»

88.104 os32: setenv«3»

88.105 os32: setgrent«3»

88.106 os32: setpwent«3»

88.107 os32: setvbuf«3»

88.108 os32: snprintf«3»

88.109 os32: sprintf«3»

88.110 os32: srand«3»

88.111 os32: sscanf«3»

88.112 os32: stdio«3»

88.113 os32: strcat«3»

88.114 os32: strchr«3»

88.115 os32: strcmp«3»

88.116 os32: strcoll«3»

88.117 os32: strcpy«3»

88.118 os32: strcspn«3»

88.119 os32: strdup«3»

88.120 os32: strerror«3»

88.121 os32: strlen«3»

88.122 os32: strncat«3»

88.123 os32: strncmp«3»

88.124 os32: strncpy«3»

88.125 os32: strpbrk«3»

88.126 os32: strrchr«3»

88.127 os32: strspn«3»

88.128 os32: strstr«3»

88.129 os32: strtok«3»

88.130 os32: strtol«3»

88.131 os32: strtoul«3»

88.132 os32: strxfrm«3»

88.133 os32: ttyname«3»

88.134 os32: unsetenv«3»

88.135 os32: vfprintf«3»

88.136 os32: vfscanf«3»

88.137 os32: vprintf«3»

88.138 os32: vscanf«3»

88.139 os32: vsnprintf«3»

88.140 os32: vsprintf«3»

88.141 os32: vsscanf«3»

89 Sezione 4: file speciali

89.1 os32: console«4»

89.2 os32: ata«4»

89.3 os32: kmem.arp«4»

89.4 os32: kmem.file«4»

89.5 os32: kmem.inode«4»

89.6 os32: kmem.mmp«4»

89.7 os32: kmem.net«4»

89.8 os32: kmem.ps«4»

89.9 os32: kmem.route«4»

89.10 os32: kmem.sb«4»

89.11 os32: mem«4»

89.12 os32: null«4»

89.13 os32: port«4»

89.14 os32: tty«4»

89.15 os32: zero«4»

90 Sezione 5: formato dei file e convenzioni

90.1 os32: group«5»

90.2 os32: inittab«5»

90.3 os32: issue«5»

90.4 os32: passwd«5»

91 Sezione 7: varie

91.1 os32: environ«7»

91.2 os32: socket«7»

91.3 os32: undocumented«7»

92 Sezione 8: comandi per l'amministrazione del sistema

92.1 os32: arp«8»

92.2 os32: getty«8»

92.3 os32: http«8»

92.4 os32: init«8»

92.5 os32: ipconfig«8»

92.6 os32: MAKEDEV«8»

92.7 os32: mount«8»

92.8 os32: ping«8»

92.9 os32: route«8»

92.10 os32: umount«8»

93 Sezione 9: kernel

93.1 os32: arp«9»

93.2 os32: ata«9»

93.3 os32: blk«9»

93.3.1 os32: blk.ata«9»

93.3.2 os32: blk.cache.check«9»

93.3.3 os32: blk.cache.init«9»

93.3.4 os32: blk.cache.read«9»

93.3.5 os32: blk.cache.save«9»

93.4 os32: dev«9»

93.4.1 os32: dev.io«9»

93.4.2 os32: dev.dm«9»

93.4.3 os32: dev.ata«9»

93.4.4 os32: dev.kmem«9»

93.4.5 os32: dev.mem«9»

93.4.6 os32: dev.tty«9»

93.5 os32: dm«9»

93.6 os32: fs«9»

93.6.1 os32: fd.dup«9»

93.6.2 os32: fd.reference«9»

93.6.3 os32: fs.init«9»

93.6.4 os32: file.pipe.make«9»

93.6.5 os32: file.reference«9»

93.6.6 os32: file.stdio.dev.make«9»

93.6.7 os32: inode.alloc«9»

93.6.8 os32: inode.check«9»

93.6.9 os32: inode.dir.empty«9»

93.6.10 os32: inode.file.read«9»

93.6.11 os32: inode.file.write«9»

93.6.12 os32: inode.free«9»

93.6.13 os32: inode.fzones.read«9»

93.6.14 os32: inode.fzones.write«9»

93.6.15 os32: inode.get«9»

93.6.16 os32: inode.pipe.make«9»

93.6.17 os32: inode.pipe.read«9»

93.6.18 os32: inode.pipe.write«9»

93.6.19 os32: inode.print«9»

93.6.20 os32: inode.put«9»

93.6.21 os32: inode.reference«9»

93.6.22 os32: inode.save«9»

93.6.23 os32: inode.stdio.dev.make«9»

93.6.24 os32: inode.truncate«9»

93.6.25 os32: inode.zone«9»

93.6.26 os32: sb.inode.status«9»

93.6.27 os32: sb.mount«9»

93.6.28 os32: sb.print«9»

93.6.29 os32: sb.reference«9»

93.6.30 os32: sb.save«9»

93.6.31 os32: sb.zone.status«9»

93.6.32 os32: sock.free.port«9»

93.6.33 os32: sock.reference«9»

93.6.34 os32: zone.alloc«9»

93.6.35 os32: zone.free«9»

93.6.36 os32: zone.print«9»

93.6.37 os32: zone.read«9»

93.6.38 os32: path.device«9»

93.6.39 os32: path.fix«9»

93.6.40 os32: path.full«9»

93.6.41 os32: path.inode«9»

93.6.42 os32: path.inode.link«9»

93.7 os32: ibm.i386«9»

93.8 os32: icmp«9»

93.9 os32: ip«9»

93.10 os32: kbd«9»

93.11 os32: lib.k«9»

93.12 os32: lib.s«9»

93.13 os32: main«9»

93.14 os32: memory«9»

93.15 os32: multiboot«9»

93.16 os32: ne2k«9»

93.17 os32: net«9»

93.18 os32: part«9»

93.19 os32: pci«9»

93.20 os32: proc«9»

93.20.1 os32: proc.available«9»

93.20.2 os32: proc.dump.memory«9»

93.20.3 os32: proc.init«9»

93.20.4 os32: proc.print«9»

93.20.5 os32: proc.reference«9»

93.20.6 os32: proc.sch.net«9»

93.20.7 os32: proc.sch.signals«9»

93.20.8 os32: proc.sch.terminals«9»

93.20.9 os32: proc.sch.timers«9»

93.20.10 os32: proc.scheduler«9»

93.20.11 os32: proc.sig.chld«9»

93.20.12 os32: proc.sig.cont«9»

93.20.13 os32: proc.sig.core«9»

93.20.14 os32: proc.sig.handler«9»

93.20.15 os32: proc.sig.ignore«9»

93.20.16 os32: proc.sig.off«9»

93.20.17 os32: proc.sig.on«9»

93.20.18 os32: proc.sig.status«9»

93.20.19 os32: proc.sig.stop«9»

93.20.20 os32: proc.sig.term«9»

93.20.21 os32: proc.sys.exec«9»

93.20.22 os32: proc.timer.init«9»

93.20.23 os32: proc.wakeup«9»

93.20.24 os32: proc.wakeup.pipe.read«9»

93.20.25 os32: proc.wakeup.pipe.write«9»

93.20.26 os32: proc.wakeup.terminal«9»

93.20.27 os32: ptr«9»

93.20.28 os32: sysroutine«9»

93.21 os32: route«9»

93.22 os32: screen«9»

93.23 os32: tcp«9»

93.24 os32: tty«9»

Parte ix Codice

94 Script e sorgenti del kernel

94.1 os32: directory principale

94.1.1 applic.sep.ld

94.1.2 bochs

94.1.3 elf-to-os32

94.1.4 fdisk

94.1.5 file.image.functions

94.1.6 format

94.1.7 kernel.ld

94.1.8 makeit.sep

94.1.9 qemu

94.1.10 syslinux

94.1.11 tap0

94.2 os32: ''kernel/blk.h''

94.2.1 kernel/blk/blk.ata.c

94.2.2 kernel/blk/blk.cache.check.c

94.2.3 kernel/blk/blk.cache.init.c

94.2.4 kernel/blk/blk.cache.read.c

94.2.5 kernel/blk/blk.cache.save.c

94.2.6 kernel/blk/blk.public.c

94.3 os32: ''kernel/dev.h''

94.3.1 kernel/dev/dev.ata.c

94.3.2 kernel/dev/dev.dm.c

94.3.3 kernel/dev/dev.io.c

94.3.4 kernel/dev/dev.kmem.c

94.3.5 kernel/dev/dev.mem.c

94.3.6 kernel/dev/dev.tty.c

94.4 os32: ''kernel/dm.h''

94.4.1 kernel/dm/dm.init.c

94.4.2 kernel/dm/dm.public.c

94.4.3 kernel/driver/ata.h

94.4.4 kernel/driver/ata/ata.cmd.identify.device.c

94.4.5 kernel/driver/ata/ata.cmd.read.sectors.c

94.4.6 kernel/driver/ata/ata.cmd.write.sectors.c

94.4.7 kernel/driver/ata/ata.device.c

94.4.8 kernel/driver/ata/ata.drq.c

94.4.9 kernel/driver/ata/ata.init.c

94.4.10 kernel/driver/ata/ata.lba28.c

94.4.11 kernel/driver/ata/ata.public.c

94.4.12 kernel/driver/ata/ata.rdy.c

94.4.13 kernel/driver/ata/ata.reset.c

94.4.14 kernel/driver/ata/ata.valid.c

94.4.15 kernel/driver/kbd.h

94.4.16 kernel/driver/kbd/kbd.isr.c

94.4.17 kernel/driver/kbd/kbd.load.c

94.4.18 kernel/driver/kbd/kbd.public.c

94.4.19 kernel/driver/nic/ne2k.h

94.4.20 kernel/driver/nic/ne2k/ne2k.check.c

94.4.21 kernel/driver/nic/ne2k/ne2k.isr.c

94.4.22 kernel/driver/nic/ne2k/ne2k.isr.expect.c

94.4.23 kernel/driver/nic/ne2k/ne2k.reset.c

94.4.24 kernel/driver/nic/ne2k/ne2k.rx.c

94.4.25 kernel/driver/nic/ne2k/ne2k.rx.reset.c

94.4.26 kernel/driver/nic/ne2k/ne2k.tx.c

94.4.27 kernel/driver/pci.h

94.4.28 kernel/driver/pci/pci.init.c

94.4.29 kernel/driver/pci/pci.public.c

94.4.30 kernel/driver/screen.h

94.4.31 kernel/driver/screen/screen.clear.c

94.4.32 kernel/driver/screen/screen.current.c

94.4.33 kernel/driver/screen/screen.init.c

94.4.34 kernel/driver/screen/screen.new.line.c

94.4.35 kernel/driver/screen/screen.number.c

94.4.36 kernel/driver/screen/screen.pointer.c

94.4.37 kernel/driver/screen/screen.public.c

94.4.38 kernel/driver/screen/screen.putc.c

94.4.39 kernel/driver/screen/screen.scroll.c

94.4.40 kernel/driver/screen/screen.select.c

94.4.41 kernel/driver/screen/screen.update.c

94.4.42 kernel/driver/tty.h

94.4.43 kernel/driver/tty/tty.console.c

94.4.44 kernel/driver/tty/tty.init.c

94.4.45 kernel/driver/tty/tty.public.c

94.4.46 kernel/driver/tty/tty.read.c

94.4.47 kernel/driver/tty/tty.reference.c

94.4.48 kernel/driver/tty/tty.write.c

94.5 os32: ''kernel/fs.h''

94.5.1 kernel/fs/fd.dup.c

94.5.2 kernel/fs/fd.reference.c

94.5.3 kernel/fs/file.pipe.make.c

94.5.4 kernel/fs/file.reference.c

94.5.5 kernel/fs/file.stdio.dev.make.c

94.5.6 kernel/fs/fs.init.c

94.5.7 kernel/fs/fs.public.c

94.5.8 kernel/fs/inode.alloc.c

94.5.9 kernel/fs/inode.check.c

94.5.10 kernel/fs/inode.dir.empty.c

94.5.11 kernel/fs/inode.file.read.c

94.5.12 kernel/fs/inode.file.write.c

94.5.13 kernel/fs/inode.free.c

94.5.14 kernel/fs/inode.fzones.read.c

94.5.15 kernel/fs/inode.fzones.write.c

94.5.16 kernel/fs/inode.get.c

94.5.17 kernel/fs/inode.pipe.make.c

94.5.18 kernel/fs/inode.pipe.read.c

94.5.19 kernel/fs/inode.pipe.write.c

94.5.20 kernel/fs/inode.print.c

94.5.21 kernel/fs/inode.put.c

94.5.22 kernel/fs/inode.reference.c

94.5.23 kernel/fs/inode.save.c

94.5.24 kernel/fs/inode.stdio.dev.make.c

94.5.25 kernel/fs/inode.truncate.c

94.5.26 kernel/fs/inode.zone.c

94.5.27 kernel/fs/path.device.c

94.5.28 kernel/fs/path.fix.c

94.5.29 kernel/fs/path.full.c

94.5.30 kernel/fs/path.inode.c

94.5.31 kernel/fs/path.inode.link.c

94.5.32 kernel/fs/sb.inode.status.c

94.5.33 kernel/fs/sb.mount.c

94.5.34 kernel/fs/sb.print.c

94.5.35 kernel/fs/sb.reference.c

94.5.36 kernel/fs/sb.save.c

94.5.37 kernel/fs/sb.zone.status.c

94.5.38 kernel/fs/sock.free.port.c

94.5.39 kernel/fs/sock.reference.c

94.5.40 kernel/fs/zone.alloc.c

94.5.41 kernel/fs/zone.free.c

94.5.42 kernel/fs/zone.print.c

94.5.43 kernel/fs/zone.read.c

94.5.44 kernel/fs/zone.write.c

94.6 os32: ''kernel/ibm.i386.h''

94.6.1 kernel/ibm.i386/.in.16.s

94.6.2 kernel/ibm.i386/.in.32.s

94.6.3 kernel/ibm.i386/.in.8.s

94.6.4 kernel/ibm.i386/.out.16.s

94.6.5 kernel/ibm.i386/.out.32.s

94.6.6 kernel/ibm.i386/.out.8.s

94.6.7 kernel/ibm.i386/cli.s

94.6.8 kernel/ibm.i386/gdt.c

94.6.9 kernel/ibm.i386/gdt.load.s

94.6.10 kernel/ibm.i386/gdt.print.c

94.6.11 kernel/ibm.i386/gdt.public.c

94.6.12 kernel/ibm.i386/gdt.segment.c

94.6.13 kernel/ibm.i386/idt.c

94.6.14 kernel/ibm.i386/idt.descriptor.c

94.6.15 kernel/ibm.i386/idt.irq.remap.c

94.6.16 kernel/ibm.i386/idt.load.s

94.6.17 kernel/ibm.i386/idt.print.c

94.6.18 kernel/ibm.i386/idt.public.c

94.6.19 kernel/ibm.i386/irq.off.c

94.6.20 kernel/ibm.i386/irq.on.c

94.6.21 kernel/ibm.i386/isr.s

94.6.22 kernel/ibm.i386/isr.exception.name.c

94.6.23 kernel/ibm.i386/isr.exception.unrecoverable.c

94.6.24 kernel/ibm.i386/isr.irq.clear.c

94.6.25 kernel/ibm.i386/isr.irq.clear.pic1.c

94.6.26 kernel/ibm.i386/isr.irq.clear.pic2.c

94.6.27 kernel/ibm.i386/sti.s

94.7 os32: ''kernel/lib.k.h''

94.7.1 kernel/lib.k/k.exit.s

94.7.2 kernel/lib.k/k.gets.c

94.7.3 kernel/lib.k/k.perror.c

94.7.4 kernel/lib.k/k.printf.c

94.7.5 kernel/lib.k/k.sleep.c

94.7.6 kernel/lib.k/k.stime.c

94.7.7 kernel/lib.k/k.usleep.c

94.7.8 kernel/lib.k/k.vprintf.c

94.7.9 kernel/lib.k/k.vsprintf.c

94.8 os32: ''kernel/lib.s.h''

94.8.1 kernel/lib.s/s..exit.c

94.8.2 kernel/lib.s/s.accept.c

94.8.3 kernel/lib.s/s.bind.c

94.8.4 kernel/lib.s/s.brk.c

94.8.5 kernel/lib.s/s.chdir.c

94.8.6 kernel/lib.s/s.chmod.c

94.8.7 kernel/lib.s/s.chown.c

94.8.8 kernel/lib.s/s.clock.c

94.8.9 kernel/lib.s/s.close.c

94.8.10 kernel/lib.s/s.connect.c

94.8.11 kernel/lib.s/s.dup.c

94.8.12 kernel/lib.s/s.dup2.c

94.8.13 kernel/lib.s/s.fchmod.c

94.8.14 kernel/lib.s/s.fchown.c

94.8.15 kernel/lib.s/s.fcntl.c

94.8.16 kernel/lib.s/s.fork.c

94.8.17 kernel/lib.s/s.fstat.c

94.8.18 kernel/lib.s/s.ipconfig.c

94.8.19 kernel/lib.s/s.kill.c

94.8.20 kernel/lib.s/s.link.c

94.8.21 kernel/lib.s/s.listen.c

94.8.22 kernel/lib.s/s.longjmp.c

94.8.23 kernel/lib.s/s.lseek.c

94.8.24 kernel/lib.s/s.mkdir.c

94.8.25 kernel/lib.s/s.mknod.c

94.8.26 kernel/lib.s/s.mount.c

94.8.27 kernel/lib.s/s.open.c

94.8.28 kernel/lib.s/s.pipe.c

94.8.29 kernel/lib.s/s.read.c

94.8.30 kernel/lib.s/s.recvfrom.c

94.8.31 kernel/lib.s/s.routeadd.c

94.8.32 kernel/lib.s/s.routedel.c

94.8.33 kernel/lib.s/s.sbrk.c

94.8.34 kernel/lib.s/s.send.c

94.8.35 kernel/lib.s/s.setegid.c

94.8.36 kernel/lib.s/s.seteuid.c

94.8.37 kernel/lib.s/s.setgid.c

94.8.38 kernel/lib.s/s.setjmp.c

94.8.39 kernel/lib.s/s.setuid.c

94.8.40 kernel/lib.s/s.signal.c

94.8.41 kernel/lib.s/s.socket.c

94.8.42 kernel/lib.s/s.stat.c

94.8.43 kernel/lib.s/s.stime.c

94.8.44 kernel/lib.s/s.tcgetattr.c

94.8.45 kernel/lib.s/s.tcsetattr.c

94.8.46 kernel/lib.s/s.time.c

94.8.47 kernel/lib.s/s.umount.c

94.8.48 kernel/lib.s/s.unlink.c

94.8.49 kernel/lib.s/s.wait.c

94.8.50 kernel/lib.s/s.write.c

94.9 os32: ''kernel/main.h''

94.9.1 kernel/main/build.h

94.9.2 kernel/main/crt0.s

94.9.3 kernel/main/kmain.c

94.9.4 kernel/main/menu.c

94.9.5 kernel/main/run.c

94.9.6 kernel/main/stack.s

94.10 os32: ''kernel/memory.h''

94.10.1 kernel/memory/mb.alloc.c

94.10.2 kernel/memory/mb.alloc.size.c

94.10.3 kernel/memory/mb.clean.c

94.10.4 kernel/memory/mb.free.c

94.10.5 kernel/memory/mb.print.c

94.10.6 kernel/memory/mb.public.c

94.10.7 kernel/memory/mb.reduce.c

94.10.8 kernel/memory/mb.reference.c

94.10.9 kernel/memory/mb.size.c

94.11 os32: ''kernel/multiboot.h''

94.11.1 kernel/multiboot/mboot.cmdline.opt.c

94.11.2 kernel/multiboot/mboot.public.c

94.11.3 kernel/multiboot/mboot.save.c

94.12 os32: ''kernel/net.h''

94.12.1 kernel/net/arp.h

94.12.2 kernel/net/arp/arp.clean.c

94.12.3 kernel/net/arp/arp.index.c

94.12.4 kernel/net/arp/arp.init.c

94.12.5 kernel/net/arp/arp.print.c

94.12.6 kernel/net/arp/arp.public.c

94.12.7 kernel/net/arp/arp.reference.c

94.12.8 kernel/net/arp/arp.request.c

94.12.9 kernel/net/arp/arp.rx.c

94.12.10 kernel/net/icmp.h

94.12.11 kernel/net/icmp/icmp.rx.c

94.12.12 kernel/net/icmp/icmp.tx.c

94.12.13 kernel/net/icmp/icmp.tx.echo.c

94.12.14 kernel/net/icmp/icmp.tx.unreachable.c

94.12.15 kernel/net/ip.h

94.12.16 kernel/net/ip/ip.checksum.c

94.12.17 kernel/net/ip/ip.header.c

94.12.18 kernel/net/ip/ip.mask.c

94.12.19 kernel/net/ip/ip.public.c

94.12.20 kernel/net/ip/ip.reference.c

94.12.21 kernel/net/ip/ip.rx.c

94.12.22 kernel/net/ip/ip.tx.c

94.12.23 kernel/net/net.buffer.eth.c

94.12.24 kernel/net/net.buffer.lo.c

94.12.25 kernel/net/net.eth.ip.tx.c

94.12.26 kernel/net/net.eth.tx.c

94.12.27 kernel/net/net.index.c

94.12.28 kernel/net/net.index.eth.c

94.12.29 kernel/net/net.init.c

94.12.30 kernel/net/net.print.c

94.12.31 kernel/net/net.public.c

94.12.32 kernel/net/net.rx.c

94.12.33 kernel/net/route.h

94.12.34 kernel/net/route/route.init.c

94.12.35 kernel/net/route/route.print.c

94.12.36 kernel/net/route/route.public.c

94.12.37 kernel/net/route/route.remote.to.local.c

94.12.38 kernel/net/route/route.remote.to.router.c

94.12.39 kernel/net/route/route.sort.c

94.12.40 kernel/net/tcp.h

94.12.41 kernel/net/tcp/tcp.c

94.12.42 kernel/net/tcp/tcp.close.c

94.12.43 kernel/net/tcp/tcp.connect.c

94.12.44 kernel/net/tcp/tcp.rx.ack.c

94.12.45 kernel/net/tcp/tcp.rx.data.c

94.12.46 kernel/net/tcp/tcp.show.c

94.12.47 kernel/net/tcp/tcp.status.c

94.12.48 kernel/net/tcp/tcp.test.c

94.12.49 kernel/net/tcp/tcp.tx.ack.c

94.12.50 kernel/net/tcp/tcp.tx.raw.c

94.12.51 kernel/net/tcp/tcp.tx.rst.c

94.12.52 kernel/net/tcp/tcp.tx.sock.c

94.12.53 kernel/net/udp.h

94.12.54 kernel/net/udp/udp.tx.c

94.13 os32: ''kernel/part.h''

94.14 os32: ''kernel/proc.h''

94.14.1 kernel/proc/proc.available.c

94.14.2 kernel/proc/proc.dump.memory.c

94.14.3 kernel/proc/proc.init.c

94.14.4 kernel/proc/proc.print.c

94.14.5 kernel/proc/proc.public.c

94.14.6 kernel/proc/proc.reference.c

94.14.7 kernel/proc/proc.sch.net.c

94.14.8 kernel/proc/proc.sch.signals.c

94.14.9 kernel/proc/proc.sch.terminals.c

94.14.10 kernel/proc/proc.sch.timers.c

94.14.11 kernel/proc/proc.scheduler.c

94.14.12 kernel/proc/proc.sig.chld.c

94.14.13 kernel/proc/proc.sig.cont.c

94.14.14 kernel/proc/proc.sig.core.c

94.14.15 kernel/proc/proc.sig.handler.c

94.14.16 kernel/proc/proc.sig.ignore.c

94.14.17 kernel/proc/proc.sig.off.c

94.14.18 kernel/proc/proc.sig.on.c

94.14.19 kernel/proc/proc.sig.status.c

94.14.20 kernel/proc/proc.sig.stop.c

94.14.21 kernel/proc/proc.sig.term.c

94.14.22 kernel/proc/proc.sys.exec.c

94.14.23 kernel/proc/proc.timer.init.c

94.14.24 kernel/proc/proc.wakeup.pipe.read.c

94.14.25 kernel/proc/proc.wakeup.pipe.write.c

94.14.26 kernel/proc/proc.wakeup.terminal.c

94.14.27 kernel/proc/ptr.c

94.14.28 kernel/proc/sysroutine.c

95 Sorgenti della libreria generale

95.1 os32: file isolati della directory ''lib/''

95.1.1 lib/NULL.h

95.1.2 lib/SEEK.h

95.1.3 lib/assert.h

95.1.4 lib/clock.t.h

95.1.5 lib/ctype.h

95.1.6 lib/limits.h

95.1.7 lib/ptrdiff.t.h

95.1.8 lib/restrict.h

95.1.9 lib/size.t.h

95.1.10 lib/stdarg.h

95.1.11 lib/stdbool.h

95.1.12 lib/stddef.h

95.1.13 lib/stdint.h

95.1.14 lib/time.t.h

95.1.15 lib/wchar.t.h

95.2 os32: ''lib/.gcc.h''

95.2.1 lib/.gcc/..divdi3.c

95.2.2 lib/.gcc/..moddi3.c

95.2.3 lib/.gcc/..udivdi3.c

95.2.4 lib/.gcc/..umoddi3.c

95.2.5 lib/.gcc/.lldiv.c

95.2.6 lib/.gcc/.ulldiv.c

95.3 os32: ''lib/arpa/inet.h''

95.3.1 lib/arpa/inet/htonl.c

95.3.2 lib/arpa/inet/htons.c

95.3.3 lib/arpa/inet/inet.ntop.c

95.3.4 lib/arpa/inet/inet.pton.c

95.3.5 lib/arpa/inet/ntohl.c

95.3.6 lib/arpa/inet/ntohs.c

95.4 os32: ''lib/dirent.h''

95.4.1 lib/dirent/DIR.c

95.4.2 lib/dirent/closedir.c

95.4.3 lib/dirent/opendir.c

95.4.4 lib/dirent/readdir.c

95.4.5 lib/dirent/rewinddir.c

95.5 os32: ''lib/errno.h''

95.5.1 lib/errno/errno.c

95.6 os32: ''lib/fcntl.h''

95.6.1 lib/fcntl/creat.c

95.6.2 lib/fcntl/fcntl.c

95.6.3 lib/fcntl/open.c

95.7 os32: ''lib/grp.h''

95.7.1 lib/grp/grent.c

95.8 os32: ''lib/inttypes.h''

95.8.1 lib/inttypes/imaxabs.c

95.8.2 lib/inttypes/imaxdiv.c

95.9 os32: ''lib/libgen.h''

95.9.1 lib/libgen/basename.c

95.9.2 lib/libgen/dirname.c

95.10 os32: ''lib/netinet/icmp.h''

95.11 os32: ''lib/netinet/in.h''

95.12 os32: ''lib/netinet/ip.h''

95.13 os32: ''lib/netinet/tcp.h''

95.14 os32: ''lib/netinet/udp.h''

95.15 os32: ''lib/pwd.h''

95.15.1 lib/pwd/pwent.c

95.16 os32: ''lib/setjmp.h''

95.16.1 lib/setjmp/longjmp.c

95.16.2 lib/setjmp/setjmp.s

95.17 os32: ''lib/signal.h''

95.17.1 lib/signal/.sighandler.wrapper.s

95.17.2 lib/signal/kill.c

95.17.3 lib/signal/signal.c

95.18 os32: ''lib/stdio.h''

95.18.1 lib/stdio/FILE.c

95.18.2 lib/stdio/clearerr.c

95.18.3 lib/stdio/fclose.c

95.18.4 lib/stdio/feof.c

95.18.5 lib/stdio/ferror.c

95.18.6 lib/stdio/fflush.c

95.18.7 lib/stdio/fgetc.c

95.18.8 lib/stdio/fgetpos.c

95.18.9 lib/stdio/fgets.c

95.18.10 lib/stdio/fileno.c

95.18.11 lib/stdio/fopen.c

95.18.12 lib/stdio/fprintf.c

95.18.13 lib/stdio/fputc.c

95.18.14 lib/stdio/fputs.c

95.18.15 lib/stdio/fread.c

95.18.16 lib/stdio/freopen.c

95.18.17 lib/stdio/fscanf.c

95.18.18 lib/stdio/fseek.c

95.18.19 lib/stdio/fseeko.c

95.18.20 lib/stdio/fsetpos.c

95.18.21 lib/stdio/ftell.c

95.18.22 lib/stdio/ftello.c

95.18.23 lib/stdio/fwrite.c

95.18.24 lib/stdio/getchar.c

95.18.25 lib/stdio/gets.c

95.18.26 lib/stdio/perror.c

95.18.27 lib/stdio/printf.c

95.18.28 lib/stdio/putchar.c

95.18.29 lib/stdio/puts.c

95.18.30 lib/stdio/rewind.c

95.18.31 lib/stdio/scanf.c

95.18.32 lib/stdio/setbuf.c

95.18.33 lib/stdio/setvbuf.c

95.18.34 lib/stdio/snprintf.c

95.18.35 lib/stdio/sprintf.c

95.18.36 lib/stdio/sscanf.c

95.18.37 lib/stdio/vfprintf.c

95.18.38 lib/stdio/vfscanf.c

95.18.39 lib/stdio/vfsscanf.c

95.18.40 lib/stdio/vprintf.c

95.18.41 lib/stdio/vscanf.c

95.18.42 lib/stdio/vsnprintf.c

95.18.43 lib/stdio/vsprintf.c

95.18.44 lib/stdio/vsscanf.c

95.19 os32: ''lib/stdlib.h''

95.19.1 lib/stdlib/.Exit.c

95.19.2 lib/stdlib/abort.c

95.19.3 lib/stdlib/abs.c

95.19.4 lib/stdlib/atexit.c

95.19.5 lib/stdlib/atoi.c

95.19.6 lib/stdlib/atol.c

95.19.7 lib/stdlib/div.c

95.19.8 lib/stdlib/environment.c

95.19.9 lib/stdlib/exit.c

95.19.10 lib/stdlib/getenv.c

95.19.11 lib/stdlib/labs.c

95.19.12 lib/stdlib/ldiv.c

95.19.13 lib/stdlib/llabs.c

95.19.14 lib/stdlib/lldiv.c

95.19.15 lib/stdlib/putenv.c

95.19.16 lib/stdlib/qsort.c

95.19.17 lib/stdlib/rand.c

95.19.18 lib/stdlib/setenv.c

95.19.19 lib/stdlib/strtol.c

95.19.20 lib/stdlib/strtoul.c

95.19.21 lib/stdlib/unsetenv.c

95.19.22 lib/stdlib.alloc/.alloc.list.c

95.19.23 lib/stdlib.alloc/free.c

95.19.24 lib/stdlib.alloc/malloc.c

95.19.25 lib/stdlib.alloc/realloc.c

95.20 os32: ''lib/string.h''

95.20.1 lib/string/memccpy.c

95.20.2 lib/string/memchr.c

95.20.3 lib/string/memcmp.c

95.20.4 lib/string/memcpy.c

95.20.5 lib/string/memmove.c

95.20.6 lib/string/memset.c

95.20.7 lib/string/strcat.c

95.20.8 lib/string/strchr.c

95.20.9 lib/string/strcmp.c

95.20.10 lib/string/strcoll.c

95.20.11 lib/string/strcpy.c

95.20.12 lib/string/strcspn.c

95.20.13 lib/string/strdup.c

95.20.14 lib/string/strerror.c

95.20.15 lib/string/strlen.c

95.20.16 lib/string/strncat.c

95.20.17 lib/string/strncmp.c

95.20.18 lib/string/strncpy.c

95.20.19 lib/string/strpbrk.c

95.20.20 lib/string/strrchr.c

95.20.21 lib/string/strspn.c

95.20.22 lib/string/strstr.c

95.20.23 lib/string/strtok.c

95.20.24 lib/string/strxfrm.c

95.21 os32: ''lib/sys/os32.h''

95.21.1 lib/sys/os32/input.line.c

95.21.2 lib/sys/os32/ipconfig.c

95.21.3 lib/sys/os32/mount.c

95.21.4 lib/sys/os32/namep.c

95.21.5 lib/sys/os32/routeadd.c

95.21.6 lib/sys/os32/routedel.c

95.21.7 lib/sys/os32/sys.s

95.21.8 lib/sys/os32/umount.c

95.21.9 lib/sys/os32/z.perror.c

95.21.10 lib/sys/os32/z.printf.c

95.21.11 lib/sys/os32/z.vprintf.c

95.22 os32: ''lib/sys/sa.family.t.h''

95.23 os32: ''lib/sys/socket.h''

95.23.1 lib/sys/socket/accept.c

95.23.2 lib/sys/socket/bind.c

95.23.3 lib/sys/socket/connect.c

95.23.4 lib/sys/socket/listen.c

95.23.5 lib/sys/socket/recvfrom.c

95.23.6 lib/sys/socket/send.c

95.23.7 lib/sys/socket/socket.c

95.24 os32: ''lib/sys/socklen.t.h''

95.25 os32: ''lib/sys/stat.h''

95.25.1 lib/sys/stat/chmod.c

95.25.2 lib/sys/stat/fchmod.c

95.25.3 lib/sys/stat/fstat.c

95.25.4 lib/sys/stat/mkdir.c

95.25.5 lib/sys/stat/mknod.c

95.25.6 lib/sys/stat/stat.c

95.25.7 lib/sys/stat/umask.c

95.26 os32: ''lib/sys/types.h''

95.26.1 lib/sys/types/major.c

95.26.2 lib/sys/types/makedev.c

95.26.3 lib/sys/types/minor.c

95.27 os32: ''lib/sys/wait.h''

95.27.1 lib/sys/wait/wait.c

95.28 os32: ''lib/termios.h''

95.28.1 lib/termios/tcgetattr.c

95.28.2 lib/termios/tcsetattr.c

95.29 os32: ''lib/time.h''

95.29.1 lib/time/asctime.c

95.29.2 lib/time/clock.c

95.29.3 lib/time/gmtime.c

95.29.4 lib/time/mktime.c

95.29.5 lib/time/stime.c

95.29.6 lib/time/time.c

95.30 os32: ''lib/unistd.h''

95.30.1 lib/unistd/.exit.c

95.30.2 lib/unistd/access.c

95.30.3 lib/unistd/brk.c

95.30.4 lib/unistd/chdir.c

95.30.5 lib/unistd/chown.c

95.30.6 lib/unistd/close.c

95.30.7 lib/unistd/dup.c

95.30.8 lib/unistd/dup2.c

95.30.9 lib/unistd/environ.c

95.30.10 lib/unistd/execl.c

95.30.11 lib/unistd/execle.c

95.30.12 lib/unistd/execlp.c

95.30.13 lib/unistd/execv.c

95.30.14 lib/unistd/execve.c

95.30.15 lib/unistd/execvp.c

95.30.16 lib/unistd/fchdir.c

95.30.17 lib/unistd/fchown.c

95.30.18 lib/unistd/fork.c

95.30.19 lib/unistd/getcwd.c

95.30.20 lib/unistd/getegid.c

95.30.21 lib/unistd/geteuid.c

95.30.22 lib/unistd/getgid.c

95.30.23 lib/unistd/getopt.c

95.30.24 lib/unistd/getpgrp.c

95.30.25 lib/unistd/getpid.c

95.30.26 lib/unistd/getppid.c

95.30.27 lib/unistd/getuid.c

95.30.28 lib/unistd/isatty.c

95.30.29 lib/unistd/link.c

95.30.30 lib/unistd/lseek.c

95.30.31 lib/unistd/pipe.c

95.30.32 lib/unistd/read.c

95.30.33 lib/unistd/rmdir.c

95.30.34 lib/unistd/sbrk.c

95.30.35 lib/unistd/setegid.c

95.30.36 lib/unistd/seteuid.c

95.30.37 lib/unistd/setgid.c

95.30.38 lib/unistd/setpgrp.c

95.30.39 lib/unistd/setuid.c

95.30.40 lib/unistd/sleep.c

95.30.41 lib/unistd/ttyname.c

95.30.42 lib/unistd/unlink.c

95.30.43 lib/unistd/write.c

95.31 os32: ''lib/utime.h''

95.31.1 lib/utime/utime.c

96 Sorgenti delle applicazioni

96.1 os32: directory ''applic/''

96.1.1 applic/MAKEDEV.c

96.1.2 applic/aaa.c

96.1.3 applic/allocated.c

96.1.4 applic/arp.c

96.1.5 applic/bbb.c

96.1.6 applic/cat.c

96.1.7 applic/ccc.c

96.1.8 applic/chgrp.c

96.1.9 applic/chmod.c

96.1.10 applic/chown.c

96.1.11 applic/cp.c

96.1.12 applic/crt0.mer.s

96.1.13 applic/crt0.sep.s

96.1.14 applic/date.c

96.1.15 applic/ed.c

96.1.16 applic/getty.c

96.1.17 applic/http.c

96.1.18 applic/init.c

96.1.19 applic/ipconfig.c

96.1.20 applic/kill.c

96.1.21 applic/ln.c

96.1.22 applic/login.c

96.1.23 applic/ls.c

96.1.24 applic/man.c

96.1.25 applic/mkdir.c

96.1.26 applic/mmcheck.c

96.1.27 applic/more.c

96.1.28 applic/mount.c

96.1.29 applic/nc.c

96.1.30 applic/ping.c

96.1.31 applic/ps.c

96.1.32 applic/rm.c

96.1.33 applic/rmdir.c

96.1.34 applic/route.c

96.1.35 applic/shell.c

96.1.36 applic/t.fcntl.c

96.1.37 applic/t.fifo.c

96.1.38 applic/t.grp.c

96.1.39 applic/t.nc.c

96.1.40 applic/t.ping2.c

96.1.41 applic/t.pipe.c

96.1.42 applic/t.read.c

96.1.43 applic/t.ret.c

96.1.44 applic/t.rx.udp.c

96.1.45 applic/t.scr.c

96.1.46 applic/t.setjmp.c

96.1.47 applic/t.sig.c

96.1.48 applic/t.sig2.c

96.1.49 applic/t.tx.tcp.c

96.1.50 applic/t.tx.udp.c

96.1.51 applic/touch.c

96.1.52 applic/tty.c

96.1.53 applic/umount.c

96.1.54 applic/yes.c

u7 Indice analitico del volume

Volume V Didattica in laboratorio

Parte x Foglio elettronico

97 Corso elementare sul foglio elettronico

97.1 Primo approccio al foglio elettronico

97.1.1 Esercizi

97.1.1.1 Osservando la figura, qual è la cella che contiene il nome ''gennaio''?

97.1.1.2 Osservando la figura, come si indica l'insieme di celle che contiene i valori numerici?

97.1.1.3 Osservando la figura, come si indica l'insieme di celle che contiene tutti i valori visibili?

97.1.2 Indicazione formale delle coordinate delle celle

97.1.3 Esercizi

97.1.3.1 Osservando la figura, come si indica formalmente l'insieme di celle che contiene i valori numerici?

97.1.3.2 Osservando la figura, come si indica formalmente l'insieme di celle che contiene tutti i valori visibili?

97.1.3.3 Osservando la figura, come si indica formalmente l'insieme di celle che contiene i valori numerici, specificando anche la scheda in cui si trova?

97.1.3.4 Osservando la figura, come si indica formalmente l'insieme di celle che contiene tutti i valori visibili, specificando anche la scheda in cui si trova?

97.1.4 Tipi di dati

97.1.5 Costanti numeriche

97.1.6 Esercizi

97.1.6.1 Se in una cella si inserisce 23,5%, quale valore viene trattato effettivamente?

97.1.6.2 Premesso che il foglio elettronico viene usato in configurazione italiana, se in una cella si inserisce letteralmente 11.10, cosa è stato inserito effettivamente? il numero 11,10, l'orario 11:10 o la data 11 ottobre?

97.1.6.3 Con un foglio elettronico comune, se in una cella viene inserito regolarmente l'orario 12:00, qual è il valore numerico corrispondente di questo dato?

97.1.6.4 Con un foglio elettronico comune, sapendo che il valore 123 456, se considerato come data, corrisponde al 3 gennaio 2238, a cosa può corrispondere il numero 123 456,25?

97.1.7 Informazioni testuali: stringhe

97.1.8 Espressioni

97.1.9 Esercizi

97.1.9.1 Con un foglio elettronico comune, nella cella A3 si inserisce l'espressione seguente, premendo [Invio] al termine, ma si ottiene un errore. Da cosa deriva tale errore?

97.1.9.2 Nella cella A1 è stata inserita la stringa ciao; nella cella B1 è inserita la stringa amore. Nella cella D1 si inserisce l'espressione =A1&B1. Cosa appare poi nella cella D1? Per fare in modo che nella cella D1 si veda il testo ''ciao amore!'', come andrebbe modificata l'espressione inserita nella stessa cella?.

97.1.9.3 Nella cella B3 si vuole sommare il numero 123,4 al contenuto della cella A1. Come si può scrivere l'espressione in B3?

97.1.9.4 Nella cella B3 si vuole sommare il contenuto delle celle A1 e A2, dividendo tale somma per il numero 123,4. Come si può scrivere l'espressione in B3?

97.1.9.5 Nella cella B3 si scrive l'espressione seguente, ma si ottiene un errore. Perché?

97.2 Introduzione a LibreOffice Calc

97.2.1 Aspetto generale

97.2.2 Navigazione nel menù

97.2.3 Esercizi

97.2.3.1 Utilizzando il mouse «o un dispositivo equivalente», come si raggiunge la voce Formato, Aree di stampa, Definisci?

97.2.3.2 Utilizzando la tastiera e limitandosi all'uso di [Alt] e dei tasti freccia, come si raggiunge la voce Formato, Aree di stampa, Definisci?

97.2.4 Navigazione nell'area di lavoro

97.2.5 Esercizi

97.2.5.1 Utilizzando il mouse «o un dispositivo equivalente», come si raggiunge la cella A1, mentre, per qualche motivo, ci si trova vicino alla cella AZ99?

97.2.5.2 Utilizzando la tastiera, come si raggiunge la cella A1, mentre, per qualche motivo, ci si trova vicino alla cella AZ99?

97.2.5.3 Utilizzando la tastiera, come si raggiunge la prima colonna nella riga in cui si trova già il cursore dell'area di lavoro?

97.2.5.4 Utilizzando la tastiera, come si raggiunge la prima riga nella colonna in cui si trova già il cursore dell'area di lavoro?

97.2.5.5 Utilizzando il mouse «o un dispositivo equivalente», come si raggiunge la scheda ''Foglio3''?

97.2.5.6 Utilizzando la tastiera, come si raggiunge la scheda ''Foglio3''?

97.2.6 Aspetto del puntatore del mouse

97.2.7 Selezione nell'area di lavoro

97.2.8 Esercizi

97.2.8.1 Utilizzando il mouse «o un dispositivo equivalente», come si seleziona la zona di celle A7:C9?

97.2.8.2 Utilizzando la tastiera, come si seleziona la zona di celle A7:C9?

97.2.8.3 Utilizzando il mouse «o un dispositivo equivalente», come si seleziona la zona di celle A7:C9 e la zona D3:F7?

97.2.8.4 Utilizzando il mouse «o un dispositivo equivalente», come si selezionano le colonne B, D, E e G?

97.2.8.5 Utilizzando il mouse «o un dispositivo equivalente», come si selezionano tutte le celle del foglio attivo?

97.2.9 Regolazione delle dimensioni delle celle

97.2.10 Esercizi

97.2.10.1 Utilizzando il mouse «o un dispositivo equivalente», come si regola l'altezza della riga 5?

97.2.10.2 Utilizzando il mouse «o un dispositivo equivalente», come si regola l'altezza della riga 5 e della riga 7, in modo simultaneo?

97.2.10.3 Utilizzando la tastiera, come si regola l'altezza della riga 7 e la larghezza della colonna C?

97.3 Bordi, sfondi e fusione celle

97.3.1 Definizione dei bordi associata alla cella

97.3.2 Esercizi

97.3.2.1 Tra le colonne C e D appare un bordo che occupa le righe dalla terza alla quinta. Volendo togliere il bordo, si selezionano le celle da C3 a C5 e si elimina il bordo destro. Ma se ciò non dovesse funzionare, quale sarebbe la ragione?

97.3.2.2 La cella A1 ha un bordo destro, di colore nero e con uno spessore di un punto; la cella B1 ha un bordo sinistro di colore rosso, con uno spessore di due punti. Quale linea si vede tra la cella A1 e B1?

97.3.3 Bordi rapidi

97.3.4 Esercizi

97.3.4.1 Si seleziona la zona B2:D3 che inizialmente è priva di bordi. Con i bordi rapidi, cosa occorre scegliere per bordare il lato sinistro delle celle B2 e B3?

97.3.4.2 Si seleziona la zona B1:F10 che inizialmente è priva di bordi. Con i bordi rapidi, cosa occorre scegliere per bordare tutti i lati esterni e solo quelli verticali interni?

97.3.5 Bordi attraverso il menù

97.3.6 Sfondi

97.3.7 Fusione delle celle

97.3.8 Esercitazione pratica

97.4 Configurazione della stampa

97.4.1 Area da riservare alla stampa

97.4.2 Configurazione della pagina

97.4.3 Verifica

97.5 Inserimento, variazione, collocazione e composizione dei dati nelle celle

97.5.1 Inserimento e variazione

97.5.1.1 Inserimento di un'interruzione di riga nel testo di una cella

97.5.2 Collocazione nella cella

97.5.3 Rotazione del contenuto della cella

97.5.4 Testo a capo in modo automatico

97.5.5 Caratteristiche del carattere tipografico

97.5.6 Modalità di rappresentazione numerica di un valore

97.5.7 Esercizi

97.5.7.1 Come si può richiedere un formato numerico che consenta di rappresentare un valore nella forma 1 234 567 890,12, mantenendo due decimali fissi in ogni caso?

97.5.7.2 Lavorando con una configurazione italiana, come si può richiedere un formato numerico che consenta di rappresentare un orario nella forma 11:45:33?

97.5.7.3 Lavorando con una configurazione italiana, come si può richiedere un formato numerico che consenta di rappresentare una data e un orario nella forma ven 30 dic 2050 12:15?

97.5.7.4 Quale tipo di rappresentazione numerica chiarisce che i dati introdotti in una cella vanno trattati soltanto in forma testuale?

97.5.8 Verifica

97.6 Inserimento, copia e spostamento, riferimenti relativi e assoluti

97.6.1 Espressione esplicita

97.6.2 Inserimento facilitato degli operandi di un'espressione

97.6.3 Controllo delle zone coinvolte in un'espressione

97.6.4 Copia normale delle celle

97.6.5 Copia per trascinamento

97.6.6 Spostamento delle celle: taglia e incolla

97.6.7 Esercizio

97.6.8 Funzione ''somma«»''

97.6.9 Esercizio

97.6.10 Esercizio

97.6.11 Esercizio

97.6.12 Riferimenti relativi e riferimenti assoluti alle celle

97.7 Percentuali

97.7.1 Inserimento di un valore percentuale

97.7.2 Esercizi

97.7.2.1 A cosa corrisponde il valore 0,401 2 se lo si rappresenta in percentuale?

97.7.2.2 A cosa corrisponde 12,34 % se lo si rappresenta nella forma numerica consueta?

97.7.2.3 A cosa corrisponde 100 % se lo si rappresenta nella forma numerica consueta?

97.7.3 Calcolo della porzione rimanente

97.7.4 Esercizio

97.7.5 Esercizio

97.7.6 Verifica

97.8 Aggiunta ed eliminazione delle celle

97.8.1 Inserimento ed eliminazione di zone di celle

97.8.2 Inserimento ed eliminazione di righe e colonne intere

97.9 Uso delle funzioni

97.9.1 Inserimento facilitato delle funzioni

97.9.2 Lista delle funzioni

97.10 Segnalazioni di errore

97.10.1 Errori a catena

97.10.2 Esercizio

97.11 Funzioni di uso comune

97.11.1 Minimo, massimo e media

97.11.2 Esercizio

97.11.3 Arrotondamenti

97.11.4 Esercizio

97.11.5 Esercizio

97.11.6 Somma condizionata

97.11.7 Esercizio

97.11.8 Verifica

97.11.9 Verifica

97.12 Condizioni

97.12.1 Formato logico

97.12.2 Operatori di confronto

97.12.3 Esercizio

97.12.4 Operatori logici

97.12.5 Esercizio

97.12.6 Funzione ''SE«»''

97.12.7 Esercizio

97.12.8 Esercizio

97.13 Date e orari

97.13.1 1900: anno bisestile?

97.13.2 Inserimento di date e orari

97.13.3 Operazioni con le date e gli orari

97.13.4 Esercizio

97.13.5 Esercizio

97.13.6 Esercizio

97.13.7 Esercizio

97.13.8 Verifica

97.14 Grafici

97.14.1 Componenti di un grafico comune

97.14.2 Creazione di un grafico con LibreOffice Calc

97.14.3 Organizzazione dei dati: per riga o per colonna

97.14.4 Area dei dati discontinua

97.14.5 Grafici a istogramma

97.14.6 Grafici a torta

97.14.7 Grafici lineari

97.14.8 Grafici XY

97.15 Ripartizione

97.15.1 Esercizio

97.15.2 Esercizio

97.15.3 Esercizio: ripartizione delle spese non documentate

97.15.4 Verifica

97.16 Calcolo del bollo della cambiale

97.16.1 Percentuale del bollo

97.16.2 Esercizio

97.16.3 Esercizio

97.16.4 Esercizio

97.16.5 Verifica

97.17 Funzioni di ricerca

97.17.1 Funzione ''CERCA.VERT«»''

97.17.2 Esercizio

97.17.3 Funzione ''CERCA.ORIZZ«»''

97.17.4 Esercizio

97.17.5 Verifica

97.17.6 Verifica

97.17.7 Verifica

97.17.8 Verifica

97.17.9 Verifica

97.17.10 Esercizio

97.18 Riordino, filtro e moduli

97.18.1 Riordino

97.18.2 Filtro

97.18.3 Modulo di immissione

97.19 Nomi e casella nome

97.19.1 Gestione completa

97.19.2 Denominazione automatica

97.19.3 Inserimento guidato

97.20 Verifica di validità

97.21 Protezione

97.21.1 Modifica dello stato di protezione delle celle

97.21.2 Attivazione e disabilitazione della gestione protetta

97.21.3 Esercizio

97.22 Stili

97.22.1 Gestione degli stili

97.22.2 Applicazione di uno stile

97.22.3 Osservazioni sulla gestione degli stili riferiti all'impaginazione

97.22.4 Applicazione di uno stile in modo condizionato

97.23 Ricerca obiettivo

97.24 Tabella ''pivot'', o ''data pilot''

97.24.1 Creazione di una ''tabella pivot''

97.24.2 Esercizio: dalla prima nota alla situazione dei conti

97.24.3 Filtro

97.25 Struttura

97.25.1 Raggruppamento automatico

97.25.2 Raggruppamento manuale

97.25.3 Eliminazione di un raggruppamento

97.26 Configurazione di LibreOffice Calc

97.26.1 Maschere di configurazione di LibreOffice Calc

97.26.2 Osservazioni sulla configurazione linguistica

97.27 Soluzioni agli esercizi proposti

97.28 Riepilogo delle funzioni comuni

Parte xi Applicativo gestionale con il foglio elettronico

98 Utilizzo

98.1 Organizzazione generale e accorgimenti nell'utilizzo

98.1.1 Struttura

98.1.2 Evitare gli spostamenti

98.1.3 Cancellazione dei contenuti

98.1.4 Riordino

98.1.5 Filtro delle righe

98.1.5.1 Formato della pagina

98.1.6 Scheda riassuntiva degli errori individuati automaticamente

98.1.7 Aggiunta di nuove schede

98.2 Anagrafica azienda

98.3 Contabilità generale

98.3.1 Prima nota

98.3.2 Piano dei conti

98.3.3 Giornale

98.3.4 Partitario o ''mastrini''

98.4 Bilancio

98.4.1 Situazione dei conti

98.4.2 Scheda del bilancio

98.4.3 Collegamento nel piano dei conti

98.4.4 Esempio completo

98.4.5 Correzione di un bilancio errato

98.4.6 Indici di bilancio

98.4.7 Bilancio manuale

98.5 Clienti e fornitori

98.5.1 Elenco delle banche di appoggio

98.5.2 Tabelle anagrafiche di clienti e fornitori

98.5.3 Libro giornale

98.5.4 Partitario clienti e fornitori

98.6 Registri IVA

98.6.1 Codici IVA

98.6.2 Registri delle fatture

98.7 Contabilità di magazzino

98.7.1 Articoli di magazzino

98.7.2 Movimenti di magazzino

98.7.3 Valorizzazione al costo medio ponderato per movimento

98.7.4 Valorizzazione al costo medio ponderato per periodo

98.8 Vendite

98.8.1 Condizioni di pagamento

98.8.2 Tipi di trasporto

98.8.3 Porto franco e porto assegnato

98.8.4 Aspetto dei beni trasportati

98.8.5 Causali del trasporto

98.8.6 Documenti di trasporto

98.8.7 Fatture accompagnatorie

98.8.8 Fatture immediate o differite

98.8.9 Cambiali tratte

98.8.10 Note di accredito

98.9 Conti correnti

98.9.1 Scheda del conto

98.9.2 Riordino per valuta

98.9.3 Compilazione del prospetto delle spese e delle competenze

98.9.4 Staffa

98.9.5 Descrizione di un esempio alternativo, con estinzione del conto

98.10 Altre schede

98.10.1 Raggruppamenti contabili

98.10.2 Assegni bancari

98.10.3 Cambiali generiche

99 Esercitazioni con l'applicativo gestionale

99.1 Codifica

99.1.1 Piano dei conti

99.1.2 Banche

99.1.3 Clienti

99.1.4 Fornitori

99.1.5 Codici IVA

99.1.6 Articoli di magazzino

99.1.7 Condizioni di pagamento

99.2 Esercitazione con la contabilità generale «coge1»

99.2.1 Giornale di contabilità generale

99.2.2 Registri delle fatture

99.2.3 Partitario clienti e fornitori

99.2.4 Variazioni dei conti utilizzati

99.3 Verifica sulla gestione della contabilità generale «coge2»

99.4 Verifica guidata sulla chiusura «coge3»

99.4.1 Inserimento della situazione dei conti, prima degli assestamenti

99.4.2 Operazioni di assestamento

99.4.2.1 Operazioni di chiusura

99.4.3 Conclusione della verifica sulla chiusura

99.5 Verifica guidata sul bilancio «coge4»

99.5.1 Ripristino delle eccedenze

99.5.2 Predisposizione di una situazione contabile

99.5.3 Associare i conti alle voci di bilancio

99.5.4 Stampa del bilancio

99.5.5 Conclusione della verifica sul bilancio

99.6 Esercitazione con la contabilità di magazzino «mag1»

99.6.1 Giornale di magazzino

99.6.2 Valorizzazione al costo medio ponderato per movimento

99.6.3 Valorizzazione al costo medio ponderato per periodo

99.7 Verifica sulla gestione della contabilità di magazzino «mag2»

99.8 Esercitazione sulla gestione delle vendite «vend1»

99.8.1 Fattura

99.8.2 Cambiale tratta

99.8.3 Nota di accredito

99.8.4 Giornale di contabilità generale

99.8.5 Registro IVA delle vendite

99.8.6 Partitario clienti

99.8.7 Giornale di magazzino

99.9 Verifica sulla gestione dei documenti della vendita «vend2»

99.10 Verifica sulla gestione dei documenti della vendita «vend3»

99.11 Verifica sulla gestione dei documenti della vendita «vend4»

99.12 Verifica integrata «int1»

99.13 Verifica integrata «int2», guidata - prima parte

99.13.1 Preparazione

99.13.2 Inserimento della situazione iniziale

99.13.3 Le operazioni dal 1 ottobre al 31 ottobre

99.13.4 Conclusione della prima parte

99.14 Verifica integrata «int2», guidata - seconda parte

99.14.1 Conclusione

99.15 Verifica integrata «int2» - terza parte

99.15.1 Le operazioni dal 1 novembre al 30 novembre

99.15.2 Conclusione

Parte xii Gazie

100 Installazione e manutenzione generale

100.1 Gazie in un sistema Unix

100.1.1 Configurazione del servente HTTP

100.1.2 MySQL

100.1.2.1 Copia di sicurezza

100.1.3 PHP: ''magic.quotes.gpc = Off''

100.2 Gazie in un sistema MS-Windows

100.2.1 XAMPP in un sistema MS-Windows

100.2.2 Installazione di WampServer in un sistema MS-Windows

100.2.3 Installazione di Gazie

100.2.4 Installazione di più gestioni indipendenti

100.2.5 Copia di sicurezza con phpMyAdmin

100.2.6 Aggiornamento di Gazie

100.3 Predisposizione di un servizio ''on-line''

100.3.1 Servente HTTP

100.3.2 Struttura di ''/var/www/gazie/'' e associazione alle basi di dati

100.3.3 Le basi di dati

100.3.4 Conclusione

100.3.5 Predisposizione di un servizio ''on-line'' con una base di dati unica

100.4 Installazione presso un servizio esterno

100.4.1 Preparazione e copia di Gazie

100.4.2 Preparazione della base di dati

100.5 GZT: un sistema per la didattica con Gazie

100.6 Riferimenti

101 Manuale sintetico delle funzionalità principali di Gazie

101.1 Piano dei conti e associazione al bilancio

101.2 Archivi di base

101.2.1 Azienda

101.2.1.1 Lista aziende installate

101.2.1.2 Crea nuova azienda

101.2.2 Banche di appoggio

101.2.3 Conti correnti bancari

101.2.4 Aliquote IVA

101.2.5 Pagamenti

101.2.6 Spedizioni

101.2.7 Vettori

101.2.8 Imballi

101.2.9 Porti

101.2.10 Utenti

101.3 Home

101.4 Contabilità

101.4.1 Piano dei conti

101.4.1.1 Nuovo conto

101.4.1.2 Stampa piano dei conti

101.4.1.3 Partitario

101.4.2 Prima nota

101.4.2.1 Nuovo movimento contabile

101.4.3 Causali contabili

101.4.4 Libro giornale

101.4.5 Registri IVA

101.5 Fine anno

101.5.1 Bilancio

101.5.2 Bilancio CEE

101.5.3 Chiusura e apertura conti

101.6 Magazzino

101.6.1 Causali

101.6.2 Categorie merceologiche

101.6.3 Articoli

101.6.3.1 Rivalutazione esistente

101.6.4 Movimenti

101.6.4.1 Nuovo movimento di magazzino

101.6.4.2 Genera movimenti di magazzino

101.6.4.3 Stampa giornale di magazzino

101.6.4.4 Stampa schedari articoli di magazzino

101.6.5 Listini

101.6.6 Modifica prezzi

101.6.7 Cataloghi

101.6.8 Statistiche

101.7 Vendite

101.7.1 Clienti

101.7.2 Corrispettivi

101.7.3 D.d.T.

101.7.3.1 Emetti D.d.T.

101.7.4 Fatture

101.7.4.1 Emetti fattura

101.7.4.2 Fatturazione D.d.t.

101.7.4.3 Contabilizza fatture

101.7.4.4 Emetti nota credito

101.7.4.5 Emetti parcella

101.7.4.6 Modifica della numerazione

101.7.4.7 Eliminazione di un documento intermedio

101.7.5 Effetti

101.7.5.1 Emetti effetto

101.7.5.2 Genera effetti da fatture

101.7.5.3 Stampa effetti

101.7.5.4 Distinta effetti

101.7.5.5 Contabilizza effetti

101.7.6 Ordini

101.7.6.1 Ordini da cliente

101.7.6.2 Evadi ordini

101.7.7 Agenti

101.8 Acquisti

101.8.1 Fornitori

101.8.2 Preventivi e ordini

101.8.2.1 Richiedi preventivo

101.8.2.2 Ordine a fornitore

101.8.3 Documenti di trasporto relativi all'acquisto

101.8.3.1 Emetti D.d.t. di reso

101.8.3.2 Ricevuto D.d.t. di acquisto

101.8.4 Fatture

102 Tabelle principali della base di dati di Gazie

102.1 Tabella ''aliiva''

102.2 Tabella ''pagame''

102.3 Tabelle ''clfoco'' e ''anagra''

102.4 Tabella ''caucon''

102.5 Tabelle ''tesmov'', ''rigmoc'' e ''rigmoi''

102.6 Tabelle ''artico'' e ''catmer''

102.7 Tabelle ''agenti'' e ''provvigioni''

102.8 Tabella ''caumag''

102.9 Tabella ''movmag''

102.10 Tabella ''banapp''

102.11 Tabella ''imball''

102.12 Tabella ''portos''

102.13 Tabella ''spediz''

102.14 Tabella ''vettor''

102.15 Tabella ''body.text''

102.16 Tabelle ''tesdoc'', ''rigdoc''

102.17 Tabella ''effett''

102.18 Tabelle ''contract'' e ''contract.row''

102.19 Tabelle ''tesbro'' e ''rigbro''

102.20 Tabella ''aziend''

Parte xiii Esercitazioni con Gazie

u8 Utilizzo di Google documenti per le esercitazioni con Gazie

u9 Utilizzo di ''gzt.nssitaly.com''

103 Esercitazione con la contabilità generale «coge1»

103.1 Introduzione della prima nota

103.1.1 Prima registrazione del 4 gennaio

103.1.2 Seconda registrazione del 4 gennaio

103.1.3 Terza registrazione del 5 gennaio

103.1.4 Quarta registrazione del 5 gennaio

103.2 Stampa del giornale di contabilità generale

103.3 Stampa dei registri delle fatture

103.4 Condivisione dei file con il docente

104 Verifica sulla gestione della contabilità generale «coge2»

105 Verifica guidata sulla chiusura «coge3»

105.1 Inserimento della situazione dei conti, prima degli assestamenti

105.2 Operazioni di assestamento

105.3 Bilancio finale

105.3.1 Operazioni di chiusura

105.4 Conclusione della verifica sulla chiusura

106 Esercitazione con la contabilità di magazzino «mag1»

106.1 Movimenti da inserire

106.2 Stampa del giornale di magazzino

106.3 Stampa delle schede di magazzino

106.4 Condivisione dei file con il docente

107 Verifica sulla gestione della contabilità di magazzino «mag2»

108 Esercitazione sulla gestione delle vendite «vend1»

108.1 Emissione della fattura

108.2 Contabilizzazione della fattura

108.3 Emissione della cambiale tratta

108.4 Distinta degli effetti

108.5 Contabilizzazione degli effetti

108.6 Emissione di una nota di accredito

108.7 Contabilizzazione della nota di accredito

108.8 Giornale di contabilità generale

108.9 Registro IVA delle vendite

108.10 Partitario clienti

108.11 Giornale di magazzino

109 Verifica sulla gestione dei documenti della vendita «vend2»

110 Verifica sulla gestione dei documenti della vendita «vend3»

111 Esercitazione sulla gestione degli ordini da clienti «vend4»

111.1 Emissione della conferma d'ordine

111.2 Evasione dell'ordine

111.3 Completamento

112 Verifica sulla gestione degli ordini da clienti «vend5»

113 Esercitazione sulla gestione delle provvigioni «vend6»

114 Esercitazione sulla gestione degli acquisti «acq1»

114.1 Emissione della richiesta di preventivo

114.2 Emissione dell'ordine

114.3 Ricezione del DDT

114.4 Ricezione della fattura differita

114.5 Merce resa al fornitore

114.6 Nota di accredito da fornitore

114.7 Completamento

115 Verifica integrata «int1»

116 Verifica integrata guidata «int2» - prima parte

116.1 Articoli di magazzino

116.2 Inserimento della situazione iniziale

116.3 Le operazioni dal 1 ottobre al 31 ottobre

116.4 Conclusione della prima parte

117 Verifica integrata guidata «int2» - seconda parte

117.1 Conclusione

118 Verifica integrata guidata «int2» - terza parte

118.1 Le operazioni dal 1 novembre al 30 novembre

118.2 Conclusione

Volume VI ''a0''

Parte xiv Applicativi

u10 Spreadsheet Calculator

u2.1 Concetti generali

i10.1.1 Zona

i10.1.2 Navigazione nel foglio

i10.1.3 Inserimento e modifica di dati nella riga di comando

u2.2 Avvio e opzioni di funzionamento

u2.3 Inserimento e modifica dei valori nelle celle

i10.3.1 Particolarità dell'inserimento di valori ed espressioni stringa

i10.3.2 Particolarità dell'inserimento di valori ed espressioni numerici

u2.4 Formato delle celle

u2.5 Comandi per intervenire sui file

u2.6 Comandi per intervenire su zone del foglio

i10.6.1 Aiuto alla definizione delle celle e delle zone

i10.6.2 Coordinate relative o assolute

u2.7 Comandi vari

u2.8 Espressioni

u2.9 Formato del file

Parte xv NLNX

u11 Semplicità e controllo

u2.1 Caratteristiche generali

u2.2 Insieme dei pacchetti applicativi disponibili

u2.3 File system compresso

u2.4 Espulsione del disco

u2.5 Aggiornamento

u2.6 Sistema di emergenza

u2.7 Installazione: normale o in sola lettura

u2.8 Avvio dalla rete

u12 Ambiente operativo ideale di NLNX

u2.1 Servente

u2.2 Elaboratori periferici

u2.3 Accesso alle stampanti

u2.4 Proxy HTTP

u2.5 Il lavoro a casa

u2.6 Osservazioni

u13 NLNX per il principiante

u2.1 Utilizzo del DVD live

u2.2 Installazione in ''C:.''

u2.3 Utenze

u2.4 Configurazione automatica della rete

u2.5 Voci per l'avvio

u14 La configurazione grafica di NLNX

u2.1 Menù

u2.2 Configurazione delle finestre

u2.3 Comandi da tastiera

u2.4 Configurazione locale

u2.5 Configurazione della mappa della tastiera

u2.6 Livelli di inserimento

u2.7 Accenti morti

i14.7.1 Metodi di inserimento

u2.8 Messaggi di errore

u2.9 Avvio dei programmi

u2.10 Chiusura dei programmi

u2.11 Configurazione del mouse

u2.12 Sfondo

u2.13 Cattura dell'immagine dello schermo

u2.14 Bottoni della barra delle applicazioni

u2.15 Registrazione dello schermo

u2.16 Uso dello scanner

u2.17 Avvio manuale del sistema grafico

u2.18 Autorizzazione per l'accesso al servente X

u2.19 Altre annotazioni

u15 Accesso ad altri file system con NLNX

u2.1 Innesto di altri file system

u2.2 Accesso semplificato alle unità rimovibili

u2.3 Accesso a unità non rimovibili

u2.4 Limitazione all'accesso

u2.5 Accesso a risorse di rete SMB

u16 Sintesi dei comandi

u17 Sintesi delle opzioni di avvio

u18 Preparazione delle partizioni

u2.1 Piano di utilizzo delle partizioni

u2.2 Sistema di emergenza: ''rescue''

u2.3 Suddivisione in partizioni

u2.4 Inizializzazione delle partizioni

u19 Copia del sistema operativo

u2.1 Copia di NLNX in una partizione di un disco ''normale''

u2.2 Copia in una directory

u2.3 Configurazione

u2.4 Configurazione alternativa

u2.5 Scambio della memoria utilizzando un file

u20 Installazione in un file-immagine

u2.1 Installazione di un file-immagine in sola lettura

u2.2 Installazione in sola lettura condivisa attraverso la rete

u2.3 File-immagine in lettura e scrittura

u21 Predisposizione del sistema di avvio

u2.1 SYSLINUX

u2.2 EXTLINUX

u2.3 PXELINUX

u2.4 Osservazioni sugli insiemi RAID

u2.5 Osservazioni sulla convivenza di più sistemi operativi

u2.6 Osservazioni sull'aggiornamento del kernel

u22 Avvio di NLNX dopo la sua installazione

u2.1 Configurazione dell'avvio

u2.2 Cenni alla configurazione successiva

u23 Realizzazione di una propria variante di NLNX

u2.1 Modifica dei pacchetti applicativi installati

u2.2 Creazione del file-immagine della versione live

i23.2.1 Identificazione dell'edizione

u2.3 Ricompilazione del kernel

u2.4 Installazione di software non libero

u24 Configurazione di NLNX per l'interazione con il sistema

u2.1 Configurazione locale

u2.2 Configurazione di mouse e tastiera

u2.3 Configurazione di X

u25 Stampa

u2.1 Configurazione

u2.2 Opzioni di avvio per la stampa

u26 Particolarità varie di NLNX

u2.1 ACPI

u2.2 Configurazione di Bash e script di sistema

u2.3 Procedura di inizializzazione del sistema

u2.4 Registri

u2.5 Pianificazione dei processi con Cron

u2.6 Dati variabili nel DVD live

u2.7 Blocco delle funzioni di ''nlnxrc''

u27 Servizi di rete vari, secondo l'organizzazione di NLNX

u2.1 Nomi a dominio

u2.2 DHCP

u2.3 TFTP e PXE

u2.4 HTTP

u2.5 Proxy HTTP

u2.6 File di registrazioni

u2.7 Orologio di riferimento

u2.8 Servizi da avviare manualmente

u2.9 Utilizzo dello scanner

u28 PXE per l'avvio di un elaboratore senza disco fisso

u2.1 PXE

u2.2 NLNX in un file system di rete

u2.3 Controllo dell'avvio di sistemi locali

u29 HTTP e servizi collegati

u2.1 Impedire la pubblicazione di file personali

u2.2 Programmi CGI

u2.3 PHP

u2.4 Webalizer

u2.5 MRTG

u2.6 Accessibilità dei registri «log»

u2.7 Documentazione interna

u2.8 Esercitazioni con il linguaggio HTML

u30 La rete e gli instradamenti con NLNX

u2.1 Interfacce di rete senza fili

u2.2 Individuazione delle interfacce di rete

u2.3 Connessione in una rete locale tradizionale

u2.4 Connessione in una rete locale via radio

i30.4.1 Connessione automatica in una rete non cifrata

u2.5 Router per una rete locale

u2.6 Router per una rete locale, attraverso un proxy

u2.7 Indirizzi di rete da evitare assolutamente

u31 VNC con ''nlnxrc''

u2.1 Organizzazione e funzionamento

u2.2 Utilizzo di un elaboratore remoto con un pubblico passivo

u2.3 Utilizzo di un elaboratore locale con un pubblico passivo

u2.4 Utilizzo di un elaboratore remoto con un pubblico attivo

u2.5 Utilizzo di un elaboratore locale, con un pubblico attivo

u2.6 Utilizzo senza parola d'ordine

u2.7 Utilizzo di VNC attraverso un tunnel SSH

u32 Utenze e amministrazione con NLNX

u2.1 Creazione, modifica e cancellazione delle utenze, in modo interattivo

u2.2 Creazione, modifica e cancellazione delle utenze, in modo non interattivo

u2.3 NIS e NFS per utilizzare altre utenze

u2.4 Controllo dello spazio utilizzato

u2.5 Controllo del numero di pagine stampabili e dell'origine delle stampe

u2.6 Utenze speciali per l'amministrazione

u33 Utenze condivise e configurazione automatica con NLNX

u2.1 Condivisione delle utenze attraverso NIS, NFS e Samba

u2.2 Utilizzo di SSHfs al posto di NFS

u2.3 Gestione delle utenze

u2.4 Samba

i33.4.1 Le utenze di Samba

u2.5 Servente DHCP

u34 Controllo dell'accesso a servizi HTTP esterni

u2.1 Situazione tipica di utilizzo

u2.2 Controllo a gruppi

u35 Controllo dell'accesso alla stampante

u36 Mettere in comunicazione insegnanti e studenti

u2.1 Organizzazione delle utenze

u2.2 Funzionamento

u37 Estendere il controllo delle utenze alla rete MS-Windows

u2.1 Situazione di esempio

u2.2 Profili personali

u2.3 Script di avvio

u2.4 Utenze per gli elaboratori MS-Windows

u2.5 Configurazione di MS-Windows XP Professional: disabilitazione della connessione cifrata

u2.6 Configurazione di MS-Windows XP Professional: associazione al dominio

u2.7 Configurazione di MS-Windows 7: definizione di due voci nel registro di sistema

u2.8 Configurazione di MS-Windows 7: associazione al dominio

u2.9 Spegnimento del servente NLNX

u2.10 Servente WINS

u2.11 Riferimenti

u38 Installazione indolore di NLNX in una rete di elaboratori MS-Windows

u2.1 Sequenza di avvio

u2.2 File system principale attraverso la rete

u2.3 Configurazione del DHCP

u2.4 Configurazione dell'avvio

u2.5 Riferimenti

u39 Problemi di NLNX e soluzioni

u2.1 Directory personale in un disco esterno

u2.2 Utenze generiche

u2.3 Messaggi di errore

u2.4 Programmi ''duri a morire''

u2.5 Studenti troppo furbi

u2.6 Vincolare gli utenti a un certo gruppo di postazioni

u40 Adattamento di NLNX

u2.1 Gerarchia doppia

u2.2 Creazione di una nuova versione

u2.3 Configurazione predefinita di NLNX

u2.4 Aggiornamento dei pacchetti installati

u2.5 Kernel

u41 Organizzazione del laboratorio GNU/Linux

u2.1 Accensione e spegnimento

u2.2 Procedura per l'aggiunta di un utente

u2.3 Controllo dei servizi

u2.4 Controllo del numero massimo di pagine stampabili per volta

u2.5 Utilizzo di elaboratori estranei al laboratorio

u42 Utilizzo del laboratorio GNU/Linux

u2.1 Avvio e arresto degli elaboratori del laboratorio

u2.2 Utenze

u2.3 Registri

u2.4 Console e utilizzo di applicazioni grafiche

u2.5 Stampa

u2.6 Accesso a Internet

u2.7 Licenze

i42.7.1 The Debian Free Software Guidelines «DFSG»

u43 Organizzazione dei laboratori MS-Windows

u2.1 Procedura per l'aggiunta di un utente

u2.2 Procedura per la modifica di una parola d'ordine

u2.3 Controllo dell'accesso all'esterno

u2.4 Configurazione di MS-Windows XP Professional per utilizzare le utenze centralizzate

u2.5 Configurazione di MS-Windows 7 per utilizzare le utenze centralizzate

u2.6 Configurazione per poter utilizzare anche un sistema GNU/Linux

u2.7 Eliminazione delle utenze

u44 Utilizzo dei laboratori MS-Windows

u2.1 Premessa

u2.2 Autenticazione

u2.3 Accesso manuale ai dati personali da una postazione MS-Windows anonima

u2.4 Scambio di dati tra insegnanti e studenti

u2.5 Avvio di un sistema GNU/Linux

u2.6 Registri elettronici

u45 Servizio telnet.informaticalibera.net

u2.1 Tutori, pupilli e directory personali

u2.2 La stampa

u2.3 Pubblicazione di file attraverso la directory ''./public.html/''

u2.4 Elenco dei tutori e dei pupilli

u2.5 Registri

u2.6 Amministrazione da parte dei tutori

u2.7 Accesso normale al sistema

u2.8 Trasferimento dati tramite il protocollo SSH

u46 Come funziona il servizio telnet.informaticalibera.net

u2.1 Elaboratori coinvolti

u2.2 Ridirezione del traffico TCP

u2.3 Avvio dalla rete dell'elaboratore ''B''

u2.4 Dati personali delle utenze privilegiate

u2.5 Servizi via HTTP presso l'elaboratore ''A''

u2.6 Riferimenti

Parte xvi Installazione e avvio di un sistema GNU/Linux

u47 Installazione di una distribuzione Slackware

u2.1 Organizzazione dei dischetti di avvio

u2.2 Avvio dai dischetti e preparazione all'installazione

u2.3 Avvio della procedura di installazione

i47.3.1 Configurazione della partizione di scambio

i47.3.2 Selezione delle partizioni di tipo Linux-nativa

i47.3.3 Selezione della fonte della distribuzione GNU/Linux

i47.3.4 Selezione dei gruppi di pacchetti da installare

i47.3.5 Installazione dei pacchetti e del kernel

u2.4 Configurazione del sistema

i47.4.1 Dischetto di avvio

i47.4.2 Configurazione e installazione del sistema di avvio

i47.4.3 Ora locale

u2.5 Conclusione

u2.6 Riferimenti

u48 LILO: introduzione

u2.1 Organizzazione essenziale

u2.2 Installazione del meccanismo di caricamento del sistema operativo

i48.2.1 Configurazione

i48.2.2 Installazione del sistema di avvio

u2.3 LILO su un disco differente

u2.4 Boot prompt

u2.5 Riferimenti

u49 Configurazione di LILO più in dettaglio «omesso»

u2.1 Direttive di configurazione globale

u2.2 Direttive utilizzabili globalmente e anche nelle sezioni specifiche

u2.3 Sezioni delle voci di avvio

u2.4 Esempi

Parte xvii X

u50 X: monitor, adattatore grafico e frequenza dot-clock

u2.1 Autorilevamento con Read-edid

u2.2 Autorilevamento con un servente XFree86 versione 3.*

i50.2.1 Dot-clock

u2.3 Un po' di teoria

i50.3.1 Ampiezza di banda del monitor

i50.3.2 Scomposizione e scansione dell'immagine sul monitor

i50.3.3 Frequenza, durata e lunghezza

i50.3.4 Definizioni, concetti ed equazioni

i50.3.5 Multipli di otto e rapporto 3/4

i50.3.6 Utilizzo della memoria video

i50.3.7 Impulsi di sincronismo

i50.3.8 Tradurre i valori in unità dot-clock e in quantità di righe

u2.4 Configurazione della sezione ''Monitor'' di ''XF86Config''

i50.4.1 Scomposizione delle informazioni

i50.4.2 Scansione orizzontale

i50.4.3 Scansione verticale

i50.4.4 Interlacciamento

i50.4.5 Adattamento delle configurazioni predefinite

u2.5 Rifiniture

i50.5.1 Utilizzo di ''xvidtune''

u2.6 Altri programmi affini

u2.7 Riferimenti

Parte xviii Posta elettronica

u51 Sendmail: introduzione

u2.1 Destinatari e formati degli indirizzi

u2.2 Alias, inclusione e forward

u2.3 Configurazione di Sendmail con il pacchetto di Berkeley

i51.3.1 Introduzione al sistema

i51.3.2 Struttura e contenuto del file di configurazione

i51.3.3 Macro ''VERSIONID''

i51.3.4 Macro ''OSTYPE''

i51.3.5 Macro ''DOMAINS''

i51.3.6 Macro ''MAILERS''

i51.3.7 Macro ''FEATURE''

i51.3.8 Macro ''HACK''

u2.4 Esempio di una distribuzione GNU/Linux

i51.4.1 File ''/etc/mail/ip.allow''

i51.4.2 File ''/etc/mail/name.allow''

i51.4.3 File ''/etc/mail/relay.allow''

i51.4.4 File ''/etc/mail/deny''

u52 Exim 3: introduzione

u2.1 Compatibilità con Sendmail e differenze importanti

u2.2 Installazione

i52.2.1 Utente specifico

i52.2.2 File ''/etc/aliases''

i52.2.3 File ''./.forward''

i52.2.4 Directory di destinazione dei messaggi locali

u2.3 Organizzazione della configurazione

i52.3.1 Struttura

u2.4 Elementi comuni della configurazione

i52.4.1 Macro

i52.4.2 Assegnamento

i52.4.3 Valori booleani

i52.4.4 Interi

i52.4.5 Numeri con parte decimale

i52.4.6 Intervalli orari

i52.4.7 Stringhe

i52.4.8 Elenchi di stringhe

i52.4.9 Espansione delle stringhe

i52.4.10 Espressioni regolari

u2.5 Configurazione in pratica

i52.5.1 Configurazione principale

i52.5.2 Configurazione dei driver

i52.5.3 Configurazione dei tentativi ripetuti

i52.5.4 Configurazione della riscrittura degli indirizzi

i52.5.5 Configurazione generica

i52.5.6 Interazione con Procmail

u2.6 Avvio di Exim

u2.7 Code e registri

i52.7.1 Archiviazione dei file delle registrazioni

u2.8 Riferimenti

u53 Ssmtp

u2.1 Configurazione

u2.2 Ricezione della posta elettronica

u2.3 Considerazioni sulla sicurezza

Parte xix Usenet

u54 Introduzione a Usenet

u2.1 Software per Usenet

u2.2 Organizzazione generale del sistema di news di Usenet

i54.2.1 Selezione dei gruppi e feed

i54.2.2 Gestione degli articoli

i54.2.3 Protocollo NNTP

i54.2.4 Messaggi di controllo

i54.2.5 Distribuzioni

u2.3 Organizzazione del software per la gestione delle news

i54.3.1 Collocazione locale degli articoli

i54.3.2 Gruppi amministrativi

i54.3.3 File amministrativi

i54.3.4 Distribuzione degli articoli

i54.3.5 Utente specifico

u2.4 Riferimenti

u55 Introduzione a INN -- InterNet News

u2.1 Installazione e quadro generale di INN

i55.1.1 Le variabili di ambiente

i55.1.2 Caratteri jolly

u2.2 Configurazione minima per l'uso locale puro e semplice

i55.2.1 File ''/etc/news/inn.conf''

i55.2.2 File ''/etc/news/distrib.paths''

i55.2.3 File ''/etc/news/newsfeeds''

i55.2.4 File ''/etc/news/expire.ctl''

i55.2.5 File ''/etc/news/nnrp.access''

i55.2.6 File ''/var/lib/news/active''

i55.2.7 File ''/var/lib/news/history''

u2.3 Demoni e altri programmi per l'uso minimo di INN

i55.3.1 Avvio e conclusione del servizio NNTP

i55.3.2 Utilizzo di ''ctlinnd''

i55.3.3 Operazioni di routine

u2.4 Feed in ingresso utilizzando il protocollo NNTP

i55.4.1 File ''/etc/news/hosts.nntp''

i55.4.2 File ''/etc/news/incoming.conf''

u2.5 Feed continuo in uscita utilizzando il protocollo NNTP

i55.5.1 File ''/etc/news/innfeed.conf''

i55.5.2 File ''/etc/news/newsfeeds''

u2.6 Feed periodico in uscita utilizzando il protocollo NNTP

i55.6.1 File ''/etc/news/nntpsend.ctl''

i55.6.2 File ''/etc/news/newsfeeds''

i55.6.3 Utilizzo di ''nntpsend''

u2.7 Ritrasmissione di articoli attraverso la posta elettronica

u2.8 Prelievo di articoli utilizzando il protocollo NNTP

i55.8.1 Utilizzo di ''nntpget''

u2.9 Replicazione dei gruppi di un altro sito

u2.10 Riferimenti

Parte xx Cfengine

u56 Introduzione a Cfengine

u2.1 Primo approccio con la configurazione

i56.1.1 La variabile CFINPUTS

i56.1.2 Simulazione

u2.2 Sezioni e classi predefinite

u2.3 Classi più in dettaglio

u2.4 Variabili e stringhe

i56.4.1 Elenchi

u2.5 Espressioni regolari

u57 Cfengine: sezioni di uso comune

u2.1 Permessi e proprietà

u2.2 Sezione ''control''

i57.2.1 Impostazione delle variabili

i57.2.2 Direttiva ''actionsequence''

i57.2.3 Direttiva ''addclasses''

u2.3 Sezione ''classes'' o ''groups''

u2.4 Sezione ''copy''

i57.4.1 Opzione ''dest''

i57.4.2 Opzione ''recurse''

i57.4.3 Opzione ''type''

i57.4.4 Opzione ''purge''

i57.4.5 Opzione ''server''

u2.5 Sezione ''directories''

u2.6 Sezione ''disable''

i57.6.1 Opzione ''rotate''

u2.7 Sezione ''files''

i57.7.1 Opzione ''checksum''

i57.7.2 Opzione ''recurse''

u2.8 Sezione ''links''

i57.8.1 Opzione ''type''

i57.8.2 Opzione ''recurse''

u2.9 Sezione ''processes''

i57.9.1 Opzione ''signal''

i57.9.2 Opzione ''restart''

i57.9.3 Opzione ''matches''

i57.9.4 Opzione ''action''

u2.10 Sezione ''shellcommands''

u2.11 Sezione ''tidy''

i57.11.1 Opzione ''pattern''

i57.11.2 Opzione ''recurse''

i57.11.3 Opzione ''age''

i57.11.4 Opzione ''type''

i57.11.5 Opzione ''rmdirs''

u58 Cfengine attraverso la rete

u2.1 Configurazione e avvio del demone

i58.1.1 Configurazione essenziale di ''cfd.conf''

u2.2 Filosofia del sistema di distribuzione di Cfengine

Parte xxi Connettività con sistemi Dos

u59 Dos IPv4

u2.1 Driver di pacchetto

u2.2 Libreria WATTCP

u2.3 Applicazioni standard per WATTCP

u2.4 ABC-nslookup

u2.5 MiniTelnet

u2.6 SSHDOS

u2.7 Bobcat «Lynx»

u2.8 PPRD: servente di rete per la stampa

u2.9 Trout

u2.10 Talk

u2.11 DosLynx

u2.12 NCSA Telnet

i59.12.1 File ''CONFIG.TEL''

i59.12.2 File ''KEYFILE.TEL''

i59.12.3 File ''PASSWORD.TEL''

i59.12.4 File ''SERVICES.TEL''

i59.12.5 File ''TELBIN.EXE''

i59.12.6 File ''FTPBIN.EXE''

i59.12.7 File ''FINGER.EXE''

u2.13 POPMail

i59.13.1 Menù ''Setup''

i59.13.2 Menù ''Window''

i59.13.3 Menù ''=''

u2.14 PCroute

i59.14.1 Configurazione dei driver di pacchetto

i59.14.2 Configurazione di PCroute

i59.14.3 Conclusione

u2.15 Riferimenti

u60 Dos PPP

u2.1 Composizione

u2.2 Configurazione e script

i60.2.1 Opzioni particolari per il PPP

u2.3 Connessione in pratica

u61 Introduzione a NOS-KA9Q -- IPv4 per Dos

u2.1 Preparazione

i61.1.1 Configurazione con il file ''AUTOEXEC.NET''

i61.1.2 Driver di pacchetto

i61.1.3 Avvio del sistema NOS «NET.EXE»

i61.1.4 Conclusione del funzionamento del sistema NOS

i61.1.5 Guida interna

u2.2 Interfacce, instradamento e nomi

i61.2.1 Comandi ''attach'' e ''detach''

i61.2.2 Comando ''ifconfig''

i61.2.3 Comando ''route''

i61.2.4 Comando ''domain''

u2.3 Gestione delle sessioni

u2.4 Attività nel sistema locale

u2.5 Gestione della rete e delle connessioni

i61.5.1 Indirizzi IP e indirizzi MAC

i61.5.2 Ping e instradamento

i61.5.3 Varie

u2.6 NOS come cliente

i61.6.1 Cliente TELNET

i61.6.2 Cliente FTP

u2.7 NOS come servente

i61.7.1 Registrazione degli eventi

i61.7.2 Servente FTP

u2.8 NOS come router IPv4

u62 nanoDos

u2.1 Organizzazione della distribuzione

u2.2 Installazione

u2.3 Configurazione

u2.4 Utilizzo

u2.5 Conclusione

u2.6 Riferimenti

Parte xxii ALML

u63 Introduzione ad ALML

u2.1 Esigenze che Alml intenderebbe soddisfare

u2.2 Tutto in uno

u2.3 Continuità tra documento stampato e documento elettronico

u2.4 Perché SGML

u2.5 Capitoli sullo stile usato per a2

u64 Preparazione e visione generale

u2.1 Installazione di Alml

i64.1.1 Gettext

u2.2 Esempio iniziale

u2.3 Cosa si genera con la composizione

u2.4 Sintassi nell'uso del programma frontale

u2.5 Codifica del sorgente

u2.6 Organizzare un file-make o uno script

u2.7 Formati particolari

u2.8 Progetti di documentazione che utilizzano il formato di Alml

u65 Il documento secondo Alml

u2.1 Organizzazione generale

u2.2 Dalla copertina all'indice generale

i65.2.1 Esempio quasi completo per la compilazione dell'intestazione

i65.2.2 Margini e giustezza nella composizione stampata

i65.2.3 Corpo del carattere nella composizione stampata

u2.3 Contenuto

i65.3.1 Introduzione

i65.3.2 Corpo

i65.3.3 Appendici

i65.3.4 Indici analitici

i65.3.5 Suddivisioni speciali

u2.4 Documento multilingua

i65.4.1 Cambiamento temporaneo del linguaggio

u2.5 Definizione alternativa della suddivisione del documento

u66 Elementi interni alle righe

u2.1 Numeri

u2.2 Tastiera, menù e codice ASCII

u2.3 Indirizzi di posta elettronica

u67 Blocchi comuni

u2.1 Elenchi e simili

u2.2 Testo letterale o quasi

i67.2.1 Sezioni marcate ''CDATA'' e spazi

u2.3 Modelli sintattici

u2.4 Comandi

u68 Altri blocchi e componenti lineari particolari

u2.1 Inserzioni particolari

u2.2 Riquadri

u2.3 Copia di porzioni del documento

i68.3.1 Copia di piè di pagina

i68.3.2 Copia di immagini

u69 Riferimenti, note e altre informazioni

u2.1 Riferimenti incrociati e ipertestuali

u2.2 Note e piè pagina

u2.3 Riferimenti esterni e citazioni

u2.4 Indici analitici e termini speciali

i69.4.1 Esempio di indice analitico

i69.4.2 Esempio di indice di termini speciali

u2.5 Caratteristiche del software e di altri ''lavori''

u2.6 Informazioni su sezioni specifiche del documento

u2.7 Sezioni particolari

u70 Immagini e video

u2.1 Immagini esterne

u2.2 Immagini incorporate Base64

u2.3 Immagini incorporate EPS

u2.4 Immagini incorporate XFig

u2.5 Immagini incorporate LilyPond

u2.6 Immagini incorporate TeX e LaTeX

u2.7 Immagini incorporate Gnuplot

u2.8 Osservazioni sull'incorporazione di codice estraneo

u71 Tabelle

u72 Allegati

u73 Verifiche

u2.1 Capitolo per le verifiche

u2.2 Impedire la lettura del codice

u2.3 Esempio di verifica

u74 Esempio di verifica con Alml

u75 Esempio di verifica con Alml bis

u76 Esempio di verifica con Alml ter

u77 Presentazioni

u2.1 Esempio di presentazione

u2.2 Composizione

u78 Inserimento letterale di codice TeX e HTML, con eventuale inserimento condizionato

u79 Entità ISO ed entità HTML gestite da Alml

u2.1 Alfabeti simbolici

u2.2 Alfabeti latini

u2.3 Alfabeti non latini

u2.4 HTML

u2.5 Riferimenti

u80 Insieme di caratteri universale e Alml

u2.1 Riferimenti

u81 Stile di scrittura del sorgente

u2.1 Blocchi di testo e rientri

i81.1.1 Elenchi

u2.2 Figure e tabelle

u2.3 Titoli

u2.4 Sezioni marcate

u82 Alml per i grandi progetti di documentazione

u2.1 Estrapolazione di porzioni del file SGML

u2.2 Esempio di un progetto

u2.3 Aggregazioni

u83 Questioni tecniche

u2.1 Usare Textchk e Ispell con Alml

u2.2 Espandere le potenzialità elaborative di TeX

i83.2.1 Limiti strutturali di TeX

i83.2.2 Soluzione attuata da Alml

i83.2.3 Suddivisione automatica in volumi e parti della composizione finale PostScript e PDF

u2.3 Programma di supporto

u84 Gestione di ''a2''

u2.1 Articolazione dei file del sorgente

u2.2 Inclusione selettiva dei file esterni ed entità speciali

u2.3 Composizione guidata con il file-make

u85 Convenzioni di ''a2''

u2.1 Unità di misura e moltiplicatori

u2.2 Casi particolari di testo che non viene enfatizzato

u2.3 Valori numerici in lettere e in cifre

u2.4 Distinzione nell'uso dei nomi degli applicativi

u2.5 Descrizione degli acronimi

u2.6 Indice analitico

u2.7 Enfatizzazioni e uso degli elementi ''special''

u2.8 Rappresentazione del contenuto di file e dei flussi standard

u2.9 Altri problemi di coerenza nell'uso degli elementi SGML

u2.10 Sezioni marcate per le annotazioni

u86 Glossario stilistico di ''a2''

u2.1 Termini tecnici particolari

i86.1.1 Annotazioni su alcuni termini tecnici ritenuti ''intraducibili''

u2.2 Glossario

i86.2.1 Unità temporali

i86.2.2 Comandi e processi elaborativi

i86.2.3 Memoria centrale e virtuale

i86.2.4 Hardware

i86.2.5 Dispositivi

i86.2.6 Codifica

i86.2.7 Tastiera

i86.2.8 File di testo

i86.2.9 Archiviazione e pacchetti applicativi

i86.2.10 Dati

i86.2.11 Crittografia e firma digitale

i86.2.12 Linguaggi di programmazione e compilatori

i86.2.13 Memoria di massa

i86.2.14 Utenza

i86.2.15 Documentazione

i86.2.16 Interfaccia grafica

i86.2.17 Rete e comunicazioni

i86.2.18 Tipografia

i86.2.19 Unicode

i86.2.20 SGML/XML

i86.2.21 Grafica

i86.2.22 Usenet

i86.2.23 Localizzazione

i86.2.24 Varie

u2.3 Forme espressive particolari

u2.4 Annotazioni varie

u2.5 Nomi dei caratteri speciali

u2.6 Nomi da usare in modo uniforme

u2.7 Riferimenti

u2.8 Indice del glossario stilistico

Parte xxiii Texinfo: lo standard della documentazione GNU

u87 Introduzione a Texinfo

u2.1 Esempio introduttivo

u2.2 Logica fondamentale di Texinfo

i87.2.1 Scomposizione del documento

i87.2.2 Inserimento di simboli speciali

u2.3 Struttura di un documento Texinfo

i87.3.1 Capitoli e sezioni

i87.3.2 Nodi

i87.3.3 Menù di riferimenti

u2.4 Indici

i87.4.1 Indice generale

i87.4.2 Indici analitici

i87.4.3 Definizione di indici aggiuntivi

i87.4.4 Fusione di indici

u2.5 Aspetto del testo e ambienti speciali

u2.6 Elenchi e tabelle

i87.6.1 Elenco puntato e numerato

i87.6.2 Elenco descrittivo

i87.6.3 Tabelle vere e proprie

u2.7 Modifica dello stile TeX

u2.8 Localizzazione

u2.9 Riferimenti

u88 Texinfo: libro e ipertesto

u2.1 Sequenza dei nodi secondo Texinfo

u2.2 Definizione automatica della sequenza dei nodi e problemi relativi

u2.3 Limitazioni originali della struttura a nodi

u2.4 Riferimenti ipertestuali e limitazioni verbali

u2.5 Altri tipi di riferimento

u2.6 Riepilogo dei comandi relativi a nodi, ancore e riferimenti

u89 Sgmltexi: installazione e utilizzo

u2.1 Installazione di Sgmltexi

i89.1.1 Gettext

i89.1.2 Dipendenze

u2.2 Come si usa il programma frontale

u2.3 Riferimenti

u90 Sgmltexi: struttura

u2.1 Struttura generale per un sorgente Sgmltexi

i90.1.1 Intestazione

i90.1.2 Informazioni amministrative

i90.1.3 Pagine iniziali

i90.1.4 Indice generale

i90.1.5 Nodi e menù Info iniziale

i90.1.6 Introduzione

i90.1.7 Corpo

i90.1.8 Appendice

i90.1.9 Indici analitici

u2.2 Scomposizione del documento, nodi e menù Info

i90.2.1 Numerazione o meno dei titoli

u2.3 Codifica

i90.3.1 Entità standard e non standard

u91 Sgmltexi: contenuti

u2.1 Paragrafi

u2.2 Indici e riferimenti incrociati

u2.3 Delimitazione di parole e di frasi

u2.4 Delimitazione di blocchi di testo

u2.5 Elenchi e tabelle

u2.6 Inserzioni

u2.7 Definizioni

u2.8 Codice condizionato e codice letterale in base alla composizione

i91.8.1 Problemi

u92 Corrispondenza tra Texinfo e Sgmltexi

Parte xxiv Sistemi vari di composizione elettronica

u93 Introduzione a Lout

u2.1 Collocazione dei componenti di Lout

u2.2 Funzionamento

u2.3 Esempio introduttivo

u2.4 Concetti fondamentali di Lout

u2.5 Caratteri speciali e stringhe letterali

u2.6 Spazi e spaziature

u2.7 Elementi essenziali di un documento Lout

i93.7.1 Dichiarazione dello stile generale

i93.7.2 Preambolo

i93.7.3 Struttura del documento ordinario

i93.7.4 Struttura della relazione tecnica

i93.7.5 Struttura del libro

i93.7.6 Struttura dei lucidi per lavagna luminosa

i93.7.7 Sottostrutture

i93.7.8 Suddivisione del testo

u2.8 Argomenti dei comandi e unità di misura

u2.9 Rappresentazione simbolica della codifica

u2.10 Caratteri da stampa

i93.10.1 Corpo

u2.11 Display

u2.12 Caratteristiche interne dei paragrafi

i93.12.1 Interruzione e allineamento

i93.12.2 Distanza tra le righe

i93.12.3 Separazione in sillabe

i93.12.4 Raccogliere tutto assieme

u2.13 Testo letterale

u2.14 Elenchi

u2.15 Note

i93.15.1 Note a piè pagina e note finali

i93.15.2 Note a margine

u2.16 Figure e tabelle fluttuanti

i93.16.1 Figure

i93.16.2 Tabelle

u2.17 Indici e riferimenti incrociati

i93.17.1 Riferimenti nel testo

i93.17.2 Indice generale e indice analitico

i93.17.3 Problemi connessi alla generazione dei riferimenti incrociati

u2.18 Localizzazione

i93.18.1 Configurazione di una localizzazione

u2.19 Personalizzazione dello stile

i93.19.1 Inclusione di altri stili

i93.19.2 Veste grafica del documento

i93.19.3 Particolarità del tipo di documento

i93.19.4 Parte conclusiva

u2.20 Riferimenti

u94 Introduzione a LyX

u2.1 Creazione di un documento

u2.2 Struttura e stile

u2.3 Modelli di documento

u2.4 Automatismi

u2.5 Riferimenti

u95 Introduzione a HieroTeX

u2.1 Installazione

i95.1.1 Sesh

u2.2 Utilizzare HieroTeX

i95.2.1 Due modi di usare HieroTeX

i95.2.2 Scrittura normale

u2.3 Codifica di HieroTeX

u2.4 Riferimenti

u96 Trasformazione in altri formati

u2.1 DLH: trasforma LaTeX in HTML

u2.2 Help2man: genera una pagina di manuale dalle informazioni fornite dal programma

u2.3 Pstotext: estrae il testo da un file PostScript o PDF

u2.4 Mswordview

u2.5 Catdoc

u2.6 Antiword

u2.7 xlHTML

Parte xxv Circuiti logici

u97 Operatori logici e porte logiche

u2.1 Operatori unari

u2.2 Connettivo AND

u2.3 Connettivo OR

u2.4 Connettivo XOR

u2.5 Ordine di precedenza

u2.6 Valori irrilevanti nelle tabelle di verità

u2.7 Equivalenze

u2.8 Somma dei prodotti

u2.9 Mappe di Karnaugh

u2.10 Mappe di Karnaugh con la funzione XOR

u98 Circuiti combinatori

u2.1 Decodificatore

u2.2 Demultiplatore

u2.3 Multiplatore

u2.4 Demultiplatori e multiplatori in parallelo

u2.5 Codificatore binario

u2.6 Codificatore di priorità

u2.7 Unità logiche

u2.8 Scorrimento

u2.9 Addizionatore

u2.10 Sottrazione

u2.11 Somma e sottrazione assieme

u2.12 Riporto anticipato

u2.13 Complemento a due

u2.14 Moltiplicazione

u2.15 Divisione

u2.16 Comparazione

u99 Costruzione di un'unità aritmetico-logica

u2.1 Indicatori

u2.2 Troncamento di un valore in base al rango

u2.3 Inversione di segno

u2.4 Somma e sottrazione

u2.5 Scorrimento e rotazione

u2.6 Comparazione di valori

u2.7 Moltiplicazione

u2.8 Divisione

u2.9 Unità logica

u2.10 ALU completa

u100 Unità aritmetico-logica e registri espandibili

u2.1 Unità aritmetico-logica a bit singolo

u2.2 Registri

u101 Flip-flop

u2.1 Ritardo di propagazione

u2.2 Tabelle di verità

u2.3 Flip-flop SR elementare

u2.4 Interruttori senza rimbalzi

u2.5 Flip-flop SR con gli ingressi controllati

u2.6 Flip-flop SR sincrono ''edge triggered''

u2.7 Tempo: setup/hold e recovery/removal

u2.8 Flip-flop D

u2.9 Flip-flop T

u2.10 Flip-flop JK

u102 Registri

u2.1 Registri semplici

u2.2 Registri a scorrimento

u2.3 Contatori asincroni con flip-flop T

u2.4 Contatori sincroni con flip-flop T

u2.5 Contatori sincroni con flip-flop D

u2.6 Contatori sincroni con caricamento parallelo

u103 Bus e unità di controllo

u2.1 Bus con il buffer a tre stati

u2.2 Unità di controllo del bus

u2.3 Microcodice

u104 Tkgate

u2.1 File PostScript ed EPS

u2.2 Rappresentazione di multiplatori, demultiplatori e codificatori

u2.3 Clock

u105 Riferimenti

Parte xxvi Costruzione di una CPU dimostrativa

u106 Versione A: caricamento ed esecuzione del codice

u107 Versione B: indice della memoria

u2.1 Istruzioni ''load''

u2.2 Istruzioni ''store''

u108 Versione C: registri generici

u109 Versione D: ALU

u2.1 Istruzione ''not''

u2.2 Istruzione ''and''

u2.3 Istruzione ''or''

u2.4 Istruzione ''xor''

u2.5 Istruzioni ''lshl'' e ''lshr''

u2.6 Istruzioni ''ashl'' e ''ashr''

u2.7 Istruzioni ''rotl'' e ''rotr''

u2.8 Istruzione ''add''

u2.9 Istruzione ''sub''

u110 Versione E: indicatori

u2.1 Istruzione ''rotcl'' e ''rotcr''

u2.2 Istruzione ''add.carry''

u2.3 Istruzione ''sub.borrow''

u111 Versione F: condizioni

u112 Versione G: pila

u2.1 Istruzioni ''push'' e ''pop''

u2.2 Istruzioni ''call'' e ''return''

u113 Versione H: I/O

u2.1 Generalizzazione della comunicazione con i dispositivi

u2.2 Realizzazione dei dispositivi di I/O

u2.3 Aspetto e funzionamento esteriore delle interfacce sincrone

u2.4 Interfaccia sincrona della tastiera

u2.5 Interfaccia sincrona dello schermo

u2.6 Il bus della CPU con i dispositivi di I/O

u2.7 Istruzione ''out''

u2.8 Istruzione ''in''

u114 Versione I: ottimizzazione

u2.1 Registri uniformi

u2.2 RAM

u2.3 Modulo ''SEL''

u2.4 ALU

u2.5 Terminale

u2.6 Unità di controllo

u2.7 Memorie, campi, argomenti e codici operativi

u2.8 Microcodice

u2.9 Macrocodice: chiamata di una routine

u2.10 Macrocodice: inserimento da tastiera e visualizzazione sullo schermo

u115 Versione J: ottimizzazione bis

u116 Versione K: 16 bit ''little-endian''

u2.1 Registri a 16 bit

u2.2 Modulo ''BUS''

u2.3 Modulo ''ALU''

u2.4 Modulo ''SEL''

u2.5 Modulo ''RAM''

u2.6 Modulo ''IRQ''

u2.7 Modulo ''IVT''

u2.8 Modulo ''CTRL''

u2.9 Codici operativi

u2.10 Microcodice

u2.11 Gestione delle interruzioni

u2.12 Orologio: modulo ''RTC''

u2.13 Modulo ''TTY''

u2.14 Modulo ''HDD''

u2.15 Macrocodice: esempio di uso del terminale con le interruzioni

u117 Riferimenti

Parte xxvii Pascal

u118 Pascal: preparazione di alcuni compilatori comuni

u2.1 Pascal-to-C

i118.1.1 Librerie e compilazione

i118.1.2 Uso di Pascal-to-C

u2.2 GPC

u2.3 Free-Pascal

u119 Pascal: introduzione

u2.1 Struttura fondamentale

i119.1.1 Istruzioni Pascal

i119.1.2 Nomi

i119.1.3 Commenti

i119.1.4 Suddivisione di un programma Pascal

i119.1.5 Output elementare

u2.2 Variabili e tipi

i119.2.1 Valori contenibili e costanti letterali

i119.2.2 Dichiarazione delle variabili

u2.3 Operatori ed espressioni

i119.3.1 Operatori aritmetici

i119.3.2 Operatori di confronto e operatori logici

u2.4 Strutture di controllo del flusso

i119.4.1 Struttura condizionale: ''if''

i119.4.2 Struttura di selezione: ''case''

i119.4.3 Iterazione con condizione di uscita iniziale: ''while''

i119.4.4 Iterazione con condizione di uscita finale: ''repeat-until''

i119.4.5 Iterazione enumerativa: ''for''

u2.5 Procedure e funzioni

i119.5.1 Struttura

i119.5.2 Campo di azione

i119.5.3 Forward

i119.5.4 Parametri formali e chiamata per valore o per riferimento

i119.5.5 Chiamata e parametri attuali

u2.6 I/O elementare

i119.6.1 Procedure ''Write«»'' e ''Writeln«»''

i119.6.2 Procedure ''Read«»'' e ''Readln«»''

u2.7 Struttura del sorgente: le dichiarazioni

u2.8 Riferimenti

u120 Pascal: tipi di dati derivati

u2.1 Array

i120.1.1 Dichiarazione e accesso

i120.1.2 Scansione di un array

u2.2 Stringhe

u2.3 Tipi

u2.4 Costanti

u2.5 Tipo enumerativo, sottointervallo e insieme

i120.5.1 Tipo enumerativo

i120.5.2 Sottointervallo

i120.5.3 Insieme

u2.6 Record

i120.6.1 With

u2.7 Riferimenti

u121 Pascal: esempi di programmazione

u2.1 Problemi elementari di programmazione

i121.1.1 Somma tra due numeri positivi

i121.1.2 Moltiplicazione di due numeri positivi attraverso la somma

i121.1.3 Divisione intera tra due numeri positivi

i121.1.4 Elevamento a potenza

i121.1.5 Radice quadrata

i121.1.6 Fattoriale

i121.1.7 Massimo comune divisore

i121.1.8 Numero primo

u2.2 Scansione di array

i121.2.1 Ricerca sequenziale

i121.2.2 Ricerca binaria

u2.3 Algoritmi tradizionali

i121.3.1 Bubblesort

i121.3.2 Torre di Hanoi

i121.3.3 Quicksort

i121.3.4 Permutazioni

Parte xxviii Java

u122 Java: preparazione

u2.1 Kaffe

i122.1.1 Classi

i122.1.2 Configurazione

i122.1.3 Compilazione

i122.1.4 Esecuzione

u2.2 Kernel Linux

u2.3 Applet

i122.3.1 Verifica del funzionamento

u2.4 JDK

u2.5 GCJ

u2.6 Riferimenti

u123 Java: introduzione

u2.1 Struttura fondamentale

i123.1.1 Commenti

i123.1.2 Nomi ed estensioni

i123.1.3 Istruzioni

i123.1.4 Librerie di classi

i123.1.5 Dichiarazione della classe

i123.1.6 Contenuto della classe

i123.1.7 Variabili e tipi di dati

i123.1.8 Chiamata per valore

u2.2 Variabili e tipi di dati

i123.2.1 Tipi

i123.2.2 Costanti

i123.2.3 Campo di azione

u2.3 Operatori ed espressioni

i123.3.1 Operatori aritmetici

i123.3.2 Operatori di confronto e operatori logici

i123.3.3 Concatenamento di stringhe

u2.4 Strutture di controllo del flusso

i123.4.1 Struttura condizionale: ''if''

i123.4.2 Struttura di selezione: ''switch''

i123.4.3 Iterazione con condizione di uscita iniziale: ''while''

i123.4.4 Iterazione con condizione di uscita finale: ''do-while''

i123.4.5 Iterazione enumerativa: ''for''

u2.5 Array e stringhe

i123.5.1 Array

i123.5.2 Stringhe

u2.6 Metodo ''main«»''

i123.6.1 args

u124 Java: programmazione a oggetti

u2.1 Creazione e distruzione di un oggetto

i124.1.1 Dichiarazione dell'oggetto

i124.1.2 Instanza di un oggetto

i124.1.3 Metodo costruttore

i124.1.4 Utilizzo degli oggetti

i124.1.5 Distruzione di un oggetto

u2.2 Classi

i124.2.1 Variabili

i124.2.2 Metodi

i124.2.2.1 Sovraccarico

i124.2.2.2 Chiamata di un metodo

i124.2.3 Specificatore di accesso

u2.3 Sottoclassi

i124.3.1 super

i124.3.2 this

u2.4 Interfacce

i124.4.1 Contenuto di un'interfaccia

i124.4.2 Utilizzo di un'interfaccia

u2.5 Pacchetti di classi

i124.5.1 Collocazione dei pacchetti

i124.5.2 Utilizzo di classi di un pacchetto

u2.6 Esempi

i124.6.1 Oggetti e messaggi

i124.6.2 Variabili di istanza e variabili statiche

i124.6.3 Ereditarietà

i124.6.4 Metodi di istanza e metodi statici

u125 Java: esempi di programmazione

u2.1 Problemi elementari di programmazione

i125.1.1 Somma tra due numeri positivi

i125.1.2 Moltiplicazione di due numeri positivi attraverso la somma

i125.1.3 Divisione intera tra due numeri positivi

i125.1.4 Elevamento a potenza

i125.1.5 Radice quadrata

i125.1.6 Fattoriale

i125.1.7 Massimo comune divisore

i125.1.8 Numero primo

u2.2 Scansione di array

i125.2.1 Ricerca sequenziale

i125.2.2 Ricerca binaria

u2.3 Algoritmi tradizionali

i125.3.1 Bubblesort

i125.3.2 Torre di Hanoi

i125.3.3 Quicksort

i125.3.4 Permutazioni

Parte xxix Scheme

u126 Scheme: preparazione

u2.1 MIT Scheme

i126.1.1 Utilizzo interattivo

i126.1.2 REPL: l'ambito di funzionamento

i126.1.3 Utilizzo non interattivo

i126.1.4 Compilazione e caricamento di file

u2.2 Kawa

i126.2.1 Utilizzo interattivo

i126.2.2 Avvio dell'interprete Kawa

i126.2.3 Compilazione

u2.3 Riferimenti

u127 Scheme: introduzione

u2.1 Aspetto generale

i127.1.1 Identificatori e convenzioni nei nomi

i127.1.2 Funzioni o procedure

u2.2 Tipi di dati

u2.3 Costanti letterali

i127.3.1 Costanti booleane

i127.3.2 Costanti numeriche

i127.3.3 Stringhe

i127.3.4 Costanti carattere

u2.4 Espressioni

i127.4.1 Riferimenti variabili

i127.4.2 Espressioni letterali

i127.4.3 Ordine nella valutazione di un'espressione

u2.5 Funzioni comuni nelle espressioni e particolarità di alcuni tipi di dati elementari

i127.5.1 Numeri

i127.5.2 Valori logici, funzioni di confronto e funzioni logiche

i127.5.3 Caratteri

i127.5.4 Stringhe

u2.6 Strutture di controllo

i127.6.1 Funzione ''begin''

i127.6.2 Struttura condizionale: ''if''

i127.6.3 Struttura di selezione: ''cond''

i127.6.4 Struttura di selezione: ''case''

i127.6.5 Iterazione: ''do''

u2.7 Conclusione di un programma Scheme

u2.8 Riferimenti

u128 Scheme: struttura del programma e campo di azione

u2.1 Definizione e campo di azione

i128.1.1 Ridefinizione

u2.2 Definizione ''lambda''

u2.3 Ricorsione

u2.4 Funzioni ''let'', ''let*'' e ''letrec''

u129 Scheme: liste e vettori

u2.1 Liste e coppie

i129.1.1 Dichiarazione di una lista

i129.1.2 Caratteristiche esteriori di una lista

i129.1.3 Operazioni fondamentali con le liste

i129.1.4 Funzioni tipiche sulle liste

u2.2 Vettori

u2.3 Strutture di controllo applicate alle liste

i129.3.1 Funzione ''apply''

i129.3.2 Funzione ''map''

i129.3.3 Funzione ''for-each''

u2.4 Riferimenti

u130 Scheme: I/O

u2.1 Apertura e chiusura

u2.2 Ingresso dei dati

u2.3 Uscita dei dati

u131 Scheme: esempi di programmazione

u2.1 Problemi elementari di programmazione

i131.1.1 Somma tra due numeri positivi

i131.1.2 Moltiplicazione di due numeri positivi attraverso la somma

i131.1.3 Divisione intera tra due numeri positivi

i131.1.4 Elevamento a potenza

i131.1.5 Radice quadrata

i131.1.6 Fattoriale

i131.1.7 Massimo comune divisore

i131.1.8 Numero primo

u2.2 Scansione di array

i131.2.1 Ricerca sequenziale

i131.2.2 Ricerca binaria

u2.3 Algoritmi tradizionali

i131.3.1 Bubblesort

i131.3.2 Torre di Hanoi

i131.3.3 Quicksort

i131.3.4 Permutazioni

Parte xxx BC: linguaggio aritmetico a precisione arbitraria

u132 BC: esempi di programmazione

u2.1 Problemi elementari di programmazione

i132.1.1 Somma tra due numeri positivi

i132.1.2 Moltiplicazione di due numeri positivi attraverso la somma

i132.1.3 Divisione intera tra due numeri positivi

i132.1.4 Elevamento a potenza

i132.1.5 Radice quadrata

i132.1.6 Fattoriale

i132.1.7 Massimo comune divisore

i132.1.8 Numero primo

u2.2 Scansione di array

i132.2.1 Ricerca sequenziale

i132.2.2 Ricerca binaria

u2.3 Algoritmi tradizionali

i132.3.1 Bubblesort

i132.3.2 Torre di Hanoi

i132.3.3 Quicksort

i132.3.4 Permutazioni

Parte xxxi Basic

u133 Basic: introduzione

u2.1 Struttura fondamentale

i133.1.1 Numerazione delle righe

i133.1.2 Istruzioni

i133.1.3 Esecuzione di un programma

u2.2 Interprete tradizionale

i133.2.1 Comandi tipici dell'interprete

u2.3 Tipi di dati ed espressioni

i133.3.1 Espressioni numeriche

i133.3.2 Espressioni stringa

i133.3.3 Espressioni logiche

i133.3.4 Espressioni miste

i133.3.5 Array

u2.4 Primi esempi banali

u2.5 Strutture di controllo del flusso

i133.5.1 Istruzione ''GOTO''

i133.5.2 Istruzione ''GOSUB''

i133.5.3 Istruzione ''IF''

i133.5.4 Istruzione ''FOR''

i133.5.5 Istruzioni ''END'' e ''STOP''

u2.6 Input e output

i133.6.1 Istruzione ''PRINT''

i133.6.2 Istruzione ''INPUT'' o ''?''

u134 Basic: esempi di programmazione

u2.1 Somma tra due numeri positivi

u2.2 Moltiplicazione di due numeri positivi attraverso la somma

u2.3 Divisione intera tra due numeri positivi

u2.4 Elevamento a potenza

u2.5 Radice quadrata

u2.6 Fattoriale

u2.7 Ricerca sequenziale

Parte xxxii File ''.DBF''

u135 File ''.DBF'': dBase III e derivati

u2.1 Dbview

i135.1.1 DBF2pg

u136 nanoBase 1997

u2.1 What is it

u2.2 The dot command line

u2.3 The menu

u2.4 The macro recording, compiling and execution

u2.5 The report system

u2.6 The integrated text editor

u2.7 The internal documentation

u2.8 Download it

u2.9 Bugs and known problems

u137 nanoBase 1997 user manual

u2.1 Dos xBase

i137.1.1 .DBF files

i137.1.2 Index files

i137.1.3 Relations

u2.2 Composition

u2.3 How to use nB

u2.4 Status line

u2.5 The dot line

u2.6 The menu system

i137.6.1 Menu File

i137.6.2 Menu Edit

i137.6.3 Menu Report

i137.6.4 Menu HTF

i137.6.5 Menu Macro

i137.6.6 Menu Info

i137.6.7 Menu Doc

u2.7 The text editor DOC«»

u2.8 The help text file

u2.9 Macro

i137.9.1 Macro statements

i137.9.2 Variable declaration

i137.9.3 Macro structure

i137.9.4 Macro comments

i137.9.5 Macro long lines split

i137.9.6 The macro recorder

u2.10 Data types

i137.10.1 Character

i137.10.2 Memo

i137.10.3 Date

i137.10.4 Numeric

i137.10.5 Logical

i137.10.6 NIL

i137.10.7 Array

i137.10.8 Code block

u2.11 Operators

u2.12 Delimiters

u2.13 Code blocks

u2.14 Standard functions

i137.14.1 AADD«»

i137.14.2 ABS«»

i137.14.3 ACLONE«»

i137.14.4 ACOPY«»

i137.14.5 ADEL«»

i137.14.6 AEVAL«»

i137.14.7 AFILL«»

i137.14.8 AINS«»

i137.14.9 ALERT«»

i137.14.10 ALIAS«»

i137.14.11 ALLTRIM«»

i137.14.12 ARRAY«»

i137.14.13 ASC«»

i137.14.14 ASCAN«»

i137.14.15 ASIZE«»

i137.14.16 ASORT«»

i137.14.17 AT«»

i137.14.18 ATAIL«»

i137.14.19 BIN2I«»

i137.14.20 BIN2L«»

i137.14.21 BIN2W«»

i137.14.22 BOF«»

i137.14.23 CDOW«»

i137.14.24 CHR«»

i137.14.25 CMONTH«»

i137.14.26 COL«»

i137.14.27 COLORSELECT«»

i137.14.28 CTOD«»

i137.14.29 CURDIR«»

i137.14.30 DATE«»

i137.14.31 DAY«»

i137.14.32 DBAPPEND«»

i137.14.33 DBCLEARFILTER«»

i137.14.34 DBCLEARINDEX«»

i137.14.35 DBCLEARRELATION«»

i137.14.36 DBCLOSEALL«»

i137.14.37 DBCLOSEAREA«»

i137.14.38 DBCOMMIT«»

i137.14.39 DBCOMMITALL«»

i137.14.40 DBCREATE«»

i137.14.41 DBCREATEINDEX«»

i137.14.42 DBDELETE«»

i137.14.43 DBEVAL«»

i137.14.44 DBFILTER«»

i137.14.45 DBGOBOTTOM«»

i137.14.46 DBGOTO«»

i137.14.47 DBGOTOP«»

i137.14.48 DBRECALL«»

i137.14.49 DBREINDEX«»

i137.14.50 DBRELATION«»

i137.14.51 DBRLOCK«»

i137.14.52 DBRLOCKLIST«»

i137.14.53 DBRSELECT«»

i137.14.54 DBRUNLOCK«»

i137.14.55 DBSEEK«»

i137.14.56 DBSELECTAREA«»

i137.14.57 DBSETDRIVER«»

i137.14.58 DBSETFILTER«»

i137.14.59 DBSETINDEX«»

i137.14.60 DBSETORDER«»

i137.14.61 DBSETRELATION«»

i137.14.62 DBSKIP«»

i137.14.63 DBSTRUCT«»

i137.14.64 DBUNLOCK«»

i137.14.65 DBUNLOCKALL«»

i137.14.66 DBUSEAREA«»

i137.14.67 DBDELETE«»

i137.14.68 DESCEND«»

i137.14.69 DEVOUT«»

i137.14.70 DEVOUTPICT«»

i137.14.71 DEVPOS«»

i137.14.72 DIRECTORY«»

i137.14.73 DISKSPACE«»

i137.14.74 DISPBOX«»

i137.14.75 DISPOUT«»

i137.14.76 DOW«»

i137.14.77 DTOC«»

i137.14.78 DTOS«»

i137.14.79 EMPTY«»

i137.14.80 EOF«»

i137.14.81 EVAL«»

i137.14.82 EXP«»

i137.14.83 FCLOSE«»

i137.14.84 FCOUNT«»

i137.14.85 FCREATE«»

i137.14.86 FERASE«»

i137.14.87 FERROR«»

i137.14.88 FIELDBLOCK«»

i137.14.89 FIELDGET«»

i137.14.90 FIELDNAME«»

i137.14.91 FIELDPOS«»

i137.14.92 FIELDPUT«»

i137.14.93 FIELDWBLOCK«»

i137.14.94 FILE«»

i137.14.95 FLOCK«»

i137.14.96 FOPEN«»

i137.14.97 FOUND«»

i137.14.98 FREAD«»

i137.14.99 FREADSTR«»

i137.14.100 FRENAME«»

i137.14.101 FSEEK«»

i137.14.102 FWRITE«»

i137.14.103 GETENV«»

i137.14.104 HARDCR«»

i137.14.105 HEADER«»

i137.14.106 I2BIN«»

i137.14.107 IF«»

i137.14.108 INDEXEXT«»

i137.14.109 INDEXKEY«»

i137.14.110 INDEXORD«»

i137.14.111 INKEY«»

i137.14.112 INT«»

i137.14.113 ISALPHA«»

i137.14.114 ISCOLOR«»

i137.14.115 ISDIGIT«»

i137.14.116 ISLOWER«»

i137.14.117 ISPRINTER«»

i137.14.118 ISUPPER«»

i137.14.119 L2BIN«»

i137.14.120 LASTKEY«»

i137.14.121 LASTREC«»

i137.14.122 LEFT«»

i137.14.123 LEN«»

i137.14.124 LOG«»

i137.14.125 LOWER«»

i137.14.126 LTRIM«»

i137.14.127 LUPDATE«»

i137.14.128 MAX«»

i137.14.129 MAXCOL«»

i137.14.130 MAXROW«»

i137.14.131 MEMOEDIT«»

i137.14.132 MEMOLINE«»

i137.14.133 MEMOREAD«»

i137.14.134 MEMORY«»

i137.14.135 MEMOTRAN«»

i137.14.136 MEMOWRIT«»

i137.14.137 MEMVARBLOCK«»

i137.14.138 MIN«»

i137.14.139 MLCOUNT«»

i137.14.140 MLCTOPOS«»

i137.14.141 MLPOS«»

i137.14.142 MONTH«»

i137.14.143 MPOSTOLC«»

i137.14.144 NETERR«»

i137.14.145 NETNAME«»

i137.14.146 NEXTKEY«»

i137.14.147 NOSNOW«»

i137.14.148 ORDBAGEXT«»

i137.14.149 ORDBAGNAME«»

i137.14.150 ORDCREATE«»

i137.14.151 ORDDESTROY«»

i137.14.152 ORDFOR«»

i137.14.153 ORDKEY«»

i137.14.154 ORDLISTADD«»

i137.14.155 ORDLISTCLEAR«»

i137.14.156 ORDLISTREBUILD«»

i137.14.157 ORDNAME«»

i137.14.158 ORDNUMBER«»

i137.14.159 ORDSETFOCUS«»

i137.14.160 OS«»

i137.14.161 OUTERR«»

i137.14.162 OUTSTD«»

i137.14.163 PAD?«»

i137.14.164 PCOL«»

i137.14.165 PROW«»

i137.14.166 QOUT«»

i137.14.167 RAT«»

i137.14.168 RDDLIST«»

i137.14.169 RDDNAME«»

i137.14.170 RDDSETDEFAULT«»

i137.14.171 READINSERT«»

i137.14.172 READMODAL«»

i137.14.173 READVAR«»

i137.14.174 RECNO«»

i137.14.175 RECSIZE«»

i137.14.176 REPLICATE«»

i137.14.177 RESTSCREEN«»

i137.14.178 RIGHT«»

i137.14.179 RLOCK«»

i137.14.180 ROUND«»

i137.14.181 ROW«»

i137.14.182 RTRIM«»

i137.14.183 SAVESCREEN«»

i137.14.184 SCROLL«»

i137.14.185 SECONDS«»

i137.14.186 SELECT«»

i137.14.187 SET«»

i137.14.188 SETBLINK«»

i137.14.189 SETCANCEL«»

i137.14.190 SETCOLOR«»

i137.14.191 SETCURSOR«»

i137.14.192 SETKEY«»

i137.14.193 SETMODE«»

i137.14.194 SETPOS«»

i137.14.195 SETPRC«»

i137.14.196 SOUNDEX«»

i137.14.197 SPACE«»

i137.14.198 SQRT«»

i137.14.199 STR«»

i137.14.200 STRTRAN«»

i137.14.201 STUFF«»

i137.14.202 SUBSTR«»

i137.14.203 TIME«»

i137.14.204 TONE«»

i137.14.205 TRANSFORM«»

i137.14.206 TYPE«»

i137.14.207 UPDATED«»

i137.14.208 UPPER«»

i137.14.209 USED«»

i137.14.210 VAL«»

i137.14.211 VALTYPE«»

i137.14.212 YEAR«»

u2.15 nB functions

i137.15.1 ACCEPT«»

i137.15.2 ACHOICE«»

i137.15.3 ACHOICEWINDOW«»

i137.15.4 ALERTBOX«»

i137.15.5 ATB«»

i137.15.6 BCOMPILE«»

i137.15.7 BUTTON«»

i137.15.8 COLORARRAY«»

i137.15.9 COORDINATE«»

i137.15.10 COPYFILE«»

i137.15.11 DBAPP«»

i137.15.12 DBCLOSE«»

i137.15.13 DBCONTINUE«»

i137.15.14 DBCOPY«»

i137.15.15 DBCOPYSTRUCT«»

i137.15.16 DBCOPYXSTRUCT«»

i137.15.17 DBDELIM«»

i137.15.18 DBISTATUS«»

i137.15.19 DBISTRUCTURE«»

i137.15.20 DBJOIN«»

i137.15.21 DBLABELFORM«»

i137.15.22 DBLIST«»

i137.15.23 DBLOCATE«»

i137.15.24 DBOLDCREATE«»

i137.15.25 DBPACK«»

i137.15.26 DBSDF«»

i137.15.27 DBSORT«»

i137.15.28 DBTOTAL«»

i137.15.29 DBUPDATE«»

i137.15.30 DBZAP«»

i137.15.31 DISPBOXCOLOR«»

i137.15.32 DISPBOXSHADOW«»

i137.15.33 DIR«»

i137.15.34 DOC«»

i137.15.35 DOTLINE«»

i137.15.36 DTEMONTH«»

i137.15.37 DTEWEEK«»

i137.15.38 EX«»

i137.15.39 GET«»

i137.15.40 GVADD«»

i137.15.41 GVDEFAULT«»

i137.15.42 GVFILEDIR«»

i137.15.43 GVFILEEXIST«»

i137.15.44 GVFILEEXTENTION«»

i137.15.45 GVSUBST«»

i137.15.46 HTF«»

i137.15.47 ISFILE«»

i137.15.48 ISWILD«»

i137.15.49 ISMEMVAR«»

i137.15.50 ISCONSOLEON«»

i137.15.51 ISPRINTERON«»

i137.15.52 KEYBOARD«»

i137.15.53 LISTWINDOW«»

i137.15.54 MEMOWINDOW«»

i137.15.55 MEMPUBLIC«»

i137.15.56 MEMRELEASE«»

i137.15.57 MEMRESTORE«»

i137.15.58 MEMSAVE«»

i137.15.59 MENUPROMPT«»

i137.15.60 MENUTO«»

i137.15.61 MESSAGELINE«»

i137.15.62 MOUSESCRSAVE«»

i137.15.63 MOUSESCRRESTORE«»

i137.15.64 PICCHRMAX«»

i137.15.65 QUIT«»

i137.15.66 READ«»

i137.15.67 RF«»

i137.15.68 RPT«»

i137.15.69 RPTMANY«»

i137.15.70 RPTTRANSLATE«»

i137.15.71 RUN«»

i137.15.72 SAY«»

i137.15.73 SETCOLORSTANDARD«»

i137.15.74 SETFUNCTION«»

i137.15.75 SETMOUSE«»

i137.15.76 SETOUTPUT«»

i137.15.77 SETRPTEJECT«»

i137.15.78 SETRPTLINES«»

i137.15.79 SETVERB«»

i137.15.80 SETVERB«.EXACT.» «obsolete»

i137.15.81 SETVERB«.FIXED.»

i137.15.82 SETVERB«.DECIMALS.»

i137.15.83 SETVERB«.DATEFORMAT.»

i137.15.84 SETVERB«.EPOCH.»

i137.15.85 SETVERB«.PATH.»

i137.15.86 SETVERB«.DEFAULT.»

i137.15.87 SETVERB«.EXCLUSIVE.»

i137.15.88 SETVERB«.SOFTSEEK.»

i137.15.89 SETVERB«.UNIQUE.» «obsolete»

i137.15.90 SETVERB«.DELETED.»

i137.15.91 SETVERB«.CANCEL.»

i137.15.92 SETVERB«.TYPEAHEAD.»

i137.15.93 SETVERB«.COLOR.»

i137.15.94 SETVERB«.CURSOR.»

i137.15.95 SETVERB«.CONSOLE.»

i137.15.96 SETVERB«.ALTERNATE.»

i137.15.97 SETVERB«.ALTFILE.»

i137.15.98 SETVERB«.DEVICE.»

i137.15.99 SETVERB«.EXTRA.»

i137.15.100 SETVERB«.EXTRAFILE.»

i137.15.101 SETVERB«.PRINTER.»

i137.15.102 SETVERB«.PRINTFILE.»

i137.15.103 SETVERB«.MARGIN.»

i137.15.104 SETVERB«.BELL.»

i137.15.105 SETVERB«.CONFIRM.»

i137.15.106 SETVERB«.ESCAPE.»

i137.15.107 SETVERB«.INSERT.»

i137.15.108 SETVERB«.EXIT.»

i137.15.109 SETVERB«.INTENSITY.»

i137.15.110 SETVERB«.SCOREBOARD.»

i137.15.111 SETVERB«.DELIMITERS.»

i137.15.112 SETVERB«.DELIMCHARS.»

i137.15.113 SETVERB«.WRAP.»

i137.15.114 SETVERB«.MESSAGE.»

i137.15.115 SETVERB«.MCENTER.»

i137.15.116 STRADDEXTENTION«»

i137.15.117 STRCUTEXTENTION«»

i137.15.118 STRDRIVE«»

i137.15.119 STREXTENTION«»

i137.15.120 STRFILE«»

i137.15.121 STRFILEFIND«»

i137.15.122 STRGETLEN«»

i137.15.123 STRLISTASARRAY«»

i137.15.124 STROCCURS«»

i137.15.125 STRPARENT«»

i137.15.126 STRPATH«»

i137.15.127 STRTEMPPATH«»

i137.15.128 STRXTOSTRING«»

i137.15.129 TB«»

i137.15.130 TEXT«»

i137.15.131 TGLINSERT«»

i137.15.132 TIMEX2N«»

i137.15.133 TIMEN2H«»

i137.15.134 TIMEN2M«»

i137.15.135 TIMEN2S«»

i137.15.136 TRUESETKEY«»

i137.15.137 WAITFILEEVAL«»

i137.15.138 WAITFOR«»

i137.15.139 WAITPROGRESS«»

u2.16 Normal command substitution

u2.17 nB command substitution functions

u2.18 RPT: the nB print function

i137.18.1 Memvars and fields

i137.18.2 Commands

i137.18.3 Examples

u2.19 How can I...

u2.20 The source files

u138 Clean the Clipper 5.2

u2.1 Step 1: try to compile with the /P parameter

u2.2 Step 2: understand well the use of code blocks

u2.3 Step 3: understand the object programming

i138.3.1 Classes and methods

i138.3.2 Class definition

i138.3.3 Object creation

i138.3.4 Instantiating an object

i138.3.5 The ..send'' symbol

i138.3.6 More about objects

u2.4 Step 4: understand the get object

u2.5 Step 5: trying to stop using commands

i138.5.1 ?/??

i138.5.2 .... BOX

i138.5.3 .... GET

i138.5.4 .... SAY

i138.5.5 .... TO

i138.5.6 APPEND

i138.5.7 APPEND FROM

i138.5.8 CLEAR

i138.5.9 CLOSE

i138.5.10 COMMIT

i138.5.11 CONTINUE

i138.5.12 COPY

i138.5.13 COUNT

i138.5.14 CREATE

i138.5.15 DEFAULT

i138.5.16 DELETE

i138.5.17 EJECT

i138.5.18 ERASE

i138.5.19 FIND

i138.5.20 GO

i138.5.21 INDEX ON

i138.5.22 JOIN

i138.5.23 KEYBOARD

i138.5.24 LABEL FORM

i138.5.25 LIST

i138.5.26 LOCATE

i138.5.27 PACK

i138.5.28 QUIT

i138.5.29 READ

i138.5.30 RECALL

i138.5.31 REINDEX

i138.5.32 RELEASE

i138.5.33 RENAME

i138.5.34 REPLACE

i138.5.35 REPORT FORM

i138.5.36 RESTORE

i138.5.37 RESTORE FROM

i138.5.38 RUN

i138.5.39 SAVE SCREEN TO

i138.5.40 SAVE TO

i138.5.41 SEEK

i138.5.42 SELECT

i138.5.43 SET

i138.5.44 SKIP

i138.5.45 SORT

i138.5.46 STORE

i138.5.47 SUM

i138.5.48 TOTAL ON

i138.5.49 UNLOCK

i138.5.50 UPDATE FROM

i138.5.51 USE

i138.5.52 ZAP

u2.6 Step 6: free yourself from STD.CH - /U

u2.7 Step 7: take control over all include files

Parte xxxiii Programmare a 16 bit

u139 Microprocessori x86-16

u2.1 Segmenti

u2.2 Registri

u2.3 Trasferimento di dati tra due segmenti differenti

u2.4 Riferimenti a indirizzi di memoria con i registri

u2.5 Convenzioni di chiamata

u2.6 Sintesi delle istruzioni x86-16

u2.7 Sostituzione delle istruzioni per i186

u2.8 Riferimenti

u140 Architettura IBM PC

u2.1 IVT: ''interrupt vector table''

u2.2 BIOS data area

u2.3 Altre aree di memoria

u2.4 Interruzioni principali

i140.4.1 INT 10base«16»/AH=00base«16» ''set video mode''

i140.4.2 INT 10base«16»/AH=05base«16» ''select active display page''

i140.4.3 INT 10base«16»/AH=0Ebase«16» ''teletype output''

i140.4.4 INT 12base«16» ''get memory size''

i140.4.5 INT 13base«16»/AH=00base«16» ''reset disk system''

i140.4.6 INT 13base«16»/AH=02base«16» ''read disk sectors into memory''

i140.4.7 INT 13base«16»/AH=03base«16» ''write disk sectors''

i140.4.8 INT 16base«16»/AH=00base«16» ''get keystroke from keyboard''

i140.4.9 INT 16base«16»/AH=01base«16» ''check for keystroke in the keyboard buffer''

u2.5 Riferimenti

u141 Strumenti di sviluppo e di utilizzo

u2.1 Preparazione

u2.2 Bcc

u2.3 As86

u2.4 Ld86

u2.5 Bootblocks

u2.6 Riferimenti

Parte xxxiv Studio per un sistema a 16 bit

u142 Introduzione a os16

u2.1 Organizzazione

u2.2 Le directory

u2.3 La struttura degli eseguibili

u2.4 Caricamento del kernel

u2.5 Informazioni diagnostiche

u2.6 Tabelle

u2.7 Guida di stile

u2.8 Tipi derivati speciali

u143 Caricamento ed esecuzione del kernel

u2.1 Dal file su disco alla copia in memoria

u2.2 File ''kernel/main/crt0.s''

u2.3 File ''kernel/main.h'' e ''kernel/main/* ''

u144 Funzioni interne legate all'hardware

u2.1 Libreria: ''lib/sys/os16.h'' e ''lib/sys/os16/... ''

u2.2 Funzioni di basso livello dei file ''kernel/ibm.i86/* ''

u2.3 Gestione della console

u2.4 Gestione dei dischi

u145 Gestione della memoria

u2.1 File ''kernel/memory.h'' e ''kernel/memory/... ''

u2.2 Scansione della mappa di memoria

u146 Gestione dei terminali virtuali

u147 Dispositivi

u2.1 File ''lib/sys/os16.h'' e directory ''lib/sys/os16/''

u2.2 File ''kernel/devices.h'' e ''kernel/devices/... ''

u2.3 Numero primario e numero secondario

u2.4 Dispositivi previsti

u148 Gestione del file system

u2.1 File ''kernel/fs/sb.... ''

u2.2 File ''kernel/fs/zone.... ''

u2.3 File ''kernel/fs/inode.... ''

u2.4 Fasi dell'innesto di un file system

u2.5 File ''kernel/fs/file.... ''

u2.6 Descrittori di file

u2.7 File ''kernel/fs/path.... ''

u2.8 File ''kernel/fs/fd.... ''

u149 Gestione dei processi

u2.1 File ''kernel/proc/.isr.s'' e ''kernel/proc/.ivt.load.s''

i149.1.1 Routine ''isr.1C''

i149.1.2 Routine ''isr.80''

u2.2 La tabella dei processi

u2.3 Chiamate di sistema

u2.4 File ''kernel/proc/... ''

i149.4.1 Funzione ''proc.init«»''

i149.4.2 Funzione ''sysroutine«»''

i149.4.3 Funzione ''proc.scheduler«»''

u150 Caricamento ed esecuzione delle applicazioni

u2.1 Caricamento in memoria

u2.2 Il codice iniziale dell'applicativo

Parte xxxv Manuale di os16

u151 Avvio del sistema e conclusione

u2.1 Interazione con il kernel

u2.2 Avvio e conclusione del sistema ''normale''

u152 Sezione 1: programmi eseguibili o comandi interni di shell

u2.1 os16: aaa«1»

u2.2 os16: bbb«1»

u2.3 os16: cat«1»

u2.4 os16: ccc«1»

u2.5 os16: chmod«1»

u2.6 os16: chown«1»

u2.7 os16: cp«1»

u2.8 os16: date«1»

u2.9 os16: ed«1»

u2.10 os16: kill«1»

u2.11 os16: ln«1»

u2.12 os16: login«1»

u2.13 os16: ls«1»

u2.14 os16: man«1»

u2.15 os16: mkdir«1»

u2.16 os16: more«1»

u2.17 os16: ps«1»

u2.18 os16: rm«1»

u2.19 os16: shell«1»

u2.20 os16: touch«1»

u2.21 os16: tty«1»

u153 Sezione 2: chiamate di sistema

u2.1 os16: .Exit«2»

u2.2 os16: .exit«2»

u2.3 os16: chdir«2»

u2.4 os16: chmod«2»

u2.5 os16: chown«2»

u2.6 os16: clock«2»

u2.7 os16: close«2»

u2.8 os16: dup«2»

u2.9 os16: dup2«2»

u2.10 os16: execve«2»

u2.11 os16: fchmod«2»

u2.12 os16: fchown«2»

u2.13 os16: fcntl«2»

u2.14 os16: fork«2»

u2.15 os16: fstat«2»

u2.16 os16: getcwd«2»

u2.17 os16: geteuid«2»

u2.18 os16: getuid«2»

u2.19 os16: getpgrp«2»

u2.20 os16: getpid«2»

u2.21 os16: getppid«2»

u2.22 os16: kill«2»

u2.23 os16: link«2»

u2.24 os16: lseek«2»

u2.25 os16: mkdir«2»

u2.26 os16: mknod«2»

u2.27 os16: mount«2»

u2.28 os16: open«2»

u2.29 os16: read«2»

u2.30 os16: rmdir«2»

u2.31 os16: seteuid«2»

u2.32 os16: setpgrp«2»

u2.33 os16: setuid«2»

u2.34 os16: signal«2»

u2.35 os16: sleep«2»

u2.36 os16: stat«2»

u2.37 os16: sys«2»

u2.38 os16: stime«2»

u2.39 os16: time«2»

u2.40 os16: umask«2»

u2.41 os16: umount«2»

u2.42 os16: unlink«2»

u2.43 os16: wait«2»

u2.44 os16: write«2»

u2.45 os16: z«2»

u2.46 os16: z.perror«2»

u2.47 os16: z.printf«2»

u2.48 os16: z.putchar«2»

u2.49 os16: z.puts«2»

u2.50 os16: z.vprintf«2»

u154 Sezione 3: funzioni di libreria

u2.1 os16: access«3»

u2.2 os16: abort«3»

u2.3 os16: abs«3»

u2.4 os16: atexit«3»

u2.5 os16: atoi«3»

u2.6 os16: atol«3»

u2.7 os16: basename«3»

u2.8 os16: bp«3»

u2.9 os16: clearerr«3»

u2.10 os16: closedir«3»

u2.11 os16: creat«3»

u2.12 os16: cs«3»

u2.13 os16: ctime«3»

u2.14 os16: dirname«3»

u2.15 os16: div«3»

u2.16 os16: ds«3»

u2.17 os16: endpwent«3»

u2.18 os16: errno«3»

u2.19 os16: es«3»

u2.20 os16: exec«3»

u2.21 os16: execl«3»

u2.22 os16: execle«3»

u2.23 os16: execlp«3»

u2.24 os16: execv«3»

u2.25 os16: execvp«3»

u2.26 os16: exit«3»

u2.27 os16: fclose«3»

u2.28 os16: feof«3»

u2.29 os16: ferror«3»

u2.30 os16: fflush«3»

u2.31 os16: fgetc«3»

u2.32 os16: fgetpos«3»

u2.33 os16: fgets«3»

u2.34 os16: fileno«3»

u2.35 os16: fopen«3»

u2.36 os16: fprintf«3»

u2.37 os16: fputc«3»

u2.38 os16: fputs«3»

u2.39 os16: fread«3»

u2.40 os16: free«3»

u2.41 os16: freopen«3»

u2.42 os16: fscanf«3»

u2.43 os16: fseek«3»

u2.44 os16: fseeko«3»

u2.45 os16: fsetpos«3»

u2.46 os16: ftell«3»

u2.47 os16: ftello«3»

u2.48 os16: fwrite«3»

u2.49 os16: getc«3»

u2.50 os16: getchar«3»

u2.51 os16: getenv«3»

u2.52 os16: getopt«3»

u2.53 os16: getpwent«3»

u2.54 os16: getpwnam«3»

u2.55 os16: getpwuid«3»

u2.56 os16: gets«3»

u2.57 os16: heap«3»

u2.58 os16: heap.clear«3»

u2.59 os16: heap.min«3»

u2.60 os16: input.line«3»

u2.61 os16: isatty«3»

u2.62 os16: labs«3»

u2.63 os16: ldiv«3»

u2.64 os16: major«3»

u2.65 os16: makedev«3»

u2.66 os16: malloc«3»

u2.67 os16: memccpy«3»

u2.68 os16: memchr«3»

u2.69 os16: memcmp«3»

u2.70 os16: memcpy«3»

u2.71 os16: memmove«3»

u2.72 os16: memset«3»

u2.73 os16: minor«3»

u2.74 os16: namep«3»

u2.75 os16: offsetof«3»

u2.76 os16: opendir«3»

u2.77 os16: perror«3»

u2.78 os16: printf«3»

u2.79 os16: process.info«3»

u2.80 os16: putc«3»

u2.81 os16: putchar«3»

u2.82 os16: putenv«3»

u2.83 os16: puts«3»

u2.84 os16: qsort«3»

u2.85 os16: rand«3»

u2.86 os16: readdir«3»

u2.87 os16: realloc«3»

u2.88 os16: rewind«3»

u2.89 os16: rewinddir«3»

u2.90 os16: scanf«3»

u2.91 os16: seg.d«3»

u2.92 os16: seg.i«3»

u2.93 os16: setbuf«3»

u2.94 os16: setenv«3»

u2.95 os16: setpwent«3»

u2.96 os16: setvbuf«3»

u2.97 os16: snprintf«3»

u2.98 os16: sp«3»

u2.99 os16: sprintf«3»

u2.100 os16: srand«3»

u2.101 os16: ss«3»

u2.102 os16: sscanf«3»

u2.103 os16: stdio«3»

u2.104 os16: strcat«3»

u2.105 os16: strchr«3»

u2.106 os16: strcmp«3»

u2.107 os16: strcoll«3»

u2.108 os16: strcpy«3»

u2.109 os16: strcspn«3»

u2.110 os16: strdup«3»

u2.111 os16: strerror«3»

u2.112 os16: strlen«3»

u2.113 os16: strncat«3»

u2.114 os16: strncmp«3»

u2.115 os16: strncpy«3»

u2.116 os16: strpbrk«3»

u2.117 os16: strrchr«3»

u2.118 os16: strspn«3»

u2.119 os16: strstr«3»

u2.120 os16: strtok«3»

u2.121 os16: strtol«3»

u2.122 os16: strtoul«3»

u2.123 os16: strxfrm«3»

u2.124 os16: ttyname«3»

u2.125 os16: unsetenv«3»

u2.126 os16: vfprintf«3»

u2.127 os16: vfscanf«3»

u2.128 os16: vprintf«3»

u2.129 os16: vscanf«3»

u2.130 os16: vsnprintf«3»

u2.131 os16: vsprintf«3»

u2.132 os16: vsscanf«3»

u155 Sezione 4: file speciali

u2.1 os16: console«4»

u2.2 os16: dsk«4»

u2.3 os16: kmem.file«4»

u2.4 os16: kmem.inode«4»

u2.5 os16: kmem.mmp«4»

u2.6 os16: kmem.ps«4»

u2.7 os16: kmem.sb«4»

u2.8 os16: mem«4»

u2.9 os16: null«4»

u2.10 os16: port«4»

u2.11 os16: tty«4»

u2.12 os16: zero«4»

u156 Sezione 5: formato dei file e convenzioni

u2.1 os16: inittab«5»

u2.2 os16: issue«5»

u2.3 os16: passwd«5»

u157 Sezione 7: varie

u2.1 os16: environ«7»

u2.2 os16: undocumented«7»

u158 Sezione 8: comandi per l'amministrazione del sistema

u2.1 os16: getty«8»

u2.2 os16: init«8»

u2.3 os16: MAKEDEV«8»

u2.4 os16: mount«8»

u2.5 os16: umount«8»

u159 Sezione 9: kernel

u2.1 os16: devices«9»

i159.1.1 os16: dev.io«9»

i159.1.2 os16: dev.dsk«9»

i159.1.3 os16: dev.kmem«9»

i159.1.4 os16: dev.mem«9»

i159.1.5 os16: dev.tty«9»

u2.2 os16: diag«9»

u2.3 os16: fs«9»

i159.3.1 os16: fd.chmod«9»

i159.3.2 os16: fd.chown«9»

i159.3.3 os16: fd.close«9»

i159.3.4 os16: fd.dup«9»

i159.3.5 os16: fd.dup2«9»

i159.3.6 os16: fd.fcntl«9»

i159.3.7 os16: fd.lseek«9»

i159.3.8 os16: fd.open«9»

i159.3.9 os16: fd.read«9»

i159.3.10 os16: fd.reference«9»

i159.3.11 os16: fd.stat«9»

i159.3.12 os16: fd.write«9»

i159.3.13 os16: file.reference«9»

i159.3.14 os16: file.stdio.dev.make«9»

i159.3.15 os16: inode.alloc«9»

i159.3.16 os16: inode.check«9»

i159.3.17 os16: inode.dir.empty«9»

i159.3.18 os16: inode.file.read«9»

i159.3.19 os16: inode.file.write«9»

i159.3.20 os16: inode.free«9»

i159.3.21 os16: inode.fzones.read«9»

i159.3.22 os16: inode.fzones.write«9»

i159.3.23 os16: inode.get«9»

i159.3.24 os16: inode.put«9»

i159.3.25 os16: inode.reference«9»

i159.3.26 os16: inode.save«9»

i159.3.27 os16: inode.stdio.dev.make«9»

i159.3.28 os16: inode.truncate«9»

i159.3.29 os16: inode.zone«9»

i159.3.30 os16: path.chdir«9»

i159.3.31 os16: path.chmod«9»

i159.3.32 os16: path.chown«9»

i159.3.33 os16: path.device«9»

i159.3.34 os16: path.fix«9»

i159.3.35 os16: path.full«9»

i159.3.36 os16: path.inode«9»

i159.3.37 os16: path.inode.link«9»

i159.3.38 os16: path.link«9»

i159.3.39 os16: path.mkdir«9»

i159.3.40 os16: path.mknod«9»

i159.3.41 os16: path.mount«9»

i159.3.42 os16: path.stat«9»

i159.3.43 os16: path.umount«9»

i159.3.44 os16: path.unlink«9»

i159.3.45 os16: sb.inode.status«9»

i159.3.46 os16: sb.mount«9»

i159.3.47 os16: sb.reference«9»

i159.3.48 os16: sb.save«9»

i159.3.49 os16: sb.zone.status«9»

i159.3.50 os16: stat«9»

i159.3.51 os16: zone.alloc«9»

i159.3.52 os16: zone.free«9»

i159.3.53 os16: zone.read«9»

u2.4 os16: ibm.i86«9»

u2.5 os16: k.libc«9»

u2.6 os16: main«9»

u2.7 os16: memory«9»

u2.8 os16: proc«9»

i159.8.1 os16: isr.1C«9»

i159.8.2 os16: ivt.load«9»

i159.8.3 os16: proc.available«9»

i159.8.4 os16: proc.dump.memory«9»

i159.8.5 os16: proc.find«9»

i159.8.6 os16: proc.init«9»

i159.8.7 os16: proc.reference«9»

i159.8.8 os16: proc.sch.signals«9»

i159.8.9 os16: proc.sch.terminals«9»

i159.8.10 os16: proc.sch.timers«9»

i159.8.11 os16: proc.scheduler«9»

i159.8.12 os16: proc.sig.chld«9»

i159.8.13 os16: proc.sig.cont«9»

i159.8.14 os16: proc.sig.core«9»

i159.8.15 os16: proc.sig.ignore«9»

i159.8.16 os16: proc.sig.on«9»

i159.8.17 os16: proc.sig.status«9»

i159.8.18 os16: proc.sig.stop«9»

i159.8.19 os16: proc.sig.term«9»

i159.8.20 os16: proc.sys.exec«9»

i159.8.21 os16: proc.sys.exit«9»

i159.8.22 os16: proc.sys.fork«9»

i159.8.23 os16: proc.sys.kill«9»

i159.8.24 os16: proc.sys.seteuid«9»

i159.8.25 os16: proc.sys.setuid«9»

i159.8.26 os16: proc.sys.signal«9»

i159.8.27 os16: proc.sys.wait«9»

i159.8.28 os16: sysroutine«9»

u2.9 os16: tty«9»

Parte xxxvi Codice di os16

u160 Script e sorgenti del kernel

u2.1 os16: directory principale

i160.1.1 bochs

i160.1.2 qemu

i160.1.3 makeit

u2.2 os16: ''kernel/devices.h''

i160.2.1 kernel/devices/dev.dsk.c

i160.2.2 kernel/devices/dev.io.c

i160.2.3 kernel/devices/dev.kmem.c

i160.2.4 kernel/devices/dev.mem.c

i160.2.5 kernel/devices/dev.tty.c

u2.3 os16: ''kernel/diag.h''

i160.3.1 kernel/diag/print.fd.c

i160.3.2 kernel/diag/print.fd.head.c

i160.3.3 kernel/diag/print.fd.list.c

i160.3.4 kernel/diag/print.file.head.c

i160.3.5 kernel/diag/print.file.list.c

i160.3.6 kernel/diag/print.file.num.c

i160.3.7 kernel/diag/print.hex.16.c

i160.3.8 kernel/diag/print.hex.16.reverse.c

i160.3.9 kernel/diag/print.hex.32.c

i160.3.10 kernel/diag/print.hex.32.reverse.c

i160.3.11 kernel/diag/print.hex.8.c

i160.3.12 kernel/diag/print.hex.8.reverse.c

i160.3.13 kernel/diag/print.inode.c

i160.3.14 kernel/diag/print.inode.head.c

i160.3.15 kernel/diag/print.inode.list.c

i160.3.16 kernel/diag/print.inode.map.c

i160.3.17 kernel/diag/print.inode.zone.list.c

i160.3.18 kernel/diag/print.inode.zones.c

i160.3.19 kernel/diag/print.inode.zones.head.c

i160.3.20 kernel/diag/print.kmem.c

i160.3.21 kernel/diag/print.mb.map.c

i160.3.22 kernel/diag/print.memory.map.c

i160.3.23 kernel/diag/print.proc.head.c

i160.3.24 kernel/diag/print.proc.list.c

i160.3.25 kernel/diag/print.proc.pid.c

i160.3.26 kernel/diag/print.segments.c

i160.3.27 kernel/diag/print.superblock.c

i160.3.28 kernel/diag/print.time.c

i160.3.29 kernel/diag/print.zone.map.c

i160.3.30 kernel/diag/reverse.16.bit.c

i160.3.31 kernel/diag/reverse.32.bit.c

i160.3.32 kernel/diag/reverse.8.bit.c

u2.4 os16: ''kernel/fs.h''

i160.4.1 kernel/fs/fd.chmod.c

i160.4.2 kernel/fs/fd.chown.c

i160.4.3 kernel/fs/fd.close.c

i160.4.4 kernel/fs/fd.dup.c

i160.4.5 kernel/fs/fd.dup2.c

i160.4.6 kernel/fs/fd.fcntl.c

i160.4.7 kernel/fs/fd.lseek.c

i160.4.8 kernel/fs/fd.open.c

i160.4.9 kernel/fs/fd.read.c

i160.4.10 kernel/fs/fd.reference.c

i160.4.11 kernel/fs/fd.stat.c

i160.4.12 kernel/fs/fd.write.c

i160.4.13 kernel/fs/file.reference.c

i160.4.14 kernel/fs/file.stdio.dev.make.c

i160.4.15 kernel/fs/file.table.c

i160.4.16 kernel/fs/inode.alloc.c

i160.4.17 kernel/fs/inode.check.c

i160.4.18 kernel/fs/inode.dir.empty.c

i160.4.19 kernel/fs/inode.file.read.c

i160.4.20 kernel/fs/inode.file.write.c

i160.4.21 kernel/fs/inode.free.c

i160.4.22 kernel/fs/inode.fzones.read.c

i160.4.23 kernel/fs/inode.fzones.write.c

i160.4.24 kernel/fs/inode.get.c

i160.4.25 kernel/fs/inode.put.c

i160.4.26 kernel/fs/inode.reference.c

i160.4.27 kernel/fs/inode.save.c

i160.4.28 kernel/fs/inode.stdio.dev.make.c

i160.4.29 kernel/fs/inode.table.c

i160.4.30 kernel/fs/inode.truncate.c

i160.4.31 kernel/fs/inode.zone.c

i160.4.32 kernel/fs/path.chdir.c

i160.4.33 kernel/fs/path.chmod.c

i160.4.34 kernel/fs/path.chown.c

i160.4.35 kernel/fs/path.device.c

i160.4.36 kernel/fs/path.fix.c

i160.4.37 kernel/fs/path.full.c

i160.4.38 kernel/fs/path.inode.c

i160.4.39 kernel/fs/path.inode.link.c

i160.4.40 kernel/fs/path.link.c

i160.4.41 kernel/fs/path.mkdir.c

i160.4.42 kernel/fs/path.mknod.c

i160.4.43 kernel/fs/path.mount.c

i160.4.44 kernel/fs/path.stat.c

i160.4.45 kernel/fs/path.umount.c

i160.4.46 kernel/fs/path.unlink.c

i160.4.47 kernel/fs/sb.inode.status.c

i160.4.48 kernel/fs/sb.mount.c

i160.4.49 kernel/fs/sb.reference.c

i160.4.50 kernel/fs/sb.save.c

i160.4.51 kernel/fs/sb.table.c

i160.4.52 kernel/fs/sb.zone.status.c

i160.4.53 kernel/fs/zone.alloc.c

i160.4.54 kernel/fs/zone.free.c

i160.4.55 kernel/fs/zone.read.c

i160.4.56 kernel/fs/zone.write.c

u2.5 os16: ''kernel/ibm.i86.h''

i160.5.1 kernel/ibm.i86/.cli.s

i160.5.2 kernel/ibm.i86/.in.16.s

i160.5.3 kernel/ibm.i86/.in.8.s

i160.5.4 kernel/ibm.i86/.int10.00.s

i160.5.5 kernel/ibm.i86/.int10.02.s

i160.5.6 kernel/ibm.i86/.int10.05.s

i160.5.7 kernel/ibm.i86/.int12.s

i160.5.8 kernel/ibm.i86/.int13.00.s

i160.5.9 kernel/ibm.i86/.int13.02.s

i160.5.10 kernel/ibm.i86/.int13.03.s

i160.5.11 kernel/ibm.i86/.int16.00.s

i160.5.12 kernel/ibm.i86/.int16.01.s

i160.5.13 kernel/ibm.i86/.int16.02.s

i160.5.14 kernel/ibm.i86/.out.16.s

i160.5.15 kernel/ibm.i86/.out.8.s

i160.5.16 kernel/ibm.i86/.ram.copy.s

i160.5.17 kernel/ibm.i86/.sti.s

i160.5.18 kernel/ibm.i86/con.char.read.c

i160.5.19 kernel/ibm.i86/con.char.ready.c

i160.5.20 kernel/ibm.i86/con.char.wait.c

i160.5.21 kernel/ibm.i86/con.init.c

i160.5.22 kernel/ibm.i86/con.putc.c

i160.5.23 kernel/ibm.i86/con.scroll.c

i160.5.24 kernel/ibm.i86/con.select.c

i160.5.25 kernel/ibm.i86/dsk.read.bytes.c

i160.5.26 kernel/ibm.i86/dsk.read.sectors.c

i160.5.27 kernel/ibm.i86/dsk.reset.c

i160.5.28 kernel/ibm.i86/dsk.sector.to.chs.c

i160.5.29 kernel/ibm.i86/dsk.setup.c

i160.5.30 kernel/ibm.i86/dsk.table.c

i160.5.31 kernel/ibm.i86/dsk.write.bytes.c

i160.5.32 kernel/ibm.i86/dsk.write.sectors.c

i160.5.33 kernel/ibm.i86/irq.off.c

i160.5.34 kernel/ibm.i86/irq.on.c

u2.6 os16: ''kernel/k.libc.h''

i160.6.1 kernel/k.libc/k.clock.c

i160.6.2 kernel/k.libc/k.close.c

i160.6.3 kernel/k.libc/k.exit.s

i160.6.4 kernel/k.libc/k.kill.c

i160.6.5 kernel/k.libc/k.open.c

i160.6.6 kernel/k.libc/k.perror.c

i160.6.7 kernel/k.libc/k.printf.c

i160.6.8 kernel/k.libc/k.puts.c

i160.6.9 kernel/k.libc/k.read.c

i160.6.10 kernel/k.libc/k.stime.c

i160.6.11 kernel/k.libc/k.time.c

i160.6.12 kernel/k.libc/k.vprintf.c

i160.6.13 kernel/k.libc/k.vsprintf.c

u2.7 os16: ''kernel/main.h''

i160.7.1 kernel/main/build.h

i160.7.2 kernel/main/crt0.s

i160.7.3 kernel/main/main.c

i160.7.4 kernel/main/menu.c

i160.7.5 kernel/main/run.c

u2.8 os16: ''kernel/memory.h''

i160.8.1 kernel/memory/address.c

i160.8.2 kernel/memory/mb.alloc.c

i160.8.3 kernel/memory/mb.alloc.size.c

i160.8.4 kernel/memory/mb.free.c

i160.8.5 kernel/memory/mb.reference.c

i160.8.6 kernel/memory/mb.table.c

i160.8.7 kernel/memory/mem.copy.c

i160.8.8 kernel/memory/mem.read.c

i160.8.9 kernel/memory/mem.write.c

u2.9 os16: ''kernel/proc.h''

i160.9.1 kernel/proc/.isr.s

i160.9.2 kernel/proc/.ivt.load.s

i160.9.3 kernel/proc/proc.available.c

i160.9.4 kernel/proc/proc.dump.memory.c

i160.9.5 kernel/proc/proc.find.c

i160.9.6 kernel/proc/proc.init.c

i160.9.7 kernel/proc/proc.reference.c

i160.9.8 kernel/proc/proc.sch.signals.c

i160.9.9 kernel/proc/proc.sch.terminals.c

i160.9.10 kernel/proc/proc.sch.timers.c

i160.9.11 kernel/proc/proc.scheduler.c

i160.9.12 kernel/proc/proc.sig.chld.c

i160.9.13 kernel/proc/proc.sig.cont.c

i160.9.14 kernel/proc/proc.sig.core.c

i160.9.15 kernel/proc/proc.sig.ignore.c

i160.9.16 kernel/proc/proc.sig.off.c

i160.9.17 kernel/proc/proc.sig.on.c

i160.9.18 kernel/proc/proc.sig.status.c

i160.9.19 kernel/proc/proc.sig.stop.c

i160.9.20 kernel/proc/proc.sig.term.c

i160.9.21 kernel/proc/proc.sys.exec.c

i160.9.22 kernel/proc/proc.sys.exit.c

i160.9.23 kernel/proc/proc.sys.fork.c

i160.9.24 kernel/proc/proc.sys.kill.c

i160.9.25 kernel/proc/proc.sys.seteuid.c

i160.9.26 kernel/proc/proc.sys.setuid.c

i160.9.27 kernel/proc/proc.sys.signal.c

i160.9.28 kernel/proc/proc.sys.wait.c

i160.9.29 kernel/proc/proc.table.c

i160.9.30 kernel/proc/sysroutine.c

u2.10 os16: ''kernel/tty.h''

i160.10.1 kernel/tty/tty.console.c

i160.10.2 kernel/tty/tty.init.c

i160.10.3 kernel/tty/tty.read.c

i160.10.4 kernel/tty/tty.reference.c

i160.10.5 kernel/tty/tty.table.c

i160.10.6 kernel/tty/tty.write.c

u161 Sorgenti della libreria generale

u2.1 os16: file isolati della directory ''lib/''

i161.1.1 lib/NULL.h

i161.1.2 lib/SEEK.h

i161.1.3 lib/.Bool.h

i161.1.4 lib/clock.t.h

i161.1.5 lib/const.h

i161.1.6 lib/ctype.h

i161.1.7 lib/inttypes.h

i161.1.8 lib/limits.h

i161.1.9 lib/ptrdiff.t.h

i161.1.10 lib/restrict.h

i161.1.11 lib/size.t.h

i161.1.12 lib/stdarg.h

i161.1.13 lib/stdbool.h

i161.1.14 lib/stddef.h

i161.1.15 lib/stdint.h

i161.1.16 lib/time.t.h

i161.1.17 lib/wchar.t.h

u2.2 os16: ''lib/dirent.h''

i161.2.1 lib/dirent/DIR.c

i161.2.2 lib/dirent/closedir.c

i161.2.3 lib/dirent/opendir.c

i161.2.4 lib/dirent/readdir.c

i161.2.5 lib/dirent/rewinddir.c

u2.3 os16: ''lib/errno.h''

i161.3.1 lib/errno/errno.c

u2.4 os16: ''lib/fcntl.h''

i161.4.1 lib/fcntl/creat.c

i161.4.2 lib/fcntl/fcntl.c

i161.4.3 lib/fcntl/open.c

u2.5 os16: ''lib/grp.h''

i161.5.1 lib/grp/getgrgid.c

i161.5.2 lib/grp/getgrnam.c

u2.6 os16: ''lib/libgen.h''

i161.6.1 lib/libgen/basename.c

i161.6.2 lib/libgen/dirname.c

u2.7 os16: ''lib/pwd.h''

i161.7.1 lib/pwd/pwent.c

u2.8 os16: ''lib/signal.h''

i161.8.1 lib/signal/kill.c

i161.8.2 lib/signal/signal.c

u2.9 os16: ''lib/stdio.h''

i161.9.1 lib/stdio/FILE.c

i161.9.2 lib/stdio/clearerr.c

i161.9.3 lib/stdio/fclose.c

i161.9.4 lib/stdio/feof.c

i161.9.5 lib/stdio/ferror.c

i161.9.6 lib/stdio/fflush.c

i161.9.7 lib/stdio/fgetc.c

i161.9.8 lib/stdio/fgetpos.c

i161.9.9 lib/stdio/fgets.c

i161.9.10 lib/stdio/fileno.c

i161.9.11 lib/stdio/fopen.c

i161.9.12 lib/stdio/fprintf.c

i161.9.13 lib/stdio/fputc.c

i161.9.14 lib/stdio/fputs.c

i161.9.15 lib/stdio/fread.c

i161.9.16 lib/stdio/freopen.c

i161.9.17 lib/stdio/fscanf.c

i161.9.18 lib/stdio/fseek.c

i161.9.19 lib/stdio/fseeko.c

i161.9.20 lib/stdio/fsetpos.c

i161.9.21 lib/stdio/ftell.c

i161.9.22 lib/stdio/ftello.c

i161.9.23 lib/stdio/fwrite.c

i161.9.24 lib/stdio/getchar.c

i161.9.25 lib/stdio/gets.c

i161.9.26 lib/stdio/perror.c

i161.9.27 lib/stdio/printf.c

i161.9.28 lib/stdio/puts.c

i161.9.29 lib/stdio/rewind.c

i161.9.30 lib/stdio/scanf.c

i161.9.31 lib/stdio/setbuf.c

i161.9.32 lib/stdio/setvbuf.c

i161.9.33 lib/stdio/snprintf.c

i161.9.34 lib/stdio/sprintf.c

i161.9.35 lib/stdio/sscanf.c

i161.9.36 lib/stdio/vfprintf.c

i161.9.37 lib/stdio/vfscanf.c

i161.9.38 lib/stdio/vfsscanf.c

i161.9.39 lib/stdio/vprintf.c

i161.9.40 lib/stdio/vscanf.c

i161.9.41 lib/stdio/vsnprintf.c

i161.9.42 lib/stdio/vsprintf.c

i161.9.43 lib/stdio/vsscanf.c

u2.10 os16: ''lib/stdlib.h''

i161.10.1 lib/stdlib/.Exit.c

i161.10.2 lib/stdlib/abort.c

i161.10.3 lib/stdlib/abs.c

i161.10.4 lib/stdlib/alloc.c

i161.10.5 lib/stdlib/atexit.c

i161.10.6 lib/stdlib/atoi.c

i161.10.7 lib/stdlib/atol.c

i161.10.8 lib/stdlib/div.c

i161.10.9 lib/stdlib/environment.c

i161.10.10 lib/stdlib/exit.c

i161.10.11 lib/stdlib/getenv.c

i161.10.12 lib/stdlib/labs.c

i161.10.13 lib/stdlib/ldiv.c

i161.10.14 lib/stdlib/putenv.c

i161.10.15 lib/stdlib/qsort.c

i161.10.16 lib/stdlib/rand.c

i161.10.17 lib/stdlib/setenv.c

i161.10.18 lib/stdlib/strtol.c

i161.10.19 lib/stdlib/strtoul.c

i161.10.20 lib/stdlib/unsetenv.c

u2.11 os16: ''lib/string.h''

i161.11.1 lib/string/memccpy.c

i161.11.2 lib/string/memchr.c

i161.11.3 lib/string/memcmp.c

i161.11.4 lib/string/memcpy.c

i161.11.5 lib/string/memmove.c

i161.11.6 lib/string/memset.c

i161.11.7 lib/string/strcat.c

i161.11.8 lib/string/strchr.c

i161.11.9 lib/string/strcmp.c

i161.11.10 lib/string/strcoll.c

i161.11.11 lib/string/strcpy.c

i161.11.12 lib/string/strcspn.c

i161.11.13 lib/string/strdup.c

i161.11.14 lib/string/strerror.c

i161.11.15 lib/string/strlen.c

i161.11.16 lib/string/strncat.c

i161.11.17 lib/string/strncmp.c

i161.11.18 lib/string/strncpy.c

i161.11.19 lib/string/strpbrk.c

i161.11.20 lib/string/strrchr.c

i161.11.21 lib/string/strspn.c

i161.11.22 lib/string/strstr.c

i161.11.23 lib/string/strtok.c

i161.11.24 lib/string/strxfrm.c

u2.12 os16: ''lib/sys/os16.h''

i161.12.1 lib/sys/os16/.bp.s

i161.12.2 lib/sys/os16/.cs.s

i161.12.3 lib/sys/os16/.ds.s

i161.12.4 lib/sys/os16/.es.s

i161.12.5 lib/sys/os16/.seg.d.s

i161.12.6 lib/sys/os16/.seg.i.s

i161.12.7 lib/sys/os16/.sp.s

i161.12.8 lib/sys/os16/.ss.s

i161.12.9 lib/sys/os16/heap.clear.c

i161.12.10 lib/sys/os16/heap.min.c

i161.12.11 lib/sys/os16/input.line.c

i161.12.12 lib/sys/os16/mount.c

i161.12.13 lib/sys/os16/namep.c

i161.12.14 lib/sys/os16/process.info.c

i161.12.15 lib/sys/os16/sys.s

i161.12.16 lib/sys/os16/umount.c

i161.12.17 lib/sys/os16/z.perror.c

i161.12.18 lib/sys/os16/z.printf.c

i161.12.19 lib/sys/os16/z.putchar.c

i161.12.20 lib/sys/os16/z.puts.c

i161.12.21 lib/sys/os16/z.vprintf.c

u2.13 os16: ''lib/sys/stat.h''

i161.13.1 lib/sys/stat/chmod.c

i161.13.2 lib/sys/stat/fchmod.c

i161.13.3 lib/sys/stat/fstat.c

i161.13.4 lib/sys/stat/mkdir.c

i161.13.5 lib/sys/stat/mknod.c

i161.13.6 lib/sys/stat/stat.c

i161.13.7 lib/sys/stat/umask.c

u2.14 os16: ''lib/sys/types.h''

i161.14.1 lib/sys/types/major.c

i161.14.2 lib/sys/types/makedev.c

i161.14.3 lib/sys/types/minor.c

u2.15 os16: ''lib/sys/wait.h''

i161.15.1 lib/sys/wait/wait.c

u2.16 os16: ''lib/time.h''

i161.16.1 lib/time/asctime.c

i161.16.2 lib/time/clock.c

i161.16.3 lib/time/gmtime.c

i161.16.4 lib/time/mktime.c

i161.16.5 lib/time/stime.c

i161.16.6 lib/time/time.c

u2.17 os16: ''lib/unistd.h''

i161.17.1 lib/unistd/.exit.c

i161.17.2 lib/unistd/access.c

i161.17.3 lib/unistd/chdir.c

i161.17.4 lib/unistd/chown.c

i161.17.5 lib/unistd/close.c

i161.17.6 lib/unistd/dup.c

i161.17.7 lib/unistd/dup2.c

i161.17.8 lib/unistd/environ.c

i161.17.9 lib/unistd/execl.c

i161.17.10 lib/unistd/execle.c

i161.17.11 lib/unistd/execlp.c

i161.17.12 lib/unistd/execv.c

i161.17.13 lib/unistd/execve.c

i161.17.14 lib/unistd/execvp.c

i161.17.15 lib/unistd/fchdir.c

i161.17.16 lib/unistd/fchown.c

i161.17.17 lib/unistd/fork.c

i161.17.18 lib/unistd/getcwd.c

i161.17.19 lib/unistd/geteuid.c

i161.17.20 lib/unistd/getopt.c

i161.17.21 lib/unistd/getpgrp.c

i161.17.22 lib/unistd/getpid.c

i161.17.23 lib/unistd/getppid.c

i161.17.24 lib/unistd/getuid.c

i161.17.25 lib/unistd/isatty.c

i161.17.26 lib/unistd/link.c

i161.17.27 lib/unistd/lseek.c

i161.17.28 lib/unistd/read.c

i161.17.29 lib/unistd/rmdir.c

i161.17.30 lib/unistd/seteuid.c

i161.17.31 lib/unistd/setpgrp.c

i161.17.32 lib/unistd/setuid.c

i161.17.33 lib/unistd/sleep.c

i161.17.34 lib/unistd/ttyname.c

i161.17.35 lib/unistd/unlink.c

i161.17.36 lib/unistd/write.c

u2.18 os16: ''lib/utime.h''

i161.18.1 lib/utime/utime.c

u162 Sorgenti delle applicazioni

u2.1 os16: directory ''applic/''

i162.1.1 applic/MAKEDEV.c

i162.1.2 applic/aaa.c

i162.1.3 applic/bbb.c

i162.1.4 applic/cat.c

i162.1.5 applic/ccc.c

i162.1.6 applic/chmod.c

i162.1.7 applic/chown.c

i162.1.8 applic/cp.c

i162.1.9 applic/crt0.s

i162.1.10 applic/date.c

i162.1.11 applic/ed.c

i162.1.12 applic/getty.c

i162.1.13 applic/init.c

i162.1.14 applic/kill.c

i162.1.15 applic/ln.c

i162.1.16 applic/login.c

i162.1.17 applic/ls.c

i162.1.18 applic/man.c

i162.1.19 applic/mkdir.c

i162.1.20 applic/more.c

i162.1.21 applic/mount.c

i162.1.22 applic/ps.c

i162.1.23 applic/rm.c

i162.1.24 applic/shell.c

i162.1.25 applic/touch.c

i162.1.26 applic/tty.c

i162.1.27 applic/umount.c

Parte xxxvii Un sistema operativo giocattolo, denominato ''05''

u163 Preparazione

u2.1 File-immagine

u164 Directory di lavoro

u2.1 Directory ''05/''

u2.2 Script di collegamento

u2.3 Altre directory

u165 Libreria standard per iniziare

u2.1 Libreria ''limits.h''

u166 File isolati per dichiarazioni riprese in più librerie

u2.1 Libreria ''stdbool.h''

u2.2 Libreria ''time.h''

u2.3 Libreria ''ctype.h''

u2.4 Libreria ''stdint.h''

u2.5 Libreria ''inttypes.h''

u2.6 Libreria ''stdarg.h''

u2.7 Libreria ''stddef.h''

u2.8 Libreria ''stdlib.h''

u2.9 Libreria ''string.h''

u2.10 Libreria ''stdio.h''

u167 Librerie specifiche generali

u2.1 File ''build.h''

u2.2 Libreria ''io.h''

u2.3 Libreria ''multiboot.h''

u2.4 File ''os.h''

u2.5 Libreria ''vga.h''

u168 Un primo kernel di prova

u2.1 File ''kernel.h''

u2.2 Altri file mancanti

u2.3 Compilazione e prova di funzionamento

u169 Tabella GDT

u2.1 Struttura

u2.2 Libreria ''gdt.h''

u2.3 Modifiche da apportare a ''kernel.main.c''

u170 Gestione della memoria

u2.1 Gestione della memoria attraverso una lista

u2.2 Libreria ''mm.h''

u2.3 Funzioni per l'allocazione della memoria

u2.4 Verifica del funzionamento

u171 Tabella IDT

u2.1 File di intestazione ''int.h'' e file delle routine di interruzione ''isr.s''

u2.2 Funzioni per definire la tabella IDT

u2.3 Gestione delle interruzioni

u2.4 Piccole funzioni di contorno

u2.5 Verifica del funzionamento

u172 Chiamate di sistema

u2.1 File di intestazione ''syscall.h''

u2.2 Fasi successive all'interruzione

u2.3 Verifica del funzionamento

u173 Interruzioni hardware

u2.1 Gestione del temporizzatore

u2.2 Gestione della tastiera

u2.3 Verifica del funzionamento

u174 Una specie di ''shell''

u2.1 Realizzazione della shell

u2.2 Conclusione

Parte xxxviii *BSD

u175 Caratteristiche comuni nei sistemi *BSD

u2.1 Partizioni nei sistemi *BSD

u2.2 Dispositivi tipici

u2.3 Riferimenti

Parte xxxix i86

u176 Minix

u2.1 Procurarsi il software

i176.1.1 Pacchetti essenziali

u2.2 Preparazione all'installazione

i176.2.1 Nomi di dispositivo riferiti alle partizioni

u2.3 Avvio

u2.4 Installazione

i176.4.1 Setup

i176.4.2 Avvio del sistema copiato nel disco fisso

i176.4.3 Installazione delle serie di dischetti

i176.4.4 Dischetto di avvio

i176.4.5 Conclusione

u2.5 Ricompilazione del kernel

i176.5.1 /usr/include/minix/config.h

i176.5.2 File di dispositivo

u2.6 Parametri di avvio

i176.6.1 Scheda di rete

u2.7 Configurazione della rete

i176.7.1 /etc/hosts

i176.7.2 File ''/etc/hostname.file''

i176.7.3 File ''/etc/resolv.conf''

i176.7.4 File ''/etc/rc.net''

i176.7.5 File ''/etc/rc''

u2.8 Personalizzazione

i176.8.1 File ''/etc/passwd'', ''/etc/group'' e ''/etc/shadow''

u2.9 Tastiera

i176.9.1 Modifica della mappa

u2.10 Altri programmi

i176.10.1 Pacchetto ''HTTPD.TAZ''

i176.10.2 Pacchetto ''FROG.TAZ''

u2.11 Copie di sicurezza

i176.11.1 Archiviazione

i176.11.2 Recupero

u2.12 Convivenza tra Minix e GNU/Linux

i176.12.1 LILO

u2.13 Riferimenti

u177 ELKS: introduzione

u2.1 Strumenti di sviluppo

u2.2 Compilazione del kernel

u2.3 Immagini di dischetti già pronti

u2.4 Avvio di ELKS all'interno di DOSEMU

u2.5 Spegnimento

u2.6 Riferimenti

u178 ELKS: realizzazione personale

u2.1 File system e dischetti

u2.2 File di dispositivo

u2.3 Sistema di avvio

i178.3.1 Bootblocks

i178.3.2 Bootkit

u2.4 Installazione manuale nel disco fisso

u2.5 Adattamento della mappa della tastiera

Parte xl Dos

u179 Dos: introduzione

u2.1 Avvio del sistema

u2.2 Dispositivi secondo il Dos

u2.3 Directory, file ed eseguibili

u2.4 Comandi e ambiente di avvio

u2.5 Caratteri jolly

u2.6 Invito dell'interprete dei comandi

u2.7 Comandi interni principali

i179.7.1 CH, CHDIR

i179.7.2 X:

i179.7.3 MD, MKDIR

i179.7.4 RD, RMDIR

i179.7.5 DIR

i179.7.6 COPY

i179.7.7 DEL, ERASE

i179.7.8 REN, RENAME

i179.7.9 SET

i179.7.10 TYPE

u2.8 Flussi standard

i179.8.1 SORT

i179.8.2 MORE

u2.9 Accesso diretto ai dispositivi

u2.10 Riferimenti

u180 Dos: dischi, file system, directory e file

u2.1 Suddivisione in partizioni

u2.2 Inizializzazione di un'unità di memorizzazione

u2.3 Etichetta di un'unità di memorizzazione

u2.4 Analisi e correzione del file system

u2.5 Copia

i180.5.1 DISKCOPY

i180.5.2 XCOPY

u2.6 Trasferimento del sistema

u2.7 Modifica delle unità

i180.7.1 ASSIGN

i180.7.2 JOIN

i180.7.3 SUBST

u2.8 Altre particolarità

i180.8.1 VERIFY

i180.8.2 APPEND

i180.8.3 ATTRIB

i180.8.4 DELTREE

i180.8.5 FIND

i180.8.6 MOVE

i180.8.7 TREE

i180.8.8 COMP e FC

u181 Dos: configurazione

u2.1 File ''CONFIG.SYS''

i181.1.1 BREAK

i181.1.2 BUFFERS

i181.1.3 COUNTRY

i181.1.4 DEVICE, DEVICEHIGH

i181.1.5 DOS

i181.1.6 DRIVEPARM

i181.1.7 FCBS

i181.1.8 FILES

i181.1.9 INSTALL

i181.1.10 LASTDRIVE

i181.1.11 SHELL

i181.1.12 STACK

u2.2 File ''AUTOEXEC.BAT''

u2.3 Comandi ridondanti

u2.4 Localizzazione

i181.4.1 CHCP

i181.4.2 KEYB

i181.4.3 GRAFTABL

u2.5 Orologio

u182 Dos: script dell'interprete dei comandi

u2.1 Parametri, variabili ed espansione

u2.2 Chiamate di altri script

u2.3 Strutture di controllo

i182.3.1 IF

i182.3.2 FOR

i182.3.3 GOTO

i182.3.4 Emulazione di un ciclo iterativo

u2.4 Comandi utili negli script

i182.4.1 REM

i182.4.2 ECHO

i182.4.3 PAUSE

i182.4.4 CLS

i182.4.5 CHOICE

u183 Dos: gestione della memoria centrale

u2.1 Gestione particolare

u2.2 Comandi appositi

u2.3 Verifica

u184 FreeDOS

u2.1 Installazione

u2.2 Impostazione e configurazione

u2.3 RxDOS

u2.4 Riferimenti

u185 Progetto GNUish

u2.1 Programmi di servizio vari

u2.2 Gnuplot

u2.3 Spreadsheet Calculator

u2.4 Ispell

u2.5 Perl

u2.6 Riferimenti

u186 The valuable DOS Freeware page

u2.1 Introduction

u2.2 OS and GUI

u2.3 Utility

u2.4 Network

u2.5 Compilers

u2.6 Typesetting

u2.7 More Dos software sources

u2.8 Search engines

u187 Introduzione a ReactOS

u2.1 Installazione

u2.2 Riferimenti

u188 DOSEMU: l'emulatore di hardware DOS compatibile

u2.1 Predisporre un ambiente adatto al Dos all'interno di DOSEMU

i188.1.1 Un disco ''C:'' immagine

i188.1.2 Un disco ''D:'' virtuale o di rete

i188.1.3 La struttura essenziale del disco ''D:'' virtuale

u2.2 La configurazione di DOSEMU

i188.2.1 File ''/etc/dosemu.users''

i188.2.2 File ''/etc/dosemu.conf''

u2.3 Installare e utilizzare il Dos

i188.3.1 I dischi virtuali con ''LREDIR.COM''

i188.3.2 Il mouse

i188.3.3 Un esempio di ''AUTOEXEC.BAT''

i188.3.4 DOSEMU e le console virtuali

i188.3.5 DOSEMU da X

i188.3.6 DOSEMU e Mtools

i188.3.7 Implicazioni sulla gestione dei permessi

Parte xli Sistemi operativi alternativi

u189 Sistemi operativi alternativi di un certo rilievo

u2.1 Riferimenti

u190 Syllable: introduzione

u2.1 Installazione

u2.2 Utenze

u2.3 Installazione dei pacchetti applicativi

u2.4 Riferimenti

u191 Syllable: utilizzo sommario

u2.1 Configurazione

u2.2 Cattura dello schermo

u2.3 Riferimenti

u192 Plan 9: installazione

u2.1 Dischetto di installazione e preparazione della distribuzione

u2.2 Installazione nel disco fisso

u2.3 Avvio e arresto del sistema installato

u2.4 Riferimenti

u193 UNIX di ricerca

u2.1 Caratteristiche dei primi sistemi UNIX e BSD

i193.1.1 Partizioni

i193.1.2 Dispositivi

i193.1.3 File di dispositivo delle unità di memorizzazione

i193.1.4 Unità a nastro

i193.1.5 Collocazione dei file eseguibili

u2.2 SIMH e il PDP-11

i193.2.1 Utilizzo normale

i193.2.2 Avvio e sospensione di una simulazione

i193.2.3 Nastri virtuali

i193.2.4 Caratteristiche generali dei vari modelli PDP-11

i193.2.5 Simulazione unità a disco e a nastro

u2.3 2.11BSD

i193.3.1 Preparazione del nastro virtuale

i193.3.2 Configurazione iniziale del simulatore e avvio

i193.3.3 Preparazione delle partizioni

i193.3.4 Inizializzazione del file system

i193.3.5 Copia dei file principali e primo avvio del sistema

i193.3.6 Sistemazione dell'avvio dal disco

i193.3.7 Predisposizione dei file di dispositivo e conclusione dell'installazione

i193.3.8 Sistemare la data

u2.4 Installazione di file-immagine pronti

i193.4.1 UNIX versione 5 «RK05»

i193.4.2 UNIX versione 6 «RK05»

i193.4.3 UNIX versione 6 «RL02»

i193.4.4 UNIX versione 7 «RL02»

i193.4.5 UNIX versione 7 «RL02» ''Torsten''

i193.4.6 BSD versione 2.9 «RL02»

u2.5 Derivazioni di UNIX per hardware ridotto

i193.5.1 Mini-UNIX

i193.5.2 LSI UNIX o LSX

u2.6 Programmi di servizio

i193.6.1 V7fs

u2.7 Riferimenti

A GNU GENERAL PUBLIC LICENSE

B GNU Free Documentation License

C Creative Commons Legal Code

x1 Indice analitico