Discussione:
Linus Torvalds hates C++
(troppo vecchio per rispondere)
nibble
2007-09-22 21:46:09 UTC
Permalink
"C++ is a horrible language. It's made more horrible by the fact that
a lot of substandard programmers use it, to the point where it's much
much easier to generate total and utter crap with it. Quite frankly,
even if the choice of C were to do *nothing* but keep the C++
programmers out, that in itself would be a huge reason to use C."

Certo che è una bella pubblicità...
ciao
nibble
2007-09-22 21:48:42 UTC
Permalink
Post by nibble
"C++ is a horrible language. It's made more horrible by the fact that
a lot of substandard programmers use it, to the point where it's much
much easier to generate total and utter crap with it. Quite frankly,
even if the choice of C were to do *nothing* but keep the C++
programmers out, that in itself would be a huge reason to use C."
Certo che è una bella pubblicità...
ciao
Ah... la fonte è:
http://article.gmane.org/gmane.comp.version-control.git/57918

in italiano è apparso anche su:
http://www.zeusnews.it/index.php3?ar=stampa&cod=6145&numero=907
crxor 666
2007-09-23 08:32:46 UTC
Permalink
Post by nibble
"C++ is a horrible language. It's made more horrible by the fact that
a lot of substandard programmers use it, to the point where it's much
much easier to generate total and utter crap with it. Quite frankly,
even if the choice of C were to do *nothing* but keep the C++
programmers out, that in itself would be a huge reason to use C."
Come al solito, sparata ad effetto.

Il punto è che chi si avvicinasse a C++ pensando che fosse più facile
del C, sbaglierebbe di grosso. C++ è (per certi versi) più *comodo*.
Alcuni problemi del C sono risolti (stamattina ho convertito parecchie
righe di codice 'C' dentro un metodo C++ con l'equivalente C++ standard,
che sono tre righe, fra quello che ho risparmiato in gestione della
memoria e degli errori).

D'altra parte mi rendo conto che la mia testa ha garbage collected
larghe parti di quello che sapevo su C++. Sigh. Oh, saranno 6 mesi 6 che
non ci faccio nulla.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
Andrea
2007-09-23 09:21:57 UTC
Permalink
Post by crxor 666
Come al solito, sparata ad effetto.
Probabilmente si riferisce al linguaggio del kernel.

Tratto dalle faq:

http://www.kernel.org/pub/linux/docs/lkml/#s15-1

" for GUI implementation KDE is a good example that C++ beats plain C
any day"

Non penso che generalizzi dicendo che il C++ è un casino per tutto e
per tutti.

In fondo a questa pagina afferma di aver usato il C++ per alcune parti
del kernel:

http://www.pluto.it/files/journal/pj9807/linus.html

Probabilmente non lo ama.
Probabilmente non tutti i programmatori sono incapaci.
Probabilmente lo Stroustrup avrebbe qualcosa da ridire.

Ciao.
jarod
2007-09-23 11:21:25 UTC
Permalink
Post by Andrea
Probabilmente non lo ama.
Probabilmente non tutti i programmatori sono incapaci.
Probabilmente lo Stroustrup avrebbe qualcosa da ridire.
Probabilmente si diverte a fare polemica (come molti informatici).

C'è chi gioca a biliardo, chi fa sport, chi corre dietro alle ragazze.

Linus si diverte così ;-)

Bye
Jarod
nibble
2007-09-23 18:40:22 UTC
Permalink
Post by Andrea
Probabilmente non lo ama.
Probabilmente non tutti i programmatori sono incapaci.
Probabilmente lo Stroustrup avrebbe qualcosa da ridire.
Ciao.
e probabilmente ha perso una buona occasione per stare zitto...
ciao
Massimo Soricetti
2007-09-23 21:25:32 UTC
Permalink
Post by Andrea
Probabilmente si riferisce al linguaggio del kernel.
Sì, concordo. Avevo letto anche altri articoli in cui si diceva che il
C++ per quanto riguarda il kernel offre più svantaggi che vantaggi...
IMHO una certa ragione ce l'ha. Per gestire una cosa di cui si sa già
tutto in partenza (e di cui NON puoi sperare che qualcun altro gestisca
gli errori per te), buona parte dei meccanismi del C++ non serve.
crxor 666
2007-09-24 08:05:59 UTC
Permalink
Post by Massimo Soricetti
Sì, concordo. Avevo letto anche altri articoli in cui si diceva che il
C++ per quanto riguarda il kernel offre più svantaggi che vantaggi...
IMHO una certa ragione ce l'ha. Per gestire una cosa di cui si sa già
tutto in partenza (e di cui NON puoi sperare che qualcun altro gestisca
gli errori per te), buona parte dei meccanismi del C++ non serve.
Ma invece che ricrearsi meccanismi ad oggetti da 0, usi quelli testati e
collaudati di C++.

Per dire l'IOKit di OS X è precisamente scritto in ec++
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
s***@gmail.com
2007-09-24 09:22:46 UTC
Permalink
Post by Andrea
Non penso che generalizzi dicendo che il C++ è un casino per tutto e
per tutti.
Sì, secondo me hai centrato il punto. E dice anche che il C++
è reso orribile dalla marea di programmatori "incapaci" che ne combinano
di tutti i colori con C++ :)
La cosa effettivamente da fare - secondo me - è leggere quanto più possibile
i libri pubblicati dai massimi esperti del linguaggio: C++ è talmente
potente che nelle mani di programmatori poco esperti (tipo me) può essere
davvero disastroso. Però d'altra parte è un linguaggio che insegna
a "pensare" da progettisti, e conoscere il C++ (e usarlo bene) è forse il
passo più propedeutico da fare prima di addentrarsi in Design Patterns, Uml
e Java, IMHO.
Post by Andrea
In fondo a questa pagina afferma di aver usato il C++ per alcune parti
http://www.pluto.it/files/journal/pj9807/linus.html
Probabilmente non lo ama.
Io lo adoro :P .. Comunque sì, è quasi scontato che usare C++ per un kernel
come Linux è realisticamente impensabile :)
Post by Andrea
Probabilmente non tutti i programmatori sono incapaci.
Quelli capaci devono scrivere e condividere :) Sapendo dove si sbaglia più
frequentemente e perchè, scriveranno dei libri che cercano di tagliare
quelle cose del linguaggio che non sono ortodosse (non so voi, ma io non
MAI utilizzato goto in un programma C++).
Post by Andrea
Probabilmente lo Stroustrup avrebbe qualcosa da ridire.
Di sicuro, ma sarebbe una difesa di religione e quindi poco interessante :)
Post by Andrea
Ciao.
Ciao a tutti,
--
Salvatore
crxor 666
2007-09-24 11:52:23 UTC
Permalink
Post by s***@gmail.com
Quelli capaci devono scrivere e condividere :) Sapendo dove si sbaglia più
frequentemente e perchè, scriveranno dei libri che cercano di tagliare
quelle cose del linguaggio che non sono ortodosse (non so voi, ma io non
MAI utilizzato goto in un programma C++).
Ne ho tolto uno stamattina. Si, i goto si vedono e si usano tipicamente
quando si ha a che fare con codice C in C++. Esempio se stai scrivendo
un'implementazione con roba posix. In questo caso può non valere la pena
di scrivere codice del tipo

try{
if(posix_function() < 0) throw PosixException;
} catch PosixException {
pulisci.
}

Anche perchè con la roba posix spesso hai allocazioni e deallocazioni di
risorse da gestire a mano: il modo *corretto* di procedere sarebbe
quello di incapsulare tutto sotto RAII e poi scrivere codice standard.
Tuttavia se le condizioni di errore sono sufficientemente rare,
un'approccio più efficiente può essere scrivere (limitatamente a metodi
'infoppati' sotto altri strati di codice) la roba 'alla C'.


Ho un altro esempio, mio e furbo. Ancora una volta ho ragioni di
efficienza e di 'eleganza'. Ho un loop che deve essere particolarmente
veloce che continua ad essere eseguito finchè non si verifica una
condizione di errore, nel caso si esce, la si gestisce, ed eventualmente
si rientra.

Immaginati

while(state == NO_ERROR)
step();

L'uscita dal while viene fatta in modo ovvio quando qualcuno setta il
membro error al tipo di errore. Questo stesso risultato avrebbe potuto
essere ottenuto con eccezioni, ma con performance leggermente peggiori e
nessun vero vantaggio (il codice dentro step non ha problemi di roba che
scoppia o di eccezioni interne).

Il problema è *ritornare* dentro il loop quando ne sei uscito. Qui non è
questione di eccezioni ne nulla. In Ruby per esempio c'è la keyword
'retry'. In C++ no. Il metodo che a me è parso ovvio?

while(state == NO_ERROR){
rerun:
step();
}
/* codice per gestire gli errori */
if (state == DUMB_USER){
change_user();
goto rerun;
}

Chiaro, queste cose sono assolutamente specifiche e non generali. Non è
che farcisca il C++ di goto a muso. Solo *quel* codice non ha bisogno di
dichiarazioni, allocazioni, e tutto. E IMHO usare i goto è la strada più
comoda. Certo, avrei potuto ficcare il tutto dentro un altro while e
ottenere lo stesso risultato:

while(true){
while(state ...){
...
}

if ...
if ...
else break;
}

Ma IMHO non è ne più chiaro ne nulla.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
Nicola Musatti
2007-09-24 13:50:48 UTC
Permalink
On Sep 24, 11:22 am, ***@gmail.com wrote:
[...]> Io lo adoro :P .. Comunque sì, è quasi scontato che usare C++
per un kernel
Post by s***@gmail.com
come Linux è realisticamente impensabile :)
Sciocchezze. Se dai un'occhiata qui: http://www.research.att.com/~bs/applications.html
troverai diversi sistemi operativi scritti in C++, da BeOS a OS/400.

Qualcun'altro poi ci crede abbastanza da realizzare questo:
http://netlab.ru.is/exception/LinuxCXX.shtml

Ciao,
Nicola
s***@gmail.com
2007-09-25 06:47:59 UTC
Permalink
http://www.research.att.com/~bs/applications.html troverai diversi sistemi
operativi scritti in C++, da BeOS a OS/400.
come Linux, cioè mi riferivo proprio a Linux.
http://netlab.ru.is/exception/LinuxCXX.shtml
Questo è sorprendente, mi vado a leggere un po' di documentazione
allegata :)
Ciao,
Nicola
--
Salvatore
crxor 666
2007-09-25 08:22:37 UTC
Permalink
Post by s***@gmail.com
come Linux, cioè mi riferivo proprio a Linux.
Si, ma è impensabile perchè *oggi* è scritto in gnu C e portarlo a C++ è
una mina, non tanto perchè se fosse in C++ la cosa non potrebbe fungere.

Uno anche se usa C++ mica deve usare bloatware ogni 3x2...
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
s***@gmail.com
2007-09-25 09:57:47 UTC
Permalink
Post by crxor 666
Post by s***@gmail.com
come Linux, cioè mi riferivo proprio a Linux.
Si, ma è impensabile perchè *oggi* è scritto in gnu C
esatto, è proprio quello che intendevo :)
Post by crxor 666
e portarlo a C++ è
una mina, non tanto perchè se fosse in C++ la cosa non potrebbe fungere.
Uno anche se usa C++ mica deve usare bloatware ogni 3x2...
Certo. Del resto sono talmente tante le applicazioni scritte in C++ che
a volte Java mi sembra un "di più": di sicuro possiamo dedicarci alle
applicazioni, non è il caso di riscrivere tutto il codice C funzionante
in C++, a meno che non si evidenziano drastici miglioramenti tali da
incoraggiare ad intraprendere una mole di lavoro così.

