Benchmark di Debian GNU/Hurd

Navigando in rete mi sono imbattuto in un interessante articolo che mette a confronto le prestazioni di Debian GNU/Hurd che secondo notizie recenti dovrebbe vedere una release in concomitanza con l’arrivo di Debian Wheezy.

L’articolo esegue una serie di test basilari per verificare le prestazioni della stessa versione debian (Wheezy appunto),  una con il kernel Hurd e una con il kernel Linux. I test effettuati non sono moltissimi, a causa di alcune limitazioni di Hurd (che ricordiamo è ancorain fase di sviluppo, e ancora non si puo considerare un sistema operativo completo). I test in questione riguardano:

  • Compressione 7-zip
  • Encoding mp3
  • Cachebench
  • C-Ray
  • Himeno

effettuati utilizzando la testsuite Phoronix. Il link all’articolo in questione è il seguente:

http://www.phoronix.com/scan.php?page=article&item=debian_gnu_hurd&num=2 (in inglese)

Paging in IA-32: Spieghiamo gli indirizzi “Ricorsivi”

Uno degli argomenti più ostici nell’osdev è la gestione della memoria paginata. E personalmente ci ho messo a capire un pò l’utilità dell’utilizzo dei cosidetti indirizzi logici “ricorsivi”. In questo articolo cercherò di spiegarne l’utilità e perche conviene utilizzarli.

La memoria paginata è una particolare suddivsione della memoria in blocchi di dimensione fissa, normalmente di 4k o 8k. Questo tipo di suddivisione è supportato dall’architettura IA32 anche se non si tratta del modello di default. Infatti i processori intel utilizzano sempre un modello di memoria segmentato, mentre quello paginato si attiva solo su richiesta.

Lo scopo di questo tutorial non è spiegare la paginazione per i processori IA32 ma cerca di chiarire una tecnica particolare usata con la paginazione attiva, quindi qui non troverete un tutorial  dettagliato su  come funziona la paginazione, ma mi limiterò ricordare solo lo stretto necessario utile per i miei scopi . Le strutture fondamentali usate nella memoria paginata sono la pagedir e la pagetable.

  • Una page dir è composta da 1024 elementi che puntano ognuna a ad una pagetable.
  • Una pagetable che strutturalmente è molto simile alla pagedir, contiene sempre 1024 elementi ma questa volta contengono l’indirizzo base di ogni pagina

La figura seguente mostra come sono formate rispettrivamente le entry della pagedir e della pagetable

Come potete notare, le due entry sono pressochè identiche a parte alcuni bit di controllo (fra poco vedremo come questa somiglianza ci tornerà utile).

Continua a leggere Paging in IA-32: Spieghiamo gli indirizzi “Ricorsivi”

OS From Scratch: il PDF

Per chiunque di voi si ricordasse di Italios, uno dei primi os amatoriali italiani. si ricorderà anche OS From Scratch! La guida scritta da Silvio Abruzzo su come scrivere un OS.

Certamente non è una guida completa (copre solo le parti principali: I/O a video, bootloader, eccezioni, pic e poco altro), ma è un riferimento utile per chiunque voglia iniziare a Osdevare.

Qualche tempo fa cercai correggerla e renderla disponibile in PDF, vissto che il formato originario era in html, cercando anche di apportare qualche piccola correzione qua e la. Nel passaggio a wordpress mi sono accorto che era sparito dal sito. Quindi per chi fosse interessato alla guida OSFromScratch in PDF puo scaricarla da qua: http://www.osdev.it/Documenti/osfromscratch.pdf

Usare bochs per fini di debug!

Bene il debugging come molti sanno è una parte molto difficile e noiosa.  Quando si parla di osdev è ancora peggiore. Infatti, moltissimi strumenti a disposizione per il debugging risultano o piu difficili da usare, o inutili. In questo caso un grosso aiuto può venirci proprio da bochs, che ha un debugger interno utilizzabile anche mediante l’ausilio di una Interfaccia grafica. Continua a leggere Usare bochs per fini di debug!

Minix – pkgsrc e pkgin (la nuova gestione di pacchetti)

