Newsgroup: it.comp.os.dibattiti
Titolo: Cerco collaboratori per........

Salve a tutti/e. Chi ha cosıı tanto tempo da aiutarmi a creare un sistema operativo da sviluppare usando solo il C++ ?? Non prendetelo come uno scherzo. Rispondete all'indirizzo e-mail 
daniel...@inwind.it
P.S. Se esistono linguaggi migliori, ma semplici, del C++ indicatemeli nella e-mail.
Distinti saluti.
------------------------------------------------------------------------
Questo messaggio e` stato inviato da 
http://www.inwind.it

 scherzo.
Per quanto riguarda il kernel la cosa migliore pare sia usare COMUNQUE il C 
classico, puro e semplice, e l'asm per quelle parti che ne abbisognano. Al 
massimo tutte le librerie che ci girano attorno dovrebbero/potrebbero usare 
c++
http://www.atheos.cx
-- 
limaCAT

 ne abbisognano.
Sono cose che paiono solo a chi non conosce il C++.
Ciao.

 Per quanto riguarda il kernel la cosa migliore pare sia usare COMUNQUE il
C
dico una cazzata se credo di ricordare che le motivazioni di Linus fossero
basate sulla mancanza di compilatori decenti... 10 anno fa?

basate sulla mancanza di compilatori decenti... 10 anno fa?
Ricordo di aver letto in una intervista su Linux Journal (credo) che
il primo prototipo di kernel lo aveva realizzato in c++, ma di
giudicare tali compilatori non ancora maturi rispetto ai compilatori
c. Inoltre giudicava che le features del c++ (ereditarieta' e
polimorfismo) contribuissero a rendere poco chiaro il codice a chi
doveva effettuare la manutenzione, in quanto nascondono troppi
dettagli dell'implementazione.
icq 122395780

 dettagli dell'implementazione.
Dovrebbe essere al contrario: piu' chiaro perche' nasconde dettagli 
implementativi. Se non e' cosi' e' probabile che il software non sia stato 
pensato object-oriented.
Poi, se e' giusto o meno scrivere un kernel object-oriented e' un altro 
discorso.
-- 
Balrog ):E...
fabricius<at>ianus<dot>net

pensato object-oriented.
Dipende come al solito dal programmatore.
Studiando un pò di codice c++ (xerces e freeodbc) le mie certezze sul
c++ sono un pò diminuite.
Trovo un pò difficile tracciare la gerarchia delle classi e sapere se
una funzione è polimorfica o no.
Questo riguarda me è ovvio. 
icq 122395780

 c++ sono un pò diminuite.
Oh, guarda, io ci ho messo un po' di tempo a capire qualcosa su come vadano 
utilizzati oggetti e classi. E tuttora non credo di aver raggiunto un 
livello soddisfacente.
Personalmente ho trovato molto utile la lettura di quello che oramai credo 
si possa definire un classico:
Design Patterns
Gamma, Helm, Johnson, Vlissides
Addison-Wesley



No, soprattutto se costruisci un microkernel (al giorno d'oggi
pressoche' tutti i nuovi progetti, se non sono microkernel, ci si
avvicinano il piu' possibile). Come fa notare anche Shapiro, spiegando
come mai stiano riscrivendo _oggi_ Eros-OS da C++ a C, se hai una
struttura cosi' complessa da richiedere meccanismi del C++ come
l'ereditarieta', NON stai scrivendo un microkernel. Non si tratta
comunque dell'unico motivo:
http://www.eros-os.org/pipermail/eros-arch/2001-January/002666.html
Shapiro non e' uno sprovveduto in materia, visto che il suo "A C++
toolkit" e' un ottimo libro (l'unico difetto e' che il C++ di oggi e'
molto diverso da quello di dieci anni fa, quando il libro fu scritto).
Ti diro' di piu': il mio kernel ideale e' minuscolo - non piu' di 10 o
20 KByte - e scritto "a mano" in puro assembly. Le sue implementazioni
sono specifiche per ogni singola architettura. Ne consegue che
potenzialmente potrebbero essere totalmente diverse l'una dall'altra,
in modo da sfruttare il piu' possibile le varie particolarita' di una
architettura: su una CPU vorresti poter usare un albero per certe
strutture interne piuttosto che una lista, ecc. Ai fini pratici cio'
non e' affatto un difetto e non importa, perche' comunque quello che
il kernel rende visibile agli strati superiori (driver e
applicazioni), cioe' la sua interfaccia, e' sempre uguale, a
prescindere dal suo funzionamento interno.
Paradossalmente, soprattutto quando hai ridotto il kernel ai minimi
termini, si fa prima a riscrivere tutto da zero in assembly per una
nuova architettura, piuttosto che ritoccare qua e la' il codice
esistente. Detto in altre parole, almeno a mio parere il kernel
consiste solo e soltanto di quel codice che per forza di cose non e'
portabile. Tutto il resto e' superfluo e puo' tranquillamente
risiedere nei livelli superiori. Vero, l'assembly puo' diventare
ingestibile, ma 10-20KB di codice sono piu' che ragionevoli. Capirei
le obiezioni se si trattasse di cento volte tanto, ma non e' questo
il caso.
Cose come quelle che dici tu paiono solo a chi non ha mai scritto un
kernel. ;)
-- 
 "You pay for love                              but the hate comes free"
 Rudi Chiarito         SGML/XML, user interface, i18n         Amiga Inc.
 
ru...@amiga.com
 
http://amiga.com/

 chi non ha mai scritto un kernel. ;)
Sulla questione dell'assembly non posso che darti ragione (mi fido
ciecamente di quello che tu dici), ma sulla maggior attitudine del C non
sono assolutamente d'accordo, se non per (come sopra detto) la mancanza di
compilatori adatti o di programmatori adatti.
Ciao.

 Sono cose che paiono solo a chi non conosce il C++.
Ok, glielo dici tu all'autore di Atheos? :)))))
-- 
limaCAT

Nick Shodan wrote:

A sto punto metto in palio un premio a chi trova la risposta alla seguente 
domanda: chi ha detto che il c+asm rispetto al c++ rendeva piu' semplice il 
debug?
-- 
limaCAT

 No, soprattutto se costruisci un microkernel (al giorno d'oggi [...]
Non escludo che l'OP parlasse di C++ intendendo il C.
E' sempre piu' comune trovare scritto "C/C++" invece di uno o
dell'altro linguaggio. Sono due cose completamente diverse, ma
questo purtroppo non lo sanno tutti.

c++
Forse pare la cosa migliore per quelli che il C++ non lo conoscono
affatto o lo conoscono soltanto dai "favolosi" tutorial che si trovano
in giro per la rete(dal valore inferiore all'immondizia).
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----

dettagli dell'implementazione.
E' una sua opinione, rispettabile ma completamente sbagliata.
Del resto l'ostinazione di utilizzare a tutti i costi il C per i
kernel di Linux ha portato anche all'uso di tecniche programmatorie
piuttosto barbare(come i goto, che nel C++ possono essere
elegantemente evitati con un uso adeguato delle eccezioni) che
sicuramente non rendono il suo codice molto chiaro.


debug?
Dipende sempre dal programmatore il fatto che il codice sia semplice
da debbuggare.
Io in genere (quelle pochissime volte che programmo in c++) accanto
all' uso di una funzione, metto il nome nome dell'header da cui
proviene. In questo modo so gia' dove beccarla.
icq 122395780

accusava nei confronti del C.
L'unica cosa di cui sento la mancanza è una libreria standard per i
socket.
Sbaglio oppure ci sono alcuni kernel unix implementati in c++?
icq 122395780

proviene. In questo modo so gia' dove beccarla.
Si vede che non hai mai usato l'editor del BCB(Borland C++ Builder).
Basta tenere premuto ctrl e cliccare su una qualsiasi chiamata alla
funzione per risalire alla sua definizione.


funzione per risalire alla sua definizione.
Veramente uso quello. 
Deduco quindi che sono più ignorante di quel che credessi :-(
Però se lo editi con un editor di testo, la cosa torna utile :-)
icq 122395780

in giro per la rete(dal valore inferiore all'immondizia).
Prova solo a toccarmi 
bruceeckel.com
, che ti stacco le mani :) ...
-- 
 __
| _         "The Internet is slow, could you please reboot it ?"
|__|iambo   mailto:
gabr...@giambonini.com
 
www.giambonini.com



...ma sviluppa kernels ;-)
Leonardo
-- 
Microsoft Outlook: il primo news reader con supporto messaggistica RAID 1.

 
A Leona`, e basta con 'sta storia C vs. C++ ;-)
bye,
-- 
  Piergiorgio Sartor