Ciao :)
--
Salvatore
nibble
2007-09-23 18:38:10 UTC
Permalink
Post by crxor 666
Il punto è che chi si avvicinasse a C++ pensando che fosse più facile
del C, sbaglierebbe di grosso. C++ è (per certi versi) più *comodo*.
Personalmente trovo il C++ un eccellente linguaggio per imparare certe
tecniche (programmazione generica, sovraccaricamento delle funzioni,
RTTI e così via) oltreché più "razionale" (IMHO ovviamente :)
Post by crxor 666
D'altra parte mi rendo conto che la mia testa ha garbage collected
larghe parti di quello che sapevo su C++. Sigh. Oh, saranno 6 mesi 6 che
non ci faccio nulla.
Anche io sono abbastanza arrugginito... che dici magari mettiamo su un
Garbage collector per C++? giusto per fare una cosa a cui nessuno ha
pensato finora... ;P
ciao
crxor 666
2007-09-23 18:59:44 UTC
Permalink
Post by nibble
Personalmente trovo il C++ un eccellente linguaggio per imparare certe
tecniche (programmazione generica, sovraccaricamento delle funzioni,
RTTI e così via) oltreché più "razionale" (IMHO ovviamente :)
Uh, RTTI è una cosa che non mi piace, invece. La programmazione generica
si, il sovraccaricamente è comodo, ma ha senso perchè in C++ si mangla
comunque.
Post by nibble
Anche io sono abbastanza arrugginito... che dici magari mettiamo su un
Garbage collector per C++? giusto per fare una cosa a cui nessuno ha
pensato finora... ;P
Beh, scherzi a parte, ci sono gc per C++, solo non sono nella stl. :)
Comunque mi riferivo al fatto che la mia testa ha cancellato che
supponevo di ricordare senza avvertimento. grr.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
pan
2007-09-23 21:28:00 UTC
Permalink
In article
Post by crxor 666
Uh, RTTI è una cosa che non mi piace, invece.
Neanche a me, ma perche' e' fatta male =)
Post by crxor 666
Beh, scherzi a parte, ci sono gc per C++, solo non sono nella stl. :)
Non ancora =)

--*PaN!*

--
I'm using an evaluation license of nemo since 35 days.
You should really try it!
http://www.malcom-mac.com/nemo
crxor 666
2007-09-24 08:05:59 UTC
Permalink
Post by pan
Neanche a me, ma perche' e' fatta male =)
vero.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
Massimo Soricetti
2007-09-23 21:36:30 UTC
Permalink
Post by crxor 666
Il punto è che chi si avvicinasse a C++ pensando che fosse più facile
del C, sbaglierebbe di grosso. C++ è (per certi versi) più *comodo*.
Alcuni problemi del C sono risolti (stamattina ho convertito parecchie
righe di codice 'C' dentro un metodo C++ con l'equivalente C++ standard,
che sono tre righe, fra quello che ho risparmiato in gestione della
memoria e degli errori).
OK, però sarebbe anche sbagliato negare che il C++ e le STL hanno
effettivamente diversi problemi irrisolti. In altro post si diceva
appunto che la RTTI è fatta male... i template li stanno ristrutturando,
la STL verrà presto rimaneggiata (se non ho capito male io). Non è che
Linus abbia del tutto torto.
crxor 666
2007-09-24 08:06:00 UTC
Permalink
Post by Massimo Soricetti
OK, però sarebbe anche sbagliato negare che il C++ e le STL hanno
effettivamente diversi problemi irrisolti. In altro post si diceva
appunto che la RTTI è fatta male... i template li stanno ristrutturando,
la STL verrà presto rimaneggiata (se non ho capito male io). Non è che
Linus abbia del tutto torto.
Su cosa? Sul fatto che C++ sia migliorabile? Pure C lo è.
Dopo tutto lo è stato continuamente.

RTTI è fatta male? Si. Ma è roba che *comunque* in un kernel non è
particolarmente necessaria.

I template li stanno ristrutturando: la rogna è upgradare, certo. Ma è
una rogna in qualunque progetto complesso, non solo nel kernel. Come a
dire che *nessun* progetto dovrebbe usare C++.

Riguardo alla STL il kernel potrebbe comunque non avere grande uso della
STL, magari una versione ad hoc, o una versione ridotta.

IMHO Linus non ha torto quando dice che riscrivere il kernel in C++ è da
pazzi. Quando dice che non bisogna scrivere kernel in C++ eleva, come al
solito, la sua personale e parziale esperienza a verità universale.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
edouble
2007-11-06 12:26:34 UTC
Permalink
Bhe, il fatto che il kernel di linux sia scritto ancora in C la dice lunga..



"nibble" <***@katamail.com> wrote in message news:***@r29g2000hsg.googlegroups.com...
"C++ is a horrible language. It's made more horrible by the fact that
a lot of substandard programmers use it, to the point where it's much
much easier to generate total and utter crap with it. Quite frankly,
even if the choice of C were to do *nothing* but keep the C++
programmers out, that in itself would be a huge reason to use C."

Certo che è una bella pubblicità...
ciao
Andrea Laforgia
2007-11-06 19:18:33 UTC
Permalink
On Tue, 6 Nov 2007 13:26:34 +0100, "edouble"
Post by edouble
Bhe, il fatto che il kernel di linux sia scritto ancora in C la dice lunga..
Sì, ma Linus Torvalds deve decidersi perché un tempo la pensava
diversamente. Non ha mai scartato da principio l'idea di scrivere il
kernel di Linux in C++; semplicemente, allora, non trovava
programmatori (compreso lui immagino) che conoscessero questo
linguaggio abbastanza bene. Se ora dice che quella scelta era
ponderata, non è coerente e questo contribuisce (insieme alle sue
supponenti risposte al buon vecchio Tanenbaum) a farmelo stare sulla
coglia.
nibble
2007-11-06 23:20:06 UTC
Permalink
On 6 Nov, 20:18, Andrea Laforgia
Post by Andrea Laforgia
On Tue, 6 Nov 2007 13:26:34 +0100, "edouble"
Post by edouble
Bhe, il fatto che il kernel di linux sia scritto ancora in C la dice lunga..
Sì, ma Linus Torvalds deve decidersi perché un tempo la pensava
diversamente. Non ha mai scartato da principio l'idea di scrivere il
kernel di Linux in C++; semplicemente, allora, non trovava
programmatori (compreso lui immagino) che conoscessero questo
linguaggio abbastanza bene. Se ora dice che quella scelta era
ponderata, non è coerente e questo contribuisce (insieme alle sue
supponenti risposte al buon vecchio Tanenbaum) a farmelo stare sulla
coglia.
quasi quasi mi stupisce come il suo kernel sia (a ragione) così tenuto
in seria considerazione nonostante l'aria fanzinara molto tardo-
adolescenziale del suo creatore... peccato.
Davide Quack
2007-11-07 09:02:43 UTC
Permalink
Post by nibble
quasi quasi mi stupisce come il suo kernel sia (a ragione) così tenuto
in seria considerazione
Su quel codice hanno lavorato parecchie persone. Non è da tempo l'opera
di una persona sola.
nibble
2007-11-07 13:42:24 UTC
Permalink
Post by Davide Quack
Post by nibble
quasi quasi mi stupisce come il suo kernel sia (a ragione) così tenuto
in seria considerazione
Su quel codice hanno lavorato parecchie persone. Non è da tempo l'opera
di una persona sola.
naturale!, ma le cazzate dette dal gran capo fanno una eco più vasta
del lavorìo di molte persone, purtroppo.
ciao.
Davide Quack
2007-11-08 09:20:37 UTC
Permalink
Post by nibble
naturale!, ma le cazzate dette dal gran capo fanno una eco più vasta
del lavorìo di molte persone, purtroppo.
Però questo è un NG di programmazione. Infondo a casa ho svariati libri
del Tanenbaum, e neanche uno di Torvalds. Quelli sui pettegolezzi su
mondo intorno a Linux ( che ho comprato :-) ) sono poi in una sezione
ben diversa da quelli di programmazione.
Andrea Laforgia
2007-11-09 20:49:01 UTC
Permalink
Post by nibble
naturale!, ma le cazzate dette dal gran capo fanno una eco più vasta
del lavorìo di molte persone, purtroppo.
Non è detto che Torvalds abbia detto cazzate, così come Tanenbaum non
ci è andato leggero, ma il secondo è più perdonabile del primo, a mio
parere e le sue opinioni (forti della grande esperienza che ha nella
scrittura di sistemi operativi) sono comunque valide, a mio parere, a
prescindere dal successo avuto poi dal Linux monolitico. Come al
solito, il tono in cui si trasmette qualcosa contribuisce o meno a far
riflettere gli altri. Se aggredisci, nessuno avrà voglia di analizzare
approfonditamente ciò che dici. Magari, se Linus fosse stato meno
indisponente e Tanenbaum un po' più morbido, oggi avremmo un Linux
migliore :-)
Davide Quack
2007-11-09 22:33:31 UTC
Permalink
oggi avremmo un Linux migliore
Il linux di oggi non è poi quel monolite tremendo di un tempo.
nibble
2007-11-09 22:35:21 UTC
Permalink
Andrea Laforgia
2007-11-09 23:08:06 UTC
Permalink
Già ed è molto triste, tenendo conto di cosa capita in casa MS (vedi
il quasi-disastro Vista) basterebbe così poco per imporsi.
Be', "disastro" in base a che cosa? Personalmente non vedo ancora così
tante installazioni di Vista da poter giudicare. Più che altro io mi
aspettavo che Vista introducesse delle novità vere e non mi sembra che
sia così. Secondo me, comunque, Microsoft sta facendo un bel lavoro
(sopratutto con .NET che ha una potenza spaventosa). La discussione
(oltre ad essere OT) temo si allungherebbe moltissimo se cominciassimo
a discettare del perché Linux non si è diffuso quanto Windows (e a mio
personalissimo avviso non si diffonderà *mai* alla stessa maniera).
Temo pure che si aprirebbe l'ennesima guerra di religione. Beninteso:
a me Linux piace, ma trovo odioso l'approccio ostentatamente
hackeristico degli esperti, per i quali - è noto - vale il motto
"difficile è bello". Linux va benissimo lato server perché è un
contesto in cui si può far benissimo a meno della "user-friendship",
ma l'affermazione globale del sistema dipende dall'agevolazione
dell'uso da parte degli utenti comuni; impegno evidentemente troppo
oneroso per la comunità Linux. Oltretutto, temo che, in generale, sul
mondo open-source penda un'atroce condanna: si produce ciò che si vuol
produrre (e che quindi piace produrre) e non ciò che serve realmente
(e che può benissimo non piacere produrre). Questo è il mio punto di
vista, ovviamente, ma è avallato dal fatto che dai primi anni '90 ad
oggi (quasi 20 anni, sono tanti, non si scherza) Linux non ha
guadagnato terreno lato desktop. ALmeno non tanto quanto lato server.
Personalmente lo vedo come un fallimento su quel piano.
curiosità: hai qualche link sulle dichiarazioni di Tanenbaum?
E' una diatriba famosa. Se non ricordo male erano messaggi scambiati
sul ng comp.os.minix (ma non mi ricordo bene il nome del gruppo) e se
ti affacci su Google riesci sicuramente a trovare qualcosa con chiave
"Torvalds Tanenbaum".
nibble
2007-11-09 23:13:32 UTC
Permalink
Andrea Laforgia
2007-11-09 23:22:15 UTC
Permalink
[...]E' indubbiamente un disastro...
Con tutto il rispetto, non me la sento di definire questo sistema
operativo "un disastro", a livello oggettivo, in base a quello che mi
racconti. Il problema (sempre a meno di definire che si intenda per
"problema") dei driver riguarda il produttore dell'hardware, non del
sistema operativo.
nibble
2007-11-09 23:57:08 UTC
Permalink
mikro
2007-11-10 01:42:12 UTC
Permalink
invece, è ancor più "disastroso" il caso di Linux, perché le nuove
versioni vengono fuori molto più spesso che non i SP Microsoft (con XP
ce ne sono stati 2, niente di così disastroso). O pensi che quelle del
kernel di Linux non siano patch? Tu dici di vedere come Vista si sta
LOL!!!
Ma per favore!!! Tu non hai la minima idea di che cosa stai parlando!!!!
Evita, che è meglio...

