Jump to content

КорнШелл

(Перенаправлено с Pdksh )
КорнШелл
Оригинальный автор(ы) Дэвид Корн
Первоначальный выпуск 1983 год ; 41 год назад ( 1983 ) [1] [2]
Финальный выпуск
93u+ / 1 августа 2012 г .; 12 лет назад ( 01.08.2012 )
Предварительный выпуск
93в- / 24 декабря 2014 г .; 9 лет назад ( 24.12.2014 )
Репозиторий github /аст
Написано в С
Операционная система Unix и Unix-подобные (например, Linux и macOS ; также работает в Windows 10). [3] )
Доступно в Английский
Тип оболочка Unix
Лицензия
Веб-сайт Корншелл Отредактируйте это в Викиданных
кш2020
Разработчик(и) Куртис Рейдер, Ситешвар Вашишт, сообщество
Финальный выпуск
2020 год / 10 октября 2019 г .; 4 года назад ( 10.10.2019 )
Репозиторий github /ksh2020 /кш
Предшественник 93v-
Лицензия Публичная лицензия Eclipse
Веб-сайт Корншелл  Edit this on Wikidata
ksh93u+m
Разработчик(и) Мартейн Деккер, Джонотан Кинг, гиении
Стабильная версия
1.0.9 / 2 июля 2024 г .; 32 дня назад ( 2024-07-02 )
Репозиторий github /ksh93 /кш
Предшественник 93u+
Лицензия Публичная лицензия Eclipse
Веб-сайт Корншелл  Edit this on Wikidata

КорнШелл ( ksh) — это оболочка Unix , разработанная Дэвидом Корном в Bell Labs в начале 1980-х годов и анонсированная на USENIX 14 июля 1983 года. [1] [2] Первоначальная разработка была основана на исходном коде оболочки Bourne . [7] Другими первыми участниками были разработчики Bell Labs Майк Вич и Пэт Салливан, которые написали Emacs и vi соответственно. код режимов редактирования строк в стиле [8] KornShell обратно совместим с оболочкой Bourne и включает в себя множество функций оболочки C , вдохновленных запросами пользователей Bell Labs.

KornShell соответствует стандарту POSIX.2 , Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992). Основные различия между KornShell и традиционной оболочкой Bourne включают в себя:

  • управление заданиями , псевдонимы команд и история команд , созданные на основе соответствующих функций оболочки C ; контроль заданий был добавлен в Bourne Shell в 1989 году. [9]
  • выбор из трех стилей редактирования командной строки на основе vi , Emacs и Gosling Emacs.
  • ассоциативные массивы и встроенные арифметические операции с плавающей запятой (доступны только в версии ksh93 версия KornShell)
  • динамический поиск функций
  • математические функции
  • подмена процессов и перенаправление процессов
  • Выражения, подобные языку C
  • расширенный, ориентированный на выражение для и пока циклы
  • динамическая расширяемость (динамически загружаемых) встроенных команд (поскольку кш93 )
  • ссылочные переменные
  • иерархически вложенные переменные
  • переменные могут иметь связанные с ними функции-члены
  • объектно-ориентированное программирование (поскольку кш93т )
    • переменные могут быть объектами с переменными-членами и методами-членами.
    • методы объекта вызываются с именем объектной переменной, за которым (после точки) следует имя метода
    • вызываются специальные методы объекта: инициализация или присвоение объекта, отказ от объекта ( не установлено )
    • доступна композиция и агрегация, а также форма наследования
Korn Shell работает на службах Windows для UNIX

KornShell изначально был проприетарным программным обеспечением . В 2000 году исходный код был выпущен под лицензией, принадлежащей AT&T, но с момента выпуска ksh93q в начале 2005 года он лицензировался под лицензией Eclipse Public License . [4] KornShell доступен как часть коллекции программного обеспечения с открытым исходным кодом AT&T Software Technology (AST). Поскольку KornShell изначально был доступен только по собственной лицензии от AT&T, был создан ряд бесплатных альтернатив с открытым исходным кодом. К ним относятся ПДКШ , mksh , Bash и Z-оболочка .

Функционал оригинального KornShell, ksh88 использовался в качестве основы для стандарта POSIX.2 , Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992).

Некоторые поставщики до сих пор поставляют свои собственные версии старых версий. вариант ksh88 , иногда с расширениями. ksh93 поддерживается на GitHub . [10]

