When every bit of speed and space management actually counts, C (or it's derivatives like C++ or objective C) are still king. Half of those above projects were written when JVM, .Net and python/ruby/etc were mature widely used solutions.
Think about what a gc pause would do to an OS - it could kill performance for every single process on the system, cause issues with input buffers overflowing, and other related issues. A microsecond here and there in call latency may not matter most of the time, but in thousands of syscalls or in low level network processing have large cumulative effects.
Don't get me wrong, I love my high level languages and modern GC runtimes, but there are days and places when microseconds and bytes still matter, and for those, I still grab C. Just like the nailgun hasn't fully replaced the hammer, or the vacuum hasn't fully replaced the broom, there is a good reason C still exists and finds acceptance.
Maybe Go or Rust will start to creep even more into the C space than JVM etc already have, but I really don't see it fully going away, it is just too useful and a well understood proper tool for some jobs.