Selasa, 30 Juni 2015

Sistem Berkas Android

Jika anda seorang developer atau user android, sering kali kita menemukan beberapa istilah pada android seperti contohnya: ext2, ext3, ext4 dan masih banyak lagi. Namun tahukah anda bahwa itu merupakan bagian dari extended file system? Apakah extended file system tersebut? Mari kita berbagi bersama tentang extended file system pada android.
Sebelum kita membahas tentang extended file system pada android, maka kita akan membahas tentang file system terlebih dahulu.

Apakah file system?
File system merupakan struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada sebuah media penyimpanan. File system juga merupakan pengorganisasian data atau file pada sebuah perangkat yang menggunakan sebuah media penyimpanan sebagai contohnya menggunakan harddisk, memory card, chipset,  DVD-ROM atau media penyimpanan lainnya. Ia berfungsi menyediakan mekanisme untuk penyimpanan data dan program yang dimiliki oleh sistem operasi serta seluruh pengguna dari sistem pada perangkat tersebut
Pada android terdapat file system tersebut agar android dapat berfungsi, android merupakan bagian pengembangan dari linux, oleh karena itu jika anda seorang pengguna linux, tentu saja tidak asing lagi dalam menggunakan android. Baik pada kernel maupun pada file system. Namun pada artikel ini saya lebih memfokuskan pembahasan pada system berkas pada android tersebut.

System berkas pada android
Semua sistem operasi memiliki sistem berkas untuk meletakkan file dalam sebuah struktur hirarki. Sistem berkas juga menentukan konvensi penamaan berkas dan peletakan berkas pada stuktur direktori.

Pada android, system berkas yang digunakan menyerupai dengan system berkas pada linux (serupa namun tidak sama). Mari kita bahas lebih lanjut tentang system berkas pada android.

1. Extended File System (Ext)

Extended file system atau ext, diliris pada April 1992 sebagai sistem file pertama dibuat khusus untuk kernel Linux. Memiliki struktur metadata terinspirasi dari FileSystem Unix tradisional (UFS) dan dirancang oleh Rémy Card untuk mengatasi keterbatasan tertentu dari sistem file MINIX. Ini adalah implementasi pertama yang menggunakan sistem file virtual (VFS), yang dukungannya telah ditambahkan dalam kernel Linux dalam versi 0.96c, dan bisa menangani sistem file hingga 2 gigabyte (GB).

Ini adalah yang pertama dalam rangkaian sistem file yang diperluas, menjadi ext2 danxiafs, namun ext2 lebih popular dibanding xiafs karena jangka panjang kelangsungan hidup. ext2 memperbaiki masalah pada ext, seperti ketetapan dari inode danfragmentasi.


ext
Full nameExtended file system
IntroducedApril 1992 (Linux)
Structures
File allocationbitmap (free space), table (metadata)
Bad blocksTable
Features
File system permissionsPOSIX
Transparent encryptionNo


2. Second Extended (Ext2)
Second Extended File system (Ext2) dirancang oleh Rémy Card, sebagai file sistem yang extensible dan powerful untuk digunakan pada sistem operasi Linux. Ext2 adalah file system untuk kernel linux (termasuk android) yang digunakan sebagai pengganti untuk file system ext. Ext2 adalah file system default di beberapa distribusi linux (distro linux) , Debian, Red Hat Linux (RHEL), beberapa android versi pendahulu sampai akhirnya ini diganti dengan ext3.

Latar belakang
Ext2 pertama kali dikembangkan dan diintegrasikan pada kernel Linux, dan sekarang ini sedang dikembangkan juga penggunaannya pada sistem operasi lainnya.
Tujuan
Untuk membuat suatu file system yang powerful, yang dapat mengimplementasikan file-file semantik dari UNIX dan mempunyai pelayanan advance features.
Kemampuan dasar EXT2
  • File system EXT2 mampu menyokong beberapa tipe file yang standar dari UNIX, seperti regular file, directories, device special files, dan symbolic links.
  • EXT2 mampu mengatur file-file system yang dibuat dalam partisi yang besar.
  • File system EXT2 mampu menghasilkan nama-nama file yang panjang. Maximum 255 karakter.
  • EXT2 memerlukan beberapa blok untuk super user (root).


