tr
хороший инструмент для этого задания
new=$( printf "%s" "$t" | tr -cs 'a-zA-Z0-9' '-' )
new=${new#-}; new=${new%-}
То, что делает Вас, подразумевало под “несобственным компонентом”? Нет четкого определения “установленного по умолчанию”, так как каждое распределение имеет свой собственный набор по умолчанию установленных пакетов, и очень легко настроить тот набор.
Потоки POSIX являются частью GNU libc, который является фундаментальной частью любого, не встроил системы Linux (существуют замены для маленьких систем, я думаю, что главные также включают поддержку pthread). Само ядро Linux включает поддержку потоков. Это не точно pthread, но различие между тем, что поддерживается одним только ядром и что поддерживается стандартной библиотекой сверху ядра, редко полезно.
OpenMP проникает через GOMP, который является частью gcc. В отличие от стандартной библиотеки (Glibc), возможно иметь нормальную систему Linux без установленного libgomp.
Существует несколько реализаций MPI для Linux, включая MPICH и OpenMPI. Существуют нормальные системы Linux без тех, также.
Все в конечном счете реализовано сверх системных вызовов, т.е. функциональности, обеспеченной ядром. MP, MPI и другие библиотеки реализованы с точки зрения системных вызовов управления процессами, межпроцессного взаимодействия (каналы, сокеты, общая память, …) и многопоточность (блокировки, условия, …).