mik
Andrea Laforgia
2007-11-10 01:08:27 UTC
Permalink
E' un disastro perché, come al solito, PRIMA si commercializza e POI
si tappano i buchi (a quando il Service pack 1 per Vista?).
Non è un disastro, perché questa è la prassi a cui sono sottoposti
*tutti* i software. Il tuo discorso non ha senso. Non si può produrre
un software che non abbia difetti, tantomeno se si sta scrivendo un
sostrato complesso come un sistema operativo. Tu parli di "buchi" da
tappare, ma quelli che citi a me non sembrano buchi del sistema
operativo. Quello che accade con i service pack per i sistemi
operativi Microsoft accade ugualmente per il kernel di Linux, solo che
nel primo caso fa notizia, nel secondo no. Dal mio punto di vista,
invece, è ancor più "disastroso" il caso di Linux, perché le nuove
versioni vengono fuori molto più spesso che non i SP Microsoft (con XP
ce ne sono stati 2, niente di così disastroso). O pensi che quelle del
kernel di Linux non siano patch? Tu dici di vedere come Vista si sta
imponendo, ma la pluralità di versioni non è un difetto, anzi. E poi
io vedo che gli utenti che non lo vogliono sono quelli mossi perlopiù
da pregiudizi. D'altro canto, è normalissimo che la penetrazione del
mercato da parte di un prodotto dipenda dalla capacità di spesa e
dalle esigenze degli utenti: un utente che si trova bene con XP e non
vuol spendere soldi per un nuovo sistema operativo, vive felice e
contento con XP. Si deve ritenere anche questo uno scontento del nuovo
sistema? sarebbe disonesto pensare questo. Torni a parlare di
fantomatici "crash", di "lentezze generali". Troppo generico e comodo
parlare così. Le periferiche non funzionano perché i propri produttori
non si sono adeguati al sistema operativo (come se fosse una novità,
d'altronde, certi driver sono scritti coi piedi). Chi ti ha detto che
devi comprare tutto daccapo? a te sembra plausibile che un'azienda
costringa gli utenti a ricomprare tutte le periferiche hardware?
Concludo dicendo che quando io affermo di non vedere molti computer
con Vista in giro, intendo che prima di giudicare questo sistema
operativo come "disastroso", mi aspetto che vi sia un uso consistente.
Se il sistema non è ancora diffuso è in gran parte per immotivata
diffidenza o per mancanza di convenienza nel passaggio.
?manu*
2007-11-10 07:29:25 UTC
Permalink
Post by Andrea Laforgia
E' un disastro perché, come al solito, PRIMA si commercializza e POI
si tappano i buchi (a quando il Service pack 1 per Vista?).
Non è un disastro, perché questa è la prassi a cui sono sottoposti
*tutti* i software.
Questo non è vero!

1- c'è software che lo compri una volta e funziona sempre, senza bisogno
di patch.

2- c'è software che non è necessario comprare.

Non ci si può rilassare al "tanto fan tutti così..."

E.
nibble
2007-11-10 15:14:41 UTC
Permalink
Soviet_Mario
2007-11-10 15:18:12 UTC
Permalink
Tu dici di vedere come Vista si sta
imponendo, ma la pluralità di versioni non è un difetto, anzi. E poi
io vedo che gli utenti che non lo vogliono sono quelli mossi perlopiù
da pregiudizi.
io sono mosso (forse) da un pregiudizio, e in effetti vorrei
capire in che misura lo è e in che misura è reale.
Premessa, già con XP ho rasentato la mia massima sopportazione
per un sistema intrusivo, spione, chiacchierone, e che di
defautl tende a trattarti da ladro pirata anche quando hai
comprato la tua brava licenza, ma in qualche modo, con fatica
devo dire, sono riuscito a mettergli il bavaglio e disabilitare
tutte le sue servizievoli attività collaterali automatiche e le
sue tentazioni a connettersi a cani e porci quando non richiesto
(per inciso non sono neppure sicuro di averlo placcato, ma so
solo il firewall non segnala più particolari ingerenze ... altre
le ho accettate obtorto collo perché spegnendole crashava tutto).
Ecco, che un OS si arroghi il diritto di usare la connessione
per sue proprie attività trasparenti agli applicativi che lancio
in modo esplicito (e anche che alcuni di questi tentino gli
stessi trucchi e pretendano di chattare in rete a loro
piacimento con chissà chi), lo considero una grossissima falla
per un OS ed una vessazione.
Accetterei invece di buon grado delle feature opzionali che
esplicitamente puoi abilitare se ne senti la necessità, e in
modo molto selettivo.

Leggende forse metropolitane vogliono che Vista sia anche peggio
di XP da questo punto di vista, e vorrebbe poter fare tutti i
propri comodi via rete, ma è poi vero ?
Si può spegnere tutte queste funzioni in sicurezza mantenendo il
sistema funzionante ?

Altra cosa, è possibile rimuovere "bene" i vari componenti tipo
internet explorer e outlook senza rendere tutto non funzionante ?
D'altro canto, è normalissimo che la penetrazione del
mercato da parte di un prodotto dipenda dalla capacità di spesa e
dalle esigenze degli utenti: un utente che si trova bene con XP e non
vuol spendere soldi per un nuovo sistema operativo, vive felice e
contento con XP.
mah, contento è una parola grossa. Tuttavia ha indubbiamente
marcato parecchi miglioramenti dal predecessore, praticamente su
tutti i fronti tranne su quello della privacy e sicurezza (dove
per sicurezza intendo dall'impiccionismo dell'OS medesimo !).
Non ultima, imho, la robustezza del file system NTFS.
Si può dire che sia un po' fanatico nel tenere in ordine le
varie partizioni, ma tant'è, persino nel corso di frequenti
blackout improvvisi e incondizionati, non si è mai verificato
alcun danno (neppure con blackout durante un defrag !), e i
volumi li ho sempre ritrovati integri all'avvio successivo,
senza neppure che partisse uno scandisk. Forse non sarà sempre
così, ma fa piacere che il file system sopporti indenne questi
incidenti.
Si deve ritenere anche questo uno scontento del nuovo
sistema ? sarebbe disonesto pensare questo. Torni a parlare di
fantomatici "crash", di "lentezze generali".
sulle lentezze di VISTA ne ho letto molto su riviste, un po'
superficialotte, e mi hanno convinto che siano dovute
essenzialmente all'interfaccia grafica evolutissima ed
onerosissima, compatibile quindi perciò con macchine molto
potenti. Questa è un'invariante di tutte le evoluzioni di
qualsiasi sistema che punti alla sempre maggiore sofisticazione
grafica, all'aspetto accattivante, quindi non mi sentirei di
definirla un male in sé. Lo show più gradevole e amichevole ha
un suo costo computazionale.

Sui crash non ne so nulla, perché non ne ho letto né l'ho provato.
Di sicuro è pretenzioso pretendere che un applicativo, ma anche
un driver, scritto per la versione vecchia, e che non è
certificato VISTA-compliant, debba fungere automaticamente anche
su Vista ... d'altra parte è pur vero che è arrogante per l'OS
fregarsene della retrocompatibilità almeno per la versione
immediatamente precedente (e una scelta commerciale che ad es.
escluderebbe gente come me, di modeste richieste, dalla platea
degli interessati in quanto impossibilitato a rinnovare il parco
software per il solo fatto di aggiornare l'OS).
Troppo generico e comodo
parlare così. Le periferiche non funzionano perché i propri produttori
non si sono adeguati al sistema operativo (come se fosse una novità,
d'altronde, certi driver sono scritti coi piedi).
beh, è pur vero che nessuno dei due soggetti è obbligato ad
aggiornarsi all'altro, ma che ciascuno dei due avrebbe
convenienza perché è il bene dei consumatori. I produttori di
hardware farebbero una scelta eticamente valida producendo
driver aggiornati per tutelare gli acquisti pregressi del loro
hardware, ma pure l'OS avrebbe interesse a garantire una certa
retrocompatibilità per ragioni analoghe. Se entrambi giocassero
a chi se ne frega di più del preesistente, ne uscirebbero
fregati gli utenti (e forse alla lunga le vendite sarebbero
davvero meno brillanti, e si realizzerebbero sugli OEM e sul
nuovo di zecca).
Chi ti ha detto che
devi comprare tutto daccapo? a te sembra plausibile che un'azienda
costringa gli utenti a ricomprare tutte le periferiche hardware ?
infatti sembra assurdo. Ma io non so se sia vero o meno.
Certo, non tutto può essere retrocompatibile con facilità.
Magari un kernel a 64 bit bisticcerebbe con drivers a 32 a meno
di non interporre chissà che strati di emulazione o
virtualizzazione o roba simile. Ma in molti casi le cose non
sono così chiaramente incompatibili.
Concludo dicendo che quando io affermo di non vedere molti computer
con Vista in giro, intendo che prima di giudicare questo sistema
operativo come "disastroso", mi aspetto che vi sia un uso consistente.
Se il sistema non è ancora diffuso è in gran parte per immotivata
diffidenza
Io vorrei infatti capire se la mia diffidenza, che è nata con XP
ed a causa di XP e si estende a VISTA per mera estrapolazione,
sia immotivata o meno. L'ambito però è solo quello detto : lo
spregio della privacy per non dire la spioneria e le ingerenze
dell'OS con le connessioni di rete.

tu che lo conosci bene, come ti trovi in questo senso ?
Sai se si possa rimediare, o non senti il problema, o lo tolleri
gioco forza ?
ciao
Soviet
o per mancanza di convenienza nel passaggio.
brix99luftballons
2007-11-10 18:15:48 UTC
Permalink
io sono mosso (forse) da un pregiudizio, e in effetti vorrei capire in che
misura lo è e in che misura è reale.
Premessa, già con XP ho rasentato la mia massima sopportazione per un
sistema intrusivo, spione, chiacchierone, e che di defautl tende a
trattarti da ladro pirata anche quando hai comprato la tua brava licenza,
ma in qualche modo, con fatica
Ma va! E' tutta scena...... Bill ha fatto la sua fortuna con la diffusione
abusiva dei sui sistemi!
MS *ama* incondizionatamente i ladri di software perche' danneggiano
piu' gli altri che lei stessa medesima ;-)
Il giorno in cui non si riuscira' ad avere prodortti MS piratati,
MS chiudera' i battenti....(con questo non voglio giustificare la
pirateria del software, che e' illegale! Constato un stato di fatto...)
devo dire, sono riuscito a mettergli il bavaglio e disabilitare tutte le
sue servizievoli attività collaterali automatiche e le sue tentazioni a
connettersi a cani e porci quando non richiesto (per inciso non sono
neppure sicuro di averlo placcato, ma so solo il firewall non segnala più
particolari ingerenze ... altre
Interessante... mi piacerebbe sapere come hai fatto, avrei giusto in
mente di fare qualche cosa di analogo, visto che ho macchine XP
che perdono tempo a spettegolare invece che a lavorare ;-)
le ho accettate obtorto collo perché spegnendole crashava tutto).
Ecco, che un OS si arroghi il diritto di usare la connessione per sue
proprie attività trasparenti agli applicativi che lancio in modo esplicito
(e anche che alcuni di questi tentino gli stessi trucchi e pretendano di
chattare in rete a loro piacimento con chissà chi), lo considero una
grossissima falla per un OS ed una vessazione.
Accetterei invece di buon grado delle feature opzionali che esplicitamente
puoi abilitare se ne senti la necessità, e in modo molto selettivo.
Leggende forse metropolitane vogliono che Vista sia anche peggio di XP da
questo punto di vista, e vorrebbe poter fare tutti i propri comodi via
rete, ma è poi vero ?
Si può spegnere tutte queste funzioni in sicurezza mantenendo il sistema
funzionante ?
Al solito, occorre aspettare il Service pack N....quando il sistema
avra' raggiunto un adiscreta stabilita', MS ne proporra' uno nuovo....
mah, contento è una parola grossa. Tuttavia ha indubbiamente marcato
parecchi miglioramenti dal predecessore, praticamente su
Non saprei, per me W2K e' stato il sistema MS piu' stabile con cui
abbia mai lavorato... poi aveva le sue pecche, ma il passaggio a XP
secondo la mia impressione, lo ha reso piu' instabile.
Io vorrei infatti capire se la mia diffidenza, che è nata con XP ed a
causa di XP e si estende a VISTA per mera estrapolazione, sia immotivata o
meno. L'ambito però è solo quello detto : lo spregio della privacy per non
dire la spioneria e le ingerenze dell'OS con le connessioni di rete.
Di Vista ho provato la Home edition...seguito da un rapido format
del disco e reinstallazione di XP multimedia edition: non funzionava
praticamente niente, i filmati DVX si bloccavano, mancano i driver
per le periferiche.... lentezze mostruose (su un dualCoree con 1Giga
RAM). Aspetto l' imminente SP, magari migliora e non butto nel
cesso il DVD, anche perche' l' ho pagato.......

Brix
crxor 666
2007-11-10 18:28:50 UTC
Permalink
Post by Soviet_Mario
sulle lentezze di VISTA ne ho letto molto su riviste, un po'
superficialotte, e mi hanno convinto che siano dovute
essenzialmente all'interfaccia grafica evolutissima ed
onerosissima, compatibile quindi perciò con macchine molto
potenti. Questa è un'invariante di tutte le evoluzioni di
qualsiasi sistema che punti alla sempre maggiore sofisticazione
grafica, all'aspetto accattivante, quindi non mi sentirei di
definirla un male in sé. Lo show più gradevole e amichevole ha
un suo costo computazionale.
Guarda, ho qui il controesempio. Leopard è *più* veloce e *più* reattivo
sulla mia macchina. Un portatile G4 di parecchi anni fa. Per dire.

Non è che *necessariamente* un OS debba essere più pesante.
HappyCactus
2007-11-27 15:20:12 UTC
Permalink
Post by Soviet_Mario
tu che lo conosci bene, come ti trovi in questo senso ?
Sai se si possa rimediare, o non senti il problema, o lo tolleri gioco
forza ?
Io mi trovo meglio con vista che con xp.
E il motivo è il tanto criticato UAC, che permette tranquillamente di
lavorare da utente e di impersonare l'amministratore solo quando necessario.
Qualche fastidio c'è, ma c'era anche con xp e c'è anche con Linux (uso
SuSE dalla 9.1); credo sia normale, anche se non dovrebbe essere cosi'.
Il sistema perfetto non esiste, esistono diversi sistemi più o meno
perfettibili sulla base delle singole esigenze.
?manu*
2007-11-10 07:23:03 UTC
Permalink
Post by Andrea Laforgia
Il problema (sempre a meno di definire che si intenda per
"problema") dei driver riguarda il produttore dell'hardware, non del
sistema operativo.
Con questa definizione Linux sarebbe un OS perfetto!

E.
crxor 666
2007-11-10 18:28:50 UTC
Permalink
Post by Andrea Laforgia
Il problema (sempre a meno di definire che si intenda per
"problema") dei driver riguarda il produttore dell'hardware, non del
sistema operativo.
Vero, però molti detrattori di Linux usano proprio la mancanza dei
driver (responsabilità del produttore) per concludere che Linux fa
schifo. Come dire, ci sono sempre due facce, nessuna delle quali scritta
in C++. :)
HappyCactus
2007-11-27 15:13:13 UTC
Permalink
Beh, ho avuto modo di provare per due mesi "Vista Business" a 64bit
per ragioni di lavoro.
A mio modesto avviso, di professionista, non è un testbench equilibrato:
è un sistema uscito da pochissimo, in una piattaforma poco diffusa e che
purtroppo non ha ancora permesso alle case di hardware di fare testing e
correzioni. Problemi analoghi li si ha avuti, per esempio, con le prime
versioni 64bit di linux (visto ch si sta parlando di quello)... insomma,
è una situazione un po' particolare.
Da parte mia, ho un Vista sul portatile toshiba, ed a parte problemi con
i driver (stesso discorso di cui sopra) funziona non male: credo di
essere uno dei pochissimi che non si lamenta.
Quel che intendo dire è che la responsabilità dei driver è più degli
sviluppatori degli stessi che di coloro che sviluppano il kernel o il
sistema operativo.
Per il resto nulla da obiettare, ma siamo OT e sento puzza di flame...
Per riportare il discorso in topic, da quel che ho visto dell'interno
del kernel di linux (sviluppo tra le altre cose anche qualche semplice
driver), le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla? Mi son sempre chiesto per quale ragione
non intervenire radicalmente utilizzando un linguaggio che tali
meccanismi li rende nativi. La spiegazione è più politica che tecnica,
uno zoccolo duro che, fatta una scelta, non è disposto ad ammettere che
gli strumenti utilizzati fino ad ora sono impropri.

