Yup - depends on how much writing you do to the flash drive - here is a link that does a far job of explaininghttp://www.acscontrol.com/knowledgebase/article.asp?CatID=2&ID=7
The article said that the write endurance of any single cell is on the order of 300,000 erase/write cycles. That can be misleading, as flash is erased and written in blocks.... Sooo, if you want to write a *single* character, an entire block of flash is erased and written. The block size is determined by the actual flash chips used. CF cards employ "wear-leveling" - transparent to the OS or user, the CF card will *move* data around in the flash chips so that all blocks of flash have about the same erase/write cycles.
The whole idea of a limited number of erase/write cycles in not unique to CF cards - the datasheet for the atmega168 indicates a limit of 10,000. Some of the newer PIC devices are on the order of 1000.
The specific issue with linux (at least a full blown install - one not tweeked for flash) is that out-of-the-box, it writes a LOT of logs... the logs are appened one line at a time. There are TONS of commercial examples of flash based devices running linux that manage all of this very very nicely. LinkSys routers are a good example... most have 4M of flash.
There are some linux projects that targeted at flash based storage:http://www.damnsmalllinux.org/
- designed to run from USB stick and includes complete GUI etchttp://www.openwrt.org/
- targeted at the LinkSys WRT54G routershttp://buildroot.uclibc.org/
- a -generic- linux build system that supports dozens of architectures like ARM, PPC and of course x86
In my opinion, buildroot is your best place to start - you can create a complete linux OS with development tools etc, in < 100mb without breaking a sweat.