Poco tempo fa vi ho introdotto minix3 e la sua gestione di pacchetti con packman. Bene nel frattempo hanno cambiato la gestione di pacchetti abbandonando packman a favore di pkgsrc/pkgin.

In questo articolo vi spieghero’ come iniziare a utilizzare questi 2 strumenti, e le operazioni base.

Pkgin e’ il gestore dei pacchetti in versione binaria, mentre pkgsrc invece si occupa dei pacchetti sorgenti.

Continua a leggere Minix – pkgsrc e pkgin (la nuova gestione di pacchetti)

Primi passi con Minix – Parte 1

Bene, dopo l’articolo apparso su italialinux (sempre mio di sito) su come installare minix in ambiente virtuale, ora in questo introduciamo un po’ l’ambiente di minix, spiegando i programmi da installare, e alcune i primi passi da fare al sistema appena installato per renderlo un minimo usabile.

Infatti appena installato minix non offre molto software, e richiede un po’ di configurazione. Uno dei tool di default per la gestione dei pacchetti e’ packman, partiamo proprio spiegando come funziona.

L’utilizzo di questo tool e’ estremamente semplice, si lancia dando il comando

packman

senza alcun argomento (assicuriamoci di essere root), il programma cercherà dapprima un cd di installazione montato, e dopo vi chiedera se volete aggiornare la lista di pacchetti dalla rete:

Se scegliamo di aggiornare la lista via rete, impieghera qualche secondo per aggiornare la lista, e se non incontrerete problemi, sarà pronto per mostrarvi la lista di pacchetti disponibili:

Dopo di che, vi verrà mostrata la lista di pacchetti. Ogni pacchetto ha accanto un numero, quando che servira per dire a packman quali pacchetti installare. Possiamo dargli un solo pacchetto, una lista di pacchetti (separandoli con una virgola) o un sottoinsieme di pacchetti consecutivi (utilizzando un trattino), per maggiori info vedere la screenshot successiva:

Ad oggi non sono disponibili tantissimi pacchetti. Una volta inseriti i pacchetti da installare, vi basterà dare invio e il programma si connettera (o li prelevera dal CD) e li installerà per voi.

Continua a leggere Primi passi con Minix – Parte 1

Illumos: L’annuncio ufficiale

Come accennato nell’articolo precedente, oggi sarebbe stato annunciato il progetto Illumos, che si pone l’obiettivo di dare una nuova linfa vitale ad opensolaris, apparentemente abbandonato da Oracle.

Il progetto e’ sponsorizzato principalmente da Nexenta, ma da quel che dicono ne sono indipendenti.

Fra i partner  per il progetto ci sono: berlios, belenix, schillix, joyent, etc.

Da quel che dicono il loro obiettivo non e’ competere direttamente con Solaris, e anzi invitano Oracle a collaborare col progetto (ma aggiungo di mio: se non pensano a opensolaris, perche dovrebbero preoccuparsi di un fork? :D)

Gli obiettivi del loro progetto sono i seguenti:

  1. Essere un fork indipendente di SunOS
  2. Essere completamente opensource
  3. Esser compatibile con Solaris al 100%
  4. Essere la base per altre distribuzioni

Inoltre l’annuncio poi prosegue con altri dettagli, per esempio su come verra’ organizzata l’amministrazione del progetto, almeno in questa fase iniziale. Inoltre si specifica che Illumos non è una Distribuzione, anche se probabilmente verrà resa disponibile una distribuzione nel futuro.

Le architetture su cui puntano ad essere disponibili sono x86/64, Sparc, e in futuro forse anche altre.

Gia prima dell’annuncio qualche cosa hanno fatto, hanno sostituito alcune utilities closed-source, riscritto alcune parti chiuse della libc, sostituito alcuni driver, e il punto piu importante e’ che “si carica!!” 🙂

Di strada da fare ne hanno ancora e gli obiettivi che si sono posti sono ambiziosi. C’e solo da augurare che riescano a portare avanti questo progetto!

Per maggiori informazioni: http://www.illumos.org/projects/site/wiki/Announcement
Se volete dare un occhiata alle slide presentate durante il lancio: http://www.illumos.org/attachments/download/3/illumos.pdf