Uno spazio dei nomi per i comandi UNIX

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
TheSnowBoarder
Linux 1.x
Linux 1.x
Messaggi: 139
Iscritto il: gio 30 giu 2005, 0:00
Località: Catania

Uno spazio dei nomi per i comandi UNIX

Messaggio da TheSnowBoarder »

Ciascun comando UNIX invocabile da una shell risiede in un unico e piatto spazio dei nomi.

Comandi = { cmd : cmd si trova in $PATH }

Sono dell'idea che questa architettura farà presto esplodere i nomi, creando inutili casini e mal di testa a chi volesse sviluppare dei nuovi programmi.

Perché non seguire anche su UNIX la stessa convenzione sullo spazio dei nomi usata in Java ?
Penso che la convenzione introdotta da Java sia elegantissima, e si basa su una sorta di DNS rovesciato.

Chi vuole scrivere un software deve avere un nome di dominio ( DNS ) registrato, come ad esempio slacky.it , distrowatch.com etc
Questa scelta assicura l'univocità mondiale su un intero spazio dei nomi: tutti i nomi appartenenti ad un sottodominio possono essere gestiti dal proprietario del dominio con la sicurezza che tutti i propri nomi non collidano con quelli del resto del mondo

Quando poi si scrive il proprio software, gli si impone un nome qualificandolo con il proprio dominio di appartenenza.

Cosi ad esempio firefox diventerebbe
org.mozilla.firefox
org.mozilla.thunderbird
oppure ancora
net.sourceforge.audacity
etc ....

In questo modo si creerebbero nomi in modo molto più razionale e gestibile, e si eviterebbe di vedere programmi dal nome impronunciabile del tipo
tinaptw
This Is Not A Program That Works

che ne pensate ?

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Sì, ma sai che casino poi lavorare da console? Dovresti digitare decine di caratteri in più, rendendo le righe lunghissime e illeggibili. Un semplice

Codice: Seleziona tutto

lsmod|sort|less
quanto diventerebbe lungo? :D

Avatar utente
TheSnowBoarder
Linux 1.x
Linux 1.x
Messaggi: 139
Iscritto il: gio 30 giu 2005, 0:00
Località: Catania

Messaggio da TheSnowBoarder »

I comandi standard di UNIX definiti all'interno dello Single Unix Specification resterebbero invariati; i programmi nuovi, generalmente svillupati sotto interfaccia grafica, non avrebbero alcun problema.

Mettiamo il caso che tu volessi sviluppare un lettore DVD;
probabilmente il nome più appropriato potrebbe essere dvdplayer. Ma sarebbe comunque un nome che non potresti dargli, perché con tutto il software che è stato sviluppato dalla comunità GNU e non, è altissima la probabilità che qualcuno abbia già fatto un proprio software dandogli proprio quel nome.

Dovresti allora ricorrere a qualche nome assurdo, acronimo di qualche cosa di ancora più assurdo; non avresti neanche in questo caso la certezza che quel nome non sia già stato utilizzato, semplicemente perché non c'è alcuna regola che stabilisce una convenzione sulla creazione di un nome.

Come potresti chiamarlo allora ?
dpiyap ?
Dvd Player Is Yet Another Player ?
Ok

E poi alla gente cosa si dice ?
Per guardare i dvd usate dpiyap ?
e come si pronuncia ?
Secondo me il problema esiste già, e basta guardarsi un po' in giro per trovare software dai nomi incomprensibili.

In base a quale principio un neofita dovrebbe capire che per chattare sul network MSN dovrebbe usare GAIM ?
Che vuol dire GAIM ?
GNU Messenger non sarebbe stato un nome più simpatico ?
Con uno spazio dei nomi si sarebbe potuto usare.

A proposito quindi di dvdplayer:
Supponendo che tu possieda il dominio
mat.com

potresti chiamare il tuo software semplicemente
com.mat.dvdplayer
con l'assoluta certezza che nessuno al mondo abbia usato quel nome per il proprio eseguibile.
Ovviamente all'utente gli si direbbe soltanto dvdplayer:
con sua grande soddisfazione e con grande soddisfazione per l'aver creato un sistema ordinato.

Allo stesso modo un'altro programmatore potrebbe chiamare il suo programma sempre dvdplayer , ma con un nome qualificato ovviamente diverso:
org.pippo.dvdplayer

