Назад | Перейти на главную страницу

Есть ли оболочка * NIX, которая имеет большинство встроенных инструментов - без символических ссылок, без внешних исполнителей?

Я ищу оболочку * NIX, в которой большая часть основных функций - ls, cat и т.д. - выполняется внутри и не вызывается через exec для внешних программ. busybox что-то делает с символьными двоичными именами, обращающимися к себе, но по-прежнему вызывает exec вместо того, чтобы просто вызывать программы изнутри. Есть ли где-нибудь такая полностью автономная оболочка? Кажется, я ничего не могу найти в Google.

Заранее спасибо!

Busybox может быть настроен для непосредственного запуска внутренних реализаций некоторых из своих исполняемых файлов («апплетов»), если установлены следующие параметры:

  • FEATURE_PREFER_APPLETS=y ("exec предпочитает апплеты")
  • FEATURE_SH_STANDALONE=y («Автономная оболочка»)
  • FEATURE_SH_NOFORK=y ("Запускать апплеты 'nofork' напрямую")

Все эти параметры по умолчанию отключены, поэтому вам нужно будет собрать busybox из исходного кода, чтобы включить их.

Обратите внимание, что многие апплеты не поддерживают NOFORK.

Вы могли бы использовать sash «автономная оболочка».

Из описания пакета Debian:

sash служит интерактивной заменой /bin/sh, для использования, когда /bin/sh непригоден для использования. Он статически связан и включает в себя множество стандартных утилит в качестве встроенных (введите «help» в запросе списка ссылок). Если вы установили sash перед тем, как сделать вашу систему не загружаемой, и у вас есть некоторые знания о том, как ваша система должна работать, вы можете восстановить свою систему, используя init=/bin/sash в приглашении загрузки.

Вы можете посмотреть bash-static, статически связанная версия bash.