Crea il tuo forum GRATIS su GlobalFreeForum.com.

Un sistema operativo universale?

In questa sezione avverranno le discussioni sulla scienza e sulle arti. Si possono chiedere pareri e spiegazioni o postare i propri pensieri a riguardo di un argomento. Qui potete postare spiegazioni su un qualsiasi argomento: matematica, chimica, lingue etc...

Moderatori: Gruppo Admin, Gruppo Mod

Re: Un sistema operativo universale?

Messaggioda Style { HdS619 } » 03/09/2010 - 21:33

dexter ha scritto:
skary ha scritto:Si bhe uno standard comune è una possibilità , ma ha lo svantaggio di limitare il programmatore in quanto per determinate operazioni dipende dall'api del sistema operativo che ha determinate performance (e potrebbe costiturire un collo di bottglia) si fa comunque sentire.

Sarebbe bello permettere di caricarsi le chiamate al sistema (le varie api) come meglio si preferisce , magari anche dinamicamente (ogni programma ha le sue) miniaturizzando il sistema operativo alla sola gestione dei conflitti per le risorse (conflitti che deve evitare).

No, nonononono pessimo, errato, sbagliatissimo. Se ogni software si mette a caricare le sue librerie ci si ritrova con una macchina inutilizzabile, che spreca memoria su memoria (volatile e di massa) per far funzionare alla meno peggio 20 API diverse che fanno la stessa identica cosa, senza contare gli ovvii conflitti.

E' il più grande difetto di Linux (che secondo i soliti benpensanti sarebbe un grande vantaggio di libertà blablabla): miriadi di dipendenze, librerie non mantenute, mal scritte, fork, dipendenze irrisolte, versioning nauseabondo e via dicendo. La gente dovrebbe mettersi in testa che l'"ognuno per se" in certi ambiti non può essere una scelta vincente.


