Newsgroup: it.comp.os.linux.development
Titolo: Qualche Reference o Tutorial...

Ciao a tutti,
        sto iniziando a smanettare nello sviluppo sotto Linux e ho qualche domanda:
sto usando il tutorial di QT con KDevelop 2.1: molto interessante x un 
neofita, riesco a fare qualcosina da solo.
Ma... se per esempio io volessi fare un programmino che apre una connessione 
TCP/IP con un altro in LAN, dove trovo della documentazione sulle classi o 
le chiamate di sistema? E sugli include da usare? E magari anche qualche 
esempio? Insomma come per QT che ha tutta la documentazione mi piacerebbe 
sapere dove trovo qualcosa per usare le chiamate al kernel... (non proprio 
completo con tutorial).
Grazie,
        Osolemio


Usa le qt anche per la programmazione di rete. Penso che sia piu'
semplice che usare
le socket api di linux in piu' hai un programma portabile su altri SO.
Guarda la doc. delle Qt alla sezione network
http://doc.trolltech.com/3.0/network.html
Ciao
Cesare


QT credo si occupino solo dell'interfaccia grafica. Per le chiamate "di
sistema" trovi riferimenti nelle info pages (accessibili con il comando
"info").
Vedi anche qui 
http://gapil.firenze.linux.it/
Alessandro.

 kernel... (non proprio completo con tutorial).
attento xkè le chiamate al kernel si fanno come ti ho scritto sopra, 
chiamando direttamente l'int 80h, non so se ti piacerebbe molto eheh. Usa 
le funzioni delle libc che sono +comode (altrimenti ci ritroviamo su 
it.comp.lang.assembly ;) )
-- 
No matter. Try again. Fail again. Fail better.

 magari 1po' anche sull'assembly).
Francamente se devi usare system call scrivere tutto in assembly mi pare 
una forzatura. 
A parte le questioni di portabilita` (linux gira su parecchie architetture 
diverse, e su un PPC o un ARM non i funzionerebbe piu` nulla), e il fatto 
che se usi le interfacce standard delle librerie del C probabilmente il 
programma ti girerebbe anche su BSD con una semplice ricompilazione, non 
vedo a cosa serva scriversi un programma di cosi` alto livello 
(l'interfaccia dei socket lo e') in assembly. 
Considerato che il GCC ti permette di mettere dell'assembly direttamente 
dentro un programma C, secondo me e` sempre meglio scrivere i programmi in 
C e solo quando una parte richiede una specifica ottimizzazione 
utilizzare, solo per quella, l'assembly.
Ciao
Simone

 una forzatura.
concordo pienamente, solo che il nostro amico sembrava 1po' confuso sul 
fatto di "chiamare il kernel", chiamate di sistema ecc, allora gli ho a 
grandi linee spiegato come funziona su architettura x86 la storia, non 
volevo di certo che programmasse in assembly le sue applicazioni.


 volevo di certo che programmasse in assembly le sue applicazioni.
Dunque, io sono un elettronico. Ho iniziato alla fine degli '80s
programmando in assembler non solo con chiamate a funzioni DOS (i mitici int
21h..), ma anche BIOS (i mitici int 10h e compagnia bella). E facendo cosine
abbastanza complesse. Dopo una fase (universitaria) con poco sw ho ripreso a
sviluppare non in un ambiente DOS/BIOS (ovvero praticamente senza un S.O.)
ma in win 32 bit con Visual Basic. Ed è decisamente al 'top' del livello:
fin troppo ad alto livello. Mi dà fastidio pensare che c'è chi programma in
Windows senza neppure sapere cosa sono i registri o gli int, se non perché
vede i msg di errore di Windows (eheheh).
Io so cosa ci sta sotto, so cosa è una chiamata int xxh.
Sarà per il fatto che il mio mestiere è l'elettronico e non l'informatico,
sarà che ho avuto un 'buco' di un 4 anni, ma mi sono perso i passaggi dal
basso all'alto.
Al di là di sapere che il Kernel gestisce nativamente la rete non so altro.
La mia 'confusione' è in realtà completa ignoranza (passatemi il termine
letterale) della struttura. Che ci sarà pure, non sarà incomprensibile, ma
non la conosco.
SE ho capito:
    1) alla base il kernel si interfaccia con lo strato immediatamente sopra
