Думаю, это историческая случайность.
Когда в конце 1960-х - начале 1970-х годов была создана UNIX, у компьютеров не было почти такой же памяти, как сегодня. В то время было возможно реализовать всю эту функциональность в виде встроенных команд оболочки, но из-за ограничений памяти им пришлось бы ограничить объем функциональности, которую они могли бы реализовать, или рисковать нехваткой памяти и / или мусором подкачки. проблемы.
С другой стороны, реализуя данную функциональность в виде отдельных программ и делая два требуемых системных вызова для запуска нового процесса как можно более легкими, они могли бы создать среду сценариев, в которой нет этих проблем и которая по-прежнему работает с разумной скоростью.
Конечно, как только эти вещи будут реализованы как отдельные процессы, люди будут запускать их из программ, которые являются не оболочками, и затем они должны оставаться такими, иначе все это программное обеспечение внезапно начнет ломаться.
Это не значит, что вы не можете реализовать некоторые функции дважды, и действительно, некоторые оболочки реализуют некоторые функции, которые должны быть внешней программой в виде встроенной оболочки; например, bash реализует команду echo
как встроенную, но есть также / usr / bin / echo
С тех пор как я деактивировал bt_coex, проблема для меня решена. Если я не подключаю мышь слишком быстро после пробуждения из режима ожидания (т.е.: жду, пока установится WiFi), все работает нормально.