Bisogna trovare come in tutte le cose una via di mezzo quindi non va bene nè un programma che reimplementa da zero il mondo nè uno spezzettato in 10000 parti. Serve capire in quante parti ragionevoli dividere un programma. Su linux è vero che ci sono alcuni programmi che sfruttano troppe dipendenze a volte ingiustificatamente ma è ottima la possibilità di poter delegare parti di minore importanza ad altra gente ( Ad esempio prendiamo una libreria di immagini che è quella a me più vicina, è giusto che chi la scrive si dedichi alle funzioni per disegnare e delegare ad altri ( es. FreeImage ) il compito di interfacciarsi ai vari formati nell'apertura e nel salvataggio ) il tutto sta nell'intelligenza di chi programma scegliere il cosa e quanto delegare agli altri ( ed anche scegliere a quale progetto dare la delegazione se alla libreria $pincopallino o alla libreria $mi_usa_mezzo_mondo )
Il mio sito personale

Without freedom of choice there is no creativity.
Without creativity, there is no life.


---
Ogni volta che usi un goto un unicorno muore. - Flame Alchemist
Avatar utente
Style { HdS619 }
Gold Member
Gold Member
 
Messaggi: 3073
Iscritto il: 12/05/2007 - 18:30
Località: Lecce

Re: Un sistema operativo universale?

Messaggioda skary » 03/09/2010 - 22:11

@dexter :

mmm mi sa che non ci siamo capiti , io dico la stessa cosa che sostieni tu , affermavo soltanto che invece di avere un vasto set di comandi/operazioni (le api) standard e comuni ai vari sistemi (magri seppur con implementazioni differenti da sistema a sistema ma con risultato uguale) , sarebbe bello se questo set standard fosse ridotto all'osso , che poi ci pensa chi sviluppa il suo software a svilupparlo e se non ha voglia incorpora codice scritto da altri o magari sfrutta quelle di default (perchè di defaul suppongo dovrebbe esserci qualcosa , quanto meno per i compiti più comuni).

Poi ovvio che se il software lo scrive un cane e si mette a scriversi le sue api , magri esce un macello , ma partendo dal presupposto che tutto sia fatto come si deve si arriva ad avere che se vuoi metterti anima e corpo per un progetto puoi ottenere prestazioni anche molto elevato , altrimenti sfrutti il lavoro altrui con prestazioni mediocri.

Secondo me non sarebbe poi tanto male , non peggio di come è adesso (ora come ora un ipotetica chiamata al sistema per una malloc non si può riscrivere migliorandola , si può solo scrivere una funzione che faccia la stessa cosa al più in modo uguale , peggio altrimenti).
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: Un sistema operativo universale?

Messaggioda dexter » 03/09/2010 - 23:29

skary ha scritto:mmm mi sa che non ci siamo capiti , io dico la stessa cosa che sostieni tu , affermavo soltanto che invece di avere un vasto set di comandi/operazioni (le api) standard e comuni ai vari sistemi (magri seppur con implementazioni differenti da sistema a sistema ma con risultato uguale) , sarebbe bello se questo set standard fosse ridotto all'osso , che poi ci pensa chi sviluppa il suo software a svilupparlo e se non ha voglia incorpora codice scritto da altri o magari sfrutta quelle di default (perchè di defaul suppongo dovrebbe esserci qualcosa , quanto meno per i compiti più comuni).

Il fatto è che non puoi ridurre all'osso le API. Le API di un SO stanno in basso e stando in basso sono necessariamente numerose poichè sono moltissime le operazioni necessarie al buon funzionamento del SO. Non è facile dire "ok, le riduco all'osso".
Inoltre, devi mettere in conto che oggigiorno la gente odia riscrivere cose che oramai da per scontate come la gestione delle immagini, l'accesso alla rete, a una periferica... figurati se vado a scrivere un motore solo per visualizzare una jpg! Certo, lo posso fare se sviluppo un software di fotoritocco o un browser, ma se faccio un IM o un servizio web cosa me ne importa? Prendo, nuovo oggetto, load e via. Tutto il resto è solo regressione.

Il fatto è che bisognerebbe dare uno standard, in termini di API, di opcode, etc per far girare un software "universale". E lo standard si dovrebbe evolvere nell'accordo di tutti e con retrocompatibilità. Java ci ha provato, ma siamo ben lontani dall'avere un qualcosa che si possa eseguire tranquillamente su un pc o su uno smartphone come su un microcontrollore o una cpu ARM.

Probabilmente questo standard non lo vedremo prima di 10 o 20 anni... ma prima o poi ci sarà. Così come è finita la concorrenza fra le varie architetture dei PC con l'affermazione dello standard IBM, un giorno vedremo qualcosa di simile per il software. E' ovvio. Se poi sarà uno standard "de facto" o "de tavolin" questo è presto per dirlo.
Citizens we fight for what is right / A noble sacrifice. When duty call, you pay the price / For the federation I will give my life.
One light, one mind, flashing in the dark
Avatar utente
dexter
Moderatore
Moderatore
 
Messaggi: 2360
Iscritto il: 08/07/2007 - 00:55
Località: Essay Lountain de Ti

Re: Un sistema operativo universale?

Messaggioda skary » 04/09/2010 - 17:20

oddio un opcode universale la vedo ben dura.
Vorrebbe dire un unica architettura , senza nemmeno la possibilità di aggiornarla (oltre un certo limite) in un fururo o cambiarla ... mha sono restio a credere che mai ce ne sarà uno.

Per quanto riguarada le api io intendevo all'osso nel senso per garantire le funzioni minimali di un sistema operativo moderno , ossia la virutalizzazione di ogni processo di modo da impedire conflitti e la gestione delle interruzioni (comunque devo approfondire meglio il funzionamento dei sistemi operativi , ultimamente stò leggendo qualcosa in rete e più leggo e più mi accorgo che la mia precedenete percezione di quello che sono è veramente naif ... andando un filo in OT ci sarebbe nessuno che conosce qualche buon link d'approfondimento in materia?)
Immagine