Как «Настольный KornShell» ( сек ), ksh93 распространяется как часть Common Desktop Environment . [11] Эта версия также предоставляет сопоставления на уровне оболочки для виджетов Motif . Он был задуман как конкурент Tcl / Tk . [12]

Оригинальный KornShell, ksh88 стал оболочкой по умолчанию в AIX версии 4, [13] [14] ksh93 доступен отдельно. [15]

UnixWare 7 включает в себя оба кш88 и кш93 . Оболочка Korn по умолчанию: ksh93 , который поставляется как /usr/bin/ksh , а более старая версия доступна как /usr/bin/ksh88 . [16] UnixWare также включает в себя dtksh, когда CDE установлен .

Судьба дистрибутива ksh93 стала менее стабильной после того, как примерно в 2012 году авторы покинули AT&T и выпустили стабильную версию ksh93u+ . Основные авторы продолжали работать над веткой ksh93v- beta примерно до 2014 года. В конечном итоге эта работа была продолжена в основном Red Hat в 2017 году (по просьбам клиентов) и в конечном итоге привела к первоначальному выпуску ksh2020. [17] осенью 2019 года. Этот первоначальный выпуск (хотя и исправил несколько предыдущих проблем со стабильностью) вызвал некоторые незначительные проблемы с поломками и совместимостью. [18] В марте 2020 года AT&T решила откатить изменения сообщества, спрятать их в ветке и перезапустить с ksh93u+ , поскольку изменения были слишком обширными и слишком ориентированными на ksh, чтобы компания могла их включить в проект в режиме обслуживания. [19] [20] Продолжается разработка исправлений в ветке ksh93u+m , основанной на последней стабильной версии AT&T ( ksh93u+ 2012-08-01). [21] кш2020 [22] был выпущен как «основной релиз по нескольким причинам» [23] например, удаление поддержки EBCDIC , прекращение поддержки двоичных плагинов, написанных для ksh93u+ , и удаление некоторых неработающих математических функций, но никогда не поддерживалось и не поддерживалось AT&T (даже в дату его первоначального выпуска).

Основной вклад в основную ветку программного обеспечения

[ редактировать ]

Для целей приведенных ниже списков основная ветка программного обеспечения KSH определяется как исходная программа, датируемая июлем 1983 года и вплоть до выпуска KSH2020 в конце 2019 года.Продолжающаяся разработка последующих версий (ветвей) KSH, начиная с 2020 года, разделилась на разные группы и не подробно описана ниже.

Основные отдельные участники

[ редактировать ]

Следующие перечислены примерно в возрастающем хронологическом порядке их вклада:

  • Дэвид Г. Корн (AT&T Bell Laboratories, AT&T Laboratories и Google; и создатель)
  • Гленн С. Фаулер (AT&T Bell Laboratories, AT&T Laboratories)
  • Кием-Фонг Во (AT&T Bell Laboratories, AT&T Laboratories)
  • Адам Эдгар (AT&T Bell Laboratories)
  • Майкл Т. Вич (AT&T Bell Laboratories)
  • Патрик Д. Салливан (AT&T Bell Laboratories)
  • Маттейс Н. Мельхиор (AT&T Network Systems International)
  • Карстен-Фляйшер (Omnium Software Engineering)
  • Бойер-Мур
  • Ситешвар Вашишт (Красная шляпа)
  • Куртис Райдер

Консультант по интеграции

[ редактировать ]
  • Роланд Майнц

Основные корпоративные участники

[ редактировать ]

Следующие перечислены примерно в возрастающем хронологическом порядке их вклада:

Пожертвованные корпоративные ресурсы

[ редактировать ]

Помимо основных корпораций-участников (перечисленных выше), некоторые компании предоставили бесплатные ресурсы для развития KSH. Они перечислены ниже (в алфавитном порядке):

Варианты

[ редактировать ]

