AndroidLab

Il Laboratorio Italiano Android e Google Chrome

Il Nexus S, come molti dei telefoni che usciranno con Android 2.3 abbandona il filesystem YAFFS ed userà l’ext4. Facendolo di fatto diventare il nuovo filesystem predefinito di Android, fermo restanto che i produttori potranno sempre usare il filesystem che preferiscono per i propri firmware.

La notizia ci viene data in un post sul blog ufficiale degli sviluppatori Android. Il post in questione, scritto da Tim Bray, è il primo si una serie di post indirizzati agli sviluppatori su aspetti di Android 2.3 da tener in considerazione per lo sviluppo.

Quel che si parla nel post, per chi è curioso e poco anglofono, riguarda un disagio che il filesystem ext4 introduce.
Questo nuovo filesystem usa il buffer in maniera più aggressiva rispetto a quanto facesse YAFFS. Tutto ciò si traduce in un dover prestare molto più attenzione quando si scrivono dati, che questi vengano effettivamente scritti quando lo vogliamo noi.

Naturalmente se nelle vostre applicazioni usate solo le SharedPreferences e database SQLite, non avete nulla di cui preoccuparvi, tutto il necessario per esser sicuri che i dati siano scritti è già stato fatto per voi da Google. Ma chi fa uso dell’archiviazioni di propri dati nel filesystem, allora è necessario che usiate com.android.internal.os.AtomicFile per dati grezzi, oppure una delle modalità sincrone di java.io.RandomAccessFile. Entrambi si preoocuperanno di chiamare fsync(), system call che chi programma in C conosce bene, questa non fa altro che forzare la scrittura nel filesystem dei dati.

Naturalmente una chiamata di fsync() va fatta solo quando strettamente necessario in quanto forzare la scrittura può portare rallentamente accentuati nell’esecuzione dell’applicazione.

Michele Dipace

Admin di Androidlab e "Computer Addicted", ha cominciato la sua"carriera" nella metà degli anni 80 sui computer 8 bit Commodore e Sinclair passando poi al 16 bit Amiga, diventandone grande appassionato. Oggi Linux user, crede che Android sia il sistema operativo destinato ad emergere nel mercato della telefonia mobile.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInPinterestGoogle PlusYouTube

  • mmm vedremo quando avrò il nexus S sotto mano 🙂
    ma se solo lui userà l'ext4 uno deve prestare particolare attenzione solo per lui…sticaaavoli..

    • a detta di Tim Bray la maggior parte dei produttori con gingerbread abbandonerà yaffs.
      Vedremo;)
      Personalmente ext4 per uno smartphone non mi garba molto ma è solo la mia opinione, avranno avuto i loro motivi per far il passaggio.

      • lippol94

        Ext4 è un file system eccezionale! Forse uno dei migliori in circolazione (di default sulla maggior parte dei sistemi linux). Garantisce velocità di I/O non comuni ad altri FS. Inoltre è quello suggerito dai cuochi per le loro ROM. http://it.wikipedia.org/wiki/Ext4

        • Lo conosco bene l'ext4 come conosco i principali fs.
          Nulla da dire sull'ext4 in se, a parte la relativa acerbità, ma qui si parla dell'ambito smartphone è un'altro discorso, ed il fatto che ha alte velocità di I/O è proprio dovuto all'utilizzo esteso che fa del buffering, ritardando di molto la scrittura effettiva dei dati.
          Per questo è stata necessario da parte degli ingegneri di google fare quel post di raccomandazioni agli sviluppatori. Pensa se dei dati critici non vengono immediatamente scritti e il terminale si riavvia, quie dati sono persi in quanto erano ancora in ram, e se la coda di scrittura è lunga ci possono rimanere anche troppo prima di esser effettivamente scritti.
          Yaffs d'altro canto fu creato esclusivamete per le memorie nand.

          Parlando in generale di fs invece ti dico che a mio giudizio uno dei migliori è zfs di solaris, di sicuro migliore e più maturo di ext4.

  • Pingback: Tweets that mention Il Nexus S userà il filesystem ext4 al posto di YAFFS | AndroidLab -- Topsy.com()

Forum Android
Diventa un blogger, scrivi un articolo