Sezione 1: programmi eseguibili o comandi interni di shell

aaa u0.1 cat u0.3 chmod u0.5 chown u0.6 cp u0.7 date u0.8 ed u0.9 kill u0.10 ln u0.11 login u0.12 ls u0.13 man u0.14 mkdir u0.15 more u0.16 ps u0.17 rm u0.18 shell u0.19 touch u0.20 tty u0.21

os16: aaa(1)

NOME

aaa, bbb, ccc - programmi elementari avviabili direttamente dal kernel

SINTASSI
aaa
bbb
ccc
DESCRIZIONE

aaa e bbb si limitano a visualizzare una lettera, rispettivamente «a» e «b», attraverso lo standard output, a intervalli regolari. Precisamente, aaa lo fa a intervalli di un secondo, mentre bbb a intervalli di due secondi. Il lavoro di aaa e di bbb si conclude dopo l'emissione, rispettivamente, di 60 e 30 caratteri, pertanto nel giro di un minuto di tempo si esaurisce il loro compito.

Il programma ccc è diverso, ma nasce per lo stesso scopo: controllare la gestione dei processi di os16. Questo programma si limita ad avviare, aaa e bbb, come propri processi-figli, rimanendo in funzione, senza fare nulla. Pertanto, se si usa ccc, il suo processo deve essere eliminato in modo esplicito, perché da solo non si concluderebbe mai.

Questi programmi sono indicati soprattutto per l'uso di os16 nella modalità interattiva che precede il funzionamento normale del sistema operativo, per la verifica della gestione dei processi.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/aaa.c [i190.1.2]

applic/bbb.c [i190.1.3]

applic/ccc.c [i190.1.5]

os16: bbb(1)

Vedere aaa(1) [u0.1].

os16: cat(1)

NOME

cat - emissione del contenuto di uno o più file attraverso lo standard output

SINTASSI
cat [file]...
DESCRIZIONE

cat legge il contenuto dei file indicati come argomento e li emette attraverso lo standard output, concatenati assieme in un unico flusso.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/cat.c [i190.1.4]

VEDERE ANCHE

more(1) [u0.16], ed(1) [u0.9].

os16: ccc(1)

Vedere aaa(1) [u0.1].

os16: chmod(1)

NOME

chmod - cambiamento della modalità dei permessi dei file

SINTASSI
chmod mod_ottale file...
DESCRIZIONE

chmod cambia la modalità dei permessi associati ai file indicati, in base al numero ottale indicato come primo argomento.

NOTE

Questa versione di chmod non permette di indicare la modalità dei permessi in forma simbolica.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/chmod.c [i190.1.6]

VEDERE ANCHE

chown(1) [u0.6].

os16: chown(1)

NOME

chown - cambiamento del proprietario di un file

SINTASSI
chown nome_utente file...
chown uid file...
DESCRIZIONE

chown cambia l'utente proprietario dei file indicati. Il nuovo proprietario da attribuire può essere indicato per nome o per numero.

NOTE

os16 non gestisce i gruppi, pertanto si può intervenire soltanto sull'utente proprietario dei file.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/chown.c [i190.1.7]

VEDERE ANCHE

chmod(1) [u0.5].

os16: cp(1)

NOME

cp - copia dei file

SINTASSI
cp file_orig file_nuovo...
cp file... directory_dest...
DESCRIZIONE

cp copia uno o più file. Se l'ultimo argomento è costituito da una directory esistente, la copia produce dei file con lo stesso nome degli originali, all'interno della directory; se l'ultimo argomento non è una directory già esistente, ci può essere un solo file da copiare, intendendo che si voglia creare una copia con quel nome specificato.

DIFETTI

Non è possibile copiare oggetti diversi dai file puri e semplici; quindi, la copia ricorsiva di una directory non è ammissibile.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/cp.c [i190.1.8]

VEDERE ANCHE

touch(1) [u0.20], mkdir(1) [u0.15].

os16: date(1)

NOME

date - visualizzazione o impostazione della data e dell'ora di sistema

SINTASSI
date [MMGGhhmm[[SS]AA]]
DESCRIZIONE

Se si utilizza il programma date senza argomenti, si ottiene la visualizzazione della data e dell'ora attuale del sistema operativo. Se si indica una sequenza numerica come argomento, si intende invece impostare la data e l'ora del sistema. In tal caso va indicato un numero preciso di cifre, che può essere di otto, dieci o dodici. Se si immettono otto cifre, si sta specificando il mese, il giorno, l'ora e i minuti dell'anno attuale; se si indicano dieci cifre, le ultime due rappresentano l'anno del secolo attuale; se si immettono dodici cifre, l'anno è indicato per esteso nelle ultime quattro cifre.

ESEMPI

date 123123592012[Invio]

