Оболочка Альмквиста
Разработчик(и) | Кеннет Алмквист |
---|---|
Первоначальный выпуск | 30 мая 1989 г |
Написано в | С |
Операционная система | Unix-подобный |
Платформа | Кросс-платформенный |
Тип | оболочка Unix |
Веб-сайт | www |
Оболочка Almquist (также известная как A Shell , ash и sh ) — это облегченная оболочка Unix, первоначально написанная Кеннетом Алмквистом в конце 1980-х годов. Первоначально являвшийся клоном System V.4 варианта оболочки Bourne , он заменил исходную оболочку Bourne в BSD- версиях Unix, выпущенных в начале 1990-х годов.
История
[ редактировать ]Эш был впервые опубликован через публикацию в comp .sources.unix Группа новостей Usenet , одобренная и модерируемая Ричем Зальцем 30 мая 1989 года. Она была описана как «повторная реализация оболочки System V [с] большинством функций этой оболочки, а также некоторыми дополнениями». [ 1 ]
Быстрый, маленький и практически совместимый [ нужна ссылка ] со спецификацией оболочки Unix стандарта POSIX ash не предоставлял механизмы редактирования строк или истории команд , поскольку Алмквист считал, что такие функции следует переместить в терминала драйвер . Однако текущие варианты поддерживают это.
Следующее извлечено из информации о пакете ash из Slackware v14:
ясень (раковина пепла Кеннета Альмквиста)
Легкая (92K) оболочка, совместимая с Bourne. Отлично подходит для машин с небольшим объемом памяти, но не предоставляет всех дополнительных возможностей оболочек, таких как bash , tcsh и zsh . Запускает большинство сценариев оболочки, совместимых с оболочкой Bourne. Обратите внимание, что в Linux большинство сценариев, похоже, используют по крайней мере некоторый синтаксис, специфичный для bash. Сценарии установки Slackware являются заметным исключением, поскольку ash — это оболочка, используемая на установочных дисках. NetBSD использует ash в качестве /bin/sh.
На основе оригинального ясеня было создано множество вилок. [ 2 ] Эти производные ash устанавливаются как оболочка по умолчанию ( /bin/sh
) во FreeBSD , NetBSD , DragonFly BSD , MINIX и в некоторых дистрибутивах Linux . MINIX 3.2 использовал исходную версию Ash, функция тестирования которой отличалась от POSIX. [ 3 ] Эта версия оболочки была заменена в MINIX 3.3. Android использовал ash до Android 4.0 , после чего переключился на mksh . [ 4 ]
Бросаться
[ редактировать ]Разработчик(и) | Герберт Сюй |
---|---|
Первоначальный выпуск | 15 июля 1997 г |
Написано в | С |
Операционная система | Линукс , Андроид |
Тип | оболочка Unix |
Лицензия | Лицензия BSD из 3 пунктов с mksignames под GNU GPL [ 5 ] |
Веб-сайт | Гондор |
В 1997 году Герберт Сюй портировал ash
с NetBSD на Debian Linux . В сентябре 2002 года с выпуском 0.4.1 этот порт был переименован в Dash ( оболочка Debian Almquist ). Основными приоритетами Сюя являются соответствие POSIX и продуманная реализация. [ 2 ]
Как и его предшественник, Dash не поддерживает ни интернационализацию и локализацию , ни многобайтовое кодирование символов (и то, и другое требуется в POSIX). [ нужна ссылка ] Редактирование строк и поддержка истории на основе GNU Readline не являются обязательными ( --with-libedit
).
Принятие в Debian и Ubuntu
[ редактировать ]Из-за своей компактности Ubuntu решила использовать Dash по умолчанию. /bin/sh
[ 6 ] [ 7 ] в 2006 году. Причиной использования Dash является более быстрое выполнение сценариев оболочки , [ 8 ] особенно во время запуска операционной системы, по сравнению с предыдущими версиями Debian и Ubuntu, которые использовали для этой цели Bash, хотя Bash по-прежнему является оболочкой входа по умолчанию для интерактивного использования. [ 9 ] Дэш стал по умолчанию /bin/sh
в Ubuntu, начиная с версии 6.10 в октябре 2006 года. [ 7 ] Dash заменил Bash и стал программой по умолчанию. /bin/sh
в Debian 6 (Squeeze), выпущенном в феврале 2011 года. [ 6 ]
В результате этого изменения было обнаружено, что многие сценарии оболочки используют специфичные для Bash функциональные возможности («башизмы») без надлежащего объявления их в строке shebang . [ 10 ] [ 11 ] Проблема была впервые обнаружена в Ubuntu, и сопровождающие Ubuntu решили привести все сценарии в соответствие со стандартом POSIX . Позже изменения были перенесены в Debian, который в конечном итоге принял Dash в качестве системы по умолчанию. /bin/sh
слишком. В результате политика Debian была изменена, чтобы позволить разработчикам сценариев использовать оболочку, в значительной степени совместимую с POSIX, за исключением расширений, объединенных в Dash для удобства ( local
, echo -n
, test -a / -o
). [ 12 ] [ 13 ] Аналогичный переход произошел в Slackware Linux, хотя их версия ash
лишь частично основан на Dash. [ 2 ]
Встроенный Linux
[ редактировать ]Ash (в основном ответвление Dash) также довольно популярен во встроенных системах Linux . Версия Dash 0.3.8-5 была включена в BusyBox , универсальный исполняемый файл, часто используемый в этой области, и используется в таких дистрибутивах, как DSLinux, Alpine Linux , Tiny Core Linux на базе Linux, и прошивках маршрутизаторов таких как OpenWrt , Tomato и DD. -ВРТ .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Алмквист, Кеннет (30 мая 1989 г.). Рич Зальц (ред.). «v19i001: Повторная реализация оболочки System V, часть 01/08» . Группа новостей Usenet , comp.sources.unix.
- ^ Перейти обратно: а б с Масчек, Свен. «Варианты Ясеня (Панциря Альмквиста)» . www.in-ulm.de .
- ^ Томас Э. Дики (2015). «ТЕСТ против портативности» . Проверено 1 марта 2020 г.
- ^ Эллиот Хьюз (20 июня 2018 г.). «Оболочка и утилиты Android» . Проверено 29 февраля 2020 г.
- ^ Сюй, Герберт. «КОПИРОВАНИЕ» . Архивы ядра Linux . Проверено 23 декабря 2023 г.
- ^ Перейти обратно: а б «Неинтерактивная оболочка» . Дебиан Вики . 13 января 2020 г. Проверено 29 февраля 2020 г.
- ^ Перейти обратно: а б «Деш как /bin/sh» . Убунту Вики . 16 декабря 2017 г. Проверено 29 февраля 2020 г.
- ^ Нил Кравец (2011). Ubuntu: мощные хаки и настройки . Джон Уайли и сыновья . п. 178. ИСБН 9781118080382 .
- ^ Кристофер Негус; Франсуа Кан (2011). Панель инструментов Ubuntu Linux . Джон Уайли и сыновья. п. 49. ИСБН 9781118079140 .
- ^ Эгиль Гастинг (20 сентября 2006 г.). «Сценарий, использующий bash, может быть сломан с помощью новой символической ссылки» . Панель запуска . Проверено 29 февраля 2020 г.
- ^ комоция (21 сентября 2007 г.). «тире как #!/bin/sh приводит к бесчисленным несовместимостям» . Панель запуска . Проверено 29 февраля 2020 г.
- ^ «10. Файлы» . Руководство по политике Debian v4.5.0.2 .
- ^ Linux по основным командам Руководство –
Внешние ссылки
[ редактировать ]- Официальный сайт
- Linux пользователя Руководство – Пользовательские команды –
- Debian по основным командам Руководство –
- FreeBSD по основным командам Руководство –
- NetBSD по общим командам Руководство –