eclipse-threadx / filex

Eclipse ThreadX - FileX is a high-performance, FAT-compatible file system that’s fully integrated with Eclipse ThreadX RTOS
https://github.com/eclipse-threadx/rtos-docs/blob/main/rtos-docs/filex/index.md
MIT License
32 stars 23 forks source link

Standalone FileX platform support #56

Closed Dharani3110 closed 1 week ago

Dharani3110 commented 3 months ago

Usecase: Nand flash filesytem for MCU board

is standalone Filex supported in Windows, Linux and Mac?

nflandin commented 2 months ago

FileX manages FAT and exFAT filesystems, and these filesystems are supported by major computer operating systems. FileX is not meant to interact with computers. If you want to provide for a computer to access your filesystem, you need to have some sort of of driver (and maybe middleware like USBX).

"Standalone" refers to using FileX without ThreadX, and does not help or hurt compatibility with computers.

vlang-intona commented 1 week ago

FileX is not written in a very portable manner, but I got it to work on Linux. You have to workaround some issues like https://github.com/eclipse-threadx/filex/issues/64 or the utterly idiotic way how time handling works. You can start with the generic port.

But why the hell would you use an awful, inefficient, and limited filesystem such as FAT for something internal?

fdesbiens commented 1 week ago

FileX manages FAT and exFAT filesystems, and these filesystems are supported by major computer operating systems.

@nflandin Microsoft removed exFAT support when they contributed the code to the Eclipse Foundation. exFAT is still covered by at least one patent. FileX still supports FAT 12, 16, and 32.

fdesbiens commented 1 week ago

But why the hell would you use an awful, inefficient, and limited filesystem such as FAT for something internal?

@ Dharani3110 FileX is modular and can be used however you see fit. However, on a desktop-class operating system, there are better filesystems than FAT and better ways to support FAT than integrating FileX into your application. I would look at Filesystem in USErspace (FUSE), which has the advantage of keeping your application portable.

In any case, the ThreadX team focuses on embedded use cases. There is little chance we will invest significant efforts in supporting Windows, Linux, or MacOS. Given that, I plan on closing this issue. I will leave it open for now if you want to continue the conversation.

vlang-intona commented 1 week ago

FileX manages FAT and exFAT filesystems, and these filesystems are supported by major computer operating systems.

@nflandin Microsoft removed exFAT support when they contributed the code to the Eclipse Foundation. exFAT is still covered by at least one patent. FileX still supports FAT 12, 16, and 32.

Oh wow, I didn't know that. That makes eclipse-threadx relatively useless. The azure-rtos FileX repo still exists, but it's set to archived. Where is exFAT support available now?

fdesbiens commented 1 week ago

@vlang-intona Commercial implementations from companies who licensed the patent could exist. I am not aware of any.

vlang-intona commented 1 week ago

@fdesbiens I assume Microsoft didn't just trash their exFAT support completely. But azure-rtos was made read-only. Maybe it was renamed again? If it exists, I can't find it.

nflandin commented 1 week ago

@nflandin Microsoft removed exFAT support when they contributed the code to the Eclipse Foundation. exFAT is still covered by at least one patent. FileX still supports FAT 12, 16, and 32.

When was exFAT support removed? Commit #8c216a298f9252bd4e3af9f68670646f5aecdbc1 "Added exFAT licensing blurb", and I understand that exFAT may not be currently worked on, but it doesn't appear to have been removed (as far as I can tell).

fdesbiens commented 1 week ago

@nflandin Microsoft removed exFAT support when they contributed the code to the Eclipse Foundation. exFAT is still covered by at least one patent. FileX still supports FAT 12, 16, and 32.

When was exFAT support removed? Commit #8c216a298f9252bd4e3af9f68670646f5aecdbc1 "Added exFAT licensing blurb", and I understand that exFAT may not be currently worked on, but it doesn't appear to have been removed (as far as I can tell).

@nflandin The commit you refer to exists in the Azure RTOS repository. If you browse the Eclipse FileX commit history, you will notice the repository only contains the 6.4.1 release, whereas we have the full 6.x series history for all other components. exFAT is definitely not part of the Eclipse ThreadX codebase.