Imposta la data di sistema al giorno 31 dicembre 2012, alle ore 23:59.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/date.c [i190.1.10]

VEDERE ANCHE

time(2) [u0.39], stime(2) [u0.39].

os16: ed(1)

NOME

ed - creazione e modifica di file di testo

SINTASSI
ed
DESCRIZIONE

ed è un programma di creazione e modifica di file di testo, che consente di operare su una riga alla volta.

ed opera in due modalità di funzionamento: comando e inserimento. All'avvio, ed si trova in modalità di comando, durante la quale ciò che si inserisce attraverso lo standard input viene interpretato come un comando da eseguire. Per esempio, il comando 1i richiede di passare alla modalità di inserimento, immettendo delle righe a partire dalla prima posizione, spostando quelle presenti in basso. Quando ci si trova in modalità di inserimento, per poter passare alla modalità di comando si introduce un punto isolato, all'inizio di una nuova riga.

Per il momento, in questa pagina di manuale, si omette la descrizione completa dell'utilizzo di ed.

DIFETTI

La digitazione da tastiera viene interpretata da ed in modo letterale. Pertanto, anche la cancellazione, [Backspace], benché visivamente faccia indietreggiare il cursore, in realtà introduce il codice <DEL>. In fase di inserimento ciò comporta la scrittura di tale codice; in modalità di comando, ciò rende errato l'inserimento.

Il file che si intende elaborare con ed viene caricato o creato completamente nella memoria centrale. Dal momento che os16 consente a ogni processo di gestire una quantità molto limitata di memoria, si può lavorare soltanto con file di dimensioni estremamente ridotte.

AUTORI

Questa edizione di ed è stata scritta originariamente da David I. Bell, per sash (una shell che include varie funzionalità, da compilare in modo statico). Successivamente, il codice è stato estrapolato da sash e reso indipendente, per gli scopi del sistema operativo ELKS (una versione a 16 bit di Linux). Dalla versione estratta per ELKS è stata ottenuta quella di os16, con una serie di modifiche apportate da Daniele Giacomini, tra cui risulta particolarmente evidente il cambiamento dello stile di impaginazione del codice.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/ed.c [i190.1.11]

VEDERE ANCHE

shell(1) [u0.19].

os16: kill(1)

NOME

kill - invio di un segnale ai processi

SINTASSI
kill -s nome_segnale pid...
kill -l
DESCRIZIONE

Il programma kill consente di inviare un segnale, indicato per nome, a uno o più processi, specificati per numero.

OPZIONI
Opzione Descrizione
-l
Mostra l'elenco dei nomi dei segnali disponibili.
-s nome_segnale
Specifica il nome del segnale da inviare ai processi.
NOTE

Non è possibile indicare il segnale per numero, perché lo standard definisce i nomi di un insieme di segnali necessari, ma non stabilisce il numero, il quale può essere attribuito liberamente in fase realizzativa.

DIFETTI

os16 non consente ai processi di attribuire azioni alternative ai segnali; pertanto, si possono ottenere solo quelle predefinite. Tutto quello che si può fare è, eventualmente, bloccare i segnali, esclusi però quelli che non sono mascherabili per loro natura.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/kill.c [i190.1.14]

VEDERE ANCHE

kill(2) [u0.22], signal(2) [u0.34].

os16: ln(1)

NOME

ln - collegamento dei file

SINTASSI
ln file_orig file_nuovo...
ln file... directory_dest...
DESCRIZIONE

ln crea il collegamento fisico di uno o più file. Se l'ultimo argomento è costituito da una directory esistente, si producono collegamenti con gli stessi nomi degli originali, all'interno della directory; se l'ultimo argomento non è una directory già esistente, ci può essere un solo file da collegare, intendendo che si voglia creare un collegamento con quel nome specificato.

Essendo disponibile soltanto la creazione di collegamenti fisici, questi collegamenti possono essere collocati soltanto all'interno del file system di quelli originali, senza contare eventuali innesti ulteriori.

DIFETTI

Non è possibile creare dei collegamenti simbolici, perché os16 non sa gestirli.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/ln.c [i190.1.15]

VEDERE ANCHE

cp(1) [u0.7], link(2) [u0.23].

os16: login(1)

NOME

login - inizio di una sessione presso un terminale

SINTASSI
login
DESCRIZIONE

login richiede l'inserimento di un nominativo-utente e di una parola d'ordine. Questa coppia viene verificata consultando il file /etc/passwd e se coincide: vengono cambiati i permessi e la proprietà del file di dispositivo del terminale di controllo; viene cambiata la directory corrente in modo da farla coincidere con la directory personale dell'utente; viene avviata la shell, indicata sempre nel file /etc/passwd per quel tale utente, con i privilegi di questo. La shell, avviata così, va a rimpiazzare il processo di login.

Il programma login è fatto per essere avviato da getty, non avendo altri utilizzi pratici.