Regards,

ing. Federico Fuga
?manu*
2007-11-27 15:54:46 UTC
Permalink
Post by HappyCactus
le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla?
...eh già. Io ho trovato molto istruttivo guardare il codice delle
librerie X11, è codice orientato agli oggetti, con funzioni membro
tabelle virtuali e tutto il resto... scritto in C! Ma credo che la
motivazione sia più che altro storica.

E.
HappyCactus
2007-11-27 15:59:19 UTC
Permalink
Post by ?manu*
Post by HappyCactus
le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla?
...eh già. Io ho trovato molto istruttivo guardare il codice delle
librerie X11, è codice orientato agli oggetti, con funzioni membro
tabelle virtuali e tutto il resto... scritto in C! Ma credo che la
motivazione sia più che altro storica.
Si. Ma è ridicolo criticare poi il c++ ed affermare che il C è meglio. O no?
?manu*
2007-11-27 16:07:47 UTC
Permalink
Post by HappyCactus
Si. Ma è ridicolo criticare poi il c++ ed affermare che il C è meglio. O no?
Sì, secondo me è ridicolo.

E.
crxor 666
2007-11-27 21:42:48 UTC
Permalink
Post by HappyCactus
La spiegazione è più politica che tecnica,
uno zoccolo duro che, fatta una scelta, non è disposto ad ammettere che
gli strumenti utilizzati fino ad ora sono impropri.
La spiegazione è economica: hai idea di quanti soldi (o ore uomo o
quello che vuoi) siano necessari per riscrivere tutto quanto da 0?
Per non parlare del costo di ritestare tutto, convincere le aziende che
a passare a codice molto meno maturo, riscrivere tutti i vari moduli.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
Gabriele Greco
2007-11-28 11:28:33 UTC
Permalink
Post by crxor 666
La spiegazione è economica: hai idea di quanti soldi (o ore uomo o
quello che vuoi) siano necessari per riscrivere tutto quanto da 0?
Per non parlare del costo di ritestare tutto, convincere le aziende che
a passare a codice molto meno maturo, riscrivere tutti i vari moduli.
Il kernel in gran parte si interfaccia con dispositivi hardware, tali
dispositivi si usano fondalmentalmente scrivendo e leggendo registri,
siano essi una MMU, hard disk, il program counter da impostare sulla CPU
o una scheda di rete... sono operazioni a basso livello che mal si
adattano ad un paradigma object oriented, non dico che non si possa fare
in C++, ma i vantaggi sarebbero limitati rispetto a farlo in C.

In questo senso sono d'accordo anch'io che il C++ non sia adatto al
kernel, anche perche` con il C++ puoi perdere il controllo di quello che
succede sotto (esempio: quante allocazioni sull'heap vengono fatte in
una semplice gestione di stringhe "std::string a = b + c;" ? ) , e
quando si programma un kernel non aver chiaro quello che succede sotto
non e` una buona cosa.

Un altro problema del C++ e` l'esplosione della dimensione del codice,
in particolare quando si usano classi template. Tutta l'STL e`
"templatizzata", quindi se si usa l'STL il codice "esplode". Linux gira
anche su cellulari e palmari e il kernel puo` avere un footprint di
poche centinaia di KB, se si scrivesse in C++ usando l'stl per i
container, le stringhe e qualche classe template qua e la per rendere
piu` typesafe il kernel si perderebbe anche questa IMPORTANTE feature
del kernel.

In questo senso sono d'accordo anch'io a tenere il C++ fuori dal kernel,
le motivazioni di Linus sono simili, lui pero` fa solo sviluppo a
livello di kernel e quindi si puo` permettere di odiare il C++ :)

Se uno sviluppa grosse applicazioni in userspace, magari con interfaccia
grafica, puo` permetterselo un po` meno :)

Bye,
Gabry
Nicola Musatti
2007-11-28 13:34:05 UTC
Permalink
On Nov 28, 12:28 pm, Gabriele Greco
[...]
Post by Gabriele Greco
Il kernel in gran parte si interfaccia con dispositivi hardware, tali
dispositivi si usano fondalmentalmente scrivendo e leggendo registri,
siano essi una MMU, hard disk, il program counter da impostare sulla CPU
o una scheda di rete... sono operazioni a basso livello che mal si
adattano ad un paradigma object oriented, non dico che non si possa fare
in C++, ma i vantaggi sarebbero limitati rispetto a farlo in C.
Non sono affatto d'accordo. Il kernel serve a fornire astrazioni sopra
i dispositivi hardware, e queste si prestano benissimo ad essere
rappresentate in C++. Guarda caso al cuore di Unix c'e' una virtual
table, per quanto implementata in C, ed e' la coppia di array di
strutture bdevsw/cdevsw, . Cerca ad esempio "struct bdevsw" in questo
file:

http://opengrok.creo.hu/openbsd/xref/src/sys/sys/conf.h

Tra l'altro di sistemi operativi scritti in C++ ce n'e' diversi; se
BeOS e' sempre stato un po' un caso a parte, ne Windows NT ne OS/400 e
successori mi paiono esattamente di nicchia.
Post by Gabriele Greco
In questo senso sono d'accordo anch'io che il C++ non sia adatto al
kernel, anche perche` con il C++ puoi perdere il controllo di quello che
succede sotto (esempio: quante allocazioni sull'heap vengono fatte in
una semplice gestione di stringhe "std::string a = b + c;" ? ) , e
quando si programma un kernel non aver chiaro quello che succede sotto
non e` una buona cosa.
Ma il C++ non ti *obbliga* a usare std::string. Io non troverei nulla
di male nell'utilizzare una classe stringa ad hoc nello sviluppo di un
kernel. Non credo sia un caso che due aziende per le quali le
prestazioni sono un fattore critico come Google e Adobe facciano largo
uso di C++. E almeno per quanto riguarda Adobe anche C++ moderno, se
consideri che fanno largo uso di Boost, che dalla prossima versione
conterra' anche una libreria contribuita proprio da loro.
Post by Gabriele Greco
Un altro problema del C++ e` l'esplosione della dimensione del codice,
in particolare quando si usano classi template. Tutta l'STL e`
"templatizzata", quindi se si usa l'STL il codice "esplode". Linux gira
anche su cellulari e palmari e il kernel puo` avere un footprint di
poche centinaia di KB, se si scrivesse in C++ usando l'stl per i
container, le stringhe e qualche classe template qua e la per rendere
piu` typesafe il kernel si perderebbe anche questa IMPORTANTE feature
del kernel.
Il problema vero e' sapere quello che si fa. Ti segnalo che anche
Symbian OS e' scritto in C++.
Post by Gabriele Greco
In questo senso sono d'accordo anch'io a tenere il C++ fuori dal kernel,
le motivazioni di Linus sono simili, lui pero` fa solo sviluppo a
livello di kernel e quindi si puo` permettere di odiare il C++ :)
Linus ha detto un'emerita c.....a ed il fatto che l'abbia detta lui
non la rende meno tale. Secondo me nella sua posizione dovrebbe fare
molta piu' attenzione a quello che dice. "Da un grande potere derivano
grandi responsabilita'", come diceva zio Ben. Anche in questo avrebbe
parecchio da imparare da Bjarne Stroustrup ;-)

Ciao,
Nicola
crxor 666
2007-11-28 14:00:05 UTC
Permalink
Post by Gabriele Greco
In questo senso sono d'accordo anch'io che il C++ non sia adatto al
kernel, anche perche` con il C++ puoi perdere il controllo di quello che
succede sotto (esempio: quante allocazioni sull'heap vengono fatte in
una semplice gestione di stringhe "std::string a = b + c;" ? ) , e
quando si programma un kernel non aver chiaro quello che succede sotto
non e` una buona cosa.
Si, ma puoi usare anche il bel char*. Puoi farti un'implementazione
lightweight delle stringhe (che so, una struct che semplicemente conosce
la sua lunghezza e poco altro).
Post by Gabriele Greco
Un altro problema del C++ e` l'esplosione della dimensione del codice,
in particolare quando si usano classi template. Tutta l'STL e`
"templatizzata", quindi se si usa l'STL il codice "esplode". Linux gira
anche su cellulari e palmari e il kernel puo` avere un footprint di
poche centinaia di KB, se si scrivesse in C++ usando l'stl per i
container, le stringhe e qualche classe template qua e la per rendere
piu` typesafe il kernel si perderebbe anche questa IMPORTANTE feature
del kernel.
Si, ma attenzione, sviluppare in C++ non vuole dire *necessariamente*
usare la stl. Addittura puoi non linkarla affatto.