con le chiamate int come era sotto dos?
    2) le librerie del linguaggio C a disposizione in Linux forniscono delle
funzioni 'standard' per gestirsi le risorse, e vanno meramente ad eseguire
queste chiamate a basso lovello sul kernel?
    3) QT, che sembra essere un pò più in alto del C puro e semplice (qui i
gentili amici del newsgroup sembrano dissentire su questa possibilità di QT)
può fornire un'interfaccia per gestirsi appunto i socket? E da quel che ho
capito è uno dei livelli + alti nello sviluppo sotto Linux, al livello di
KDE?
I vari  socket, connect, listen e bind etc etc di cui dite di fare il 'man'
fanno parte delle libc e stanno al livello 2) che ho descritto? Qualcuno ha
proposto un ' Usa il comando "info IPC" ': mi dite in che parrocchia sta e
cosè 'sto IPC?
    Se sarete così pazienti da darmi qualche conferma chissà, forse avrò
capito da che parte quardarmi intorno!
Grazie ancora per l'attenzione
        Osolemio


IPC="Inter Process Communication"
Sono le funzioni per l'intercomunicazione tra processi comprendono, per
esempio, i socket e le pipe. Nel tuo schema sono al livello 2.
Ma sei riuscito ad usare "info"?
Alessandro.

         Osolemio
Spero di avere chiarito qualche dubbio.
Ciao
Cesare

 fanno parte delle libc e stanno al livello 2) che ho descritto? Qualcuno ha
Y
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Take It All, Our Gold, Our Homes, Our Life, But We Didn't Kill 
	    Your Christ! !>- Blind Guardian - The Script For My Requiem

cosè 'sto IPC?
InterProcess Communication, l'insieme dei modi in cui due processi sotto
Unix possono parlare tra loro. E' della parrocchia POSIX, grossomodo.
-- 
Per rispondermi, ricordati di togliere il 
nome del poeta e il trattino.

 mi dite in che parrocchia sta e cosè 'sto IPC?
ti hanno risposto gli altri ;-P
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!


Ma... nel C++ di Microsoft (o Visual C++) trovo le stesse classi di Qt?
Rifaccio la domanda che altro Compilatore C++/librerie su piattaforma
Windows dovrei andare a usare se volessi portare del codice da QT(Linux) a
Windows?
(Domanda di cultura generale)
Ciaociao
    Osolemio

 non so se QT lo faccia, ma altre librerie simili lo fanno, sì. Potrebbe
Lo fa, lo fa; il problema delle QT è che come tutti i toolkit 
multipiattaforma ti forniscono un subset "comune" delle api di tutte le 
piattaforme....
Lavorare con i socket sotto QT non è proprio come lavorare con le api 
BSD-like. Io alla fine facevo gestire alle QT solo l'evento "arrivano dati"

 
Ce ne sono due, uno e` quello tradizionale di System V e non e` POSIX per 
niente. E` una api che secondo me fa davvero schifo, ma credo sia tutt'ora 
molto usata. 
POSIX (1b, se ricordo bene) ha reimplementato un meccanismo di IPC con gli 
stessi oggetti si system V ed una interfaccia piu` sana, ma credo sia 
disponibile solo con gli ultimi kernel. Per di piu` non e` manco 
documentato (ma forse non ho cercato abbastanza ...). 
Ciao
Simone

 
Beh, dipende da cosa intendi per livello ed altezza.
Ad esempio usando CORBA puoi far girare pezzi del tuo programma su altre 
macchine, ripigliando solo i risultati. Credo sia previsto 
nell'architettura di GNOME, ma di questo non me ne intendo, mgari 
qualcun'altro puo` aggiungere informazioni piu` precise.
Ciao
Simone

 space NON lo vedo /comodo/
