littlefs

A little fail-safe filesystem designed for microcontrollers

BSD-3-CLAUSE License

Stars
4.9K

Bot releases are hidden (Show)

littlefs - v2-alpha

Published by geky over 5 years ago

Note!

This is the alpha release of littlefs v2. There are still a handful of tasks that need to be completed before completing the work around v2, most notably 1. implement a migration function from v1 and 2. update documentation. But at the moment littlefs v2 is code complete and passing all the tests I've been able to throw at it.

If you any issues with v2-alpha, please raise them on GitHub as that will help make the v2 release that much more stable.

More info about v2.0 progress can be found here: https://github.com/ARMmbed/littlefs/pull/85

What's new?

Big things

  • Metadata logging - this is a constant-time improvement to write efficiency and wear distribution
  • Custom attributes - a much requested feature for attaching small attributes to files (such as timestamps)
  • Inline files - significantly improved handling of small files which can now have multiple in a single block
  • XOR global state - moves and deletes should now be much faster
  • Independent cache sizes - better handling of the RAM you give littlefs
  • Expanding superblocks - no longer a flat cost of 2 blocks for the superblock
  • True dynamic wear-leveling - no longer relies on reporting of block errors

Small things

  • Configurable name/file/attr maximums - reduces RAM consumption and is still portable
  • Added lfs_fs_size - no need for the extra code with lfs_fs_traverse
  • Dropped global file buffer - now buffers are provided on a per-file basis
  • Better update tracking - minor miscellaneous improvements

Detailed info in the PR: https://github.com/ARMmbed/littlefs/pull/85

Changes

Right now the best source of info regarding the low-level changes can be found in the commit history, which contains a detailed log of all of the changes and reasoning behind different decisions:

https://github.com/ARMmbed/littlefs/commits/v2-alpha

littlefs - v1.1

Published by geky over 6 years ago

What's new?

  • Atomic moves
  • Significant amount of bug fixes
  • A lot of tweaks based on initial feedback

Changes

2ad435e Added files test to littlefs-fuse tests in Travis
1fb6a19 Reduced ctz traverse runtime by 2x
db88727 Added error code LFS_ERR_NOTEMPTY
c2fab8f Added asserts on geometry and updated config documentation
472ccc4 Fixed file truncation without writes
aea3d3d Fixed positive seek bounds checking
be22d34 Updated links to Mbed OS
425aa3c Fixed issue with immediate exhaustion and small unaligned storage
5ee20e8 Fixed pipefail issue that was preventing CI from reporting errors
bf78b09 Added directory list for synchronizing in flight directories
e169d06 Removed vestigial function declaration
996cd8a Revisited documentation
78c79ec Added QUIET flag to tests so CI is readable
f9f4f5c Fixed standard name mismatch LFS_ERR_EXISTS -> LFS_ERR_EXIST
843e3c6 Added sticky-bit for preventing file syncs after write errors
2612e1b Modified lfs_ctz_extend to be a little bit safer
6664723 Fixed issue with committing directories to bad-blocks that are stuck
3f31c8c Fixed corner case with immediate exhaustion and lookahead==block_count
f4aeb83 Fixed issue with aggressively rounding down lookahead configuration
db51a39 Removed stray newline in LFS_ERROR for version
2ab150c Removed toolchain specific warnings
0825d34 Adopted alternative implementation for lfs_ctz_index
46e22b2 Adopted lfs_ctz_index implementation using popcount
4fdca15 Slight name change with ctz skip-list functions
454b588 Updated SPEC.md and DESIGN.md based on recent changes
f3578e3 Removed clamping to block size in ctz linked-list
83d4c61 Updated copyright
539409e Refactored deduplicate/deorphan step to single deorphan step
2936514 Added atomic move using dirty tag in entry type
ac9766e Added self-hosting fuzz test using littlefs-fuse
9db1a86 Added specification document
9843402 Fixed incorrect return value from lfs_file_seek
273cb7c Fixed problem with lookaheads larger than block device
d9367e0 Fixed collection of multiblock directories
a83b2fe Added checks for out-of-bound seeks
a8fa5e6 Fixed some corner cases with paths
26dd49a Fixed issue with negative modulo with unaligned lookaheads
0982020 Fixed issue with cold-write after seek to block boundary

littlefs - v1.0

Published by geky over 6 years ago

Initial release

littlefs is a little fail-safe filesystem designed for embedded systems.

More information

  • README.md - Landing page and introduction of littlefs
  • DESIGN.md - High-level design overview of littlefs