Существует несколько вилок и клонов KornShell:

  • dtksh – форк ksh93 включен в состав CDE .
  • tksh – вилка ksh93 , который обеспечивает доступ к Tk набору инструментов виджетов .
  • oksh - порт варианта KornShell для OpenBSD , предназначенный для максимальной переносимости. [24] между операционными системами. Она использовалась в качестве оболочки по умолчанию в DeLi Linux 7.2.
  • loksh Linux порт OpenBSD с минимальными изменениями. варианта KornShell для [25]
  • mksh бесплатная реализация языка KornShell, ответвление OpenBSD. пдкш . Первоначально он был разработан для MirOS BSD и лицензируется на разрешительных (но не общедоступных) условиях; в частности, лицензия MirOS . [6] Помимо использования в BSD, этот вариант заменил пдкш в Debian, [26] и является оболочкой по умолчанию на Android.
  • SKsh вариант AmigaOS , который предоставляет несколько функций, специфичных для Amiga, таких как ARexx . совместимость [27] В этой традиции MorphOS использует pdksh в своем SDK.
  • Оболочка MKS Korn от MKS Inc. — собственная реализация языка KornShell из Microsoft Windows Services for UNIX (SFU) до версии 2.0; по словам Дэвида Корна, оболочка MKS Korn не была полностью совместима с KornShell в 1998 году. [28] [29] В SFU версии 3.0 Microsoft заменила оболочку MKS Korn новой оболочкой, совместимой с POSIX.2, как часть Interix . [30]
  • KornShell включен в UWIN , пакет совместимости Unix, созданный Дэвидом Корном. [31]
  • /bin/sh в пакете System V на BSD Дуга Гвина (армия США BRL) включала версию SVR2 Рона Натали. /bin/sh , в котором было и управление заданиями, и редактирование из командной строки. Это был современник оригинала ksh в то время, когда он еще не ускользнул от AT&T. Впоследствии это было /bin/sh , который поставлялся со всеми системами, производными от CMU Mach. [32]

См. также