Le persone ottimiste credono che il nostro universo sia magnifico e che non vi sia modo migliore di vivere.
I pessimisti semplicemente temono che gli ottimisti abbiano ragione.
Avatar utente
skary
Utente
Utente
 
Messaggi: 1449
Iscritto il: 19/07/2007 - 21:58

Re: Un sistema operativo universale?

Messaggioda dexter » 05/09/2010 - 02:47

skary ha scritto:oddio un opcode universale la vedo ben dura.
Vorrebbe dire un unica architettura , senza nemmeno la possibilità di aggiornarla (oltre un certo limite) in un fururo o cambiarla ... mha sono restio a credere che mai ce ne sarà uno.

Guarda che programmi compilati per virtual machine come Java non sono compilati in istruzioni direttamente inseribili in una CPU. Di solito è la VM a far da tramite fra binari e sistema operativo traducendo tutto. Per questo si tratta di software cross-platform, intendendo con ciò sia CPU che SO.
Ci si può (anzi, deve) mettere d'accordo su un modo standard di compilare il software. Chi fa SO e CPU si dovrà poi arrangiare a far andare bene le cose. La retrocompatibilità e l'espandibilità non è un problema se lo standard è studiato bene. Prendi ad esempio XML: è uno standard su cui puoi costruire sopra qualsiasi cosa, anche un database con tanto di blob binari.

Ti dirò una cosa: volenti o nolenti (presto o tardi) stiamo andando verso IPv6. Con IPv6 avremo non ricordo nemmeno io quante milionate di indirizzi per ogni metro quadro di questo immondo pianeta. Ora, quando questo accadrà, ci ritroveremo schifati per ogni oggetto che non sia collegato al network. Cuffie wireless, telecomandi, lavatrici, macchine del caffè, caldaie, antifurti, automobili, cellulari, macchinine telecomandate, collari per cani... prima o poi ogni maledetto arnese a batterie e non si ritroverà con un indirizzo IP.

A quel tempo nessuno vorrà scoglionarsi dietro alla cazzate dei vendor di SO, microcontrollori e CPU, sempre pronti a inventarsi una nuova minchiata completa di nuova demoboard, nuovo ambiente di sviluppo, nuovi prezzi, nuove modalità di vendita, etc. A quel tempo la gente vorrà comprare un chip, saldarlo su una millefori, caricarci sopra un eseguibile compilato in modo standard in un ambiente standard tramite bluetooth, dare alimentazione e via andare in rete con un circuitino da non più di 10 pezzi.

Allora servirà un eseguibile che funge su un PC come su un cellulare come su una macchinina telecomandata. Tutto qui. RISC, CISC, registri, pipeline, bus, cache, pipiripì e pippipapà saranno solo luride inutili chiacchiere aziendali da SO developer e chipmaker.
Diversamente, sarà molto difficile avere una capillare penetrazione del network negli oggetti d'uso comune.

Lo standard nel software è una tappa ovvia e non aggirabile per avere un'impennata nella diffusione dell'elettronica di consumo tale da farti chiamare sul cellulare dal frigorifero per farti dire cosa devi prendere al supermercato (sempre se ci andarai ancora).
Chiaramente anche la lavatrice ti tartasserà i maroni quando finirà il Dash e probabilmente lo farà anche la caldaia se non paghi la bolletta del gas... ma la parte più divertente di tutte sarà mandare a ca**re la TV quando ti dirà di pagare il canone Rai.
Citizens we fight for what is right / A noble sacrifice. When duty call, you pay the price / For the federation I will give my life.
One light, one mind, flashing in the dark
Avatar utente
dexter
Moderatore
Moderatore
 
Messaggi: 2360
Iscritto il: 08/07/2007 - 00:55
Località: Essay Lountain de Ti

Precedente

Torna a Il Pozzo della conoscenza

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron