tmpfs обычно хранится в оперативке, но при нехватке памяти может свопиться на диск. Главное её свойство - это отсутствие транзакционных методов работы, необходимых нормальной файловой системе - это даёт скорость, а надёжность там не нужна, ибо при ребуте она чистится.
Хранить там свои файлы - можно и нужно. Но надо помнить: "при ребуте она чистится".
procfs не хранится нигде, а генерится на лету. Поясняю очень приблизительно:
Когда команда ls смотрит обычную файловую систему (обращается в директории, которую обслуживает обычная файловая система), то драйвер файловой системы читает некое хранилище - обычно HDD/SSD. И там лежат имена файлов - их можно найти программой типа diskedit (если Вы заете, что это такое).
Когда команда ls смотрит корень procfs - то драйвер procfs не читает никаких носителей, а запускает внутри себя команду ps (любители корректных формулировок сейчас закидают меня тапками). ps читает список запущенных процессов (который, вообще-то, хранится в памяти - в данных ядра) и передаёт его драйверу procfs. А драйвер procfs на основе этой информации формирует список номеров процессов.
Если команда ls смотрит в поддиректорию procfs - то драйвер procfs берёт информацию из данных ядра конкретно про этот процесс; эта информация тоже лежит в памяти, тоже в данных ядра.
Собственно, разница в том, что драйвер обычной файловой системы читает данные как они лежат - потому делает это строго в монопольном режиме, никто другое не имеет права их трогать. А драйвер procfs работает с данными, которые ядро в любой момент может поменять - и потому не читает их из места хранения, а запрашивает через "кладовщика" - через того же, через кого эти данные запрашивает программа ps и её "родственники".
А есть ещё одна интересная файловая система: devfs для директории /dev ...