ext2
DeveloperRémy Card
Full nameSecond extended file system
IntroducedJanuary 1993 (Linux)
Partition identifierApple_UNIX_SVR2 (Apple Partition Map)
0x83 (Master Boot Record)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT)
Structures
File allocationbitmap (free space), table (metadata)
Bad blocksTable
Limits
Max file size16 GB - 2 TB
Max number of files1018
Max filename length255 bytes
Max volume size2-32 TB
Allowed characters in filenamesAny byte except NULL and '/'
Features
Dates recordedmodification (mtime), attribute modification (ctime), access (atime)
Date rangeDecember 14, 1901 - January 18, 2038
Date resolution1s
File system permissionsPOSIX
Transparent compressionNo (Available through patches)
Transparent encryptionNo
Supportedoperating systemsLinux, BSD, Windows (through an IFS), Mac OS X (through an IFS)

3. Third Extended File System (Ext3)
Ext3 adalah pengembangan dan versi perbaikan dari ext2, beberapa yang dijelaskan tentang ext3:
  • EXT3 merupakan suatu journalled file system
  • Journalled file system didesain untuk membantu melindungi data yang ada di dalamnya.
  • Dengan adanya journalled file system, maka kita tidak perlu lagi untuk melakukan pengecekan kekonsistensian data, yang akan memakan waktu sangat lama bagi harddisk yang berkapasitas besar.
  • EXT3 adalah suatu filesystem yang dikembangkan untuk digunakan pada sistem operasi Linux.
  • EXT3 merupakan hasil perbaikan dari EXT2 ke dalam bentuk EXT2 yang lebih baik dengan menambahkan berbagai macam keunggulan

Keunggulannya:
Availability
EXT3 tidak mendukung proses pengecekan file system, bahkan ketika system yang belum dibersihkan mengalami “shutdown”, kecuali pada beberapa kesalahan hardware yang sangat jarang.
Hal seperti ini terjadi karena data ditulis atau disimpan ke dalam disk dalam suatu cara sehingga file system-nya selalu konsisten.
Waktu yang diperlukan untuk me-recover ext3 file system setelah system yang belum dibersihkan dimatikan tidak tergantung dari ukuran file system atau jumlah file; tetapi tergantung kepada ukuran “jurnal” yang digunakan untuk memelihara konsistensi. Jurnal dengan ukuran awal (default)
membutuhkan sekitar 1 sekon untuk recover (tergantung dari kecepatan hardware).

Integritas Data
  • Dengan menggunakan file sistem ext3 kita bisa mendapatkan jaminan yang lebih kuat mengenai integritas data dalam kasus dimana sistem yang belum dibersihkan dimatikan (shutdown).
  • Kita bisa memilih tipe dan level proteksi yang diterima data.
  • Kita bisa memilih untuk menjaga agar file system tetap konsisten, tetapi tetap mengijinkan kerusakan terhadap data dalam file system dalam kasus dimatikannya (shutdown) system yang belum dibersihkan; ini bisa memberikan peningkatan kecepatan pada beberapa keadaan.
  • Secara alternatif kita bisa memilih untuk lebih memastikan bahwa data konsisten dengan bagian dari file system; ini berarti kita tidak akan pernah melihat “garbage data” pada file-file yang baru ditulis ulang setelah terjadi “crash”.
  • Pilihan yang aman yakni menjaga kekonsistenan data sebagai bagian dari file system adalah pilihan default

