Ricordate questa sigla, perchè ne sentirete sicuramente parlare ancora. Certo, non è ancora uno standard affermato, essendo comparso sul web da pochi giorni, ma ha già conquistato tutte le homepage dei principali siti di news Android.
Perchè?
Dall'uscita dei primi personal computer, l'HDD meccanico è sempre stato un protagonista incontrastato. Tutti i filesystem usciti fin'ora sono ottimizzati per la scrittura su supporti magnetici (gli stessi HDD sono supporti a substrato magnetico) ma con l'uscita degli SSD era ora che gli standard venissero nuovamente stravolti per sfruttare appieno le nuove tecnologie.
Gli SSD sorpassano in velocità ed affidabilità i comuni HDD, che la fanno ancora da padroni solo per via del loro prezzo accessibile.
Ma sui device di nuova concezione, quali smartphone, tablet e diversi computer che non utilizzano più componenti meccaniche, i vecchi filesystem non riescono più a sfruttare appieno le potenzialità delle memorie a stato solido, basate su tecnologia flash.
Per capirci, il formato F2FS aumenterebbe notevolmente le prestazioni dei computer che fanno utilizzo degli SSD, al punto di rendere obsoleti addirittura i filesystem ext4 (Linux, 2008) o exFAT (Microsoft, 2007?).
Ma questo si estende (e non senza interessi da parte di Samsung) agli smartphone e ai tablet, basati interamente su memorie flash.
È logico pensare che Samsung abbia creato questo filesystem per liberarsi completamente del fat32 sulle flash. Questo FS infatti può soppiantare il fat32 e quindi Samsung potrà finalmente liberarsi delle royalties da pagare a Microsoft per l'utilizzo del fat32. Quindi, regalando alla comunità Linux questo FS, Samsung guadagnerà popolaritá tra i clienti, soldi (quelli risparmiati dall'utilizzo del fat32) ed avrà pieno supporto degli sviluppatori indipendenti, quindi evoluzione continua garantita.
È la scelta migliore che un azienda leader potesse fare: a trarne vantaggio sono gli utenti che l'azienda stessa. Infatti è ovvio che Sansung promuova i suoi interessi, ma è anche apprezzabile che cerchi di fidelizzare i clienti in questo modo quando gli interessi dell'azienda possono corrispondere a quelli dei clienti.
Gli utenti Linux riceveranno a breve la piena compatibilità F2FS sulle loro macchine semplicemente tramite un aggiornamento kernel.
F2FS, ovvero Flash-Friendly File System.
Ricordate questa sigla, perchè ne sentirete sicuramente parlare ancora. Certo, non è ancora uno standard affermato, essendo comparso sul web da pochi giorni, ma ha già conquistato tutte le homepage dei principali siti di news Android.
Perchè?
Dall'uscita dei primi personal computer, l'HDD meccanico è sempre stato un protagonista incontrastato. Tutti i filesystem usciti fin'ora sono ottimizzati per la scrittura su supporti magnetici (gli stessi HDD sono supporti a substrato magnetico) ma con l'uscita degli SSD era ora che gli standard venissero nuovamente stravolti per sfruttare appieno le nuove tecnologie.
Gli SSD sorpassano in velocità ed affidabilità i comuni HDD, che la fanno ancora da padroni solo per via del loro prezzo accessibile.
Ma sui device di nuova concezione, quali smartphone, tablet e diversi computer che non utilizzano più componenti meccaniche, i vecchi filesystem non riescono più a sfruttare appieno le potenzialità delle memorie a stato solido, basate su tecnologia flash.
Per capirci, il formato F2FS aumenterebbe notevolmente le prestazioni dei computer che fanno utilizzo degli SSD, al punto di rendere obsoleti addirittura i filesystem ext4 (Linux, 2008) o exFAT (Microsoft, 2007?).
Ma questo si estende (e non senza interessi da parte di Samsung) agli smartphone e ai tablet, basati interamente su memorie flash.
È logico pensare che Samsung abbia creato questo filesystem per liberarsi completamente del fat32 sulle flash. Questo FS infatti può soppiantare il fat32 e quindi Samsung potrà finalmente liberarsi delle royalties da pagare a Microsoft per l'utilizzo del fat32. Quindi, regalando alla comunità Linux questo FS, Samsung guadagnerà popolaritá tra i clienti, soldi (quelli risparmiati dall'utilizzo del fat32) ed avrà pieno supporto degli sviluppatori indipendenti, quindi evoluzione continua garantita.
È la scelta migliore che un azienda leader potesse fare: a trarne vantaggio sono gli utenti che l'azienda stessa. Infatti è ovvio che Sansung promuova i suoi interessi, ma è anche apprezzabile che cerchi di fidelizzare i clienti in questo modo quando gli interessi dell'azienda possono corrispondere a quelli dei clienti.
Gli utenti Linux riceveranno a breve la piena compatibilità F2FS sulle loro macchine semplicemente tramite un aggiornamento kernel.
Repository sourceforge: http://sourceforge.net/projects/f2fs-tools/
Readme:
[spoiler=Espandi]What is F2FS?
=============
NAND flash memory-based storage devices, such as SSD, eMMC, and SD cards, have
been widely being used for ranging from mobile to server systems. Since they are
known to have different characteristics from the conventional rotational disks,
a file system, an upper layer to the storage device, should adapt to the changes
from the sketch.
F2FS is a new file system carefully designed for the NAND flash memory-based storage
devices. We chose a log structure file system approach, but we tried to adapt it
to the new form of storage. Also we remedy some known issues of the very old log
structured file system, such as snowball effect of wandering tree and high cleaning
overhead.
Because a NAND-based storage device shows different characteristics according to
its internal geometry or flash memory management scheme aka FTL, we add various
parameters not only for configuring on-disk layout, but also for selecting allocation
and cleaning algorithms.
Patch set
=========
The patch #1 adds a document to Documentation/filesystems/.
The patch #2 adds a header file of on-disk layout to include/linux/.
The patches #3-#15 adds f2fs source files to fs/f2fs/.
The Last patch, patch #16, updates Makefile and Kconfig.
mkfs.f2fs
=========
The file system formatting tool, "mkfs.f2fs", is available from the following
download page: http://sourceforge.net/projects/f2fs-tools/
Usage
=====
If you'd like to experience f2fs, simply:
# mkfs.f2fs /dev/sdb1
# mount -t f2fs /dev/sdb1 /mnt/f2fs
Short log
=========
Jaegeuk Kim (16):
f2fs: add document
f2fs: add on-disk layout
f2fs: add superblock and major in-memory structure
f2fs: add super block operations
f2fs: add checkpoint operations
f2fs: add node operations
f2fs: add segment operations
f2fs: add file operations
f2fs: add address space operations for data
f2fs: add core inode operations
f2fs: add inode operations for special inodes
f2fs: add core directory operations
f2fs: add xattr and acl functionalities
f2fs: add garbage collection functions
f2fs: add recovery routines for roll-forward
f2fs: update Kconfig and Makefile
Documentation/filesystems/00-INDEX | 2 +
Documentation/filesystems/f2fs.txt | 314 +++++++
fs/Kconfig | 1 +
fs/Makefile | 1 +
fs/f2fs/Kconfig | 55 ++
fs/f2fs/Makefile | 6 +
fs/f2fs/acl.c | 402 ++++++++
fs/f2fs/acl.h | 57 ++
fs/f2fs/checkpoint.c | 791 ++++++++++++++++
fs/f2fs/data.c | 700 ++++++++++++++
fs/f2fs/dir.c | 657 +++++++++++++
fs/f2fs/f2fs.h | 981 ++++++++++++++++++++
fs/f2fs/file.c | 643 +++++++++++++
fs/f2fs/gc.c | 1140 +++++++++++++++++++++++
fs/f2fs/gc.h | 203 +++++
fs/f2fs/hash.c | 98 ++
fs/f2fs/inode.c | 258 ++++++
fs/f2fs/namei.c | 549 +++++++++++
fs/f2fs/node.c | 1773 ++++++++++++++++++++++++++++++++++++
fs/f2fs/node.h | 331 +++++++
fs/f2fs/recovery.c | 372 ++++++++
fs/f2fs/segment.c | 1755 +++++++++++++++++++++++++++++++++++
fs/f2fs/segment.h | 627 +++++++++++++
fs/f2fs/super.c | 550 +++++++++++
fs/f2fs/xattr.c | 387 ++++++++
fs/f2fs/xattr.h | 142 +++
include/linux/f2fs_fs.h | 359 ++++++++
27 files changed, 13154 insertions(+)
create mode 100644 Documentation/filesystems/f2fs.txt
create mode 100644 fs/f2fs/Kconfig
create mode 100644 fs/f2fs/Makefile
create mode 100644 fs/f2fs/acl.c
create mode 100644 fs/f2fs/acl.h
create mode 100644 fs/f2fs/checkpoint.c
create mode 100644 fs/f2fs/data.c
create mode 100644 fs/f2fs/dir.c
create mode 100644 fs/f2fs/f2fs.h
create mode 100644 fs/f2fs/file.c
create mode 100644 fs/f2fs/gc.c
create mode 100644 fs/f2fs/gc.h
create mode 100644 fs/f2fs/hash.c
create mode 100644 fs/f2fs/inode.c
create mode 100644 fs/f2fs/namei.c
create mode 100644 fs/f2fs/node.c
create mode 100644 fs/f2fs/node.h
create mode 100644 fs/f2fs/recovery.c
create mode 100644 fs/f2fs/segment.c
create mode 100644 fs/f2fs/segment.h
create mode 100644 fs/f2fs/super.c
create mode 100644 fs/f2fs/xattr.c
create mode 100644 fs/f2fs/xattr.h
create mode 100644 include/linux/f2fs_fs.h
--
1.7.9.5
---
Jaegeuk Kim
Samsung