FreeRTOS and its various packages

Hello, I’m a bit confused with the exact functionalities that FreeRTOS provides. I’ve understood that the kernel per se only offers basic scheduling capabilities and that “add-ons” may be integrated to add extra functionalities such as TCP/IP or USB communications, a file system, and so on. What confuses me however is that on the website, it’s stated : “FreeRTOS + TCP” or “FreeRTOS + IO” and so on as if these packages were mutually exclusive. But It’d like potentially to combine all the functions each has to offer if, say, I wanted my system to be endowed with both a file system and a USB support (and even possibly with other functionalities such as Bluetooth, Internet connection,…). I know it’s feasiable of course, otherwise it wouldn’t make any sense but what “base package” shall I download therefore to suit this purpose? Is there a good explanation on the subject on the official website ? Couldn’t find one after having a quick glance. Thanks in advance.

FreeRTOS and its various packages

The FreeRTOS kernel is basically a library that implements multithreading and inter task/inter thread communication and synchronisation primitives. Its source code is in the /FreeRTOS/source directory. “FreeRTOS Plus” is the name of a few first party ecosystem products, so FreeRTOS+TCP is just following a naming convention for FreeRTOS’s TCP stack, etc. https://www.freertos.org/a00017.html