O próprio Linux foi escrito em C (embora não na totalidade), portanto é de esperar que seja possível programar-se em C usando uma distribuição instalada de raiz, e de facto é na maioria dos casos, sem recorrer a qualquer programa adicional.
A primeira distinção necessária é a de editor versus compilador. O editor é o programa que nós usamos para escrever o nosso código. Existem milhares de programas que o fazem, tanto em Windows como em Linux, desde os simples gEdit ou Kate aos mais complexos Vi, eMacs, Joe… a lista é praticamente interminável.