Perbandingan EXT2 dengan EXT3
  • Secara umum prinsip-prinsip dalam EXT2 sama dengan EXT3.
  • Metode pengaksesan file, keamanan data, dan penggunaan disk space antara kedua file system ini hampir sama.
  • Perbedaan mendasar antara kedua file system ini adalah konsep journaling file system yang digunakan pada EXT3.
  • Konsep journaling ini menyebabkan EXT2 dan EXT3 memiliki perbedaan dalam hal daya tahan dan pemulihan data dari kerusakan.
  • Konsep journaling ini menyebabkan EXT3 jauh lebih cepat daripada EXT2 dalam melakukan pemulihan data akibat terjadinya kerusakan.


ext3
DeveloperStephen Tweedie
Full nameThird extended file system
IntroducedNovember 2001 (Linux 2.4.15)
Partition identifier0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structures
Directory contentsTable, hashed B-tree with dir_index enabled
File allocationbitmap (free space), table (metadata)
Bad blocksTable
Limits
Max file size16 GiB – 2 TiB
Max number of filesVariable, allocated at creation time[1]
Max filename length255 bytes
Max volume sizeTiB – 16 TiB
Allowed characters in filenamesAll bytes except '\0' and '/'
Features
Dates recordedmodification (mtime), attribute modification (ctime), access (atime)
Date rangeDecember 14, 1901 - January 18, 2038
Date resolution1s
Attributesallow-undelete, append-only, h-tree (directory), immutable, journal, no-atime, no-dump, secure-delete, synchronous-write, top (directory)
File system permissionsUnix permissions, ACLs and arbitrary security attributes (Linux 2.6 and later)
Transparent compressionNo
Transparent encryptionNo (provided at the block device level)
Data deduplicationNo
Supportedoperating systemsLinuxBSDWindows(through an IFS)

3. Fourth Extended File System (Ext4)
Ext4 (fourth extended filesystem ) dibentuk sebagai penerus filesystem ext3. dimaksudkan untuk memperpanjang batas penyimpanan dan menambahkan perbaikan kinerja lainnya.

Ext4 dirilis secara komplit dan stabil berawal dari kernel 2.6.28 jadi apabila  android anda yang secara default memiliki versi pengembangan dari kernel tersebut atau di atas nya otomatis system anda sudah support ext4 (dengan catatan sudah di include kedalam kernelnya) selain itu versi e2fsprogs harus mengunakan versi 1.41.5 atau lebih.

Keuntungan yang bisa didapat dengan mengupgrade filesystem ke ext4 dibanding ext3 adalah mempunyai pengalamatan 48-bit block yang artinya dia akan mempunyai 1EB = 1,048,576 TB ukuran maksimum filesystem dengan 16 TB untuk maksimum file size nya, Fast fsck, Journal checksumming, Defragmentation support.


ext4
DeveloperMingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others
Full nameFourth extended file system
IntroducedStable: 21 October 2008
Unstable: 10 October 2006 (Linux 2.6.28, 2.6.19)
Partition identifier0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structures
Directory contentsLinked list, hashed B-tree
File allocationExtents/Bitmap
Bad blocksTable
Limits
Max file size16 TiB (for 4k block filesystem)
Max number of files4 billion (specified at filesystem creation time)
Max filename length256 bytes (characters)
Max volume size1 EiB
Allowed characters in filenamesAll bytes except NUL ('\0') and '/'
Features
Dates recordedmodification (mtime), attribute modification (ctime), access (atime), delete (dtime), create (crtime)
Date range14 December 1901 - 25 April 2514
Date resolutionNanosecond
ForksNo
Attributesacl, bh, bsddf, commit=nrsec, data=journal, data=ordered, data=writeback, delalloc, extents, journal_dev, mballoc, minixdf, noacl, nobh, nodelalloc,noextents, nomballoc, nouser_xattr, oldalloc, orlov, user_xattr
File system permissionsPOSIX
Transparent compressionNo
Transparent encryptionNo
Data deduplicationNo
Supportedoperating systemsLinux
Windows (using ext2fsd)

Reference :

Minggu, 21 Juni 2015

Sistem Berkas

