How does FreeRTOS keeps track of time/ticks?

Is this purely done with  software, or is FreeRTOS using an MCU timer to keep track of how many ticks the CPU have gone through. I came across this question with this method: void vTaskDelay( portTickType xTicksToDelay ) I want to make sure I am not modifying a timer the FreeRTOS is using and therefore messing up the operations. Also, how I can I find out which task is running at a specific breakpoint in the program. Is there a data structure I can look into and find out? Thank you,
-Adrian

How does FreeRTOS keeps track of time/ticks?

FreeRTOS needs some form of periodic interrupt for its timer tic, which usually is generated via a built in timer. You need to look at the code in port.c to see how it is implemented as it does vary from port to port (and if you want to, you can change/create a new file) to change this if needed.