Windows open source? Sì, “è possibile”

Che legame c’è tra le parole “Microsoft” e “open source”? O meglio quale legame potrebbe esserci?

La risposta l’ha data Mark Russinovich, CTO (Chief Technology Officer) della divisione Azure di Microsoft, replicando a Cade Metz, business editor di Wired, durante una tavola rotonda alla conferenza ChefCon di questa settimana tenuta alla Silicon Valley.

Metz aveva domandato se ci fosse la possibilità che Microsoft renda Windows un prodotto open source: oltre a un grande applauso dei presenti, l’ interrogativo ha causato anche una risposta quanto mai inaspettata:  “è senz’altro possibile”.

Per Russinovich “la compagnia sta avendo ogni possibile confronto sul da farsi con i suoi software e servizi”, tuttavia “Microsoft non ha una lunga tradizione nell’open source e quindi questa trasformazione sarebbe qualcosa su cui c’è tanto da imparare“.

Di certo, quindi, non si parla di un prossimo futuro e neanche del software nella sua interezza, ma solo di parti di esso.

Una via che non è fuori da ogni logica, ma che inquadra in una prospettiva più ampia e a lungo termine la recente decisione di rendere open-source oltre 1000 applicativi caricati sul sito Microsoft GitHub, come, ad esempio, CoreCLR, “engine esecutivo” della piattaforma  .Net Core.

Dopo 40 anni di storia Microsoft, che nel passato ha attaccato prodotti come Linux proprio perché open source, è a una svolta epocale?

Staremo a vedere. Voi cosa ne pensate?

FONTE: Infoworld

