콘셸

KornShell
콘셸
OpenBSD ksh Interaction.png
OpenB와의 상호작용SD의 디폴트 셸,pdksh
원저작자데이비드 콘
초기 릴리즈1983년, 39년(연장)[1][2]
최종 릴리즈
93u+ / 2012년 8월 1일, 10년 전(2012-08-01)
프리뷰 릴리즈
93v- / 2014년 12월 24일, 7년 전(2014-12-24)
저장소github.com/att/ast
기입처C
운영 체제Unix 및 Unix 유사(Linux 및 macOS , Windows[3] 10에서도 동작)
이용가능기간:영어
유형Unix 쉘
면허증.
웹 사이트www.kornshell.org
kshdl
개발자커티스 레이더, 시츠워 바시쉬트, 커뮤니티
최종 릴리즈
2020년 / 2019년 10월 10일, 2년 전(2019-10-10)
저장소github.com/ksh2020/ksh
전임자93v-
ksh93u+m
개발자하이에니아스 조노탄 킹 마르틴 데커
안정된 릴리스
1.0.0 / 2022년 8월 1일, 8일 전(2022-08-01)
저장소github.com/ksh93/ksh
전임자93u 이상
라이선스이클립스 퍼블릭 라이선스

KornShell (ksh)는 1980년대 초 Bell Labs에서 David Korn에 의해 개발되어 1983년 [1][2]7월 14일 USENIX에서 발표된 Unix 쉘입니다.초기 개발은 Bourne 쉘 소스 [7]코드를 기반으로 했습니다.벨 연구소의 개발자인 마이크 비치와 팻 설리번은 각각 [8]Emacs와 Vi 스타일의 라인 편집 모드의 코드를 작성했습니다.KornShell은 Bourne 쉘과 하위 호환되며 Bell Labs 사용자의 요구에 따라 C 쉘의 많은 기능을 포함하고 있습니다.

KornShell, 즉 ksh2020[9]AT&T에 의해 "주요 릴리스"(EBCDIC 지원 삭제, ksh93u+용으로 작성된 바이너리 플러그인에 대한 지원 중단, 일부 고장난 산술 함수 제거 등)[10]가 출시되었지만 유지되거나 지원된 적이 없습니다(초기 출시 날짜에도 없음).

특징들

KornShell은 POSIX.2, Shell and Utilities, Command Interpreter (IEEEE 규격 1003.2-1992)에 준거하고 있습니다.KornShell과 기존 Bourne 쉘의 주요 차이점은 다음과 같습니다.

  • 작업 제어, 명령어 에일리어싱 및 대응하는 C 셸 기능 이후에 설계된 명령어 이력.작업 제어는 1989년에[11] Bourne Shell에 추가되었습니다.
  • vi, EmacsGosling Emacs에 기반한 3가지 명령줄 편집 스타일 선택 가능
  • 연관 배열 및 내장 부동 소수점 연산(ksh93 버전의 KornShell에서만 사용 가능)
  • 동적 함수 검색
  • 수학적 함수
  • 프로세스 대체 및 프로세스 리디렉션
  • C언어와 같은 표현
  • 확장 표현 지향 루프 및 while 루프
  • (동적으로 로드된) 내장 명령어의 동적 확장성(ksh93 이후)
  • 기준 변수
  • 계층적으로 내포된 변수
  • 변수에는 멤버 함수가 관련지어져 있을 수 있습니다.
  • 객체 지향 프로그래밍(ksh93t 이후)
    • 변수는 member(sub-) method 및 member 메서드를 가진 객체가 될 수 있습니다.
    • 오브젝트 메서드는 오브젝트 변수 이름 뒤에 (도트 문자 뒤에) 메서드 이름으로 호출됩니다.
    • 특별한 오브젝트 메서드 호출: 오브젝트 초기화 또는 할당, 오브젝트 포기(디세이블화)
    • 구성 및 집계를 이용할 수 있을 뿐만 아니라 상속 형태도 이용할 수 있다.

역사

UNIX용 Windows Services에서 실행되는 Korn Shell

KornShell은 원래 독점 소프트웨어였습니다.2000년에 AT&T 전용 라이선스로 소스 코드가 출시되었지만 2005년 초 ksh93q 출시 이후 Eclipse Public [4]License로 라이선스되었습니다.KornShell은 AT&T 소프트웨어 테크놀로지(AST) 오픈 소스 소프트웨어 컬렉션의 일부로 제공됩니다.KornShell은 처음에는 AT&T의 독점 라이선스를 통해서만 이용할 수 있었기 때문에 많은 자유 및 오픈 소스 대안이 생성되었습니다.여기에는 pdksh, mksh, bashzsh가 포함됩니다.

