Tasks v/s Threads

In a “Big” system like POSIX, the system is divided into Processes and each process can have multiple Threads. Processes are well isolated from each other and Threads are easy to interact with each other.

FreeRTOS doesn’t implement both of these, but instead implements a “Task” that is in many ways close to a POSIX thread in capability, but also somewhat like a Process in usage (in y experience, they tend to be long lived like a processes).

They ARE different models of processing, so you shouldn’t just think of them as the same. Note, there is a “POSIX Emulation” setup, but don’t think of it as a way to ignore the difference. I would say one of the biggest challages of someone coming from a POSIX environment is “unlearning” how you do things in POSIX and replacing it with an embedded design methodology.