[ редактировать ]
  1. ^ Jump up to: а б Рон Гомес (9 июня 1983 г.). «Расписание конференции USENIX в Торонто (предварительное)» . Группа новостей : net.usenix . Проверено 29 декабря 2010 г.
  2. ^ Jump up to: а б Гай Харрис (10 октября 1983 г.). «вопрос csh» . Группа новостей : net.flame . Проверено 29 декабря 2010 г.
  3. ^ «Korn Shell Launcher для подсистемы Windows для Linux «Размышления» . blog.fpmurphy.com . Проверено 29 января 2021 г.
  4. ^ Jump up to: а б «аст-открытый пакет» . Исследование AT&T. nd Архивировано из оригинала 1 октября 2015 г. Проверено 19 декабря 2022 г.
  5. ^ Jump up to: а б «МирBSD Корн Шелл» . Мирбсд.орг . Проверено 10 декабря 2018 г.
  6. ^ Корн, Дэвид Г. (26 октября 1994 г.), «ksh - расширяемый язык высокого уровня» , Труды симпозиума USENIX 1994 г. по языкам очень высокого уровня , Ассоциация USENIX , получено 5 февраля 2015 г. , Вместо изобретения нового скриптового языка, мы создали систему ввода форм, изменив оболочку Bourne, добавив при необходимости встроенные команды.
  7. ^ Больский, Моррис И.; Корн, Дэвид Г. (1989). «Благодарности». Язык команд и программирования KornShell . Энглвуд Клиффс, Нью-Джерси: Прентис Холл. стр. XII. ISBN  0-13-516972-0 .
  8. ^ «Традиционная семья раковин Борнов / история и развитие» . In-ulm.de . Проверено 10 декабря 2018 г.
  9. ^ «Это сайт загрузки программного обеспечения AT&T Software Technology ast от AT&T Research. Коллекция программного обеспечения AT&T AST OpenSource содержит обзор и практическое многоразовое программное обеспечение UNIX». Гитхаб.com . 10 декабря 2018 года . Проверено 10 декабря 2018 г.
  10. ^ Билл Розенблатт; Арнольд Роббинс (2002). Изучение Korn Shell (2-е изд.). О'Рейли. стр. VIII–IX. ISBN  978-0-596-00195-7 .
  11. ^ Пендерграст, Дж. Стивен (1995). Графическое программирование рабочего стола KornShell . Аддисон-Уэсли. п. 359. ИСБН  978-0-201-63375-7 .
  12. ^ Кейси Кэннон; Скотт Трент; Кэролин Джонс (1999). Просто AIX 4.3 . Прентис Холл. п. 21. ISBN  978-0-13-021344-0 .
  13. ^ «Центр знаний IBM» . ИБМ . Проверено 10 декабря 2018 г.
  14. ^ «Центр знаний IBM» . ИБМ . Проверено 10 декабря 2018 г.
  15. ^ «Соответствие UNIX95» . Uw714doc.sco.com . Проверено 10 декабря 2018 г.
  16. ^ «кш2020» . Гитхаб . 26 февраля 2021 г.
  17. ^ «Журнал изменений ksh2020» . Гитхаб . 29 мая 2020 г.
  18. ^ «Перемотка этого репозитория и поощрение сообщества · Проблема № 1466 · att/ast» . Гитхаб .
  19. ^ "segfault с расширенными glob · #1464 · att/ast" . Гитхаб .
  20. ^ "кш 93у+м " . Гитхаб . 17 ноября 2021 г.
  21. ^ «2020.0.0: Стабильная версия ksh-2020.0.0» . Гитхаб . Проверено 29 января 2021 г. Примечание. ksh2020 не поддерживается и не поддерживается.
  22. ^ "ksh 2020.0.0 ИЗМЕНЕНИЯ" . Гитхаб . 29 января 2021 г.
  23. ^ «ОКШ на GitHub» . Гитхаб . 1 августа 2020 г.
  24. ^ «локш на GitHub» . Гитхаб . 15 октября 2021 г.
  25. ^ «5.11. Переход ПДКШ на МКШ» . Архивировано из оригинала 28 июля 2014 г. Проверено 28 июля 2014 г.
  26. ^ "Аминет - утилита/Shell/SKsh21.LZH" .
  27. ^ «Дэвид Корн рассказывает все» . Слэшдот . Проверено 22 октября 2009 г.
  28. ^ «Джерри Фельдман — участник конференции USENIX NT/LISA NT» . Lists.blu.org. 29 августа 1998 года . Проверено 22 октября 2009 г.
  29. ^ «Службы Windows для UNIX версии 3.0» . Technet.microsoft.com . Проверено 22 октября 2009 г.
  30. ^ Анатоль Ольчак (2001). Оболочка Korn: Руководство по программированию для Unix и Linux . Аддисон-Уэсли Профессионал. п. 4. ISBN  978-0-201-67523-8 .
  31. ^ Натали, Рон (30 января 2023 г.). " "Контроль заданий и другие терминальные развлечения" " . Из списка рассылки TUHS («Общество наследия Unix»). Архивировано из оригинала 7 июля 2024 г. Проверено 7 июля 2024 г. ... Контроль занятости в Беркли был интересным трюком. Для нас в BRL проблема заключалась в том, что я абсолютно ненавидел синтаксис оболочки C. Оболочка Korn еще не вышла из-под контроля AT&T, поэтому я потратил время на то, чтобы выяснить, как она на самом деле работает в оболочке C (не очень хорошо документирована), в основном путем проверки, а затем повторно реализовал ее в Bourne Shell (мы использовали оболочку Korn). Версия исходного кода System V для этого). Я все еще не мог добиться от BRL поддержки в использовании оболочки Bourne, поскольку к тому времени в tcsh появилась возможность редактирования командной строки. Итак, вернемся к исходникам оболочки. К этому времени вышел 5R2, поэтому я взял исходный код оболочки [ sic ]. [...] Я переработал редактирование командной строки в стиле emacs в оболочке. Впоследствии у меня состоялся приятный разговор с Дэвидом Корном из USENIX, который, вероятно, на тот момент был двумя наиболее знакомыми с внутренними компонентами управления заданиями оболочки Bourne. Я также сел с ребятами, пишущими либо bash, либо pdksh (не помню какой), и объяснил, как это работает[ так в оригинале ]. ... Спустя годы я покинул BRL, три года проработал администратором Rutgers и работал в небольшом стартапе в Вирджинии. Там была рабочая станция MIPS. Я с трудом использовал ed... Не думая об этом, я попытался получить фоновую работу, набрав «fg». К моему удивлению, оболочка напечатала «Управление заданиями не включено». Хм, говорю я. Это похоже на мое сообщение об ошибке. «set -J» печатаю я. «Управление заданиями включено». Привет! Это моя оболочка. Оказывается, Дуг Гвин поместил мои моды на свою дистрибутивную ленту «System V on BSD», и они проникли в базу кода Mach, и поэтому каждая система, основанная на Mach, в конечном итоге получила их.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e91465d5449d19adedfe1e933694bf4d__1721876400
URL1:https://arc.ask3.ru/arc/aa/e9/4d/e91465d5449d19adedfe1e933694bf4d.html
Заголовок, (Title) документа по адресу, URL1:
KornShell - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)