원래의 KornShell의 기능 ksh88은 표준 POSIX.2, Shell and Utilities, Command Interpreter (IEEEE 규격 1003.2-1992)의 기반으로 사용되었습니다.

일부 벤더는 이전 버전의 ksh88 배리언트(경우에 따라서는 확장자 포함)를 아직 출하하고 있습니다.ksh93GitHub에서 [12]유지됩니다.

ksh93은 "Desktop KornShell"(dtksh)로서 공통 데스크톱 [13]환경의 일부로 배포됩니다.이 버전에서는 Motif 위젯에 대한 셸 수준 매핑도 제공합니다.그것Tcl/[14]Tk의 경쟁상대로 의도되었다.

원래 KornShell(ksh88)은 버전 [15][16]4에서 AIX의 기본 셸이 되었으며 ksh93은 별도로 [17]사용할 수 있습니다.

UnixWare 7에는 ksh88ksh93이 모두 포함되어 있습니다.기본 Korn 쉘은 ksh93으로 /usr/bin/ksh로 제공되며 이전 버전은 /usr/bin/[18]ksh88로 사용할 수 있습니다.UnixWare에는 CDE 설치dtksh도 포함되어 있습니다.

ksh93 배포는 저자들이 안정적인 버전 ksh93u+로 2012년 경 AT&T를 떠난 후 덜 안정적인 운명을 맞았다.주요 저자들은 2014년까지 ksh93v- 베타 분기에 대한 연구를 계속했다.이 작업은 2017년 Red Hat에 의해 주로 인수되었으며(고객의 요청으로), 2019년 가을에 ksh2020[19] 최종 초기 릴리즈가 되었습니다.초기 릴리스에서는 (이전 안정성 문제를 수정했지만) 몇 가지 사소한 파손 및 호환성 [20]문제가 발생했습니다.2020년 3월 AT&T는 커뮤니티 변경을 롤백하여 브랜치에 저장한 후 ksh93u+에서 재시작하기로 결정했습니다.이는 변경 내용이 너무 광범위하고 ksh 중심적이어서 [21][22]유지보수 모드에서 프로젝트에 흡수할 수 없기 때문입니다.마지막으로 안정된 AT&T 릴리즈(ksh93u+2012-08-01)[23]를 기반으로 ksh93u+m 브랜치에서의 버그 수정 개발이 계속되고 있습니다.

주요 소프트웨어 브랜치에 대한 주요 공헌

KSH의 주요 소프트웨어 브랜치는 1983년 7월부터 2019년 말 KSH2020이 출시될 때까지의 오리지널 프로그램으로 정의되어 있습니다.KSH의 후속 버전(브랜치)의 지속적인 개발은 2020년부터 다른 그룹으로 나뉘어져 있으며, 자세한 내용은 아래에 기술되어 있지 않다.

주요 개인 기여자

다음은 그 기여도의 대략적인 오름차순으로 나열되어 있습니다.

  • David G. Korn (AT&T Bell Laboraties, AT&T Laboratories, Google 및 크리에이터)
  • 글렌 S.Fowler (AT&T 벨 연구소, AT&T 연구소)
  • Kiem-Phong Vo (AT&T 벨 연구소, AT&T 연구소)
  • Adam Edgar (AT&T Bell 연구소)
  • 마이클 T.Veach (AT&T 벨 연구소)
  • 패트릭 D.설리번 (AT&T 벨 연구소)
  • 마티즈 NMelchior (AT&T Network Systems International)
  • 카르스텐 플라이셔(옴늄 소프트웨어 엔지니어링)
  • 보이어무어
  • Siteshwar Vashisht (레드햇)
  • 쿠리스 레이더

통합 컨설턴트

  • 롤랑 마인츠

주요 기업 기여자

다음은 그 기여도의 대략적인 오름차순으로 나열되어 있습니다.

기부받은 기업 자원

주요 출자 기업(상기) 외에 KSH 개발에 무상 자원을 기부한 기업도 있습니다.다음은 영숫자 순서입니다.

변종