Risultato: sullo stesso sistema ci sarebbero due "dvdplayer" conviventi senza alcun problema.

Sono dell'idea che creare nomi assurdi e illeggibili allontani gli utenti dall'uso di GNU / Linux.

Prendete ad esempio Internet Explorer di Microsoft: il nome dice tutto, anche un idiota può capire immediatamente che serve a navigare su internet.

In base a quale principio dovrei capire che XINE è un ottimo lettore di formati multimediali ?

Avatar utente
twister
Staff
Staff
Messaggi: 1599
Iscritto il: mar 11 nov 2003, 0:00
Slackware: current
Località: Roma
Contatta:

Messaggio da twister »

se ho 2 dvdplayer sul mio sistema come li riconosco? quale lancio e come?
com.bello.dvdplayer
anzi no mi serve quell'altra feature aspetta
co.uk.ciao.dvdplayer
oppure era
gov.edu.net.eccolo.dvdplayer
Preferisco cosìm in caso mi imposto un alias se ritengo che un nome sia troppo complicato

Avatar utente
Firetux
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 giu 2004, 0:00
Località: Lecco
Contatta:

Messaggio da Firetux »

concordo con twister...preferisco di gran lunga come vengono chiamati ora i programmi (sia che il nome abbia senso sia che non lo abbia)
anche perché se no Gaim come lo dovrei richiamare...

Codice: Seleziona tutto

net.sourceforge.instantmessenger
?! ...me ne scorderei subito come si chiama :roll:

Avatar utente
gallows
Staff
Staff
Messaggi: 3470
Iscritto il: lun 20 set 2004, 0:00
Slackware: 64-current
Kernel: 5.10.7
Località: ~/
Contatta:

Messaggio da gallows »

IMHO è una questione di lana caprina. Internet Explorer (per riprendere l'esempio precedente) si chiama ie.exe, ma chi lo lancia tramite shell?
Un utente poco esperto generalmente non conosce l'eseguibile il quale non è detto che sia identico al nome del programma... (soffice == open office, ie == internet explorer, acroread == Adobe Acrobat Reader...)

Per quanto riguarda gaim:

1) non è un programma GNU
2) Originariamente era per AIM (da qui GAIM)
3) Nel mio menu di xfce vedo scritto "Gaim Internet Messenger"

Avatar utente
TheSnowBoarder
Linux 1.x
Linux 1.x
Messaggi: 139
Iscritto il: gio 30 giu 2005, 0:00
Località: Catania

Messaggio da TheSnowBoarder »

twister ha scritto:se ho 2 dvdplayer sul mio sistema come li riconosco? quale lancio e come?
com.bello.dvdplayer
anzi no mi serve quell'altra feature aspetta
co.uk.ciao.dvdplayer
oppure era
gov.edu.net.eccolo.dvdplayer
Esiste il tasto TAB.
E poi scusa, non facciamo gli esagerati:
Esistono delle bellissime GUI sotto Linux, se vuoi vederti un dvd non puoi cliccare su un Launcher apposito ? "Punta e clicca", non è una parolaccia.
Hai bisogno di vederti il tuo dvd da una sessione ssh ?

La shell è una cosa bellissima, ma fare gli esagerati non è neanche il caso.
Preferisco così, in caso mi imposto un alias se ritengo che un nome sia troppo complicato
E sei sicuro che il nome che dai al tuo alias non collida con qualche altro applicativo presente sul tuo sistema ?

Supponendo che tu stabilisca
alias dvdplayer="xine dvd:/"
cosa ti garantisce che il comando dvdplayer non appartenga già ai comandi presenti su qualche altro sistema ?

Ho l'impressione che i sistemi GNU stiano evolvendo verso il massimo casino possibile, basta vedere il casino assurdo che c'è nell'organizzazione di /bin /sbin/ /usr/local/{bin,sbin} etc .....

Avatar utente
twister
Staff
Staff
Messaggi: 1599
Iscritto il: mar 11 nov 2003, 0:00
Slackware: current
Località: Roma
Contatta:

Messaggio da twister »

Io non vedo gran casino da nessuna parte, mi sembra tutto molto ordinato e ragionato.
Io il mio sistema lo conosco, so cosa ho installato e che comando ha.
Uso fluxbox, quindi niente punta e clicca ;)