esatto, vengono passati nei registri, è freebsd ad esempio che li passa 
sullo stack. Mah questa convenzione ha sia vantaggi che svantaggi, non è 
nemmeno tanto comodo salvarsi i registri di uso generale prima di invocare 
l'int 80h.


 (Domanda di cultura generale)
dai 1 occhiata qui  
http://www.trolltech.com/
A rigor di logica dovresti solo installare quelle librerie poi ogni 
compilatore dovrebbe funzionare, ma in windows non si puo' mai mettere la 
mano sul fuoco


     Osolemio
Fino a qualche mese fa' nel sito della throlltech potevi scaricarti
gratuitamente la Qt 2.3 supportata da visual c++ (il pacchetto comprende
anche il Qt-designer).
La Qt 3.0 per windows supporta molti compilatori tra cui visual c++ e
c++ buider.
La Qt 3.0 non e' gratuita.
Ciao
Cesare


per ora. E su Windows. BTW c'e` la Evaluation version.
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

 Adieu,
Grazie per il ragguaglio.
Adieu anche a te.

 La Qt 3.0 non e' gratuita.
Se rilasci i sorgenti sotto GPL si.
-- 
Lorenzo


Si stava parlando della Qt 3.0 per windows (anche se qui e' OT :)
Non leggiamo frasi estrapolate dal contesto.
Bye

 Non leggiamo frasi estrapolate dal contesto.
Il programmatore che usi le Qt 3.0 sotto Windows deve pagare la
Trolltech anche se il suo programma e` rilasciato sotto GPL e non e`
commerciale?
Massimiliano


Le Qt 3.0 per windows si possano valutare per 30 giorni se si sviluppano
applicazioni non-commerciali
http://www.trolltech.com/products/qt/evaluate.html?cid=Qt
Invece le Qt 2.3 per windows "non commercial edition" sono rilasciate
solo in formato binario per VC++ 6.0.
Segue tutta una spiega in cui sembrerebbe che puoi produrre facilmente
software LGPL o BSD-style perche' non sei obbligato a fornire il
sorgente delle Qt.
Per la GPL invece devi aggiugere un'eccezione alla licenza.
http://www.trolltech.com/developer/download/qt-win-noncomm.html
Insomma un vero pasticcio...
Per rispondere alla domanda:
No non devi pagare la throlltech se usi Qt 2.3 e il tuo SW e' GPL.
No non devi pagare la throlltech se vuoi valutare Qt 3.0 per windows e
il tuo SW e' GPL.
Pero'... il programmino GPL/Qt3.0/windows quando passano 30gg funziona
ancora?

 Cesare
Falso. Le QT 3 Free Edition possono essere usate sia con la licenza GPL 
che con la QPL (molto simile). Le scarichi dal sito della throlltech.

 ancora?
Hai ragione, un vero pasticcio.
Massimiliano

 throlltech.
Ragazzi, mettetevi d'accordo. :-)
Questo che dici vale anche per la versione Windows?
Massimiliano

 Questo che dici vale anche per la versione Windows?
Se sviluppi progetti non commerciali su Windows, le QT ti vengono date
con una licenza "free". Se vuoi sviluppare un'applicazione commerciale
allora devi pagare ($1500 per licenza/programmatore; una licenza ti da
un anno di supporto tecnico).
Questo *sicuramente* sotto Windows (e altre piattaforme non free).
Sotto Linux non saprei, ma *credo* si applichi lo stesso scenario.
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4


Come dicevo ieri l'argomento e' un po' off-topic.
Si stava parlando della Qt 3.0/windows nel caso qualcuno voglia fare un
porting da linux.
Non esiste una free edition Le librerie Qt 3.0 per windows.
Per windows esite solo una "non commercial edition" delle Qt 2.3
distribuita in binario.
Per windows le Qt 3.0 sono in valutazione per 30gg, valutazione != free.
Per X11 sono d'accordo con te le Qt 3.0 sono disponibili in free
edition.
Per windows no.
Leggere per credere:
http://www.trolltech.com/developer/download/index.html