KornShell에는 가지 포크와 클론이 있습니다.

  • dtkshCDE의 일부로 포함된 ksh93의 포크.
  • tkshTk 위젯 툴킷에 액세스할 수 있는 ksh93의 포크입니다.
  • okshOpenB 포트SD의 KornShell의 변종으로 운영체제 전체에서 최대한[24] 휴대할 수 있도록 설계되어 있습니다.DeLi Linux 7.2에서는 기본 셸로 사용되었습니다.
  • lokshOpenBLinux 포트SD의 KornShell 변형으로 최소한의 [25]변경만 가능합니다.
  • mksh – OpenBSD pdksh에서 분기된 KornShell 언어를 무료로 구현합니다.원래는 MirOS BSD용으로 개발되었으며, 허용 조건(공개 도메인은 아님)에 따라 라이센스가 부여됩니다. 구체적으로는 MirOS [6]라이센스입니다.BSD에서의 사용 외에 Debian에서는 [26]pdksh를 대체하여 Android에서는 기본 셸입니다.
  • SKshAmigaARexx의 상호 운용성 [27]등 Amiga 고유의 기능을 제공하는 OS의 변종.전통에서 MorphOS는 SDK에서 pdksh를 사용합니다.
  • MKS Inc.의 MKS Korn 쉘– Microsoft Windows Services for UNIX(SFU)에서 버전 2.0까지 Korn Shell 언어를 독자적으로 구현한 것으로 David Korn에 따르면 MKS Korn 쉘은 1998년 [28][29]Korn Shell과 완전히 호환되지 않았습니다.SFU 버전 3.0에서는 Microsoft는 MKS Korn 쉘을 Interix[30]일부로서 새로운 POSIX.2 준거 셸로 교체했습니다.
  • KornShell은 David Korn의 [31]Unix 호환성 패키지인 UWIN에 포함되어 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Ron Gomes (Jun 9, 1983). "Toronto USENIX Conference Schedule (tentative)". Newsgroup: net.usenix. Retrieved Dec 29, 2010.
  2. ^ a b Guy Harris (Oct 10, 1983). "csh question". Newsgroup: net.flame. Retrieved Dec 29, 2010.
  3. ^ "Korn Shell Launcher for Windows Subsystem for Linux « Musings". blog.fpmurphy.com. Retrieved 2021-01-29.
  4. ^ a b "Archived copy". Archived from the original on 2018-11-14. Retrieved 2018-12-10.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  5. ^ a b "MirBSD Korn Shell". Mirbsd.org. Retrieved 10 December 2018.
  6. ^ Korn, David G. (October 26, 1994), "ksh - An Extensible High Level Language", Proceedings of the USENIX 1994 Very High Level Languages Symposium, USENIX Association, retrieved February 5, 2015, Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.
  7. ^ Bolsky, Morris I.; Korn, David G. (1989). "Acknowledgements". The KornShell Command and Programming Language. Englewood Cliffs, NJ: Prentice Hall. pp. xii. ISBN 0-13-516972-0.
  8. ^ "2020.0.0: Stable release of ksh-2020.0.0". GitHub. Retrieved 2021-01-29. Note: ksh2020 is not maintained or supported
  9. ^ "ksh 2020.0.0 CHANGELOG". GitHub. 2021-01-29.
  10. ^ "traditional Bourne shell family / history and development". In-ulm.de. Retrieved 10 December 2018.
  11. ^ "This is the AT&T Software Technology ast software download site from AT&T Research. The AT&T AST OpenSource Software Collection provides an overview and Practical Reusable UNIX Software." Github.com. 10 December 2018. Retrieved 10 December 2018.
  12. ^ Bill Rosenblatt; Arnold Robbins (2002). Learning the Korn Shell (2 ed.). O'Reilly Media, Inc. pp. viii–ix. ISBN 978-0-596-00195-7.
  13. ^ J. Stephen Pendergrast (1995). Desktop KornShell graphical programming. Addison-Wesley. p. 359. ISBN 978-0-201-63375-7.
  14. ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Simply AIX 4.3. Prentice Hall PTR. p. 21. ISBN 978-0-13-021344-0.
  15. ^ "IBM Knowledge Center". Ibm.com. Retrieved 10 December 2018.
  16. ^ "IBM Knowledge Center". Ibm.com. Retrieved 10 December 2018.
  17. ^ "UNIX95 conformance". Uw714doc.sco.com. Retrieved 10 December 2018.
  18. ^ "ksh2020". GitHub. 26 Feb 2021.
  19. ^ "ksh2020 changelog". GitHub. 29 May 2020.
  20. ^ "Rewinding this repo and encouraging community · Issue #1466 · att/ast". GitHub.
  21. ^ "segfault with extended globs · #1464 · att/ast". GitHub.
  22. ^ "ksh 93u+m". GitHub. 17 November 2021.
  23. ^ "oksh at GitHub". GitHub. 1 August 2020.
  24. ^ "loksh at GitHub". GitHub. 15 October 2021.
  25. ^ "Archived copy". Archived from the original on 2014-07-28. Retrieved 2014-07-28.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  26. ^ "Aminet - util/Shell/SKsh21.LZH".
  27. ^ "David Korn Tells All". Slashdot. Retrieved 2009-10-22.
  28. ^ "Jerry Feldman — USENIX NT/LISA NT conference attendee". Lists.blu.org. Retrieved 2009-10-22.
  29. ^ "Windows Services for UNIX Version 3.0". Technet.microsoft.com. Retrieved 2009-10-22.
  30. ^ Anatole Olczak (2001). The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8.

추가 정보

외부 링크