Apple: il kernel di iOS e macOS è disponibile su GitHub.

Apple ha contribuito e contribuisce attualmente a diversi progetti open-source (mi riferisco, ad esempio, a progetti come LLVM). Nonostante ciò la maggior parte delle sue tecnologie sono proprietarie (closed-source).

La casa di Cupertino nelle scorse ore ha rilasciato il codice sorgente del kernel XNU, che muove i sistemi operativi della mela, su GitHub.

Il codice sorgente del kernel di iOS e macOS disponibile su GitHub

ios kernel

XNU, abbreviazione di ‘XNU is Not Unix‘, è un kernel Unix-like usato in macOS e in tutte le edizioni precedenti del sistema operativo di Apple. Dando l’accesso al codice Apple permette agli sviluppatori di capire meglio il funzionamento del sistema.

Attualmente non è chiaro quanto beneficio possano trarre gli sviluppatori da questa mossa ma sicuramente è fatta apposta per attirare sempre un maggior numero di developer verso la mela.

Personalmente ritengo XNU abbastanza inutile al di fuori dell’ecosistema Apple. In ogni caso è difficilmente utilizzabile senza il display Server Quartz e il desktop environment Aqua.

Il codice è rilasciato sotto la Apple Public Source License 2.0, licenza abbastanza restrittiva. Tutti gli sviluppatori sono invitati a leggere bene tutti i dettagli prima di includere nei propri progetti parte del codice che compone XNU.

Per maggiori informazioni vi rimando alla pagina GitHub dedicata a XNU.

sharing-caring-1

Vi ricordiamo che seguirci è molto semplice: tramite la pagina Facebook ufficiale, tramite il nostro canale notizie Telegram e la nostra pagina Google Plus. Da oggi, poi, è possibile seguire il nostro canale ufficiale Telegram dedicato ad Offerte e Promo!