Articolo precedenteArticolo successivo
Michele Lichinchi
Con la passione per la scrittura e maniaco di tecnologia, un esploratore dei recessi della comunicazione e dei suoi mezzi: un Indiana Jones dell'era digitale
  • Matteo Pozza

    Beh da quel che vedo Microsoft sta diventando sempre più”open”… sarà anche “source”? Staremo a vedere! ;)

  • Federico

    Quando questo pomeriggio l’ho letta mi è venuto un colpo.
    Questa è una cosa sulla quale non sarei affatto d’accordo, spero vivamente che non succeda.

    • Inviasubito

      Lo spero anche io!! Questa notizia mi ha steso!

    • CoffeyM

      Anche a me è venuto un coccolone stamattina quando ho letto! Comunque: possibile è diverso da certo.
      Ma poi, in generale, renderanno pezzi di codice aperti no? Il punto è quali?
      Io non sono espertissimo, nè ho la palla di vetro, però: un Windows bi-partito? Uno open e uno chiuso? Fattibile? Dico anche in considerazione della unificazione con W10…secondo voi è implausibile?

      • Federico

        Credo che se avvenisse inviterei molti miei vecchi clienti a migrare sui midrange IBM,ovviamente NON utilizzandoli in Linux.

        • CoffeyM

          Vedremo! Il futuro ci dirà. Per il momento le mosse non sembrano campate in aria e quindi ho fiducia. Magari è come dice Altiero in questa discussione: mobile open (con servizi proprietari), il resto chiuso.

      • Altiero Spinelli

        E’ quello che ho scritto giorni addietro come teoria sulla possibile strategia da attuare nei prossimi 2-3 anni. Non credo che il sistema sarà open per il desktop, in futuro opteranno per questa scelta per la divisione mobile se la strategia del sistema unico e delle windows apps non dovesse portare i frutti sperati. Condivideranno parte del codice per il mobile in modo da tale che la community possa portare il software su tutti i dispositivi che escono di casa con android. Per il business no, rilasceranno le versioni più sicure. E’ un’ipotesi, anche io non sono un mago del marketing e delle strategie, non ho la palla di vetro XD

  • Chiara

    Non sono d’accordo. Il so va bene cosí com’é, ovviamente con le dovute migliorie. C’é giá Android come open source e sappiamo tutti che semi disastro é, sotto certi punti di vista.

    • Beh questo non è un sillogismo valido.

      Il fatto che Android sia open-source non ha (necessariamente) implicazioni col fatto che sarebbe un disastro, se realmente lo fosse.
      Anche perché non è che ognuno fa quello che vuole, rilasciare un progetto in open-source non significa abbandonarlo a se stesso e lasciarlo in balia di chicchessia, ma i contributi esterni vengono sottoposti a revisione prima di farne il merge con il master branch, allo stesso modo in cui adesso si fa revisione del codice degli sviluppatori interni.

      In ogni caso non mi aspetterei un rilascio completo del codice di Windows, ma mi immagino più una cosa simile ad OSX, come del resto Microsoft ha già fatto con .NET Core, con una parte open ed una parte che rimane closed.

      .

      • Chiara

        Mai detto che i progetti rilasciati in open source vengono lasciati in balia di chicchessia. Ho solo inteso che l’open source non é quella “terra dei miracoli” che si tende a credere.

        • Il punto era che avevi associato il fatto che Android sarebbe un disastro alla sua natura open-source.
          Certo a volte i progetti open-source soffrono della mancanza di una guida univoca e chiara che detta la direzione nella quale andare e per quanto questa libertà possa essere, per certi versi un pregio, in taluni casi si dimostra un difetto in certi scenari.

          In ogni caso quello open e quello closed sono due approcci allo sviluppo diversi, che possono essere valutati in base alle esigenze e gli obiettivi che ci si pone.
          Quindi il punto non è se l’open-source è la terra dei miracoli o meno, ma se è il paradigma giusto per gli obiettivi che mi sono prefissato.

          Non è che la piattaforma .NET avesse bisogno di un miracolo, ma Microsoft aveva la necessità e la volontà di espandere le sue tecnologie anche a Linux (o comunque di renderle cross-platform) per questo rendere open-source il .NET Core era la soluzione migliore (basta pensare che Microsoft stava lavorando alla versione per Linux ed inaspettatamente un contributore esterno, di sua iniziativa, ha realizzato ed inviato loro la versione per OSX).

          Parafrasando Russinovich se rendere open-source Windows (o parte di esso) potrà rivelarsi un vantaggio (commerciale per Microsoft) allora potrebbero farlo.

          • Chiara

            “Certo a volte i progetti open-source soffrono della mancanza di una guida univoca e chiara che detta la direzione nella quale andare e per quanto questa libertà possa essere, per certi versi un pregio, in taluni casi si dimostra un difetto in certi scenari”. No comment va :)

          • Ma ✔ᵛᵉʳᶦᶠᶦᵉᵈ

            Ma è verissimo, serve avere una guida per sviluppare una cosa come si deve, l’open source non ha un filo conduttore, per cui uno sviluppa in un modo, uno in un altro e controllare e rileggere il codice impiega 10 volte il tempo che si impiegherebbe avendo una guida. Non credi?

          • Chiara

            Se avessi letto tutto, avresti capito il perché del mio commento ;)

          • Federico

            Indubbiamente l’apertura di Windows avrebbe meno pericoli potenziali rispetto ad Android. Android è basato su Linux, che impiega un kernel monolitico e ciò implica che qualsiasi falla la si paga con l’esecuzione di codice malevolo con il massimo dei privilegi.
            Sotto questo aspetto Windows è più sicuro (così come lo sono TUTTI gli altri sistemi operativi), ma ciò non significa che i rischi siano zero.
            Il problema nasce dal fatto che in un codice complesso è inevitabile commettere errori: Spesso questi errori sono addirittura volontari, perchè il non commetterli implicherebbe una perdita di performance poco tollerabile in un OS. E’ un po’ il discorso dell’altra sera riguardo al codice managed: se io dovessi controllare TUTTO ad ogni chiamata di funzione, pop da uno stack, assegnamento di variabile etc etc otterrei un codice sicurissimo ma al tempo stesso terribilmente lento.
            Nel codice che richiede elevatissime performance il numero di controlli viene limitato alle possibilità più probabili, che sono molte ma non infinite (ossia non TUTTE le cose che potrebbero andare storte).
            Nel momento in cui l’attaccante ha sotto le mani i sorgenti, può spendere del tempo al fine di trovare i punti deboli più promettenti e, cosa assai importante, condurre il suo attacco in modo deterministico, ossia sapendo già in partenza che avrà successo e quale sarà il risultato ottenuto.
            Ossia l’apertura del codice è a vantaggio di chi attacca.
            L’overhead dovuto alla sovrabbondanza di controlli (reso indispensabile proprio da questa ragione) è il principale motivo per cui Linux è più lento di una lumaca con il freno a mano tirato.
            I cultori dell’open source replicano a questa obiezione dicendo che semmai la possibilità di controllo sul codice aumenta la sicurezza, ma è falso: la cosa corretta da dire in caso di software ad alta complessità sarebbe che avendo a disposizione risorse ILLIMITATE per il controllo del codice, l’open source è più sicuro. In questo caso avrebbero ragione.
            Sfortunatamente le cose illimitate non appartengono al genere umano, per cui i codici aperti sono più favorevoli ai cracker che ai gestori di sistemi.
            Ergo è bene che Linux continui ad essere impiegato per i server Web, che Android se ne resti sui telefonini consumer e che gli impieghi “seri” vengano basati su OS a codice chiuso.

            Naturalmente concordo sulla parte relativa alla gestione del codice. Difatti BSD è di gran lunga più affidabile dell’anarchico Linux non solo perchè non monolitico ma anche per il fatto che gli aggiornamenti sono rigorosamente controllati da una struttura verticistica.

          • CoffeyM

            “Ergo è bene che Linux continui ad essere impiegato per i server Web, che
            Android se ne resti sui telefonini consumer e che gli impieghi “seri”
            vengano basati su OS a codice chiuso.”

            Perfetto! :)

          • Beh io non mi riferivo tanto alla sicurezza del codice, quanto a come un progetto open viene gestito.

            Microsoft ha interessa affinché il codice abbia un certo grado di qualità, per cui applicherebbe (applica) alle pull requests dei contributori esterni lo stesso processo di review e di testing che applica quando sviluppa un software come closed.
            Ad esempio mi aspetto una simile attenzione da società come Redhat, Novel ed altre, il problema però è che ogni società fa il suo ed ognuno applica i propri standards

          • Federico

            Ma anche in questo caso Leonida esisterebbe il problema delle fork, non credi?

          • Dipende sempre da come viene gestito il progetto, ad esempio per il .NET Core abbiamo una implementazione di riferimento ed ufficiale con delle regole ben precise su come lo sviluppo debba procedere, con il tempo potrebbero nascere delle versioni non ufficiali (in effetti ne esiste già almeno una, Mono, che potremmo anche definire semi-ufficiale), ma resteranno “non ufficiali” e, a parte Mono che è già abbastanza diffusa, dubito che avranno una larga diffusione se non in particolari scenari.

            Inoltre per Windows mi aspetto una cosa come OSX per il quale nessuna delle implementazioni open di Darwin vengono considerati dei fork di OSX, e chi vuole OSX prende un Mac…

          • Federico

            A dire il vero Mono ha quasi gli anni di .NET, Miguel iniziò a scriverlo già poco tempo opo il rilascio della prima versione di .NET.
            Però Mono non include (forse ora si, non so…) codice .NET, è una riscrittura alternativa e dunque non una fork.
            Quanto ad OS-X tecnicamente è proprio LUI la fork :)

            Io delle fork ho molta paura Leonida, perchè portano a perdere il controllo del codice, vale poco imporre regole e licenze in un mondo anarcoide come quello dell’Open Source.
            Basta vedere ciò che sta capitando con Android, il quale NON è GLP: Cyanogen una mattina ha deciso di farsene una sua versione alternativa in concorrenza a quella di Google e non vi è modo di fermarli.

          • Mono sta togliendo il suo codice e sta implementando il codice di riferimento del .NET Core.
            Certo tecnicamente Mono non è un fork, ma un’implementazione della specifica standard CLI.
            Non sono così tragico riguardo l’open source, OSX dimostra di come un progetto open può essere mantenuto su certi binari.
            L’open-source è un modo come un altro di sviluppare software con i suoi pregi ed i suoi difetti che vanno valutati quando si decide di adottare tale paradigma

          • ziobastardo

            Mai lette tante stupidaggini messe assieme, il solo fatto che in tutti gli “impieghi seri” da te citati: real time, mission critical, Nasa, Cern di Ginevra , stazione spaziale ecc si utilizzi Linux la dice lunga sulle fregnacce che spari.
            Torna a studiare, e magari informati pure, esistono dati precisi sul numero di falle per os, vatti a guardare chi ne ha regolarmente il numero maggiore e in quanto tempo le fixa.

          • Federico

            Perdonami, il mio tempo è troppo prezioso per disputare con uno “ziobastardo”.
            Leonida è degno di una mia risposta… tu no.

          • Federico, torna a studiare!!!11!uno!!! fa niente che tu programmavi in basic quando lui nemmeno era al mondo ahahahah

          • Federico

            Tu taci e vatti a vedere i dati di crescita di Apple, che pure questo mese sta sbancando tutto :)

          • frega poco dei dati di vendita, anche la mafia capitalizza più di Apple e Microsoft messe insieme, non per questo vuol dire che fanno buone cose… :P (comunque ti stavo ironicamente difendendo!)

          • Federico

            Ma lo so, ti avevo pure “upvotato” :)

          • ah ecco! ahahah

          • Federico

            E comunque io in BASIC ci restai veramente poco… è un linguaggio poco ordinato, per me decisamente ostico.
            Passai quasi subito a Pascal e da questo al C.
            Il mio sogno, mai realizzato, è sempre stato imparare a programmare in Cobol, il più bel linguaggio mai formalizzato.

          • Era per dire che, per quel che so di te, so che sei uno esperto e ferrato, molto più quanto possa esserlo io che nonostante tutto scrivo su questo blog (anche se “capirci” di informatica e divulgare informazioni non vuol dire saper programmare, è una condizione sufficiente ma non necessaria, un po’ come un critico cinematografico sa riconoscere una buona pellicola ma di certo non sa montare o sistemare le luci o comporre una colonna sonora o recitare)…

          • Federico

            In effetti Mariano sono un pessimo divulgatore, in questo tu sei cento volte più bravo di me.
            A me manca la condizione necessaria per saper insegnare: l’amore per il mio prossimo. Senza quella si possono fare discorsi formalmente corretti ma non si riesce a trasmettere nulla oltre lo stretto tecnicismo.
            Tu al contrario sei molto bravo… tutti voi della redazione siete molto bravi.

          • grazie :) io parlavo anche in generale, non solo di noi… ho parlato di me stesso solo in negativo in “molto più di quanto posso esserlo io”, però nella sintesi del commento non ho specificato che la parte tra parentesi era riferita in generale al mondo dei blogger o anche di chi si occupa del reparto marketing… diciamoci la verità: Jobs non credo abbia mai scritto righe di codice o progettato un solo Mac, ma capiva quel che c’era da capire…

          • Federico

            Si, e io ho esteso il concetto.

            Credo che Jobs il computer non sapesse neppure accenderlo, il genio informatico era Woz.
            Jobs è stato il più grande marketer della storia moderna.

          • ed è giusto che sia così, gli ingegneri non hanno senso estetico nella maggior parte dei casi… puntano al sodo… poi ci sono i designer che sono l’opposto, fanno finta di essere ingegneri ma puntano solo all’estetica. Meno male che ci sono i filosofi che sanno unire le due cose! Scherzo eh!

          • Federico

            Nono è vero.
            In fin dei conti esiste la filosofia della scienza, no?
            E ancor di più, in origine era difficile distinguere fra “scienziati” e filosofi.

          • Il prof. Giorello approverebbe il tuo commento. Anche il prof. Pettoello :-P (io “filosoficamente” sono nel ramo della filosofia morale, un po’ di sociologia, un po’ di antropologia culturale…)

          • Federico

            Ricordo una materia che mi piaceva particolarmente (incidentalmente il mio unico voto basso): teologia morale, anche conosciuta come teologia delle categorie morali fondamentali. Chissà se c’entra con la filosofia morale…

          • mmm poco a dire il vero… o tutto… dipende cosa intendi per morale… c’è chi la vede strettamente correlata alla religione e chi, come me, è più nichilista e ricerca una morale basata sul dubbio verso i dogmi e la certezza verso la relatività (non relativismo, è diverso). Di certo molti filosofi non considerano la teologia come qualcosa di filosoficamente rilevante perché è il dubbio a muovere la ricerca, non la certezza. Però confesso di aver seguito parecchi corsi di filosofia medievale (cosa che, come saprai, è praticamente teologia) però il discorso è ampio: si parlava di quanti angeli potessero stare sulla capocchia di uno spillo perché se avessero usato la parola “atomo” avrebbero fatto la fine delle salsicce il lunedì di pasquetta.

          • Federico

            I dogmi sono “solo” delle verità definitivamente acquisite, in sè sono come i paletti che tracciano il percorso di una pista di sci, non delle limitazioni… sono dei punti fermi.
            La teologia morale alla fine si occupa dello stabilire che le basi della morale sono le stesse per tutti gli umani indipendentemente dalla cultura, momento storico e razza. Ovviamente possono esistere dei singoli casi di devianza, ma l’umanità nel suo complesso ha la necessità di rispondere ad un piccolo insieme di regole morali senza le quali il concetto stesso di società non potrebbe esistere.
            Con il mio professore non ero molto d’accordo sull’affermare che ciò fosse legato esclusivamente alla specie umana, perchè ritengo sia dimostrabile che QUALSIASI insieme di viventi nello stabilire dei reciproci rapporti non possa che rispettare quegli vincoli. Magari con differente sensibilità e priorità, ma senza un insieme minimo di regole morali (condivise con le nostre) non potresti avere neppure un branco di lupi, alveare, formicaio o qualsiasi altro fenomeno sociologico nel quale sia prevista la convivenza.
            Dal momento che fine ultimo della teologia morale è dimostrare (?) la presenza delle regole divine quali elemento fondante dell’uomo, il tizio in questione non gradiva il mio affermare che PROPRIO la teologia morale porta ad identificare una sostanziale identità fra qualsiasi tipo di vivente.

          • ziobastardo

            Infatti non c’è nessuna disputa, hai scritto delle stupidaggini e ti ho fatto notare la tua ignoranza e/o confusione sull’argomento, non c’è proprio nulla di cui discutere.

          • Federico

            Forse, se tu approfondissi l’argomento (so che richiede l’apertura di misteriosi oggetti chiamati libri… ma uno a consigliarlo ci prova sempre), scopriresti che Linux generalmente viene impiegato nei sistemi grid di elaborazione dei dati raccolti durante gli esperimenti (CERN) ma che le macchine di produzione, ossia quelle che governano gli esperimenti stessi, impiegano QNX o altri sistemi operativi realtime.
            Identica cosa per le missioni NASA.

          • ziobastardo

            Vedi, se scendessi dal palo scopriresti che mi stai dando ragione, ovvero: Dove non basta il soft realtime ottenibile con Linux si utilizzano altri Unix specificatamente progettati per l’hard realtime, in pratica qualunque cosa non sia Windows.
            Sta di fatto che l’informatica non finisce con il desktop consumer e al di fuori di questo l’opensource prende a calci il closed praticamente dappertutto. In ogni caso ti invito ad approfondire il discorso su sicurezza e open source, magari utilizzando quegli stessi strumenti che mi hai consigliato, i libri.

          • Federico

            a) Ti ho dato torto.
            b) Linux non è neppure lontanamente imparentato con Unix.
            c) Sia da un kernel Linux che da uno Unix NON è ricavabile vero un OS realtime.
            d) Windows è impiegabile in modalità realtime (non lo userei, ma è possibile).
            e) Riguardo alla sicurezza, mi pare, ho sinteticamente motivato le mie affermazioni… se vuoi discorrere con me ti invito a fare altrettanto partendo dalla teoria che sta alla base della definizione della’architettura dei sistemi operativi. In caso contrario… astieniti.
            In aggiunta ti ricordo che questo è un luogo pubblico e che il turpiloquio, evidentemente per te abituale, qui non è ammesso.

          • l’unico che può fere del torpiloquio qui sono io! :-P

          • ziobastardo

            a) Se ne sei convinto tu, Qnx è unix like, è realtime e i suoi sorgenti sono disponibili liberamente, alla faccia dei “sistemi chiusi per cose serie”.
            b) Tecnicamente vero, anche se i sistemi GNU/Linux sono, per scelta dei loro stessi creatori, dei “cloni” di Unix, creati riscrivendo ogni singola parte dell’os, i BSD invece, contengono codice derivante dagli Unix originari.
            c) Ho parlato di “SOFT realtime”, ed è possibilissimo su Linux
            d) Vedi sopra, c’è arrivata anche Microsoft.
            e) E parliamo di os allora: sostieni che Linux essendo monolitico avrebbe dei problemi di sicurezza….Convinzione supportata da fatti?
            Hai notizie di falle di sicurezza nel kernel recentemente sfruttate?
            Continuiamo con i BSD che secondo te non hanno kernel monolitici… sicuro? Vuoi ricontrollare meglio?
            Che poi, NT ha un kernel ibrido, e gestire file system e sottosistema grafico in kernel mode lo espone, in teoria, alle stesse problematiche di un kernel monolitico ma aldilà di questo il closed source di Microsoft quanto spesso l’ha salvata da figuracce legate a bug aperti da anni e mai fixati negli ultimi dieci anni?
            Tanto per dire, guardare l’edizione annuale di Pwn2own non sarebbe male.
            Per ultimo… turpiloquio?

          • Il “turpiloquio” è dovuto ai toni con cui sei entrato a gamba tesa in questa discussione, dando dell’ignorante a Federico etc. quindi vacci piano. Qui si discute, anche animatamente, ed è giusto che ognuno dica la propria, ma evitando di dare appellativi personali.

          • ziobastardo

            Beh, ignorante era inteso nel senso del dizionario italiano, cioè “colui che ignora”, comunque mi scuso, non volevo certo offendere.

          • Federico

            a) Esatto, QNX è uno Unix like e non uno Unix, esattamente come Linux.
            b) I sistemi GNU/Linux non sono cloni ma pallide imitazioni.
            c) No, non è possibile. Dovresti riscrivere per intero lo scheduler. A differenza del kernel NT (Windows) che grazie al microkernel permette l’utilizzo dell’Hardware Abstraction Layer da parte di gestori aggiuntivi (le realtime extension di Microsoft ed altri), ciò non è possibile con Linux.
            d) Microsoft non ci è “arrivata”, è possibile da sempre.
            e) un kernel monolitico esegue con privilegi “kernel” l’intero codice (il che pare scontato) ivi compresi i gestori di periferica ed i layer supplementari per il controllo di qualsiasi cosa. Di conseguenza una qualsiasi defaillance anche nel più banale dei suoi sottosistemi porta inevitabilmente all’esecuzione di codice malevolo con privilegi massimi.
            e-2) Si, ne sono assolutamente sicuro: l’unico BSD attualmente degno di nota, l’OS-X. adotta un kernel ibrido.
            e-3) NT non esegue il GDI in “kernel mode” ma in “executive mode”.
            e-4) Non mi risultano violazioni con acquisizione di privilegi kernel su NT.

          • Federico

            a) Esatto, QNX è uno Unix like e non uno Unix, esattamente come Linux.
            b) I sistemi GNU/Linux non sono cloni ma pallide imitazioni.
            c) No, non è possibile. Dovresti riscrivere per intero lo scheduler. A differenza del kernel NT (Windows) che grazie al microkernel permette l’utilizzo dell’Hardware Abstraction Layer da parte di gestori aggiuntivi (le realtime extension di Microsoft ed altri), ciò non è possibile con Linux.
            d) Microsoft non ci è “arrivata”, è possibile da sempre.
            e) un kernel monolitico esegue con privilegi “kernel” l’intero codice (il che pare scontato) ivi compresi i gestori di periferica ed i layer supplementari per il controllo di qualsiasi cosa. Di conseguenza una qualsiasi defaillance anche nel più banale dei suoi sottosistemi porta inevitabilmente all’esecuzione di codice malevolo con privilegi massimi.
            e-2) Si, ne sono assolutamente sicuro: l’unico BSD attualmente degno di nota, l’OS-X. adotta un kernel ibrido.
            e-3) NT non esegue il GDI in “kernel mode” ma in “executive mode”.
            e-4) Non mi risultano violazioni con acquisizione di privilegi kernel su NT.

          • ziobastardo

            a) Quindi? Io dico che dove serve stabilità e sicurezza si usano Unix-like e opensource, non mi pare ci siano altri dubbi.
            b) Tua personalissima opinione.
            c) Falso, è possibilissimo, Google è tuo amico
            e) Quindi? Fatti, la teoria è bellissima, all’atto pratico devi ancora menzionare esempi reali.
            e-2) Ah beh allora, tutto si spiega.
            e-3) Ed è noto che un crash del sottosistema grafico pianta la macchina, di nuovo, la teoria è bella, la realtà è diversa.
            e-4) Neanche a me su Linux, tuttavia anche nel 2014 il kernel Nt è stato bucato in occasione del Pwn2own.

          • Federico

            a) Vero, dove serve stabilità e sicurezza si utilizzano spesso alcuni OS Unix-like. Non open source e sicuramente non Linux. Lo stesso QNX ha iniziato ad essere utilizzato seriamente solo dopo la chiusura del codice.
            b) No, è una mia conoscenza certa, non opinione. Sono stato nel ristretto numero di italiani ammessi a vedere i sorgenti del kernel Unix At&T, e ti assicuro che non ha nulla a che spartire con quel guazzabuglio che è il kernel Linux.
            c) No, non è proprio fattibile. L’HAL di Linux non è separabile dal processo kernel, quindi non si può garantire una priorità certa ad un processo che lo esegue in via esclusiva.
            e) La teoria è la cosa su cui si basa la conoscenza, i praticoni sono altro. Un esempio banale? tu buchi il driver dello scanner ed hai a disposizione l’intero kernel con privilegi massimi.
            e-2) ?
            e-3) Mi sembri confuso, cosa c’entra un crash con l’acquisizione di privilegi? libri -> studiare.
            e-4) Su Linux ogni ogni violazione di sottosistema corrisponde ad un’acquisizione di privilegi kernel. NT con acquisizione di privilegio massimo? link per favore.

          • ziobastardo

            a) I sorgenti di Qnx sono disponibili dal 2007: http://www.qnx.com/news/pr_2471_1.html

            E comunque no, Linux e i vari Bsd sono usati massicciamente proprio dove serve stabilità e sicurezza.

            b) Indubbiamente il codice Linux è caotico, e se è per questo anche il kernel Solaris è tecnicamente elegante, tuttavia i risultati dell’os mi paiono più che buoni.

            c) E infatti ho parlato di SOFT realtime.

            e) E ho capito, sta di fatto che non hai linkato fatti realmente accaduti.

            e-3) Niente affatto, faccio notare che il modello closed source non è immune da bachi, che possono compromettere la sicurezza e/o la funzionalità della macchina e di conseguenza l’erogazione di servizi.

            e-4) http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Pwn2Own-2015-Day-One-results/ba-p/6722204#.VSApklTRfs1

            E attendo sempre i link relativi a falle nel kernel Linux

          • Federico

            a) Praticamente mai. Gli open source sono diffusissimi nei server web a bassa sicurezza, ma anche nel settore Internet in caso di dati rilevanti ormai si utilizza tecnologia Microsoft (asp) e database proprietari.

            a-2) Rileggi: ho scritto che QNX ha iniziato ad essere utilizzato realmente in ambiente di produzione DOPO la chiusura del codice. La versione che puoi trovare liberamente in rete è quella hobbistica, mantenuta dalla comunità. Quella vera (che trovi installata nel mio server) è a codice chiuso e devi firmare un contrratto con l’azienda che lo produce (da molti anni proprietà RIM prima e BlackBerry poi).

            b) Dire che il codice del kernel Linux è caotico non rende l’idea. E’ un patchwork scritto da mille sorgeti differenti (Microsoft compresa) senza un filo guida o uno stile di programmazione unico. Ossia è incomprensibile.
            c) Ma non serve, prendi una qualunque delle violazioni ai sottosistemi Linux ed avrai il tuo caso concreto: in un monolitico, ripeto, qualsiasi violazione ai sottosistemi fa acquisire privilegi kernel.
            e-3) E chi ha mai detto che è immune? semmai ho esordito proprio dicendo che NON esistono codici complessi esenti da bug.
            e-4) Una violazione può permettere unicamente l’acquisizione di privilegi pari al sottosistema compromesso. Un attacco come quello da te linkato al massimo può far ottenere i privilegi del sottosistema grafico, il quale NON viene eseguito in modalità kernel. Te lo avevo già scritto precedentemente.
            In Windows le cose che girano in modalità kernel sono veramente poche ZioBastardo.

          • Federico

            Guarda, visto che te ne fidi molto ti riporto un’altra citazione da Wikipedia:


            Executive
            L’ Executive si interfaccia con tutti i sottosistemi in user mode. Si lega con I/O, gestione degli oggetti, della sicurezza e dei processi. Comprende diversi componenti, compresi l’ “I/O Manager”, il “Security Reference Monitor”, l’ “Object Manager”, l’ “IPC Manager”, il “Virtual Memory Manager” (VMM), un “PnP Manager” e un “Power Manager” come un “Window Manager”, che funziona insieme col Windows “Graphics Device Interface” (GDI). Ognuno di questi componenti esporta un routine di supporto lato-kernel che consente agli altri componenti di comunicare l’uno con l’altro. Tutti insieme, componenti possono essere chiamati “servizi esecutivi”. Nessun componente esecutivo ha accesso alle routine interne di un altro componente esecutivo.”

            La parte saliente è questa: Nessun componente esecutivo ha accesso alle routine interne di un altro componente esecutivo.

            Ossia, anche violando la GDI come nel caso da te riportato, te ne fai… nulla.
            E’ utile ai fini di un’esibizione, ma non compromette in alcun modo nè i sistemi sottostanti in kernel mode (non potrebbe) e neppure può propagarsi ai sottosistemi di pari livello.
            E’ una situazione opposta al kernel di Linux, dove l’entrare in possesso di un qualsiasi sottosistema di permette di chiamare a privilegio massimo TUTTE le funzioni del kernel stesso, e questo essendo un monolitico, significa TUTTO il sistema operativo.

            Vuoi veramente continuare la disputa ZioBastardo?

          • Federico

            Dai un’occhiata qui ZioBastardo:
            “RTLinux is a hard realtime RTOS microkernel that runs the entire Linux operating system as a fully preemptive process. It is one of the hard real-time variants of Linux, among several, that makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines.”

            Ossia, esattamente come ti ho scritto prima, per avere un Linux Realtime dovresti sostituire di sana pianta lo scheduler.

            In questo caso viene sostituito direttamente l’intero skifido kernel… che è ancora meglio.
            L’avere una base teorica ti permette di scrivere delle cose PRIMA di andarle a controllare su Wikipedia ;)

            Rif: http://en.wikipedia.org/wiki/RTLinux

          • Guest

            “RTLinux is a hard realtime RTOS microkernel that runs the entire Linux operating system as a fully preemptive process. It is one of the hard real-time variants of Linux, among several, that makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines.”

            Come ti scrivevo sopra, l’unico modo di far funzionare Linux in modalità realtime sarebbe quella di sostituire lo scheduler.
            Vedo che in effetti si fa di meglio: se ne sostituisce per intero l’obsoleto monolitico con un moderno microkernel. ;)

          • Federico

            Dimenticavo: la dizione corretta è”scendere dal piedistallo”, non dal palo.

          • Beh dipende, ci sono dei settori dove il software closed non hanno gran rivali.

            In alcuni scenari il vantaggio del software open non è la qualità intrinseca di quel particolare software, ma semplicemente il fatto che si ha il controllo sul codice.
            Per cui, tanto per semplificare, alla NASA non è che pensano, necessariamente, che Linux sia meglio di Windows, ma è che se hanno la necessità di cambiare qualcosa debbono poterlo fare in house.

          • ziobastardo

            Vero, ma ormai l’open source è uscito dal posticino di “fratello povero” e si è ritagliato la sua buona fettona.
            Beh, il fatto di poter modificare “in situ” il software è di fatto un plus che “pesa” nella scelta da parte di enti del genere, in soldoni il poter modificare Linux lo rende “meglio” di Windows perchè a me serve proprio poterlo modificare.

  • Alessandro Iiriti

    Io sono d’ accordo , per esempio guardate le dietro Linux,sono open source, e come voi sapete , trovare un virus e molto difficile ,perché essendo il codice visibile a tutti i più piccoli bug vengono subito fixati dalla comunità ,certo ip guadagno per la Microsoft sarebbe minimo , però con la popolarità di Windows per desktop e il fatto che sia open source ci andrebbe a guadagnare sui numeri ( che sono già alti) , per fare dei soldi però potrebbero fare in modo che tutti potessero leggere il codice ma ,quelli che hanno acquistato una piccola licenza (non 80 e passa euro ,ma più piccola) potessero modificarlo ,un po come è per Minecraft adesso e non mettiamo in mezzo android perché non si sta parlando di mobile ,ma di desktop quindi se vogliamo proprio dobbiamo parlare di come Linux funziona …. In ogni caso questa idea per me sarebbe magnifica. Grazie.

    • CoffeyM

      …nì. La maggior parte di colpa (per me tutta la colpa) per chi prende virus è di chi usa il PC. In generale, poi, su Linux è molto difficile trovare virus semplicemente perchè non c’è… “utenza”. E’ un po’ come il discorso delle app (e lo so che tu escludi dal discorso Android, però rientra dalla finestra, perchè anche per Android ci sono virus, oltre al fatto che è anche un sistema “open” per così dire) insomma la questione è: maggiore utenza=maggiori probabilità di attacco. Più una serie di cose tecniche che hanno (anche) a che vedere con la natura del codice. Non so quanto MS gioverebbe dall’apertura del suo codice, onestamente. I virus che prendi su Windows (se li prendi) li prendi per colpa di chi sta tra monitor e sedia. Punto. Se la gente installa ogni sciocchezza dicendo sempre “avanti” o senza guardare COSA sta installando…beh…non è colpa mica di Windows eh :)

      • Per questo credevo in Windows RT: era a prova di niubbo. Sperando che 10 (anche se 8 è uguale in quello che sto per dire) aiuti la gente a capire che se vuole installare programmi usa lo Store. E come desktop installa solo le cose serie (suite Adobe, Office etc.)

        • CoffeyM

          Concordo. Forse per questo potranno permettersi una parte open…ci sarà da combattere la spazzatura e vuol dire molto controllo verticale ma…quelli non sono affari nostri ;)

          • Ma ✔ᵛᵉʳᶦᶠᶦᵉᵈ

            L’open source è segno di libertà, di chiarezza, di quello che vuoi, ma proprio la libertà crea caos, il caos crea poca sicurezza.
            I virus per Linux non ce ne sono o sono pochi perché non conviene sviluppare un software malevolo che poi andrà a colpire una percentuale minima di utenti… I virus per Android, anche se basato su Linux (e quindi in teoria sarebbe più sicuro) si sprecano, oltre il fatto che Google non controlla o non ce la fa a controllare, tutte le applicazioni che si pubblicano su play store.
            Quindi secondo me Windows è nato closed e closed deve rimanere :P