Nel caso si tratterebbe di usare il *linguaggio* per supportare
ereditarietà e tutto. Inoltre la maggior parte delle features di C++ se
non le usi non le paghi. Tipo RTTI.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
HappyCactus
2007-11-28 16:50:27 UTC
Permalink
Post by Gabriele Greco
Il kernel in gran parte si interfaccia con dispositivi hardware, tali
dispositivi si usano fondalmentalmente scrivendo e leggendo registri,
siano essi una MMU, hard disk, il program counter da impostare sulla CPU
o una scheda di rete... sono operazioni a basso livello che mal si
adattano ad un paradigma object oriented, non dico che non si possa fare
in C++, ma i vantaggi sarebbero limitati rispetto a farlo in C.
Non direi. L'asm non si usa (ovviamente), limitando al massimo i
costrutti ed attenendosi strettamente a delle regole (un esempio ovvio è
quello di non utilizzare la libreria standard) il problema si poteva
aggirare.
Post by Gabriele Greco
In questo senso sono d'accordo anch'io che il C++ non sia adatto al
kernel, anche perche` con il C++ puoi perdere il controllo di quello che
succede sotto (esempio: quante allocazioni sull'heap vengono fatte in
una semplice gestione di stringhe "std::string a = b + c;" ? ) , e
quando si programma un kernel non aver chiaro quello che succede sotto
non e` una buona cosa.
Basta non usare la libreria standard ed attenersi a poche semplicissime
regole: utilizzare *solo* le funzioni memcpy & co, usare *solo* funzioni
fornite dal kernel e via discorrendo, né più né meno delle regole che
si usano normalmente per scrivere codice nel kernel.
La cosa interessante era poter scrivere un driver derivandolo da uno già
presente, effettuando semplicemente la sovrapposizione di poche funzioni
essenziali (init, write, read, close). Né più né meno di quello che si
fa oggi nel kernel di linux, salvo evitare gli astrusi costrutti che
passano tramite le macro, che ad un programmatore ordinato fan venire il
latte alle ginocchia. Prova a capire qualcosa di quello che c'è nel file
kobject.h per esempio. Già il nome dovrebbe suggerirti qualcosa...
Post by Gabriele Greco
Un altro problema del C++ e` l'esplosione della dimensione del codice,
in particolare quando si usano classi template. Tutta l'STL e`
"templatizzata", quindi se si usa l'STL il codice "esplode".
Ma non si deve usare l'stl come non si usa sul kernel la stc (ovviamente
il kernel non è neppure linkata alla crt.o, figurarsi con le glibc...)
L'unica cosa che serve sono i costrutti puri del linguaggio, ossia
classi, ereditarietà e pochissimo altro. Neanche le eccezioni né i
template, probabilmente neanche l'rtti se si usano dei meccanismi
vecchio stile...
Post by Gabriele Greco
Linux gira
anche su cellulari e palmari e il kernel puo` avere un footprint di
poche centinaia di KB,
Non esageriamo :-) sotto i 900k con il 2.6 è dura. Parola di
sviluppatore embedded.
Post by Gabriele Greco
se si scrivesse in C++ usando l'stl per i
container, le stringhe e qualche classe template qua e la per rendere
piu` typesafe il kernel si perderebbe anche questa IMPORTANTE feature
del kernel.
Vedi sopra, non si può e non si deve usare, imho.
Post by Gabriele Greco
Se uno sviluppa grosse applicazioni in userspace, magari con interfaccia
grafica, puo` permetterselo un po` meno :)
Eppure ci sono delle teste dure (gnome) che continuano ad usare il C
come se fosse C++ (con pseudo-classi e pseudo oggetti)....
crxor 666
2007-11-28 19:31:34 UTC
Permalink
Post by HappyCactus
La cosa interessante era poter scrivere un driver derivandolo da uno già
presente, effettuando semplicemente la sovrapposizione di poche funzioni
essenziali (init, write, read, close). Né più né meno di quello che si
fa oggi nel kernel di linux, salvo evitare gli astrusi costrutti che
passano tramite le macro, che ad un programmatore ordinato fan venire il
latte alle ginocchia.
BTW, l'IOKit di OS X è scritto precisamente in embedded C++.
Precisamente per i vantaggi che elenchi, fra gli altri.
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
Gabriele Greco
2007-12-05 18:08:38 UTC
Permalink
HappyCactus wrote:

Ho un 2.4 di meno di 600kb in un nostro sistema embedded in produzione
da alcuni anni, comunque anche 900 sono "poche centinaia", a nessuno e`
venuto da ridere quando la settimana scorsa si parlava di un microkernel
separato dalla parte grafica "cuore" del prossimo windows che pesera`
"solo" 30mb? :)
Post by HappyCactus
Eppure ci sono delle teste dure (gnome) che continuano ad usare il C
come se fosse C++ (con pseudo-classi e pseudo oggetti)....
Pero` in quel modo hanno realizzato GTK che e` un toolkit molto +
scalabile, portabile e diffuso nell'embedded che non QT o wx, nonostante
trolltech sull'embedded ci abbia puntato molto.