Qui potrete trovare le varie notizie da noi riportate sul blog. È possibile, inoltre, commentare, condividere e creare spunti di discussione inerenti l’argomento.

  • xan

    come funziona la gestione “driver” in xnu? hanno rilasciato anche le relative componenti ?

    potrebbe essere utile per i driver delle schede video ?

    • Samael

      Darwin usa I/OKit, un framework ad oggetti in C++ per la gestione dei driver.

      Se vuoi cercare driver di terze parti per Darwin/macOS puoi sempre andare su OSx86, o come si chiama adesso. Quello è il portale su cui vanno quasi tutti gli hackintosh users.

      Per quanto riguarda GNU/XNU leggi il mio post sopra.

  • Samael

    Sarebbe meglio precisare una cosa, a scanso di equivoci: Darwin, che è il vero OS UNIX sotto al cofano di macOS, iOS, watchOS e tvOS, è open source fin da quasi gli albori, ed è sotto APSL, una licenza open source.
    Semplicemente fino ad oggi si trovava su https : / / opensource . apple . com, mentre d’ora in avanti spingeranno per GitHub, che è di sicuro un luogo più conosciuto.

    Per quanto riguarda Darwin (non solo XNU) fuori da macOS, in realtà esistono da sempre dei progetti FOSS attorno ad esso.
    Il più anziano, che è morto sette anni fa, si chiamava OpenDarwin, mentre oggi esistono PureDarwin e GNU/Darwin, tanto per rispondere a xan.
    Tuttavia parliamo di nicchie di pochissimi sviluppatori.

    Giusto una curiosità, AppImage, il formato di bundle di cui spesso si parla, è nato dalle mani di uno sviluppatore di PureDarwin, Simon Peter aka probono! 😉

    • Sickboy

      E’ sempre un piacere leggerti 🙂

  • Le aziende stanno facendo di tutto per ricopiare a loro modo il progetto GNU/Linux. Ma a questo punto, tanto vale passare e sviluppare direttamente GNU/Linux. Il fatto è che loro non possono abbassarsi a questo per diversi motivi: d’immagine, economici e quant’ altro. Ma noi si, quindi facciamoci furbi! 😉

    Perché anche la Microsoft zitta zitta sta sviluppando un nuovo Sistema Operativo che per altro avrà un Kernel Linux. Infatti, ha dimostrato ampiamente il suo interesse creando investimenti e rendendo possibile un gemellaggio con le diverse maggiori distribuzioni per educare gli utenti a questo diverso approccio informatico e favorendo gli sviluppatori.

    Eppure io sono elettrizzato, non riesco a non pensare a quanti vantaggi potrà comportare prendere le stesse funzionalità ed abbattere il muro della compatibilità in favore di progetti paralleli e gratuiti. Con Distribuzioni virtualmente pulite da immondizia pre-installata (Backdoors, Virus, Spywares, etc..).

    Awww, il futuro è roseo!

    • Samael

      Perdonami, ma questo post è fuori da ogni senso di realtà.
      Le aziende stanno facendo cosa? Apple starebbe copiando un modello di sviluppo di un OS che ha un quinto se gli va bene del suo share?
      Sai perché l’Open Source sembra stare andando di moda, ultimamente? Perché il desktop, il sistema operativo e l’infrastruttura locale hanno smesso di avere senso, in quanto oggi si punta sul cloud. Apple ha interesse a vendere il suo ecosistema con i suoi servizi.

      A Microsoft non frega più niente se tu usi Linux o Windows sul desktop, perché ciò che a loro interessa è che tu usi Azure quando poi dovrai deployare la tua webapplication.
      Ecco perché hanno creato WSL e supportano istanze Linux su Azure. Windows non è mai stata una meta preferita degli sviluppatori FOSS, specialmente quando si trattava di Ruby on Rails, Python, Node, Rust, Redis ecc.

      Ed in questo settore, specie con l’avvento dei container, avvicinare l’ambiente di sviluppo a quello di produzione è un obbligo, se non si vuole incorrere in spiacevoli inconvenienti, tipo incompatibilità del codice in fase di runtime, specie su Python e Ruby con i moduli esterni e la rapida evoluzione della sintassi.
      Lavorando sul WSL hai di fatto un ambiente simile a quello di produzione nella quale sviluppare e testare il tuo container.

      Tra l’altro, giusto per informazione: lo sai vero che il grosso delle comunità che ho elencato sopra, pur essendo FOSS si trova principalmente in ambiente Apple? Specialmente Node, Rust e Ruby.
      Linux viene naturalmente attivamente supportato in quanto futuro ambiente di produzione, ma il grosso della comunità di sviluppo si trova su macOS.

      Forse non andrei nemmeno molto lontano dalla realtà se ti dicessi che in proporzione ci sono più sviluppatori FOSS su macOS che su Linux.
      Quindi no, nessuno si fa furbo nel modo in cui la intendi tu, anche perché ormai un grosso ruolo dell’Open Source è quello di permettere alla comunità di lavorare sul core di prodotti commerciali insieme alle stesse compagnie che li sviluppano. Vedasi OpenJDK e VS Code, tanto per citarne due.
      E lo sai perché? Perché nel 99% dei casi, specialmente lato workstation, si lavora con software commerciali, e molti utilizzatori sono ben contenti di mandare patch e migliorare il prodotto che poi acquisteranno, perché ne beneficerebbero anche loro.

      Dopotutto, il software non solo è uno strumento, ma per molti è un investimento sulla propria carriera.

      Di gente che apre l’editor di testo e scrive un software 100% FOSS per poi regalarlo al vicino ce n’è rimasta poca, ed è spesso una comunità di persone pagate da aziende che riutilizzano quel prodotto per fini di lucro specifici. Vedasi il kernel Linux.
      Per questo la GNU GPL sta pian piano perdendo appeal, mentre la BSD e la Apache sono licenze che stanno tornando di moda.

      E concludo dicendo che Microsoft non sta facendo nessun nuovo OS basato su Linux. Non ne ha bisogno, perché:
      1) come ti ho già detto, l’OS non ha più valore. I servizi ce l’hanno. E Nadella lo sta facendo capire da un pezzo. Vedasi le sue dichiarazioni su Windows 10 Mobile;
      2) Windows NT è un sistema che architetturalmente può ospitare un environment Linux binariamente compatibile senza bisogno di portarsi dietro il kernel. Vedasi WSL.
      Tecnicamente, in realtà, possono farlo tutti (FreeBSD docet) però l’architettura di NT è ancora più sofisticata.

      Linux è forte sui server, e lo è sempre stato da quando esiste, non per manifesta superiorità, quanto per una questione di rapporto costi/benefici nei confronti dei concorrenti come AIX, Solaris e HP-UX.
      Ma ormai quel dominio ha lo stesso valore di quello di Windows sul desktop: ZERO.
      Ciò che oggi conta è DOVE deploy il tuo servizio, ossia Azure, AWS, Alibaba, OpenShift ecc. Che poi l’OS su cui è basato la tua immagine Docker sia Linux o Windows frega zero.

      • erotavlas

        Il kernel linux, non è un sistema operativo quello si chiama GNU linux, domina in tutti i settori (web server, cloud, mobile, supercomputer) tranne desktop dove il dominio è windows e nel settore mainframe dove è in pareggio con soluzioni proprietarie.

        • Samael

          Puntini sulle I inutili.
          Che lo userland sia GNU non interessa a nessuno in questo discorso. Si sta parlando d’altro. Di questi deliri stallmaniani ne faccio volentieri a meno.

          Senza contare che:
          il dominio nei settori di cui parli, come ho già scritto, è un dominio che oggi vale zero, in quanto nessuno di quelli (esclusi mobile e hpc) ha installazioni bare-metal, oramai.
          Quello che oggi si fa è affittare istanze sul cloud e metterci su il proprio stack.
          Quindi il business vero e proprio è quello dei cloud and services provider. La stessa Red Hat ormai punta ad un ventaglio di soluzioni con OpenShift e OpenStack come punte di diamante.

          Il sistema operativo oggi ha un ruolo talmente marginale da considerarlo irrilevante, specialmente dato che quello che viene deployato è un container che spesso usa distro alternative ultraminimali come Alpine.

          Per quanto riguarda l’hpc, poi, stiamo parlando di sistemi quasi sempre custom a scopi specifici. Fanno testo quasi quanto il NetBSD usato nella Stazione Spaziale Internazionale.

          E sui i numeri del settore mainframe, anche qui siamo fuori dalla realtà.
          Il mainframe lo domina un solo OS, e non è Linux. Si chiama z/OS, ed è l’unico OS al mondo che può girare bare-metal su quelle macchine IBM.

          Linux gira sopra mainframe IBM Z Systems tramite virtualizzazione.

          • erotavlas

            Confondere linux che è un kernel con un sistema operativo mi sembra un errore grossolano…
            Controlla tu stesso le statistiche su wikipedia inglese Usage_share_of_operating_systems

            Worldwide device shipments by operating system del 2015: Android (54% 1.3 billion), OS/macOS (12.3 297 million), Windows (11.7% 283 million) e others (21.6% 520 million)
            Tablet e smartphone 2017 domina il kernel linux con Android a seguire iOS
            Web client 2017 domina il kernel linux con Android/GNU linux 40.41 %, Windows 36.84% e OS/macOS 18.46
            Computer e laptop 2017 domina Windows con 52.02%, Mac OS X 26.2% e GNU/linux 21.7% (nei solo PC per gaming domina windows con percentuali oltre al 95%)
            Web server 2017 domina linux con 35.9%-96.6% e windows al 32.3%-1.7% a seconda del metodo di analisi
            Mainframe 2008 28% il kernel linux (SLES, RHEL) e 72% sistemi proprietari Unix (z/OS)
            Supercomputer 2017 domina il kernel linux 99.8%
            Console da gioco 2017 32% playstation con sistema proprietario e 16.69% xbox con sistema proprietario derivato da windows.
            Il tutto giusto per mettere i puntini sulle i, non ho incluso il cloud e IoT dove dominano i sistemi da te riportati insieme a ubuntu e tizen.

          • Samael

            Dove quei numeri danno contro a quello che sto dicendo io?
            Per caso in un mio post hai letto che Linux non ha quelle cifre sui server? Non mi pare.

            Mi sembra di averti detto altro, ma evidentemente fai finta di non capire.
            Rileggi di nuovo il post, per favore. Non mi va di riscrivere tre volte la stessa cosa.

            Per quanto riguarda la confusione GNU/Linux-Linux, te lo ripeto: non me ne frega nulla delle definizioni stallmaniane.
            Se non riesci a capire dal contesto quando si parla di kernel e quando si parla di OS è un tuo problema. In quel caso, più che mettere i puntini sulle i occorre un ripasso di italiano, specialmente negli argomenti “comprensione del testo” e “figure retoriche – sineddoche”.

          • erotavlas

            Ti ho risposto perché ho visto evidenti errori e non potevo non farlo.

            “Il sistema operativo oggi ha un ruolo talmente marginale da considerarlo irrilevante”

            Per quanto riguarda la confusione GNU/Linux-Linux, te lo ripeto: non me ne frega nulla delle definizioni stallmaniane.
            Se non riesci a capire dal contesto quando si parla di kernel e quando si parla di OS è un tuo problema.

            1) Il sistema operativo si chiama GNU/linux e non linux. Nel 1990 il sistema operativo GNU della FSF era quasi pronto aveva già librerie, compilatore, editor di testo, la shell unix-like, sistema grafico a finestre, etc. l’unico ingrediente che mancava era il kernel e i relativi driver. Lo sviluppo del microkernel hurd del progetto GNU procedeva a rilento e per questo Torvald creò il suo kernel di tipo monolitico modulare e venne aggiunto al sistema operativo GNU, era il 1991.
            Quindi dati i fatti storici, chiamare il sistema operativo linux è da ignoranti.
            2) Una semplice evidenza. Il sistema operativo Android è chiamato Android con kernel linux. Allo stesso modo il sistema operativo chiamato linux dovrebbe chiamarsi GNU/linux, purtroppo regna l’ignoranza e Stallman non ha potuto fare niente. Situazione simile alla confusione che viene fatta tra hacker e cracker spesso considerati sinonimi.
            3) z/OS è un sistema considerato UNIX-like (ho dimenticato di aggiungere la parola like in precedenza). No non ho mai usato un mainframe e non vedo necessità di farlo.

            P.S. Invece di darti arie studiati la storia dei sistemi operativi e poi ne riparliamo.

          • Samael

            1) Te lo ripeto. Non me ne frega nulla che tu lo chiami GNU/Linux o Linux. Non c’è scritto da nessuna parte che si debba chiamare in quel modo. Quella è solo una considerazione della FSF. Per alcuni legittima, per altri no. Ma in ogni caso non ha alcun senso nella discussione a cui stai rispondendo.
            Ergo, sei off topic.

            2) Vedi punto 1.

            3) z/OS è certificato UNIX, ma non è UNIX. Ha la certificazione perché ha un subsystem aggiuntivo POSIX e aderente alla SUSv3, esattamente come lo aveva Microsoft ai tempi di Windows Services for UNIX (SFU).
            Ma non è UNIX. z/OS è un OS custom nato per le System Z di IBM.

            Dato che non hai mai avuto a che fare con i mainframe, come hai appena detto, smettila di metterli in mezzo. Non sai di cosa parli, e leggere articoletti qua e là cercando su Google non ti aiuta.

            E no, io non mi do arie. Qua l’unico che fa il saccente sei proprio tu, che rispondi senza nemmeno leggere il post del tuo interlocutore e ti metti a fare il professore su sistemi operativi e piattaforme che per tua stessa ammissione non conosci.
            Un bagno di umiltà, amico caro. Almeno ti eviti le brutte figure.

          • erotavlas

            Le figure da ignorante le stai facendo tu continuando ad affermare:

            Il sistema operativo oggi ha un ruolo talmente marginale da considerarlo irrilevante

            1-2) Non conosci la differenza tra sistema operativo o kernel o fai finta di non conoscerla.
            I fatti storici sono alla luce del sole non puoi smentirli quindi ammetti di aver sbagliato. Chiudo off topic.
            3) Si ti ho detto di aver dimenticato UNIX-like, non volevo scrivere UNIX. Io ammetto i miei errori.

            Tu dimostri di non sapere di cosa stai parlando. Leggiti la storia dei sistemi operativi e torna a discutere.

          • Samael

            Bravo, chiudi l’off topic che non interessa a nessuno.

            Per quanto riguarda la mia affermazione, la sottoscrivo. Il sistema operativo oggi ha un ruolo marginale. E lo avrà sempre di più in futuro. Ed i motivi li ho ben spiegati sopra.
            Naturalmente sei libero di smentirmi o di pensarla diversamente, ma in tal caso dovresti quantomeno argomentare. Sempre che tu conosca l’argomento, perché fino ad ora hai solo sparato pipponi su GNU/Linux-Linux cantandotela e suonandotela da solo.

          • erotavlas

            Sono intervenuto nel discorso solo perché ho visto inesattezze in merito alla differenziazione di un sistema operativo e di un kernel.
            Non vuoi ammetterlo, ma il kernel linux domina in tutti i settori, cloud compreso, escluso workstation e desktop.
            La linux foundation crede da anni nel cloud e linux è primo al momento anche in questo settore cerca linux-operating-system-cloud
            Personalmente non credo nel cloud in quanto i benefici sono minori rispetto agli svantaggi. La nostra riservatezza e i nostri dati personali sono il pagamento di servizi apparentemente gratuiti e prevalentemente inutili per i quali esistono ottimi alternative FLOSS senza bisogno di svendere la propria vita.

          • Samael

            Io non voglio ammettere cosa? Ma chi ha mai parlato di numeri. Si è parlato di altro, e ancora non l’hai capito. E dai pure dell’ignorante agli altri.

            Ma LOL

          • erotavlas

            Di sbagliare a chiamare il sistema operativo linux quando questo è solo un componente del sistema operativo GNU/linux.
            Vedi esempio Android che non si chiama ne Android/linux ne linux e alla pari di GNU/linux utilizza lo stesso kernel.
            Inoltre, affermare che i sistemi operativi sono irrilevanti soprattutto quelli basati su kernel linux perché tutto è in cloud è un altro errore visto che la maggioranza del mercato cloud è basato su kernel linux.
            Se vuoi fare certe affermazioni almeno cerca di essere preciso.

          • Samael

            GNU/Linux-Linux è una questione che non mi interessa. E sei off-topic, per l’ennesima volta.

            Per quanto riguarda il cloud, ti stai addentrando di nuovo in discussioni di cui non hai la più pallida idea di quello di cui parli, come con i mainframe.
            Quello di cui tu parli sono istanze virtuali su IaaS, e sì: sono irrilevanti, perché quelle istanze hanno il solo compito di ospitare lo stack vero e proprio. Ergo, container.
            Che ci sia Ubuntu, RHEL, una SmartOS con lx64 branded zone, una Solaris o una Windows Server con WSL non fa più differenza.
            Quello che conta è la tecnologia di containerizzazione, Docker, ed il servizio sulla quale vai a deployare.
            Perché pensi che Microsoft abbia abbracciato Linux? Perché ha ricevuto l’illuminazione sulla via di Damasco come San Paolo? Per EEE?
            No, sanno semplicemente che l’OS è irrilevante. E che quello che conta è il portafoglio di servizi da dare ai clienti.

            Ed è per questo che dico che il dominio sul settore server è pari a quello di Windows sul desktop, cioè nullo. Ormai quello che conta è il dominio nell’infrastruttura e nei servizi.
            Il sistema operativo ha smesso di avere importanza da un pezzo.

          • Maudit

            Sai, dici cose interessanti, ma spesso hai il difetto di dare per scontato che il tuo interlocutore condivida la prospettiva ed il sistema di riferimento da cui, guardando a determinati fatti, formuli le tue (personali) valutazioni.

          • Samael

            Hai sbagliato ad indirizzare la risposta.
            Qui chi sta spacciando una sua opinione per verità, utilizzando il pretesto GNU/Linux-Linux, non sono io.
            Io mi sto semplicemente limitando a far notare l’estraneità della affermazione nel contesto in cui si stava parlando e parlare di altro. Ma evidentemente…

          • Toni

            è l’entusiasmo giovanile per GNU e la sua filosofia 🙂

          • Maudit

            Ma state dicendo la stessa cosa, è sul concetto di rilevanza che non vi intendete.

          • erotavlas

            Rileggendo la notizia e i nostri commenti, mi pare che siamo entrambi off topic.
            A partire da una notizia che parla del rilascio del kernel XNU UNIX-like sei arrivato alla conclusione che i sistemi operativi non hanno valore dimostrando di non conoscere la differenza tra sistema operativo e kernel.
            Il sistema operativo GNU/linux era usato nel 75% dei casi nel 2014 sui sistemi cloud 2014-enterprise-end-user-report.
            Ubuntu è il sistema operativo più usato nel cloud ubuntu-linux-is-the-most-popular-operating-system-in-cloud dati 2015.
            Inoltre, openShift funziona solo solo GNU/linux e openStack pur essendo
            multipiattaforma è utilizzato essenzialmente su GNU/linux.
            I mainframe non sono più usati o quasi da tempo (sono un vecchio modello utile fino a 15-20 anni fa), basta vedere anche l’ultimo aggiornamento sui dati presenti su wikipedia risalente al 2008 rispetto a tutti gli altri settori risalenti al 2017 Usage_share_of_operating_systems.

            P.S. microsoft non sa come fermare GNU/linux e potrebbe perdere anche l’ultimo settore dove domina ovvero il desktop. Per questo ha deciso di cambiare politica e cercare di distruggerlo dall’interno, ma non ce la farà mai.
            La centralizzazione è morta (tra qualche anno anche nel settore monetario accadrà la stessa cosa), viva la decentralizzazione!!!

      • camerte

        @lo_zio_sam:disqus
        “Di gente che apre l’editor di testo e scrive un software 100% FOSS per poi regalarlo al vicino di casa ce n’è rimasta poca”. E’ vero. Pochi ma buoni. E se anche GNU/Linux contasse zero sugli smartphone, zero sui desktop, zero sui server… io continuerei a preferire GNU/Linux sia sugli smartphone (librem 5), sia sui notebook, sia sui desktop, infischiandomene degli orientamenti delle imprese e dei professionisti dell’IT. Lo farei per motivi politici, filosofici e di libertà.

        • Samael

          Tuo diritto sacrosanto, nessuno sta affermando il contrario.
          Si sta semplicemente dicendo che in prospettiva IT quello che oggi conta davvero è l’infrastruttura ed il ventaglio di servizi, e non il singolo sistema operativo.

      • Ok Samael, grazie per l’ esplicazione. Bah, venendo a conoscenza di cose più approfondite che non potevo conoscere ho capito che forse mi stavo sbagliando. Non ho ancora approcciato con queste cose tanto da conoscere cose che prima ignoravo. Però ho fatto le mie affermazioni e non me le rimangio, poiché dal mio punto di vista in tal momento era un po’ una simbolica evidenza.

        Però aprire un software in modo che tutti possano elaborarlo, non puoi dire che non sia una cosa ispirata da GNU. Anche se in generale da quel che so, anche la Unix aveva una sorta di community volontaria di sviluppo.

        Bello il tuo commento, questo è rispondere. ISTRUTTIVAMENTE. Tanto di cappello! 😉

  • PoPe

    Domanduccia agli espertoni quà sotto, visto che non riesco a visualizzare le foto di un iphone 5 con Linux Mint 18.1 e ho cercato diverse soluzioni ma nulla, sembra un problema comune anche con Ubuntu, ora ci potranno essere maggiori possibilità di sviluppare meglio Fuse, ifuse e libimobiledevice?

No more articles