ref: ac077fdcebd5077b3bd24ecd3072e83af38b27c1
parent: 0220020635d5d67ecece00461807a5e7f011a7ba
author: gkostka <kostka.grzegorz@gmail.com>
date: Thu Apr 23 19:46:33 EDT 2015
Update readme.mediawiki
--- a/readme.mediawiki
+++ b/readme.mediawiki
@@ -6,20 +6,16 @@
kostka.grzegorz@gmail.com
==Minimum memory requirements==
+* .text: 20KB - 30KB (dependent of feature set chosen)
+* .data: 8KB
+* .stack: 2KB
-=====PROGRAM:=====
- - 20KB
-=====RAM:=====
- - 8KB
-=====STACK:=====
- - 2KB
-
==ext2/3/4 vs FAT32==
;ext2/3/4 > FAT32
-* fseek operation on big file in FAT32 is IO heavy
-* ext2/3/4 HTREE directories operations are faster than FAT32
-* ext4 extents makes truncate/remove opertion really fast
+* fast fseek on big file (in FAT32 fseek equals many IO operations)
+* ext2/3/4 HTREE directory operations (like find entry) are faster
+* fast extent big file allocation (truncate/remove)
* more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
;ext2/3/4 < FAT32
@@ -27,87 +23,71 @@
==Credits==
-A lot of the implementation of lwext4 was taken from HelenOS:
- http://helenos.org/
-
-Some of ideas and features are based on FreeBSD and Linux implementations.
+The most of the source code of lwext4 was taken from HelenOS:
+* http://helenos.org/
+Some features are based on FreeBSD and Linux implementations.
==Supported ext2/3/4 fs features==
+;Features incompatible (unable to mount when NOT supported):
+* compression: no
+* filetype: yes
+* recover: no (could be ignored)
+* journal_dev: no
+* meta_bg: yes
+* extents: yes
+* 64bit: yes
+* mmp: no (could be ignored)
+* flex_bg: yes
+* ea_inode: no
+* dirdata: no
+* bg_meta_csum: no
+* largedir: no
+* inline_data: no
+;Features compatible (mount when NOT supported is possible):
+* dir_prealloc: no
+* imagic_inodes: no
+* has_journal: no
+* ext_attr: no
+* resize_inode: no
+* dir_index: yes
+;Features read-only (mount in RO mode when NOT supported):
+* sparse_super: yes
+* large_file: yes
+* btree_dir: yes (obsolete)
+* huge_file: yes
+* gdt_csum: yes
+* dir_nlink: yes
+* extra_isize: yes
+* quota: no
+* bigalloc: no
+* metadata_csum: no
-
-;FEATURE_INCOMPAT (unable to mount with unsupported feature):
- compression: no
- filetype: yes
- recover: no (could be ignored)
- journal_dev: no
- meta_bg: yes
- extents: yes
- 64bit: yes
- mmp: no (could be ignored)
- flex_bg: yes
- ea_inode: no
- dirdata: no
- bg_meta_csum: no
- largedir: no
- inline_data: no
-
-;FEATURE_COMPAT (able to mount with unsupported feature):
- dir_prealloc: no
- imagic_inodes: no
- has_journal: no
- ext_attr: no
- resize_inode: no
- dir_index: yes
-
-;FEATURE_RO (able to mount in read only mode):
- sparse_super: yes
- large_file: yes
- btree_dir: yes (obsolete)
- huge_file: yes
- gdt_csum: yes
- dir_nlink: yes
- extra_isize: yes
- quota: no
- bigalloc: no
- metadata_csum: no
-
-
==Supported filetypes:==
- FIFO: no
- CHARDEV: no
- DIRECTORY: yes
- BLOCKDEV: no
- FILE: yes
- SOFTLINK: no
- SOCKET: no
+* FIFO: no
+* CHARDEV: no
+* DIRECTORY: yes
+* BLOCKDEV: no
+* FILE: yes
+* SOFTLINK: no
+* SOCKET: no
==Other==
- block_size: 1KB, 2KB, 4KB ... 64KB
- little/big endian architecture support
-
==Project tree==
-
- - blockdev - block devices set, supported blockdevs
- -- filedev - file based block device
- -- io_raw - wiodows IO block device
-
- - demos - demo directory sources
- -- generic - generic demo app, used for development and and debbuging purpose
-
- - lwext4 - internals of the lwext4 library
-
- - toolchain - specific toolchain cmake files
-
- - ext4.h - lwext4 client library header
- - CMakeLists.txt - CMake config file
- - ext_images.7z - ext2/3/4 100MB images
- - fs_test.mk - automatic tests definition
- - Makefile - helper makefile to call cmake
- - readme.mediawiki - yes, you are here ;)
+* blockdev - block devices set, supported blockdev
+* demos - demo directory sources
+* lwext4 - internals of the lwext4 library
+* toolchain - specific toolchain cmake files
+* CMakeLists.txt - CMake config file
+* ext_images.7z - compressed ext2/3/4 100MB images
+* fs_test.mk - automatic tests definitions
+* Makefile - helper makefile to trigger cmake, tests
+* readme.mediawiki - readme file
==Compile: Windows==
-;Tools needed:
+Requirements:
* CMake: http://www.cmake.org/cmake/resources/software.html
* MinGw: http://www.mingw.org/
* GnuWin: http://gnuwin32.sourceforge.net/
@@ -124,8 +104,8 @@
==Compile: Linux==
-Tools needed:
- - CMake: http://www.cmake.org/cmake/resources/software.html
+Requirements:
+* CMake: http://www.cmake.org/cmake/resources/software.html
;Create CMake files:
make
@@ -138,13 +118,12 @@
make
==Generic demo application==
-
Features:
- - load ext2/3/4 images
- - load linux block device with ext2/3/4 part
- - load windows volume with ext2/3/4 filesystem
- - directory speed test
- - file write/read speed test
+* load ext2/3/4 images
+* load linux block device with ext2/3/4 part
+* load windows volume with ext2/3/4 filesystem
+* directory speed test
+* file write/read speed test
How to use:
Windows/Linux fileimages:
@@ -160,38 +139,32 @@
generic --in /dev/your_block_device
Usage:
- --i - input file (default = ext2)
- --rws - single R/W size (default = 1024 * 1024)
- --rwc - R/W count (default = 10)
- --cache - 0 static, 1 dynamic (default = 1)
- --dirs - directory test count (default = 0)
- --clean - clean up after test
- --bstat - block device stats
- --sbstat - superblock stats
- --wpart - windows partition mode
+ --i - input file (default = ext2)
+ --rws - single R/W size (default = 1024 * 1024)
+ --rwc - R/W count (default = 10)
+ --cache - 0 static, 1 dynamic (default = 1)
+ --dirs - directory test count (default = 0)
+ --clean - clean up after test
+ --bstat - block device stats
+ --sbstat - superblock stats
+ --wpart - windows partition mode
-==Client-server automatic test suite==
-
-Build:
+==Build and run automatic tests==
+Build and run automatic tests
+Build automatic test tools:
make
cd build_generic
make
-
-Unpack images:
+Uncompress ext/2/3/4 images:
make unpack_images
-
-Run server:
+Run server app for predefined images:
make server_ext2
-
+ make server_ext3
+ make server_ext4
Run tests:
make all_tests
-
-==Cross-Compile==
-
- Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded
- Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php
-
+==Cross-Compile standalone library==
Build bf518 library:
make bf518
cd build_bf518
@@ -217,35 +190,11 @@
cd build_cortex-m4
make lwext4
-==Ports==
-STM32F429-DISCO USB flash drive Demo
+==Demos==
+* STM32F429-DISCO USB flash drive Demo
+* ChibiOS demo applications
Build STM32F429 Demo:
make cortex-m4
cd build_cortex-m4
make all
-
-==Footprint==
-
- TOOLCHAIN: arm-none-eabi-gcc
- OPT: O2
- OUTPUT:
- text data bss filename
- 648 0 0 ext4_inode.c
- 1064 0 0 ext4_crc32c.c
- 2124 0 0 ext4_blockdev.c
- 372 0 0 ext4_bitmap.c
- 1184 0 0 ext4_hash.c
- 2852 0 0 ext4_balloc.c
- 1844 0 0 ext4_dir.c
- 2904 0 0 ext4_dir_idx.c
- 972 0 0 ext4_bcache.c
- 552 0 0 ext4_block_group.c
- 744 0 0 ext4_ialloc.c
- 5408 0 0 ext4.c
- 600 0 0 ext4_super.c
- 24 0 4 ext4_debug.c
- 3092 0 0 ext4_extent.c
- 6424 0 0 ext4_fs.c
-
-
\ No newline at end of file