Sistem Berkas
Sistem berkas adalah sebuah metode untuk menyimpan dan mengatur data yang berupa file-file komputer. Pada dasarnya, sistem berkas mengatur file-file ke dalam database untuk penyimpanan, organisasi, manipulasi, dan pengambilan oleh sistem operasi komputer.
Kebanyakan sistem operasi menyediakan sistem berkas, yang mana sistem berkas merupakan bagian integral dari suatu sistem operasi modern. Pada awalnya satu-satunya tugas sistem operasi mikrokomputer adalah manajemen file. Beberapa sistem operasi awal memiliki komponen terpisah untuk penanganan sistem berkas yang disebut disk sistem operasi. Pada beberapa mikrokomputer, sistem operasi disk telah dimuat secara terpisah dari sisa pada sistem operasi. Pada sistem operasi awal, biasanya ada dukungan untuk hanya satu sistem berkas yang tidak bernamanya, misalnya, CP/M hanya mendukung sistem berkas sendiri, yang mungkin disebut “CP/M sistem berkas” jika diperlukan, tetapi tidak memiliki nama resmi sama sekali.
Sistem Berkas Pada Windows
Sistem operasi Windows dapat berjalan diatas beberapa macam sistem berkas. Setiap sistem berkas memiliki keunggulan dan kekurangan masing-masing. Semua keluarga Windows yang berbasis Windows NT dapat mendukung sistem berkas yang digunakan oleh keluarga Windows 9x, namun hal tersebut tidak berlaku sebaliknya.
Sistem Berkas yang terdapat dalam sistem operasi Windows adalah:
  1. FAT 16: Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3.1
  2. FAT 32: Sistem ini digunakan oleh keluarga Windows 9x.
  3. NTFS: Merupakan singkatan dari New Technology File System. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi.
Sistem Berkas pada Mac OS 
Mac OS X menggunakan sistem berkas yang diwariskan dari Mac OS lama disebut HFS Plus, yang terkadang disebut Mac OS Extended. Karena akar Unix dari Mac OS X, perijinan UNIX ditambahkan ke HFS Plus. Kemudian versi HFS Plus ditambahkan journal untuk mencegah korupsi dari struktur sistem berkas dan memperkenalkan sejumlah optimasi dengan algoritma alokasi dalam upaya untuk defragment file secara otomatis tanpa membutuhkan sebuah Defragmenter eksternal.
Sistem berkas dalam sistem Mac OS adalah

  1. Mancitosh File System (MFS) Hanya memiliki kapasitas 20 MB atau sebanyak 1400 file, sehingga file system yang satu ini dianggap sangatlah efisien dengan ukuran kapasitas yang kecil namun pada masanya fil system MFS cukup terkenal.
  2. Hierachical File System (HFS) HFS merupakan filesystem yang digunakan pada media penyimpanan Hard disk pertama kali untuk Mancitosh.
  3. Hierachical File System Plus (HFS+) : Merupakan pengembangan dari HFS yang dikembangkan oleh Apple Inc sebagai pengganti HFS. HFS+ digunakan pada Mac Os X yang merupakan system operasi Mac OS Extended juga digunakan pada format file system iPod.

Sistem Berkas pada UNIX (dan turunannya)
Ketika kita login ke UNIX, kita akan ditempatkan di direktori root kita. Direktori root kita dikenal sebagai direktori home kita dan dispesifikasi dengan environment variable yang dinamakan HOME. Environment variable ini menentukan karakteristik dari shell kita dan interaksi pengguna dengan shell tersebut. Environment variable yang umum adalah variabel PATH, yang mendefinisikan dimana shell akan mencari ketika perintah dari pengguna. Untuk melihat daftarenvironment variable, gunakan saja perintah printenv. Sedangkan untuk mengatur environment variable, gunakan setenv.
Macam-macam Sistem Berkas di UNIX 
  1. EXT2
  2. EXT3
  3. JFS (Journaling File System)
  4. ReiserFS