Avatar utente
gallows
Staff
Staff
Messaggi: 3470
Iscritto il: lun 20 set 2004, 0:00
Slackware: 64-current
Kernel: 5.10.7
Località: ~/
Contatta:

Messaggio da gallows »

twister ha scritto:Io non vedo gran casino da nessuna parte, mi sembra tutto molto ordinato e ragionato.
Io il mio sistema lo conosco, so cosa ho installato e che comando ha.<snip snip>

Avatar utente
Firetux
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 giu 2004, 0:00
Località: Lecco
Contatta:

Messaggio da Firetux »

gallows ha scritto:
twister ha scritto:Io non vedo gran casino da nessuna parte, mi sembra tutto molto ordinato e ragionato.
Io il mio sistema lo conosco, so cosa ho installato e che comando ha.<snip snip>
quoto quanto già quotato! :)

Avatar utente
TheSnowBoarder
Linux 1.x
Linux 1.x
Messaggi: 139
Iscritto il: gio 30 giu 2005, 0:00
Località: Catania

Messaggio da TheSnowBoarder »

Guardatevi la directory /usr e poi ditemi se non c'è casino, per non parlare riguardo ai file di log: nessuno è riuscito a trovare una convenzione su come dare un nome chiaro ai file di log. Se andate su /var/log vedrete file del tipo .log , syslog , vattelapesca .....

Non parliamo delle librerie di sistema: sono sparpagliate in po' per tutto il sistema; a tal proposito faccio notare che la pulizia di MAC OS X è scioccante.

A proposito della questione sullo spazio dei nomi,
deduco che nessuno di voi abbia mai programmato né in C++ né in Java.
Giusto per avere un esempio, vi consiglio di scaricare LimeWire da limewire.com e di scompattare quindi l'archivio LimeWire.jar
$ unzip LimeWire.jar

L'albero di directory decompresse ha un'organizzazione molto simpatica ...

Avatar utente
twister
Staff
Staff
Messaggi: 1599
Iscritto il: mar 11 nov 2003, 0:00
Slackware: current
Località: Roma
Contatta:

Messaggio da twister »

Cosa ha /usr di incasinato?
Io in /var/log a parte proftpd.log e Xorg.log, che sono a se stanti, ho tutte directory create di default dai vari applicativi, dove sono inseriti i log oppure non hanno estensioni, se non .log
Per le librerie...
Se parti con il piede giusto e capisci la struttura del filesystem (non prenderla come una critica) capisci il perchè di molte librerie, per altre, beh... scelte infelici di programmazione, ma non per questo demonizzabili.
E comunque, non prendere questa mia come un offesa, c'è sempre LFS, creati la tua distribuzione magari avrà successo ;)

Avatar utente
gallows
Staff
Staff
Messaggi: 3470
Iscritto il: lun 20 set 2004, 0:00
Slackware: 64-current
Kernel: 5.10.7
Località: ~/
Contatta:

Messaggio da gallows »

TheSnowBoarder ha scritto:Guardatevi la directory /usr e poi ditemi se non c'è casino, per non parlare riguardo ai file di log: nessuno è riuscito a trovare una convenzione su come dare un nome chiaro ai file di log. Se andate su /var/log vedrete file del tipo .log , syslog , vattelapesca .....
Mah, secondo me unix è ordinatissimo. So sempre dove andare a cercare le cose. Questo convenzioni esistono da decenni e credo che pochi si siano lamentati...
/var/log/ è ok, qual è il problema?
Non parliamo delle librerie di sistema: sono sparpagliate in po' per tutto il sistema;
Generalmente in /lib /usr/lib /usr/local/lib.

MacOS com'è strutturato?

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Boh, io tutto questo casino non lo vedo. Anche io comunque quoto quanto già detto da twister (e anche io uso flux quindi no punta&clicca, drag&drop e menate varie).
TheSnowBoarder ha scritto:A proposito della questione sullo spazio dei nomi, deduco che nessuno di voi abbia mai programmato né in C++ né in Java.
Ho programmato con entrambi i linguaggi, anche se a C++ ho dedicato poco tempo. Java invece lo uso quasi quotidianamente.

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio da IceSlack »

ma che ve frega dei nomi?......... am che ve frega della gente che si allontana solo perhce' invece di chiamarsi msn si chiama gaim? se e' per sto motivo meglio che non utilizzi linux......


a me sinceramente non interessa il nome interessa che funziona

Rispondi