FILE
File Descrizione
/etc/passwd Contiene l'elenco degli utenti, con l'associazione al numero UID, alla parola d'ordine necessaria per accedere, alla shell dell'utente. Le altre informazioni eventuali contenute nel file, non sono usate da login.
FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/login.c [i190.1.16]

VEDERE ANCHE

getty(8) [u0.1], console(4) [u0.1].

os16: ls(1)

NOME

ls - elenco del contenuto delle directory

SINTASSI
ls [opzioni] [file]...
DESCRIZIONE

ls elenca i file e le directory indicati come argomenti della chiamata. Se non vengono indicati file o directory da visualizzare, si ottiene l'elenco del contenuto della directory corrente; inoltre, questa realizzazione particolare di ls, se si indica come argomento solo una directory, ne mostra il contenuto, altrimenti, se gli argomenti sono più di uno, mostra solo i nomi richiesti, eventualmente con le rispettive caratteristiche se è stata usata l'opzione -l.

OPZIONI
Opzione Descrizione
-a
Quando si richiede di mostrare il contenuto di una directory (quella corrente o quella specificata espressamente come primo e unico argomento), con questa opzione si ottiene la visualizzazione anche dei nomi che iniziano con un punto, inclusi . e ...
-l
Con questa opzione si ottiene la visualizzazione di più informazioni sui file e sulle directory elencati.
NOTE

Dal momento che os16 non considera i gruppi, quando si usa l'opzione -l, il nome del gruppo a cui appartiene un file o una directory, non viene visualizzato.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/ls.c [i190.1.17]

os16: man(1)

NOME

man - visualizzazione delle pagine di manuale

SINTASSI
man [sezione] pagina
DESCRIZIONE

man visualizza la pagina di manuale indicata come argomento, consentendone lo scorrimento in avanti. La «pagina» viene cercata tra le sezioni, a partire dalla prima. In caso di omonimie tra sezioni differenti, si può specificare il numero della sezione prima del nome della pagina.

Le pagine di manuale di os16 sono semplicemente dei file di testo, collocati nella directory /usr/share/man/, con nomi del tipo pagina.n, dove n è il numero della sezione.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/man.c [i190.1.18]

VEDERE ANCHE

cat(1) [u0.3].

os16: mkdir(1)

NOME

mkdir - creazione di directory

SINTASSI
mkdir [-p] [-m mod_ottale] [directory]...
DESCRIZIONE

mkdir crea una o più directory, corrispondenti ai nomi che costituiscono gli argomenti.

OPZIONI
Opzione Descrizione
-p
Se la directory che si vuole creare, può richiedere prima la creazione di altre directory, con questa opzione (parents) si generano tutte le directory genitrici necessarie, purché quei nomi non siano già usati per dei file.
-m mod_ottale
Quando si crea una directory, senza specificare questa opzione, si ottengono i permessi 07778 meno quanto contenuto nella maschera di creazione dei file e delle directory. Con l'opzione -m si vanno invece a specificare i permessi desiderati in modo esplicito.
FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/mkdir.c [i190.1.19]

VEDERE ANCHE

mkdir(2) [u0.25], rmdir(2) [u0.30].

os16: more(1)

NOME

more - visualizzazione di file sullo schermo, permettendo il controllo dello scorrimento dei dati, ma in un solo verso

SINTASSI
more file...
DESCRIZIONE

more visualizza i file indicati come argomenti della chiamata, sospendendo lo scorrimento del testo dopo un certo numero di righe, consentendo all'utente di decidere come proseguire.

COMANDI

Quando more sospende lo scorrimento del testo, è possibile introdurre un comando, composto da un solo carattere, tenendo conto che ciò che non è previsto fa comunque proseguire lo scorrimento:

Comando Descrizione
[n] si richiede di saltare al file successivo, ammesso che ce ne sia un altro;
[q] si richiede di interrompere lo scorrimento e di concludere il funzionamento del programma;
[Spazio] si richiede di proseguire nella visualizzazione progressiva dei file.
FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/more.c [i190.1.20]

VEDERE ANCHE

cat(1) [u0.3].

os16: ps(1)

NOME

ps - visualizzazione dello stato dei processi elaborativi

SINTASSI
ps
DESCRIZIONE

ps visualizza l'elenco dei processi, con le informazioni disponibili sul loro stato. L'elenco è provvisto di un'intestazione, come si vede nell'esempio seguente:

pp  p pg
id id rp  tty  uid euid suid usage s iaddr isiz daddr dsiz sp   name
 0  0  0 0000    0    0    0 00.31 r 10500 eff8 00500 0000 ffca os16 kernel
 0  1  0 0000    0    0    0 00.15 s 2f500 3200 32700 3300 2b8c /bin/init
 1  2  2 0500 1001 1001 1001 00.15 s 25700 3900 29000 3400 2f8c /bin/shell
 1  3  3 0501    0    0    0 00.07 s 22600 3100 38e00 3400 2556 /bin/login
 2  4  2 0500 1001 1001 1001 00.03 R 1f500 2b00 3c200 3400 3172 /bin/ps

