AmigaCori ha scritto:Mmmm da qualche parte ti avevo detto che UNIX mi sembra fosse scritto interamente il C, beh, l'avevo letto dove non so...e l'ho ritrovato in wikipedia sotto la voce UNIX, dove viene descritto UNIX come un kernel scritto in C...
Il primo UNIX è stato scritto quasi interamente in C. Ovviamente determinate parti erano in asm, ma il linguaggio assolutamente dominante fu C.
Ma questo se era "strano" nel 1969, quando buona parte dei sistemi operativi era scritta in altro, nel 2008 non è così insolito. Di fatto anche Windows è scritto in buona parte in C/C++.
cioe', non me lo ero sognato...poi leggendo "UNIX Networking Programming" sono rimasto colpito dal fatto che comandi come getpid o..beh, un po' tutti...siano scritti in C, io credevo che fossero scritti in Assembler perche' piu' veloci nell'esecuzione (visto che l'Assembler e' un linguaggio di piu' basso livello rispetto al C...anche se ho letto varie classificazioni dello C da linguaggio di alto livello a linguaggio ponte tra alto e basso livello) invece no, sono in C, quindi 2+2=4 ed UNIX e', da quello che ho letto e capito, scritto in C
No: su UNP non ti dice che quei comandi sono scritti "in C". Te li fa chiamare da C. Di fatto su un sistema Unix potrebbero essere scritti in Pascal o in Asm. Semplicemente quella deve essere la loro interfaccia.
Il fatto che poi nessuno abbia voglia di scrivere vasti pezzi di OS in Asm o in Pascal è una cosa completamente diversa. Ecco... dentro potrebbero essere scritti in C++, per dire.
Il fatto che l'ASM sia più veloce del C è poi un luogo comune. E' un discorso malposto, anzi. Dire 'X' è più veloce di 'Y' non vuole dire molto: sostanzialmente dipende da chi scrive il codice e da quello che stai scrivendo.
Sicuramente se in asm devi mantenere l'ABI convenzionale sul tuo sistema, vai a perdere molto appeal di velocità. Oltretutto sulle moderne CPU superscalari (dove moderne significa in buona sostanza "con meno di 15/20 anni") gli umani sono notori per prendere batoste dai compilatori.
Il motivo è semplice: per problemi che non sto a spiegarti, ci sono modi più efficienti per disporre le istruzioni macchina di altri. Questi "modi" non dipendono dalla singola "famiglia" di CPU, ma proprio dal modello di processore. Di fatto un compilatore è piuttosto bravo a fare questo genere di cose, si tiene dei tabelloni su come disporre e poi esegue.
Un umano ci impazzisce dietro queste cose: con tempo e costanza magari ci arriva anche lui. A patto che abbia un bel po' di conoscenze sull'argomento. Peccato che quando vuole che il suo programma giri altrettanto bene sulla nuova famiglia di CPU di (per dire) Intel, deve riscriverlo e mantenere due versioni. Il compilatore invece ricompila e tutti contenti.
Oltretutto la maggior parte delle cose che di fatto si fanno con un computer, sono I/O bound. La velocità si ha ottimizzando il codice ad alto livello, non con la microottimizzazione, visto che il peso delle chiamate di sistema non è commensurabile con le altre cose. E questo è il motivo per cui un sacco di roba iper-efficiente è scritta in Python e non in C.
Comunque...non so se l'hai mai fatto, ma dovresti perdere tempo un po' su un A500 + AmigaOS1.3, forse capirai perche' gli Amighisti sono cosi' incalliti ed ottusi aspettando il *messia*: AOS4.0
Posso dire la mia? Io credo sia una forma di "mania" come un altra. Ognuno ha i suoi pallini e io non sono nessuno per entrare in merito.
Sono un tecnico, e per me la "religione" in campo informatico non ha spazio (manco fuori, eh, ma questo è un altro discorso). Mi spiego: quello che è stato un ottimo sistema nei primi anni 90, non necessariamente deve essere un buon sistema 20 anni dopo. Anche se le persone che lo facessero fossero le stesse.
Amiga OS 4 lo ho provato a casa di Ikir. Bello eh. Ma poi tendo a doverci lavorare. Cioè il mio uso del computer non è email/web/office. La disponibilità di determinati programmi è semplicemente fondamentale.
Dopo di che, io Amiga 3.1 lo ho pure provato in macchina virtuale. Che dire, dicono tutti essere "semplice", ma io non capivo dove andare a battere la testa.
Il team che sviluppo' Amiga era composto per lo piu' da ingengeri neolaureati che volevano *inventare* un nuovo concetto di informatica, avevano voglia e passione da vendere, quasi idealisti...quindi crearono qualcosa di diverso.
Buon per loro e per voi... ma di chi è composto oggi il team Amiga?