Существует ли оболочка *NIX, в которую встроены большинство инструментов - нет символьных ссылок, нет внешних исполняющих программ?

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

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

3 ответа

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

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

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

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

Вы можете взглянуть на bash-static, статически связанную версию bash,

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

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

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

Другие вопросы по тегам