La prima colonna, con la sigla «ppid», ovvero parent pid, riporta il numero del processo genitore; la seconda, con la sigla «pid», process id, indica il numero del processo preso in considerazione; la terza, con la sigla «pgrp», process group, indica il gruppo a cui appartiene il processo; la quarta colonna, «tty», indica il terminale associato, ammesso che ci sia, come numero di dispositivo, ma in base sedici. Le colonne «uid», «euid» e «suid», riguardano l'identità dell'utente, per conto del quale sono in funzione i processi, rappresentando, nell'ordine, l'identità reale (real user id), quella efficace (effective user id) e quella salvata precedentemente (saved user id).

La colonna «usage» indica il tempo di utilizzo della CPU; la colonna «s» indica lo stato del processo, il cui significato può essere interpretato con l'aiuto della tabella successiva:

Lettera Significato Descrizione
R running in corso di esecuzione
r ready pronto per essere messo in esecuzione
s sleeping in attesa
z zombie terminato e non più in memoria, per il quale si attende di passare lo stato di uscita al processo genitore.

Le colonne «iaddr» e «isiz» indicano l'indirizzo iniziale e l'estensione dell'area codice del processo, in memoria; le colonne «daddr» e «dsiz» indicano l'indirizzo iniziale e l'estensione dell'area dati del processo, in memoria. La colonna «sp» indica il valore dell'indice della pila dei dati (stack pointer).

L'ultima colonna indica il nome del programma, assieme al suo percorso, con il quale il processo è stato avviato.

NOTE

L'elenco dei processi include anche il kernel, il quale occupa correttamente la prima posizione (processo zero).

FILE

ps trae le informazioni sullo stato dei processi da un file di dispositivo speciale: /dev/kmem_ps.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/ps.c [i190.1.22]

os16: rm(1)

NOME

rm - cancellazione di file

SINTASSI
rm file...
DESCRIZIONE

rm consente di cancellare i file indicati come argomento.

DIFETTI

Non è possibile eseguire la cancellazione ricorsiva di una directory.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/rm.c [i190.1.23]

VEDERE ANCHE

unlink(2) [u0.42].

os16: shell(1)

NOME

shell - interprete dei comandi

SINTASSI
shell
DESCRIZIONE

shell è l'interprete dei comandi di os16. Di norma viene avviato da login, in base alla configurazione contenuta nel file /etc/passwd.

shell interpreta i comandi inseriti; se si tratta di un comando interno lo esegue direttamente, altrimenti cerca e avvia un programma con il nome corrispondente, rimanendo in attesa fino alla conclusione del processo relativo, per riprendere poi il controllo.

DIFETTI

L'interpretazione della riga di comando è letterale, pertanto non c'è alcuna espansione di caratteri speciali, variabili di ambiente o altro; inoltre, non è possibile eseguire script.

A volte, quando un processo avviato da shell termina di funzionare, il processo di shell non viene risvegliato correttamente, rendendo inutilizzabile il terminale. Per ovviare all'inconveniente, si può premere la combinazione [Ctrl c], con la quale viene inviato il segnale SIGINT a tutti i processi del gruppo associato al terminale.

Anche il fatto che un segnale generato con una combinazione di tasti si trasmetta a tutti i processi del gruppo associato al terminale è un'anomalia, tuttavia fa parte delle particolarità dovute alla semplificazione di os16.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/shell.c [i190.1.24]

VEDERE ANCHE

input_line(3) [u0.60].

os16: touch(1)

NOME

touch - creazione di un file vuoto oppure aggiornamento della data di modifica

SINTASSI
touch file...
DESCRIZIONE

touch crea dei file vuoti, se quelli indicati come argomento non sono esistenti; altrimenti, aggiorna le date di accesso e di modifica, sulla base dello stato dell'orologio di sistema.

DIFETTI

Non è possibile attribuire una data arbitraria; inoltre, a causa della limitazione del tipo di file system utilizzato, non è possibile distinguere tra date di accesso e modifica dei file.

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/touch.c [i190.1.25]

os16: tty(1)

NOME

tty - nome del file di dispositivo del terminale associato allo standard input

SINTASSI
tty
DESCRIZIONE

Il programma tty individua il dispositivo del terminale associato allo standard input e lo traduce in un percorso che descrive il file di dispositivo corrispondente (ovvero il file di dispositivo che dovrebbe corrispondergli)

FILE SORGENTI

applic/crt0.s [i190.1.9]

applic/tty.c [i190.1.26]

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net