Samsung Creates New File System F2FS For Linux, Good News For Android
muktware.com
muktware.com
The only good thing about that phone (besides the screen) is that it was nearly unbreakable and had a great custom Rom scene. Almost all of the roms replaced the file system.
I'm writing from my Galaxy S with CM10 (Jellybean) now. Naturally, it uses Ext (3?) partitions, and resizes the cache partition so I can download apps larger than 30mb from the play store (another interesting file system choice from Samsung).
I use the Opera labs browser. Opera, because despite some parts I don't like, it's the best I've seen at reflowing text to fit the screen (perfect for HN). The labs version, because it supports extensions, and it is the only way I can get something like Ghostery to block trackers while I'm browsing on the phone.
Do you have a particular HN app you recommend?
I was using http://ihackernews.com for a while, because of its mobile-friendly HTML, but it doesn't really offer anything in addition to regular HN with a good browser. Double tapping zooms to a good size, reflows the text, and snaps the scrolling to the new width, so most sites just feel like a "mobile app" anyhow.
Cheers.
Samsung Mobile has a reputation for making poor quality Android UIs (though they also have a few other OS projects going on; the EFL one and something else).
Also, Samsung-LSI generally makes better SoCs than the other guys (normally the bus works properly, etc). If you wanted to pick on them in a constructive way then you could say "I hope they clean up their mess in arch/arm..."
I am saying they will be working against a strong "Samsung is good at hardware, but not at software" reputation.
I love Android, and I like some of Samsung's hardware but I wish they'd shut their whole software division down and just put stock android on their phones and tablets. Stop writing code, and stop designing your custom UI, because you SUCK at this job.
Journalling is used when some blocks on the disk are scheduled to be overwritten. Instead, the blocks are written in a separate location (the so-called journal). At a later point in time, the data blocks get overwritten. Once the data is safely on the disk (via Forced Unit Access (FUA) or a flush track cache-type operation) we can then truncate the journal.
Log-structured systems do not do this. Instead, the achieve crash safety via never overwriting data; they always write elsewhere (into something called 'the log'). Eventually, too much of this log is filled with garbage, stale data. This is when 'cleaning' occurs. However, cleaning is expensive and slow. You must read a large amount of data, figure out what is alive/dead, and then write it all out.
F2FS's contribution to FS design seems to be handling this cleaning operation in a more graceful manner.
Thankyou.
Log-structured file systems tend to write data sequentially since the writes append to the log (yes - that's a gross over simplification).
File systems like ext4 maintain separate data structures for data and metadata and generate more random writes.
Furthermore if you are going to overwrite something in flash it usually behooves you to overwrite an entire block at a time. For these reasons flash systems tend to try to often write changes in a log manner, wait for a lot of changes to pile up and then incorporate those changes back into the original by rewriting entire blocks. The log can be placed in an initialized section of the memory where overwrites are not necessary.
Well, all block devices are written a block at a time. The way flash differs is that there are two internal block sizes -- called pages (4-8kB), and eraseblocks (256kB-4MB).
There are two states a page can be in: clear, or used. You can write at a page granularity, but only to clear pages. To clear used pages, you need to clear the entire eraseblock at a time. Eraseblock sizes are now limited by fundamental physical limits -- on every NAND node shrink from now, the eraseblocks are going to double in size. And they are already really huge in modern devices.
It's a perfect fit for flash, because there read seeks are (almost) free, and the overwrite-less, sequential writes are a perfect fit. Flash only supports read, erase, and write-on-erased operations, the exact set that LFS uses.