PDA

View Full Version : Il filone 2.6.x durera' per sempre?


sonnet
24-04-2010, 11:59
Come da titolo mi chiedo quanto altro tempo ancora durera' questo filone di kernels prima di una major release.
La 2.0 fu rilasciata nel 96
la 2.2 nel 99
la 2.4 nel 01
e la 2.6 nel 04 in mendia ogni 2-3 anni una nuova release.
L'ultima dura da ben 6 anni...
Come mai tutta questa longevita'?

Slayer86
24-04-2010, 14:57
non penso durerà per sempre...

io mi sono avvicinato da poco al modo linux (sono circa 3 anni...) quindi non ho idea di come fossero strutturati i kernel precedenti al 2.6.x
tuttavia poco tempo fa linus torvald in persona ha mosso una critica alla sua attuale cretura, dicendo che è diventata obesa XD

Il kernel attuale è vecchio come struttura e questo è evidente a tutti! Che io sappia non sono stati fatti annunci ufficiali o altro ma l'idea di una futura riscrittura è stata sicuramente buttata giù da quelli che contano!!!

Gimli[2BV!2B]
24-04-2010, 15:33
Riporto questa vecchia intervista, di più di tre anni fa. (http://www.zdnet.com.au/torvalds-surprised-by-resilience-of-2-6-kernel-339273095.htm)
I always said that if there is something so fundamental that everything will break then we will start at 2.7 at that point.
At the same time we have actually been able to do fairly invasive things even while not actually destabilising the kernel. It has surprised me and other people how well we have been able to do big changes that did not cause havoc.

Altra intervista, poco più recente, qui tirano in ballo un fantomatico kernel 3.0 (http://apcmag.com/linus_torvalds_talks_future_of_linux_page_2.htm) (intervistatore niubbo o stratagemma giornalistico?)We really don't expect to need to go to a 3.0.x version at all: we've been very good at introducing even pretty big new features without impacting the code-base in a disruptive manner, and without breaking any old functionality.

That, together with the aforementioned lack of a marketing department that says "You have to increase the version number to show how good you are!" just means that we tend to just improve everything we can, but you're not likely to see a big "Get the new-and-improved version 3!" campaign.

A tre anni da quell'intervista non ho letto nulla, nemmeno voci o discussioni, sull'apertura di un nuovo branch instabile.

kernelex
24-04-2010, 16:10
non cerco notizie sull'argomento, che tanto se capita qualcosa di interessante girerà sui blog....
nulla di nuovo sotto il sole :O


L'ultima dura da ben 6 anni...
Come mai tutta questa longevita'?
a volte mi viene da pensare che linus ne farebbe volentieri a meno di continuare lo sviluppo classico del kernel classico: un (forse mal) proggetto vecchio che non riesce a tenere il passo con esigenze dei tempi nuovi?
cioè? magari lo farebbe dimagrire per lavorare al meglio su dispositivi mobili (che magari entrano più dindini) e server.

bicchiere
24-04-2010, 18:14
> Il filone 2.6.x durera' per sempre?

Penso di SI'

CaFFeiNe
24-04-2010, 18:28
non cerco notizie sull'argomento, che tanto se capita qualcosa di interessante girerà sui blog....
nulla di nuovo sotto il sole :O


a volte mi viene da pensare che linus ne farebbe volentieri a meno di continuare lo sviluppo classico del kernel classico: un (forse mal) proggetto vecchio che non riesce a tenere il passo con esigenze dei tempi nuovi?
cioè? magari lo farebbe dimagrire per lavorare al meglio su dispositivi mobili (che magari entrano più dindini) e server.

veramente gia' lavorano al meglio su dispositivi mobile... il kernel di linux è facilmente snellibile fortunatamente.... ed è alleggeribile non compilando proprio i moduli che non interessano...

pabloski
24-04-2010, 18:31
perchè mai sarebbe necessario un nuovo ramo?

il 2.6 è in giro da 6 anni ok, però confrontarlo con quello che era 6 anni fa è impossibile, visto che è cambiato praticamente tutto

una major rewrite? certo si può ma che altro resta da fare? creare un linux microkernel? altro non mi pare

linux sta al passo con i tempi molto più di windows e anche di macos

pesante? non scherziamo, confrontato con gli altri due è una piuma....ok macos boota in pochi secondi, provate lucid lynx e noterete che fa anche meglio :D

se proprio volevano creare un nuovo ramo avrebbero dovuto farlo tempo fa, magari con l'introduzione del kernel mode setting o con dri2

attualmente l'unica rivoluzione sensata che si potrebbe provare è sostituire gcc con llvm


veramente gia' lavorano al meglio su dispositivi mobile... il kernel di linux è facilmente snellibile fortunatamente.... ed è alleggeribile non compilando proprio i moduli che non interessano...

concordo....l'architettura di linux è il meglio che si possa avere, forse i microkernel sono meglio ma solo in termini di semplicità di customizzazione, nel senso che hai un'api meglio organizzata e una più rigida separazione tra i moduli ( anche quelli di sistema )....però tutte queste cose sono problemi che vede il kernel developer o chi sviluppa i driver non certo l'utente

inoltre l'eleganza e l'organizzazione dei microkernel la paghi sotto forma di cicli di clock...in quanto a capacità di sfruttare la cpu al massimo senza farle fare cose inutili e ridondanti, linux è il migliore in assoluto

kernelex
24-04-2010, 19:00
veramente gia' lavorano al meglio su dispositivi mobile... il kernel di linux è facilmente snellibile fortunatamente.... ed è alleggeribile non compilando proprio i moduli che non interessano...
so che lo puoi snellire così tanto che dopo che riavvii la macchina non funziona più neanche il mouse.

con lavorare meglio non intendo che adesso lavora male.
però, se per chissà quali leggi di mercato in cassa entrano più soldi da un dispositivo mobile che non dal mio pc desktop, il 2.6 può anche stare così.
penso che si intraveda all'orizzonte di linux un forte business, ma non provveniente dal mercato desktop.
che oggi non si veda il kernel lato desktop solo come un laboratorio sperimetale?

io ricordo che 8 anni fa c'era sempre un enorme fermento, di fatto e di notizia intorno al 2.4 e al 2.6.

pabloski
24-04-2010, 19:12
Il motivo per cui vedi più fermento sul lato mobile è che oggi l'industria è tutta focalizzata sul mobile.

Se pensi che il fenomeno del 2009 sono stati i netbook, capisci che le industrie ormai ne hanno le scatole piene dei pc.

Sul fronte desktop se guardi ubuntu ad esempio ti rendi conto che non è per nulla un settore trascurato. Se guardi alla situazione dell'hardware per pc è enormemente migliorata. Oggi i produttori di hardware creano roba compatibile con linux, aderiscono agli standard open in fatto di interoperabilità ( uvc per le webcam ad esempio ).

Fare la separazione desktop/mobile non è esatto. Se guardi l'iphone o i vari smartphone android ti accorgi che sono più simili a computer che a telefoni.

Le distribuzioni per i desktop sembrano dei laboratori solo perchè sei costretto a limarle con le tue mani, mentre se compri uno smartphone android o meego c'hanno già pensato gli oem a verificare che dri2 giri, che i driver per la scheda grafica vanno, ecc....

pabloski
24-04-2010, 19:27
architetturalmente parlando linux non è al passo con i tempi e non può esserlo per definizione. nessuno pensa che ogni sistema operativo possa avere un kernel riscritto da zero ma naturalmente non si può nemmeno pensare che un kernel qualsiasi possa durare 10-20 anni senza andare incontro alla fine del suo ciclo di sviluppo. arriverà un giorno in cui dovranno decidere di cambiare architettura al kernel, è inevitabile.

perchè dici questo? windows usa più o meno la stessa architettura ( no le buzzword tipo kernel ibrido non significano nulla in termini reali ) e in più non ha la flessibilità dovuta al virtual file system, cosa che permette a linux di girare su svariate architetture con caratteristiche davvero bizzarre ( il processore cell ad esempio )

cambiare l'architettura di linux può essere solo necessario se si vuole rendere la vita del programmatore più facile, altrimenti non c'è nessuna ragione per farlo

Dcromato
24-04-2010, 21:12
Se coloro che lo sviluppano ci lavornao tranquillamente sopra non vedo perchè cambiare.

pabloski
25-04-2010, 10:39
perchè un paradigma non può essere valido all'infinito. la stessa microsoft sta lavorando su nuovi kernel basati su nuovi paradigmi (vedi Singularity (http://research.microsoft.com/pubs/69431/osr2007_rethinkingsoftwarestack.pdf)) quindi credo che anche per linux arriverà un giorno in cui dovranno sedersi intorno a un tavolo e decidere come svoltare.. :)

oppure linux sarà sostituito da haiku...in genere l'opensource lavora così

riguardo microsoft, vedo molti proclama ma pochi fatti....singularity è un progetto impossibile da realizzare in pratica, perchè la sua logica managed è fallata alla radice

in pratica singularity richiede un garbage collector, pezzo di codice molto grande e complesso in cui il numero di bug si conta nell'ordine delle migliaia

l'altro problema sono i driver, che devono necessariamente accedere all'hardware e bypassare le restrizioni imposte dalla virtual machine....

infine ad un confronto con l4 ha perso in maniera plateale risultando molto più lento nel context switch rispetto a l4 che usa invece la protezione hardware

secondo me l'unica strada sono i microkernel ma per un fatto di eleganza, pulizia e separazione dei moduli software

è e rimane un problema di come rendere più facile la vita al programmatore non come sfruttare meglio l'hardware

linux ha vinto già molte sfide e si è dimostrato flessibile....non esiste un altro sistema operativo che giri su così tante architetture diverse

ricordo ad esempio quando uscì il Cell, la IBM portò linux nel giro di 3 settimane e nel modo più semplice possibile, cioè sfruttando il virtual filesystem e aggiungendo dei driver per il supporto degli SPE

in pratica linux aveva accesso agli SPE in una maniera banalissima che aveva richiesto l'aggiunto di un semplice driver

per fare un paragone, windows avrebbe richiesto modifiche pesanti al modulo kisystemservice, allo scheduler, al gestore delle interruzioni e al memory manager

insomma parliamo di un'architettura che in quanto a flessibilità non ha nulla da invidiare ad altre soluzioni più gettonate, del resto unix fu creato in un periodo in cui esistevano cose tipo processori di canale e altre amenità al limite dell'assurdo, in pratica un mondo totalmente disomogeneo ( fu per questo che fu implementato il concetto di filesystem estensibile e il mounting )

pabloski
25-04-2010, 11:09
sarà flessibile di certo il kernel linux non lo metto in dubbio, ma è improbabile che scelte architetturali degli anni 70' possano adattarsi senza problemi all'hardware/software all'infinito... singularity è solo un esempio, non ho detto che è meglio.. fatto sta che anche in MS pensano ad architetture nuove, quindi mi sembra alquanto improbabile che il kernel linux così com'è possa durare "per sempre" come è da oggetto del thread..

beh niente dura per sempre :D

ma il punto è che non avremo il problema di cambiare linux, perchè tra massimo 5 anni l'architettura di Von Neumann sarà bella e sepolta

HP ha promesso di mettere in commercio entro 3 anni i primi processori basati su memristori e lì ovviamente cambieranno completamente le regole del gioco e sparirà il concetto di programma memorizzato per entrare nell'era dell'hardware riconfigurabile

MS pensa ad alternative perchè windows è limitato già per l'hardware che esiste oggi.....portare windows su tutte le architetture su cui gira linux, per ms sarebbe già oggi impossibile senza creare millemila rami del kernel ed ecco perchè hanno cominciato a pensare ad eventuali alternative

WarDuck
25-04-2010, 12:52
perchè dici questo? windows usa più o meno la stessa architettura ( no le buzzword tipo kernel ibrido non significano nulla in termini reali ) e in più non ha la flessibilità dovuta al virtual file system, cosa che permette a linux di girare su svariate architetture con caratteristiche davvero bizzarre ( il processore cell ad esempio )


La portabilità di Linux è dovuta al fatto che è al 95% codice scritto in C, e per il restante 5% scritto in assembly (quindi eventuali modifiche interessaranno più che altro questo 5%, per il resto se il codice C è scritto in maniera tale da essere portabile basta una ricompilazione).

Windows è molto più micro-kernel che kernel monolitico, al contrario di Linux, che per altro non è da molto che supporta il caricamento dei moduli a run-time.

Ma è risaputo che i micro-kernel puri hanno un overhead prestazionale non trascurabile, ma una stabilità maggiore proprio a causa dell'isolamento.

Per questo si usano approcci ibridi, e questa parola ha un senso: sono architetture di compromesso (come SEMPRE accade nell'ingegneria), si tratta di decidere cosa mettere nel kernel e cosa lasciare fuori.

Spesso memory manager e scheduler sono integrati nel kernel, mentre la teoria li vedrebbe fuori.

Tra l'altro Microsoft ha messo a disposizione in Windows 7 64bit uno scheduler in user mode, così che i processi che fanno uso di quello non debbano passare per il kernel (= maggiori prestazioni).


cambiare l'architettura di linux può essere solo necessario se si vuole rendere la vita del programmatore più facile, altrimenti non c'è nessuna ragione per farlo

Aumento delle features a disposizione dei programmatori va di pari passo con l'aumento delle dimensioni del kernel, per forza di cose.

La scrittura di un software generico per forza di cose deve prevedere una serie di scenari (in questo caso hardware) disparati, cosa che non avviene in altri casi (vedi palmari, ma anche gli stessi mac).

Tant'è che non sta scritto da nessuna parte che girare su più piattaforme sia necessariamente un bene, dimostra flessibilità certo, che è solo un'aspetto della storia.

Bisogna anche essere realisti, avere un sistema sviluppato su una sola piattaforma può portare ad una semplificazione del codice e relativa ottimizzazione non indifferente.

Riguardo a Singularity è un progetto di ricerca proprio per valutare pro e contro di un SO managed, per cui dire "non si può fare" a priori è abbastanza illogico.

pabloski
25-04-2010, 13:18
La portabilità di Linux è dovuta al fatto che è al 95% codice scritto in C, e per il restante 5% scritto in assembly (quindi eventuali modifiche interessaranno più che altro questo 5%, per il resto se il codice C è scritto in maniera tale da essere portabile basta una ricompilazione).


beh pure windows è scritto in C e anzi il sottosistema Win32 è scritto in C++

il problema è che quando ti trovi di fronte un processore con una CU e tanti DSP o SPE ( come il Cell ) non puoi in windows supportare gli SPE o i DSP in maniera semplice senza dover necessariamente modificare la logica di scheduler, memory manager, gestore delle interruzioni


Windows è molto più micro-kernel che kernel monolitico, al contrario di Linux, che per altro non è da molto che supporta il caricamento dei moduli a run-time.


windows è ibrido per ammissione di microsoft, ma francamente ibrido significa ben poco

windows è più che altro un sistema operativo modulare che ad ogni versione porta dentro e fuori dallo spazio del kernel alcuni driver e sottosistemi

linux è pure lui un sistema operativo e dall'introduzione di fuse in poi è equivalente a windows in termini di modularità del kernel

l'unico dei 3 che può definirsi a ragione diverso e tendente al microkernel è macos


Ma è risaputo che i micro-kernel puri hanno un overhead prestazionale non trascurabile, ma una stabilità maggiore proprio a causa dell'isolamento.


vecchie statistiche....L4 straccia i kernel monolitici più blasonati in praticamente qualsiasi benchmark, a partire dal context switch fino al message passing e alla sincronizzazione

del resto QNX che è diffusissimo in ambiente embedded è più veloce di tutti i sistemi monolitici conosciuti


Per questo si usano approcci ibridi, e questa parola ha un senso: sono architetture di compromesso (come SEMPRE accade nell'ingegneria), si tratta di decidere cosa mettere nel kernel e cosa lasciare fuori.


sarebbe così se ibrido avesse un significato specifico

l'approccio ibrido è una buzzword per non dire niente....di fatto siamo di fronte a sistemi operativi monolitici ma modulari

un sistema operativo ibrido non fa uso estensivo di multithreading e IPC e questo ne fa di fatto un sistema simile a quelli monolitici....caricare servizi e moduli on-demand, ma doverli poi linkare a load time e ficcarli nello spazio d'indirizzamento del kernel non vuol dire essere simili ai microkernel

la differenza è che linux definisce questo tipo di kernel modulare, mentre microsoft e altri lo chiamano ibrido perchè fa figo


Spesso memory manager e scheduler sono integrati nel kernel, mentre la teoria li vedrebbe fuori.


lo scheduler sta fuori solo in un caso che è quello degli exokernel....il memory manager invece è esterno in tutti i microkernel di terza generazione


Tra l'altro Microsoft ha messo a disposizione in Windows 7 64bit uno scheduler in user mode, così che i processi che fanno uso di quello non debbano passare per il kernel (= maggiori prestazioni).


non confondiamo, lo scheduler UMS introdotto in 7 serve per schedulare i thread dei processi, mentre lo scheduling dei processi è affidato comunque allo scheduler del kernel

in sostanza un processo ha la facoltà di decidere in che ordine e secondo quali parametri ognuno dei suoi thread va eseguito, ma questo sempre nell'ambito del time slice concesso al processo

in pratica ad ogni thread switch dell'UMS deve corrispondere un task switch dello scheduler del kernel

per dirla in breve hanno implementato le stesse funzionalità che apple ha implementato con grand central


Aumento delle features a disposizione dei programmatori va di pari passo con l'aumento delle dimensioni del kernel, per forza di cose.


dipende dalle feature e da come si gestiscono....per esempio i microkernel hanno la capacità di mantenere in esecuzione solo i moduli strettamente necessari per gestire l'hardware in uso

è chiaro che se devo supportare tremila schede madri, ognuno coi suoi difetti e i suoi workaround, il codice cresce


La scrittura di un software generico per forza di cose deve prevedere una serie di scenari (in questo caso hardware) disparati, cosa che non avviene in altri casi (vedi palmari, ma anche gli stessi mac).


certo, ma gli scenari possono essere gestiti anche dinamicamente come fanno i microkernel, senza che sia necessario avere nel kernel tutto il codice per gestire tutte le possibili combinazioni


Tant'è che non sta scritto da nessuna parte che girare su più piattaforme sia necessariamente un bene, dimostra flessibilità certo, che è solo un'aspetto della storia.


certamente, ma il punto è che quella flessibilità in linux rende superfluo un suo riadeguamento architetturale

l'autore del thread si chiedeva se fosse necessario cambiare le fondamenta di linux, ma visto quanto è flessibile la vedo come una necessità molto lontana


Bisogna anche essere realisti, avere un sistema sviluppato su una sola piattaforma può portare ad una semplificazione del codice e relativa ottimizzazione non indifferente.


semplificazione e ottimizzazione si possono ottenere anche usando un approccio modulare

se ti serve un kernel da desktop è inutile che mette nel kernel pure quello per i server

linux lo fa usando i moduli e la ricompilazione che i winari tanto rinfacciano a noi poveri cantinari :D


Riguardo a Singularity è un progetto di ricerca proprio per valutare pro e contro di un SO managed, per cui dire "non si può fare" a priori è abbastanza illogico.

singularity è un progetto di ricerca ovviamente, midori però è il tentativo di implementarlo

quel tipo di kernel si può fare, del resto tutto si può fare, ma il gioco non vale la candela, nel senso che ottieni una protezione dei processi debole rispetto a quella hardware e ( come dimostrato da L4 ) performance inferiori

ha senso non sfruttare la protezione hardware se non riescono nemmeno a guadagnarci in velocità?

tavolone
26-04-2010, 00:06
Comunicare...in pratica si tratta di un problema di comunicazione, o sbaglio??
E' un problema di comunicazione tra hardware e software e tra parti dello stesso software che gestiscono lo stesso hardware o più hardware diversi.
In primis bisogna scegliere il linguaggio che sarà in grado di "riempire" in modo adeguato queste tre situazioni. Questo linguaggio poi deve essere sufficientemente "facile" per chi lo controlla e lo scrive e cioè l'uomo.

Ora visto che si stà parlando di limiti di evoluzione dei sistemi operativi kmi viene da chiedere un pò di cose.

1 - Il linguaggio C è in grado di creare sistemi operativi molto più evoluti di quelli attuali e che sono stati menzionati qui?

2 - i limiti dei sistemi attuali sono più legati al linguaggio di comunicazione adottato o all'uomo??

3 - L'hardware non può essere costruito in modo da capire il linguaggio usato??

Scusate tanto se mi sono intromesso, ma leggendo questa discussione mi sono venute di getto queste domande, che sinceramente non so neanche se abbiano senso nel mondo informatico. Magari imparo qualcosa di nuovo.

Aggiungo:

Windows: davanti ad un pc con dentro Windows è come dialogare con una persona affetta da invecchiamento precoce. Grandi idee e forse potenzialità,...ma non si mai in tempo a scoprirlo, muore prima!!!

Linux: E uno che sa e sa fare tutto, ma non lo dice a nessuno. Gli chiedi qualcosa e in silenzio e velocità lo fa, o se proprio va male non succede nulla!! Se proprio si insiste ti presta la sua attrezzatura e puoi trovare una soluzione da solo. Grazie Linux!!

MacOS: Io lo conosco poco, è sicuramente meno generoso di Linux, non comunica volentieri con tutti. Sa fare molte cose ma non sempre in modo facile, direi che fa pesare troppo quello che gli si chiede. comunque molto meglio di Windows.

Questi tre personaggi sono tutti destinati a morire!!??

:)

Fil9998
26-04-2010, 00:59
sarà pure pesante, e non mi pare,
ma ricompilato togliendo quello che non serve mi paer vada benissimo se confrontato a osx e a win.

teniamo conto che i "telefonini" su cui andrà avranno uno se non due core a 1 ghz ... e scheda video che pochi anni fa avevano i desktop.

stiamo parlando veramente ancora di telefonini?

imho NO

son PC portatili con cui puoi pure telefonare.

e questa è più o meno la "roba più piccola" su cui finisce il 2.6

fermo restando che ho qui in bel pentium prima serie che con puppy ancora si rende utile...

è come una trabant, è più quello ceh mi consuma in energia ceh quello ceh rende...

ma è come una trabant, un pezzo di storia.
:D

Fil9998
26-04-2010, 01:04
... e comunque fotte sega di quanto grasso è diventato il kernel.

uso uno dei primi AMD dual core 64 usciti 5 e rotti anni fa, 2 GB di ram e una nvidia 6600 con 128 MB di memoria,
azzo
ci faccio girare KDE con tutti gli effettini del menga Più xp in virtualbox e ancora ne avanza... non tantissimo, ma ne avanza.


di grazia: quale dei PC in commercio oggi non ce la fa a far girare linux in modo esemplare??

per non parlare della libidine di infilare una chiavetta huawei USB e trovarsela già configurata e funzionante, di scaricare un .deb e installarlo al volo solo cliccandoci sopra chè lui si smazza le eventuali dipendenze...

io vivo felicissimo con sto "gigante obeso di kernel"

pabloski
26-04-2010, 12:05
Comunicare...in pratica si tratta di un problema di comunicazione, o sbaglio??


anche, ma il problema dei sistemi operativi è creare un'astrazione della macchina che sfrutti la macchina stessa al massimo delle sue potenzialità, non perda tempo a fare cose inutili ( vedi l'eterno problema del context switch ) e si adatti ai casi d'uso ( cosa praticamente impossibile nel mondo pc visto che si fa di tutto e di più )


E' un problema di comunicazione tra hardware e software e tra parti dello stesso software che gestiscono lo stesso hardware o più hardware diversi.


entrambi, ma è un problema dell'uomo non del software

creare un gigante monolitico come linux è un problema per chi dovrà mettervi mano qualora dovesse cambiare l'ABI ( in passato è stato il grande problema di linux )....tu cambi una funzione nel kernel, per esempio levi o modifichi il tipo di un parametro, a quel punto tutti i driver che usano quella funzione, tutte le libc che richiamano quella funziona, ecc... vanno modificati e questo è un lavoraccio

i microkernel risolvono attuando una netta scissione tra implementazione e interfaccia e imponendo la retrocompatibilità delle interfacce

windows ha risolto imponendo la retrocompatibilità delle implementazioni ( ed ecco perchè è così mastodontico e pesante )

macos ha imposto la retrocompatibilità delle interfacce ( grazie al fatto che è scritto in objective-c ) nonostante non sia un microkernel vero e proprio

linux usa un approccio misto, in cui si cambiano le cose che vanno cambiate e quando bisogna fare una rivoluzione la si fa, ma si evita di cambiare quando non è strettamente necessario

ultimamente si sta adottando il metodo di affiancare il nuovo al vecchio ( vedi kms/dri2/gallium3d ) come fa windows, ma man mano il vecchio viene tolto dal kernel per evitare che ingrassi


1 - Il linguaggio C è in grado di creare sistemi operativi molto più evoluti di quelli attuali e che sono stati menzionati qui?


in pratica puoi farlo in assembly....c'era un sistema operativo chiamato Elate scritto in un assembly virtuale ( perchè in pratica usava un compilatore jit in modo da poter girare ovunque senza modifiche ) che supportava la programmazione ad oggetti

il problema è che l'uomo ha più difficoltà ad usare linguaggi di basso livello per fare cose di alto livello

ad esempio a metà anni '80 fu introdotto per questo motivo l'objective-c, linguaggio davvero molto potente e che ti permette di creare software complessi in pochi passi ( chi programma su iphone sa di cosa parlo )


2 - i limiti dei sistemi attuali sono più legati al linguaggio di comunicazione adottato o all'uomo??


ovviamente all'uomo...teoricamente puoi creare un OS intellilgente capace di capire cosa sta succedendo nella macchina e cambiare ad esempio le politiche di scheduling al volo

ma questo teoricamente, perchè nessuno scienziato c'è riuscito fino ad oggi


3 - L'hardware non può essere costruito in modo da capire il linguaggio usato??


si tratterebbe solo di esportare parte del software nell'hardware....lo si fa già oggi con le logiche riprogrammabili che sono processori in grado di autoriconfigurarsi dinamicamente

ma lo si fa per guadagnare velocità non per altro


Windows: davanti ad un pc con dentro Windows è come dialogare con una persona affetta da invecchiamento precoce. Grandi idee e forse potenzialità,...ma non si mai in tempo a scoprirlo, muore prima!!!


windows è vittima del suo successo, nel senso che non possono toccare nulla senza far scoppiare una rivoluzione

quando uscì vista, l'uac causò non pochi problemi a tutti...ricordo ancora i driver scritti di fretta da ATI che impallavano il sistema e disegnavano tanti begli arcobaleni sullo schermo :D


Linux: E uno che sa e sa fare tutto, ma non lo dice a nessuno. Gli chiedi qualcosa e in silenzio e velocità lo fa, o se proprio va male non succede nulla!! Se proprio si insiste ti presta la sua attrezzatura e puoi trovare una soluzione da solo. Grazie Linux!!


è un sistema che ha bisogno di customizzazioni prima di essere messo in mano all'utente

ho visto cose orribili con acer e linpus, tipo i driver grafici che non supportavano la scheda installato del netbook...no dico, vendere un netbook con un sistema che non ne supporta la grafica!?!

canonical per esempio l'ha capito e infatti ubuntu è una delle migliori distribuzioni in circolazione


MacOS: Io lo conosco poco, è sicuramente meno generoso di Linux, non comunica volentieri con tutti. Sa fare molte cose ma non sempre in modo facile, direi che fa pesare troppo quello che gli si chiede. comunque molto meglio di Windows.


macos è un sistema molto interessante sotto molti punti di vista

è uno unix, quindi in buona parte compatibile con linux e il suo genitore freebsd...non è un caso che su macos si possono installare tutti i programmi unix/linux/freebsd

il modello di programmazione è qualcosa di veramente eccezionale e che sta una spanna al di sopra degli altri....come ho detto sopra chi programma per iphone sa bene di cosa parlo

ovviamente è un mondo a sè, anche se ultimamente sta prendendo sempre più piede grazie ai successi di apple dovuti all'iphone/ipod/ipad e compagnia....

fondamentalmente dei 3 è il più avanzato


Questi tre personaggi sono tutti destinati a morire!!??

:)


magari.....lo stiamo aspettando da una vita...a metà anni '90 uscì Beos, un sistema che definire fantastico è dir poco....fallì per logiche commerciali sbagliate e per pressioni esercitate da ms sui produttori di pc

la apple lo voleva comprare, ma poi Jobs rientrò in apple e portò nextstep ( il padre di macos x )

oggi c'è un clone open che è haiku, speriamo che riesca ad imporsi almeno in una nicchia.....

c'è roba ancora più avanzata tipo qnx e l4 ma il primo è usato nelle automobili, centrali nucleari, robot industriali e l'azienda che lo produce non ha tutto quest'interesse a vederlo sui pc

il secondo è un insieme di protocolli su cui scrivere degli OS customizzati....ne esistono parecchi di cloni di L4 in giro, ma solo a livello di ricerca, niente di mainstream

per la cronaca non è che questi sistemi non siano presenti, è che non li vediamo....quando compri un navigatore satellitare è molto probabile che dentro ci sia qnx

così come spesso nei tv lcd c'è linux ( si quello grasso e grosso :D )