Inoltre GTK e` molto + diffuso rispetto ai citati WX e QT in C++ Tper
applicazioni GUI "agnostiche" rispetto al desktop enviroment.

La verita` e` che portarsi dietro il runtime C++ nelle librerie di
appoggio dell'applicazione e` una brutta rogna (su linux dove e`
cambiata tre volte l'ABI in 8 anni e distribuire un'applicazione C++
binaria che funzioni su tutte le distribuzioni e` un'utopia), e' pesante
(su windows, dove di solito viene linkato staticamente, idem e su mac
fino al 10.4).

Tra l'altro sia QT che WX per dire si portano dietro il fatto che sono
nate quando l'STL non era cosi` diffusa e stabile e si riscrivono la
ruota per stringhe, container, ecc, ecc... lo fa anche GTK in glib, ma
li` la cosa e` utile in quanto la libreria standard del C non ha quelle
funzionalita` :)

--
Bye,
Gabry

HappyCactus
2007-11-28 16:42:45 UTC
Permalink
Post by crxor 666
La spiegazione è economica: hai idea di quanti soldi (o ore uomo o
quello che vuoi) siano necessari per riscrivere tutto quanto da 0?
Per non parlare del costo di ritestare tutto, convincere le aziende che
a passare a codice molto meno maturo, riscrivere tutti i vari moduli.
Oggi è vero, ma l'altro ieri non lo era. Un po' più di lungimiranza
sarebbe stata una buona cosa, secondo me.
?manu*
2007-11-28 18:44:56 UTC
Permalink
Post by crxor 666
La spiegazione è economica: hai idea di quanti soldi (o ore uomo o
quello che vuoi) siano necessari per riscrivere tutto quanto da 0?
Mi chiedevo se c'è un metodo sensato per convertire progressivamente il
C in C++. Probabilmente partendo dall'alto livello e andando verso il
basso si può fare. Cominicio a convertire il main, poi le funzioni
chiamate dal main etc...

E.
crxor 666
2007-11-29 10:17:35 UTC
Permalink
Post by ?manu*
Mi chiedevo se c'è un metodo sensato per convertire progressivamente il
C in C++. Probabilmente partendo dall'alto livello e andando verso il
basso si può fare. Cominicio a convertire il main, poi le funzioni
chiamate dal main etc...
Io però ho paura che così uno finirebbe per scrivere pessimo codice C++.

Tipcamente seguendo questo approccio le struct diventerebbero classi
con attributi privati, funzioni per accederli derivate dai metodi che
prima manipolavano le struct.

Costrutti ad hoc di C per simulare features OO verrebbero sostituiti da
quelli di C++, i tipi verrebbero stretti...

Ma il tutto soffrirebbe del problema che rimarrebbe codice progettato in
C. Quando progetto in C++ (e sono soddisfatto del mio risultato),
tipicamente non ho agito come avrei agito in C. Ho enti che servono a
maneggiare le risorse che non sono traduzione 'naturale' di roba C (che
appunto non necessariamente esisterebbe, sarebbero semplici chiamate di
funzione qua e la con errori gestiti esplicitamente punto per punto).

E poi pensa: praticamente significa riscrivere tutto. Badaci. La
gestione degli errori la riscrivi perchè trasformi i vari goto locali,
gli errno o analoghi in eccezioni. Le struct le riscrivi perchè nascondi
i membri (che divengono privati): ergo tutto il codice che le manipola
deve essere cambiato.

Insomma, IMHO a quel punto tanto vale scrivere il tutto da 0, sfruttando
a pieno il C++ (per esempio i template non vengono 'ovvi' da una
traduzione da C, in alcuni casi si, ma in altri casi in cui avrei usato
pesantemente il compilatore probabilmente il codice corrispondente non
c'è e basta).
--
blog: http://www.akropolix.net/rik0/blogs | Uccidete i filosofi,
site: http://www.akropolix.net/rik0/ | tenetevi riso e
forum: http://www.akropolix.net/forum/ | bacchette per voi.
nibble
2007-11-27 22:45:47 UTC
Permalink
Post by HappyCactus
Beh, ho avuto modo di provare per due mesi "Vista Business" a 64bit
per ragioni di lavoro.
è un sistema uscito da pochissimo, in una piattaforma poco diffusa e che
purtroppo non ha ancora permesso alle case di hardware di fare testing e
correzioni. Problemi analoghi li si ha avuti, per esempio, con le prime
versioni 64bit di linux (visto ch si sta parlando di quello)... insomma,
è una situazione un po' particolare.
Il testo continua tutt'ora e continuerà almeno per un annetto.
I problemi restano comunque anche eprché abbiamo riscontrato analoghi
problemi con le memory pen su versioni "home basic". Insomma una
grande rottura!
Post by HappyCactus
essere uno dei pochissimi che non si lamenta.
beato te! :)
Stiamo testando un RAD; nelle specifiche si "consiglia" almeno 2 GB di
RAM e Vista abbisogna di almeno uno! La maggior parte dei computer in
vendita adesso sono inadeguati al nuovo OS, a meno di non assemlarlo
ad hoc.
Post by HappyCactus
Quel che intendo dire è che la responsabilità dei driver è più degli
sviluppatori degli stessi che di coloro che sviluppano il kernel o il
sistema operativo.
Stiamo confondendo due piani: uno prettamente tecnico, kernel e
quant'altro, e l'altro "commerciale".
Ho già scritto che il problema è come è stato imposto il un nuovo
prodotto. Per i driver prima o poi se ne verrà a capo.

Scusa mettiamo il caso che a WinXP sia assicurata manutenzione,
aggiornamenti e la possibilità di acquistarlo per molti anni. Secondo
te quanti passerebbero a Vista?
ciao.
HappyCactus
2007-11-28 16:54:39 UTC
Permalink
Post by nibble
Scusa mettiamo il caso che a WinXP sia assicurata manutenzione,
aggiornamenti e la possibilità di acquistarlo per molti anni. Secondo
te quanti passerebbero a Vista?
Sono pochi, ma il mercato non è un buon peso per la qualità tecnica. Il
99% delle persone che si lamentano lo fanno per esempio per l'UAC,
perché rompe le scatole; e usano il pc da admin. Qui è ignoranza, non è
bassa qualità del software.

Ad ogni modo le magagne se vuoi ci sono: con visual studio .net 2003 e
vista si bestemmia non poco. Però non so se con XP sarebbe stato diverso
(mio caso specifico, però).
nibble
2007-11-27 22:49:17 UTC
Permalink
Post by HappyCactus
Per riportare il discorso in topic, da quel che ho visto dell'interno
del kernel di linux (sviluppo tra le altre cose anche qualche semplice
driver), le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla?
beh qualcosa sì ;) Ma chi si mette a riscrivere tutto in C++???
Ciao.
nibble
2007-11-27 22:50:56 UTC
Permalink
Post by nibble
Post by HappyCactus
Per riportare il discorso in topic, da quel che ho visto dell'interno
del kernel di linux (sviluppo tra le altre cose anche qualche semplice
driver), le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla?
beh qualcosa sì ;) Ma chi si mette a riscrivere tutto in C++???
Ciao.
A proposito di kernel. Che ne pensate di questo?

http://www.ilsoftware.it/news.asp?ID=3934

ciao.
brix99luftballons
2007-11-28 07:21:56 UTC
Permalink
Post by nibble
Post by nibble
Post by HappyCactus
Per riportare il discorso in topic, da quel che ho visto dell'interno
del kernel di linux (sviluppo tra le altre cose anche qualche semplice
driver), le interconnessioni tra parti diverse del kernel, ad esempio
verso i driver, sono costituite da grandi tabelle di puntatori a
funzioni... vi ricorda nulla?
beh qualcosa sì ;) Ma chi si mette a riscrivere tutto in C++???
Ciao.
A proposito di kernel. Che ne pensate di questo?
http://www.ilsoftware.it/news.asp?ID=3934
Meglio tardi che mai, era ora che scorporassero la parte grafica dal
kernel
(questo discorso mi ricorda qualcosa....) :-)
Quello che secca in Windows e' che prima o poi usano tecnologie sviluppate
da decenni (da altri!) e le fanno passare per grossi imprrovvementt e le
spacciano
per "novita'".
....Anche se 25Mbytes di kernel non puo' proprio essere definito un
"micro-kernel" :-)

brix
HappyCactus
2007-11-28 16:58:14 UTC
Permalink
Post by brix99luftballons
Post by nibble
A proposito di kernel. Che ne pensate di questo?
http://www.ilsoftware.it/news.asp?ID=3934
Era ora, sembra interessante, però ora del 2010... :)
Post by brix99luftballons
....Anche se 25Mbytes di kernel non puo' proprio essere definito un
"micro-kernel" :-)
Oddio, il termine microkernel è infelice, indica tutt'altra tecnologia
di sistema operativo... neanche linux è un microkernel. Al di là delle
dimensioni.
Ma da quel che ho capito, intendevano piuttosto micro-sistema operativo,
tipo il uLinux di un tempo, kernel + librerie + console. Sarebbe
decisamente interessante.
GM
2007-11-28 18:00:06 UTC
Permalink
Post by HappyCactus
Oddio, il termine microkernel è infelice, indica tutt'altra tecnologia
di sistema operativo... neanche linux è un microkernel. Al di là delle
dimensioni.
No, aspetta un attimo:
guarda che il termine microkernel non ha nulla ache vedere con le
dimensioni.
Si tratta di un'architettura diversa rispetto al cosiddetto "kernel
monolitico" che è proprio il kernel di linux.
Proprio il nostro amico Torvalds, prima delle sparate di cui stiamo
parlando ora, divenne famoso proprio per un'accesa discussione con un
tal Andy Tannenbaum (che sui SO ci ha scritto un tot di libri...) a
proposito del confronto microkernel (Tannenbaum) vs. monolitico
(Torvalds). Cerca su wikipedia kernel per maggiori dettagli.

In realtà windows è un'architettura per certi versi simile al
microkernel (alcuni parlano di "kernel ibrido").

GM
HappyCactus
2007-11-28 18:40:34 UTC
Permalink
Post by GM
Post by HappyCactus
Oddio, il termine microkernel è infelice, indica tutt'altra tecnologia
di sistema operativo... neanche linux è un microkernel. Al di là delle
dimensioni.
guarda che il termine microkernel non ha nulla ache vedere con le
dimensioni.
E' esattamente quello che intendevo dire con "al di là delle dimensioni".
QNX è costituito da un microkernel, per esempio. Hurd dovrebbe essere un
microkernel, se ricordo bene.
Post by GM
In realtà windows è un'architettura per certi versi simile al
microkernel (alcuni parlano di "kernel ibrido").
In che senso "per certi versi"?
brix99luftballons
2007-11-28 19:32:19 UTC
Permalink
Post by HappyCactus
Post by GM
Post by HappyCactus
Oddio, il termine microkernel è infelice, indica tutt'altra tecnologia
di sistema operativo... neanche linux è un microkernel. Al di là delle
dimensioni.
guarda che il termine microkernel non ha nulla ache vedere con le
dimensioni.
Ha ANCHE a vedere con le dimensioni: un sistema microkernel ha componenti
separate e *separabili* e si misura in kbytes, non in *MB*.
In genere il kernel si occupa della schedulazione e delle IPC e basta.
Tutto il resto (filesystems, drivers, grafica etc.) sono altre applicazioni
che si possono
o meno aggiungere a piacere, di solito piuttosto piccole e girano in
contesti *separati*
una dall' altra, con vantaggi in temini di sicurezza di sistema (se va in
crash un driver, il
sistema sistema non va in crash: non esiste il kernel space !!!).
Post by HappyCactus
E' esattamente quello che intendevo dire con "al di là delle dimensioni".
QNX è costituito da un microkernel, per esempio. Hurd dovrebbe essere un
microkernel, se ricordo bene.
Ricordi bene :-)
Se non vado errarto il kernel vero e proprio di QNX (procnto) e' di pochi
Kbytes.
Post by HappyCactus
Post by GM
In realtà windows è un'architettura per certi versi simile al
microkernel (alcuni parlano di "kernel ibrido").
In che senso "per certi versi"?
Non direi proprio! E' un kernel monolitico che piu' monolitico non si puo'.

brixx
GM
2007-11-29 06:43:28 UTC
Permalink
Post by brix99luftballons
Post by HappyCactus
Post by GM
In realtà windows è un'architettura per certi versi simile al
microkernel (alcuni parlano di "kernel ibrido").
In che senso "per certi versi"?
Non direi proprio! E' un kernel monolitico che piu' monolitico non si puo'.
Questo non è vero:
linux è "un kernel monolitico che piu' monolitico non si puo'",
windows è "una via di mezzo".

Se non ne sei convinto ti cito ad esempio:
http://en.wikipedia.org/wiki/Architecture_of_Windows_NT
http://www.microsoft.com/technet/archive/ntwrkstn/evaluate/featfunc/kernelwp.mspx

Ciao
GM
brix99luftballons
2007-11-29 07:03:44 UTC
Permalink
Post by GM
Post by brix99luftballons
Post by HappyCactus
Post by GM
In realtà windows è un'architettura per certi versi simile al
microkernel (alcuni parlano di "kernel ibrido").
In che senso "per certi versi"?
Non direi proprio! E' un kernel monolitico che piu' monolitico non si puo'.
linux è "un kernel monolitico che piu' monolitico non si puo'",
windows è "una via di mezzo".
http://en.wikipedia.org/wiki/Architecture_of_Windows_NT
http://www.microsoft.com/technet/archive/ntwrkstn/evaluate/featfunc/kernelwp.mspx
Ciao
Wiki stessa dichiara che il termine e' quanto meno "discusso" :-)
Il modello ibrido si riferisce al fatto che alcune funzioni tipiche del
kernel possono
essere eseguite nello user space. A parte che questo e' vero anche per
linux,
che quindo potrebbe anche essere dischiarato "modello ibrito" esso stesso.
Il temine monilitico si riferisce al fatto che tutti i componenti del
kernel
costituiscono sostanzialmente un unico programmone compilato tutto insieme
ed indivisibile: anche questo per Linux non è piu' vero, da quando e'
possibile
inserire i moduli direttamente nel kernel in modo dinamico.
Per Windows NT e' vero che il kernel è modulare, cioe' non è un unico
programmone,
ma di fatto i vari moduletti alla fine costituiscono un tutt' uno, sono
di fatto un kernel monolitico
e girano tutti nello stesso unico contesto.
Se poi vogliamo chiamare "modello ibrido" il fatto che nello spazio user
si possano realizzare
dei driver, o qualcosa di simile, va be... pero' questa "funzione" usa
poi delle chiamate
al kernel (tramite wdm o simili) per cui in realta' e' sempre un
programma user che si
appoggia in definitiva al kernel...cosa che tutti i sistemi monolitico o
meno possono o potrebbero
fare.

I micro kernel sono tutta un altra tecnologia, e ne' Linux ne' Windows
lo sono:
http://en.wikipedia.org/wiki/Microkernel
http://www.qnx.com/products/neutrino_rtos/microkernel.html


bye
brix
nibble
2007-11-10 00:37:03 UTC
Permalink
Andrea Laforgia
2007-11-10 01:10:43 UTC
Permalink
Flop commerciale,
Non è dimostrabile.
bug
Citameli.
e "poca comunicativa" con le periferiche.
Ma per favore!
brix99luftballons
2007-11-10 18:20:05 UTC
Permalink
Post by Andrea Laforgia
Flop commerciale,
Non è dimostrabile.
Infatti, non e' affatto un flop, visto che lo montato tutti i PC consumer in
vendita....
Post by Andrea Laforgia
bug
Citameli.
Basta provarlo, il sistema, e poi te ne accorgi da te'
Post by Andrea Laforgia
e "poca comunicativa" con le periferiche.
Ma per favore!
Al momento, e' vero. Cambiera' ma ci vuole un poco di tempo.
Ho un sacco di applicazioni che non funzionano piu' come dovrebbero
su Vista ;-(

Brix
Soviet_Mario
2007-11-10 00:20:43 UTC
Permalink
On 9 Nov, 21:49, Andrea Laforgia
Post by Andrea Laforgia
Magari, se Linus fosse stato meno
indisponente e Tanenbaum un po' più morbido, oggi avremmo un Linux
migliore :-)
Già ed è molto triste, tenendo conto di cosa capita in casa MS (vedi
il quasi-disastro Vista)
io non ho Vista e non lo conosco ... cosa intendi per
"quasi-disastro" ? Flop commerciale, bug, inefficienza,
intrusività, o che altro ?
ciao
Soviet
basterebbe così poco per imporsi. Per
curiosità: hai qualche link sulle dichiarazioni di Tanenbaum?
ciao.
FlickerFree
2007-11-07 18:23:17 UTC
Permalink
Post by edouble
Bhe, il fatto che il kernel di linux sia scritto ancora in C la dice lunga..
Si', pero' quando in C vedo certe cose (puntatori char* interni ad una
struttura castati ad un'altra e passati come valore di ritorno da una
funzione), mi viene in mente la programmazione per strutture passate in
memoria tra ***PROCESSI*** di Windows a 16 bit, orripilante....

FlickerFree.
Barry Lyndon
2007-11-12 07:40:23 UTC
Permalink
Post by edouble
Bhe, il fatto che il kernel di linux sia scritto ancora in C la dice lunga..
"C++ is a horrible language.
Beh... che è NATO in C++ e non può essere certo riscritto da capo. I
prodotti <<commerciali>> (un po' come gli <<uomini>>) spesso non conta
solamente se sono validi o no, ma se nascono nel momento giusto, se
hanno fortuna... Sono parecchi gli ottimi prodotti che non hanno MAI
avuto successo.
nibble
2007-11-12 13:15:24 UTC
Permalink
Barry Lyndon
2007-11-12 13:19:56 UTC
Permalink
Infatti: pensa al caso "Oberon". Non che sia (fosse?) proprio da
buttare...
O pensa ad un Win vs. *nix:

- *nix è 10.000 volte migliore di Win, che è ancora un DOS (poco)
evoluto ed è free
- Win è il s.o. più diffuso al mondo

Ovvero, Win vs. Mac:

- Mac usava le <<finestre>> quando Microsoft era in <<bianco e nero>>
- Win ha copiato Mac e... qualcuno dice che è migliore di Mac (!)
nibble
2007-11-12 13:28:40 UTC
Permalink
Barry Lyndon
2007-11-13 09:45:03 UTC
Permalink
ma quant'era bello il commodore 64... ma anche allora c'era lo
spectrum che rompeva... sta storia non finirà mai :P
...se non c'era già, dopo poco è arrivato l'Apple I, che li azzerava
entrambi.
camillo
2007-11-13 11:18:11 UTC
Permalink
Win, che è ancora un DOS (poco) evoluto
no, davvero. o tu non hai contatti con l'informatica da almeno un
decennio, oppure sei un troll che tenta di giocare con argomentazioni in
voca dieci anni fa pure loro.
Barry Lyndon
2007-11-13 11:30:57 UTC
Permalink
Post by camillo
no, davvero. o tu non hai contatti con l'informatica da almeno un
decennio, oppure sei un troll che tenta di giocare con argomentazioni in
voca dieci anni fa pure loro.
Complimenti per le argomentazioni <<No, davvero>> e la fantasia <<Sei un
troll>>.

(((((((((((((((-:

Cmq stai tranquillo, tra un po' slinko, per ora il C++ non mi interessa più.

BTW: i programmatori da sempre sono stati dei complessati e dei palloni
gonfiati (-;
Soviet_Mario
2007-11-13 13:35:46 UTC
Permalink
Post by Barry Lyndon
Post by camillo
no, davvero. o tu non hai contatti con l'informatica da almeno un
decennio, oppure sei un troll che tenta di giocare con argomentazioni
in voca dieci anni fa pure loro.
Complimenti per le argomentazioni <<No, davvero>>
non è che ci fosse un gran bisogno di argomentare.
Sicuramente se uno arriva e afferma che il sole è blu, ci può
essere il tizio su cento che si imbarca in una dimostrazione
rigorosa, e gli altri novantanove che ritengono sufficiente dire
: "guarda meglio".

In effetti in XP (e già in Win98-II edition) era proprio il
DOS-core a non esistere più. PErsino la DOS-box è diventata
emulata, e te ne accorgi se debuggi un programma che pensa di
operare in DOS 16 bit e fa le sue brave chiamate di sistema
(INT), e se debuggi meglio a livello di disassemblato, vedi bene
che sono tutte quante intercettate e servite dal kernel32 (o
dalle DLL complementari), per cui il DOS visibile è solo un
simulacro emulato, tanto per garantire la retrocompatibilità.
Anche le chiamate dirette al bios (almeno le più comuni) sono
filtrate dal O.S.

ciao
Soviet_Mario
Post by Barry Lyndon
e la fantasia <<Sei un
troll>>.
Cmq stai tranquillo, tra un po' slinko, per ora il C++ non mi interessa più.
BTW: i programmatori da sempre sono stati dei complessati e dei palloni
gonfiati (-;
Barry Lyndon
2007-11-13 13:44:26 UTC
Permalink
Post by Soviet_Mario
non è che ci fosse un gran bisogno di argomentare.
Ahhhh... capisco. Beh, basta leggere il tuo nick <<sovietico>> per
Post by Soviet_Mario
vedi bene che sono tutte quante intercettate e servite
dal kernel32 (o dalle DLL complementari)
Capisco. Senti... io invece sono una povera testa di cazzo. Me la
spieghi una cosa facile facile (per te)? Perché se ho un processo in
esecuzione e mando un <<kill>> con Linux, quel processo termina alla
velocità della luce; e perché se vado nel task manager di Winzoz e mando
un <<canc>>, faccio in tempo a farmi panino con nutella, torno ed ancora
non è killato?
Soviet_Mario
2007-11-13 13:54:16 UTC
Permalink
Post by Barry Lyndon
Post by Soviet_Mario
non è che ci fosse un gran bisogno di argomentare.
Ahhhh... capisco. Beh, basta leggere il tuo nick <<sovietico>> per
malgrado l'apparenza, ho comunque cercato di argomentare alla
fine, anche se fai lo gnorri al riguardo.
Post by Barry Lyndon
Post by Soviet_Mario
vedi bene che sono tutte quante intercettate e servite
dal kernel32 (o dalle DLL complementari)
Capisco. Senti... io invece sono una povera testa di cazzo.
senti, non mi sono mai permesso di insultarti, mi pare, quindi
non fare con me il gioco che ti insulti da solo, non mi
interessa litigare fine a sé stesso. Ah, e neppure la crociata
pro-contro windows (vuoi perché lo uso, non lo amo troppo, e
consco troppo poco la controparte per avere opinioni valide,
tranne che i due storici tentativi di installare mandriva, e
suse, erano naufragati contro un hardware un po' atipico e non
riconosciuto di default ... con ciò non penso male del sistema,
solo che non era amichevole e io non avevo la competenza
necessaria alla buona riuscita della transizione, per cui mi
sono rassegnato a tenere il vecchio OS).
Post by Barry Lyndon
Me la
spieghi una cosa facile facile (per te)? Perché se ho un processo in
esecuzione e mando un <<kill>> con Linux, quel processo termina alla
velocità della luce; e perché se vado nel task manager di Winzoz e mando
un <<canc>>, faccio in tempo a farmi panino con nutella, torno ed ancora
non è killato?
io uso
Process Explorer 9.25, è un task anager freeware per windows, e
sulla mia vecchia macchina non è particolarmente lento, killare
killa subito (poi quel che succede dipende da cosa hai spento
ovviamente, perché puoi spegnere anche servizi essenziali al
sistema stesso).
Cmq, ammettendo che Linux sia di per sé più efficiente e
performante di windows (cosa che forse è probabile ma non posso
dirlo in prima persona), non capisco cosa c'entri questa
considerazione col fatto che windows attuale sia solo una sorta
di DOS mascherato. Io commentavo quella frase e stop, dato che
non era vera.
Se vuoi dimostrare che secondo te è vera, fai degli esempi
calzanti nel merito.
Ah, per rinforzare la cosa : nemmeno il file system nativo di XP
è rimasto l'antico FAT32 del DOS, cosa detta in un recente thread.
Poi forse non abbiamo la stessa definizione di cosa significhi
rimanere uguale o semplicemente derivare da.
ciao
CCCP++Mario
Nicola Musatti
2007-11-13 13:55:11 UTC
Permalink
[...]
Post by Barry Lyndon
Capisco. Senti... io invece sono una povera testa di cazzo. Me la
spieghi una cosa facile facile (per te)? Perché se ho un processo in
esecuzione e mando un <<kill>> con Linux, quel processo termina alla
velocità della luce; e perché se vado nel task manager di Winzoz e mando
un <<canc>>, faccio in tempo a farmi panino con nutella, torno ed ancora
non è killato?
Entrambe le affermazioni sono sbagliate. In entrambe i sistemi dipende
da come sono scritte le applicazioni e da quale segnale usi per
cercare di ucciderle. Su entrambe i sistemi poi e' raro ma non
impossibile che una combinazione di livello di priorita' e interrupt
mask faccia si che anche un segnale non intercettabile venga
temporaneamente ignorato.

Ciao,
Nicola

P.S. Per pura coincidenza ho appena fatto fuori qualche decina di
processi dal task manager di Windows e sono tutti scomparsi
all'istante.
Davide Quack
2007-11-13 15:07:53 UTC
Permalink
Post by Nicola Musatti
Entrambe le affermazioni sono sbagliate.
Aggiungo alla tua ottima precisazione che se uno lo fa da task manager
dal pannello "applicazioni" non viene fatto un kill stile unix, ma
viene mandato un messaggio alla finestra principale dell'applicazione
con la richiesta di chiudersi.

Siamo arrivati al punto che si usa la propria ignoranza su windows per
parlarne male. Se uno non è capace di usarlo dovrebbe per prima cosa
chiedere.

Poi se si vuole temperare le supposte, e immagino che tu non lo hai
fatto per non infierire, un conto è mandare un segnale tipo control c o
simili e un conto è terminare un programma. Queste segnali sono
intercettabili dal programma; l'azione di default del S.O. per un
segnale simile al cntrl c è la terminazione del programma. Un altro
conto e "terminare" con una chiamata al S.O. un processo. Se si hanno
sufficienti diritti amministrativi per "lanciarlo" questo non è
intercettabile dal programma.
Barry Lyndon
2007-11-13 15:19:29 UTC
Permalink
Post by Davide Quack
Poi se si vuole temperare le supposte, e immagino che tu non lo hai
fatto per non infierire, un conto è mandare un segnale tipo control c o
simili e un conto è terminare un programma.
Mai temperato supposte, sono un pragmatico: una cosa o funziona o non
funziona. Se poi uno si vuole convincere che il task manager di Winzoz
scritto in C++ funziona bene... zzzi suoi, non mi tocca (-:

Io oramai uso solo Winzoz, ma sono pienamente consapevole che è il
peggior S.O. mai venduto sul mercato. Come dire: io sono una troia, ma
non vado in giro a dire che sono una crocerossina. Ed IMHO il problema
dei S.O. è nato proprio con DOS, residente su disco; il CP/M era molto
meglio. Ma non era un buon prodotto commerciale.

BTW: chissà non si ritorni ad un s.o. su firmware prima o poi.
?manu*
2007-11-13 15:19:46 UTC
Permalink
Post by Barry Lyndon
Perché se ho un processo in
esecuzione e mando un <<kill>> con Linux, quel processo termina alla
velocità della luce; e perché se vado nel task manager di Winzoz e mando
un <<canc>>, faccio in tempo a farmi panino con nutella, torno ed ancora
non è killato?
Probabilmente perché su Linux dai il comando direttamente dalla console
(o da un terminale virtuale) e il comando arriva direttamente al kernel.
In windows, invece, devi interfacciarti con il sistema a finestre che
probabilmente (visto che vuoi killare un processo) è un po' sotto
pressione...

Questo è un problema piuttosto generale se non hai un sistema ben
"conservato". Sul mio computer ho cronometrato 35 secondi per cancellare
un file con Windows! Ovviamente su Linux il file viene cancellato prima
che ancora che il tasto invio si sia sollevato...

E.
Barry Lyndon
2007-11-13 15:23:57 UTC
Permalink
Post by ?manu*
Probabilmente perché su Linux dai il comando direttamente dalla console
(o da un terminale virtuale) e il comando arriva direttamente al kernel.
In windows, invece, devi interfacciarti con il sistema a finestre che
probabilmente (visto che vuoi killare un processo) è un po' sotto
pressione...
Infatti ho divorziato da Linux il giorno che hanno puntato sulle
interfacce grafiche. Senza contare la complicazione: prima in c:/etc
c'erano una decina di files, con 3 - 4 settavi la macchina e facevi
tutto; ora conl'interfaccia grafica sei fortunato se riesci a stampare.
E senza contare che un kernel stava perfettamente incapsulato in meno di
640 Kb, senza <<chioccioline>> e chiamate esterne.
brix99luftballons
2007-11-13 16:02:23 UTC
Permalink
Post by Barry Lyndon
Post by ?manu*
Probabilmente perché su Linux dai il comando direttamente dalla
console (o da un terminale virtuale) e il comando arriva direttamente
al kernel. In windows, invece, devi interfacciarti con il sistema a
finestre che probabilmente (visto che vuoi killare un processo) è un
po' sotto pressione...
Che c'entra? Da Linux si puo' killare un processo anche dall'
interfaccia grafica...anche usando una consolle
si rimane sempre in ambiente grafico! Comunque la kill invia un signal
al processo (solo se si hanno i diritti)
che e' comunque una IPC, passa un comando dal livello utente al kernel,
esattamente come in Windows.
Che poi i tempi siano diversi, bisognerebbe sapere cosa diavolo fa
Windows , il che non e' noto... :-)
Post by Barry Lyndon
Infatti ho divorziato da Linux il giorno che hanno puntato sulle
interfacce grafiche. Senza contare la complicazione: prima in c:/etc
c'erano una decina di files, con 3 - 4 settavi la macchina e facevi
tutto; ora conl'interfaccia grafica sei fortunato se riesci a
stampare. E senza contare che un kernel stava perfettamente
incapsulato in meno di 640 Kb, senza <<chioccioline>> e chiamate esterne.
Ma se vuoi, puoi avere il tuo sistema Linux a consolle, senza grafica:
al contrario di Windows,
la parte grafica e' opzionale, basta non farla partire! ;-)
E se proprio vuoi, puoi ricompilarti il sistema al taglio, nelle
dimensioni che preferisci....

bye
brix
Barry Lyndon
2007-11-14 07:21:58 UTC
Permalink
Post by brix99luftballons
Che c'entra? Da Linux si puo' killare un processo anche dall'
interfaccia grafica...
Ciao e grazie di tutto: io stacco da questo ng di erda. Alla prossima,
Davide Quack
2007-11-14 08:29:18 UTC
Permalink
Ma se vuoi, puoi avere il tuo sistema Linux a consolle, senza grafica: al
contrario di Windows,
Su un server windows, se non ti colleghi alla console, non ha nessun
gestore di finestre caricato. Windows ha le sue grosse magagne, ma non
ho sentito nemmeno uno che le citasse. Forse perchè le *grosse* magagne
non sono visibili nei sistemi "comuni".
brix99luftballons
2007-11-14 09:19:03 UTC
Permalink
Post by Davide Quack
Post by brix99luftballons
Ma se vuoi, puoi avere il tuo sistema Linux a consolle, senza
grafica: al contrario di Windows,
Su un server windows, se non ti colleghi alla console, non ha nessun
gestore di finestre caricato. Windows ha le sue grosse magagne, ma non
ho sentito nemmeno uno che le citasse. Forse perchè le *grosse*
magagne non sono visibili nei sistemi "comuni".
"se" non ti colleghi ? In Windows l' interfaccia grafica e' parte
imprescindibile del sistema,
la si voglia o no.
A parte che "se" non ti colleghi, non e' che ci puoi fare granche' ;-)
Non si tratta di stabilire se e' meglio o peggio, il fatto e' che con
Linux, puoi confezionarti
un sistema ad hoc, anche compresso su un floppy.... con Windows non lo puoi
fare perche' 1) non se ne sa' nulla 2) Microsoft lo vieta.
Con XP Embedded e' possibile ritagliarsi un sistema ad oc , ma non al
livello di Linux e la cosa
e' assolutamente logica: uno e' un sistema open, completamente noto e
con i sorgenti a
disposizione, l' altro e' proprietario e completamente *ignoto* con
chissa quali API "undocumented"
di cui solo MS si avvantaggia (e i vari scrittori di libri ;-) )

-----[OT]-----
Personalmente ritego che, per quanto Windows sia meraviglioso ed il
massimo della vita,
non coverrebbe a nessuno essere nelle mani di un monopolista.
Dal punto di vista generale, andare al traino e nella direzione di una
azienda che si fa gli
affari suoi non e' conveniente per noi, sia come privati che come paese.
Dovremmo chiederci: dove sono finiti tutti i prodotti di Office
concorrenti di Microsoft?
(a parte OO...)
E adesso che entra nei prodotti embedded e nel gestionale, chiedo: ma
tutte le aziende
produttrici di gestionali non si preoccupano di fare la fine degli altri
produttori (estinti)?
Al fin fine, se un gestionale e' piu' veloce (perche' magari si
avvantaggia di "undocumented"
o di tecnologie ad oc integrate "casualmente" nel SO) , anche se
funziona solo sotto Win,
*costa* meno perche' devo usare un prodotto magari italiano che fa le
stesse cose ma non
non ha i vantaggi di Microsoft ????

Bye
brix
GM
2007-11-14 10:23:38 UTC
Permalink
brix99luftballons ha scritto:

Non vorrei avviare una sterile polemica ma tuttavia ho come la vaga
Post by brix99luftballons
"se" non ti colleghi ? In Windows l' interfaccia grafica e' parte
imprescindibile del sistema,
la si voglia o no.
Questo può essere parzialmente vero: da NT4 in poi una parte del sistema
grafico gira a livello executive (quindi non in user mode), ma in realtà
se non vuoi usare finestre puoi benissimo farne a meno: basta installare
come shell una console senza finestre (ad es. CMD) e con gli strumenti
giusti riesci a fare tutto quello che vuoi. Poi posso essere d'accordo
che magari nel sistema una qualche di finestra resti lo stesso (magari
non visibile), ma questo è "by design" (e in questo caso non parlerei di
"interfaccia".

In teoria (molto in teoria) potrebbe essere possibile (ma penso che sia
da poco sani di mente anche solo l'idea di provarci) tentare di non
utilizzare completamente il subsystem win32 e usare solo ad es. solo il
subsystem POSIX. A questo punto non dovrebbero esserci neanche tracce di
"finestre". Mi resta un dubbio sul logon ma credo che giri in un
subsystem apposito (che però di fatto credo sia un sottoinsieme "sicuro"
del subsystem win32). L'architettura di windows è di gran lunga più
complessa e articolata rispetto a linux...
Post by brix99luftballons
A parte che "se" non ti colleghi, non e' che ci puoi fare granche' ;-)
Be su un server...

...
Post by brix99luftballons
livello di Linux e la cosa
e' assolutamente logica: uno e' un sistema open, completamente noto e
con i sorgenti a
disposizione, l' altro e' proprietario e completamente *ignoto* ...
...

questo non è vero, e però sono in molti a sostenerlo. MS fa vedere i
sorgenti alle aziende che glie lo chiedono per sviluppare prodotti su
WIN (ovviamente a certe condizioni).
Ad esempio vedi
http://www.microsoft.com/resources/sharedsource/licensing/default.mspx


Veramente non ho voglia di fare polemica (e a dire il vero non ne ho
neppure il tempo :) )


Ciao
GM
brix99luftballons
2007-11-14 10:46:32 UTC
Permalink
Post by GM
Questo può essere parzialmente vero: da NT4 in poi una parte del
sistema grafico gira a livello executive (quindi non in user mode), ma
basta installare come shell una console senza finestre (ad es. CMD) e
con gli strumenti giusti riesci a fare tutto quello che vuoi. Poi
posso essere d'accordo che magari nel sistema una qualche di finestra
resti lo stesso (magari non visibile), ma questo è "by design" (e in
questo caso non parlerei di "interfaccia".
In teoria (molto in teoria) potrebbe essere possibile (ma penso che
sia da poco sani di mente anche solo l'idea di provarci) tentare di
non utilizzare completamente il subsystem win32 e usare solo ad es.
solo il subsystem POSIX. A questo punto non dovrebbero esserci neanche
tracce di "finestre". Mi resta un dubbio sul logon ma credo che giri
in un subsystem apposito (che però di fatto credo sia un sottoinsieme
"sicuro" del subsystem win32). L'architettura di windows è di gran
lunga più complessa e articolata rispetto a linux...
Infatti.
Ma chi ti dice che l' architettura Windows dovrebbe essere piu'
complessa di quella di Linux?
A parte che NON sarebbe un vantaggio comunque avere una architettura
complessa.
Post by GM
Post by brix99luftballons
A parte che "se" non ti colleghi, non e' che ci puoi fare granche' ;-)
Be su un server...
??
Post by GM
questo non è vero, e però sono in molti a sostenerlo. MS fa vedere i
sorgenti alle aziende che glie lo chiedono per sviluppare prodotti su
WIN (ovviamente a certe condizioni).
Ad esempio vedi
http://www.microsoft.com/resources/sharedsource/licensing/default.mspx
Visto i termini? sei un gestore di almeno 1500 macchine Windows? O una
organizzazione
governativa o una big enterprise ? Vuol dire che non sono disponibili.
Post by GM
Veramente non ho voglia di fare polemica (e a dire il vero non ne ho
neppure il tempo :) )
Bah!non mi pare proprio...sembra ogni accenno di critica verso *windows*
sia interpretata come reato..
ma lavorate tutti per Bill???????????
Davide Quack
2007-11-14 10:31:42 UTC
Permalink
Post by brix99luftballons
"se" non ti colleghi ? In Windows l' interfaccia grafica e' parte
imprescindibile del sistema,
la si voglia o no.
Non conosci minimamente quello di cui parli. Immagino che tu non te ne
renda conto però.
Post by brix99luftballons
A parte che "se" non ti colleghi, non e' che ci puoi fare granche' ;-)
Da questa frase ne deduco che tu non scrivi software che non ha bisogno
dell'intervento umano per funzionare. Che so un server web o similari.
Post by brix99luftballons
Non si tratta di stabilire se e' meglio o peggio, il fatto e' che con Linux,
puoi confezionarti
un sistema ad hoc, anche compresso su un floppy.... con Windows non lo puoi
fare perche' 1) non se ne sa' nulla 2) Microsoft lo vieta.
Scusa, ma a me cosa me ne frega di un sistema che sta un floppy? Ti fa
piacere? Usalo. Non venire a dire però che quello è un plus. E' un plus
se ti serve un S.O. che sta su un floppy. I miei linux sono tutti sul
Gb di spazio occupato.
Post by brix99luftballons
Con XP Embedded e' possibile ritagliarsi un sistema ad oc , ma non al livello
di Linux e la cosa
e' assolutamente logica: uno e' un sistema open, completamente noto e con i
sorgenti a
disposizione, l' altro e' proprietario e completamente *ignoto* con chissa
quali API "undocumented"
Se lo dici tu ci credo. Tu lavori abitualmente con CE vero? Tra l'altro
immagino che tu lavori abitualmente con Linux ritagliati su misura. Che
tu sappia come configurare e ricompilare il kernel e che tu lo faccia
abitualmente

Comunque io lavoro in una ditta e per essa scrivo sofware commerciale.
Io mi pago il mutuo con quello. Linux o Windows non me frega un cazzo.

Sulle documentazione poi stendiamo un velo pietoso. Mi sembra evidente
che tu non sei un professionista.
brix99luftballons
2007-11-14 10:47:54 UTC
Permalink
Post by Davide Quack
Post by brix99luftballons
"se" non ti colleghi ? In Windows l' interfaccia grafica e' parte
imprescindibile del sistema,
la si voglia o no.
Non conosci minimamente quello di cui parli. Immagino che tu non te ne
renda conto però.
Sei un pirla.
Post by Davide Quack
Post by brix99luftballons
A parte che "se" non ti colleghi, non e' che ci puoi fare granche' ;-)
Da questa frase ne deduco che tu non scrivi software che non ha
bisogno dell'intervento umano per funzionare. Che so un server web o
similari.
ROTFL
Post by Davide Quack
Post by brix99luftballons
Non si tratta di stabilire se e' meglio o peggio, il fatto e' che con
Linux, puoi confezionarti
un sistema ad hoc, anche compresso su un floppy.... con Windows non lo puoi
fare perche' 1) non se ne sa' nulla 2) Microsoft lo vieta.
Scusa, ma a me cosa me ne frega di un sistema che sta un floppy? Ti fa
piacere? Usalo. Non venire a dire però che quello è un plus. E' un
plus se ti serve un S.O. che sta su un floppy. I miei linux sono tutti
sul Gb di spazio occupato.
Sei sempre piu' pirla.
Post by Davide Quack
Post by brix99luftballons
Con XP Embedded e' possibile ritagliarsi un sistema ad oc , ma non al
livello di Linux e la cosa
e' assolutamente logica: uno e' un sistema open, completamente noto e
con i sorgenti a
disposizione, l' altro e' proprietario e completamente *ignoto* con
chissa quali API "undocumented"
Se lo dici tu ci credo. Tu lavori abitualmente con CE vero? Tra
l'altro immagino che tu lavori abitualmente con Linux ritagliati su
misura. Che tu sappia come configurare e ricompilare il kernel e che
tu lo faccia abitualmente
Comunque io lavoro in una ditta e per essa scrivo sofware commerciale.
Io mi pago il mutuo con quello. Linux o Windows non me frega un cazzo.
no, mi sbaglio, sei una testa di cazzo.
Post by Davide Quack
Sulle documentazione poi stendiamo un velo pietoso. Mi sembra evidente
che tu non sei un professionista.
Acci, mi sono sbagliato ancora... un evidente demente.
?manu*
2007-11-14 16:26:28 UTC
Permalink
Post by Davide Quack
Su un server windows, se non ti colleghi alla console, non ha nessun
gestore di finestre caricato. Windows ha le sue grosse magagne, ma non
ho sentito nemmeno uno che le citasse. Forse perchè le *grosse* magagne
non sono visibili nei sistemi "comuni".
Puoi installare Windows su un computer senza scheda grafica?

E.
GM
2007-11-14 16:41:50 UTC
Permalink
Post by ?manu*
Post by Davide Quack
Su un server windows, se non ti colleghi alla console, non ha nessun
gestore di finestre caricato. Windows ha le sue grosse magagne, ma non
ho sentito nemmeno uno che le citasse. Forse perchè le *grosse*
magagne non sono visibili nei sistemi "comuni".
Puoi installare Windows su un computer senza scheda grafica?
E.
Non capisco a cosa miri la tua domanda, ma la risposta è si.
Continua a leggere su narkive:
Loading...