콘셸
KornShell원저작자 | 데이비드 콘 |
---|---|
초기 릴리즈 | [1][2] | 전
최종 릴리즈 | 93u+ / 2012년 8월 1일, 전( |
프리뷰 릴리즈 | 93v- / 2014년 12월 , 전( |
저장소 | github |
기입처 | C |
운영 체제 | Unix 및 Unix 유사(Linux 및 macOS 등, Windows[3] 10에서도 동작) |
이용가능기간: | 영어 |
유형 | Unix 쉘 |
면허증. | |
웹 사이트 | www |
개발자 | 커티스 레이더, 시츠워 바시쉬트, 커뮤니티 |
---|---|
최종 릴리즈 | 2020년 / 2019년 10월 , 전( |
저장소 | github |
전임자 | 93v- |
개발자 | 하이에니아스 조노탄 킹 마르틴 데커 |
---|---|
안정된 릴리스 | 1.0.0 / 2022년 8월 , 전( |
저장소 | github |
전임자 | 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, Emacs 및 Gosling Emacs에 기반한 3가지 명령줄 편집 스타일 선택 가능
- 연관 배열 및 내장 부동 소수점 연산(ksh93 버전의 KornShell에서만 사용 가능)
- 동적 함수 검색
- 수학적 함수
- 프로세스 대체 및 프로세스 리디렉션
- C언어와 같은 표현
- 확장 표현 지향 루프 및 while 루프
- (동적으로 로드된) 내장 명령어의 동적 확장성(ksh93 이후)
- 기준 변수
- 계층적으로 내포된 변수
- 변수에는 멤버 함수가 관련지어져 있을 수 있습니다.
- 객체 지향 프로그래밍(ksh93t 이후)
- 변수는 member(sub-) method 및 member 메서드를 가진 객체가 될 수 있습니다.
- 오브젝트 메서드는 오브젝트 변수 이름 뒤에 (도트 문자 뒤에) 메서드 이름으로 호출됩니다.
- 특별한 오브젝트 메서드 호출: 오브젝트 초기화 또는 할당, 오브젝트 포기(디세이블화)
- 구성 및 집계를 이용할 수 있을 뿐만 아니라 상속 형태도 이용할 수 있다.
역사
KornShell은 원래 독점 소프트웨어였습니다.2000년에 AT&T 전용 라이선스로 소스 코드가 출시되었지만 2005년 초 ksh93q 출시 이후 Eclipse Public [4]License로 라이선스되었습니다.KornShell은 AT&T 소프트웨어 테크놀로지(AST) 오픈 소스 소프트웨어 컬렉션의 일부로 제공됩니다.KornShell은 처음에는 AT&T의 독점 라이선스를 통해서만 이용할 수 있었기 때문에 많은 자유 및 오픈 소스 대안이 생성되었습니다.여기에는 pdksh, mksh, bash 및 zsh가 포함됩니다.
원래의 KornShell의 기능 ksh88은 표준 POSIX.2, Shell and Utilities, Command Interpreter (IEEEE 규격 1003.2-1992)의 기반으로 사용되었습니다.
일부 벤더는 이전 버전의 ksh88 배리언트(경우에 따라서는 확장자 포함)를 아직 출하하고 있습니다.ksh93은 GitHub에서 [12]유지됩니다.
ksh93은 "Desktop KornShell"(dtksh)로서 공통 데스크톱 [13]환경의 일부로 배포됩니다.이 버전에서는 Motif 위젯에 대한 셸 수준 매핑도 제공합니다.그것은 Tcl/[14]Tk의 경쟁상대로 의도되었다.
원래 KornShell(ksh88)은 버전 [15][16]4에서 AIX의 기본 셸이 되었으며 ksh93은 별도로 [17]사용할 수 있습니다.
UnixWare 7에는 ksh88과 ksh93이 모두 포함되어 있습니다.기본 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에는 몇 가지 포크와 클론이 있습니다.
- dtksh – CDE의 일부로 포함된 ksh93의 포크.
- tksh – Tk 위젯 툴킷에 액세스할 수 있는 ksh93의 포크입니다.
- oksh – OpenB 포트SD의 KornShell의 변종으로 운영체제 전체에서 최대한[24] 휴대할 수 있도록 설계되어 있습니다.DeLi Linux 7.2에서는 기본 셸로 사용되었습니다.
- loksh – OpenB의 Linux 포트SD의 KornShell 변형으로 최소한의 [25]변경만 가능합니다.
- mksh – OpenBSD pdksh에서 분기된 KornShell 언어를 무료로 구현합니다.원래는 MirOS BSD용으로 개발되었으며, 허용 조건(공개 도메인은 아님)에 따라 라이센스가 부여됩니다. 구체적으로는 MirOS [6]라이센스입니다.BSD에서의 사용 외에 Debian에서는 [26]pdksh를 대체하여 Android에서는 기본 셸입니다.
- SKsh – AmigaARexx의 상호 운용성 [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에 포함되어 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b Ron Gomes (Jun 9, 1983). "Toronto USENIX Conference Schedule (tentative)". Newsgroup: net.usenix. Retrieved Dec 29, 2010.
- ^ a b Guy Harris (Oct 10, 1983). "csh question". Newsgroup: net.flame. Retrieved Dec 29, 2010.
- ^ "Korn Shell Launcher for Windows Subsystem for Linux « Musings". blog.fpmurphy.com. Retrieved 2021-01-29.
- ^ a b "Archived copy". Archived from the original on 2018-11-14. Retrieved 2018-12-10.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "Archived copy". Archived from the original on 2012-02-06. Retrieved 2010-06-10.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ a b "MirBSD Korn Shell". Mirbsd.org. Retrieved 10 December 2018.
- ^ 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.
- ^ 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.
- ^ "2020.0.0: Stable release of ksh-2020.0.0". GitHub. Retrieved 2021-01-29.
Note: ksh2020 is not maintained or supported
- ^ "ksh 2020.0.0 CHANGELOG". GitHub. 2021-01-29.
- ^ "traditional Bourne shell family / history and development". In-ulm.de. Retrieved 10 December 2018.
- ^ "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.
- ^ Bill Rosenblatt; Arnold Robbins (2002). Learning the Korn Shell (2 ed.). O'Reilly Media, Inc. pp. viii–ix. ISBN 978-0-596-00195-7.
- ^ J. Stephen Pendergrast (1995). Desktop KornShell graphical programming. Addison-Wesley. p. 359. ISBN 978-0-201-63375-7.
- ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Simply AIX 4.3. Prentice Hall PTR. p. 21. ISBN 978-0-13-021344-0.
- ^ "IBM Knowledge Center". Ibm.com. Retrieved 10 December 2018.
- ^ "IBM Knowledge Center". Ibm.com. Retrieved 10 December 2018.
- ^ "UNIX95 conformance". Uw714doc.sco.com. Retrieved 10 December 2018.
- ^ "ksh2020". GitHub. 26 Feb 2021.
- ^ "ksh2020 changelog". GitHub. 29 May 2020.
- ^ "Rewinding this repo and encouraging community · Issue #1466 · att/ast". GitHub.
- ^ "segfault with extended globs · #1464 · att/ast". GitHub.
- ^ "ksh 93u+m". GitHub. 17 November 2021.
- ^ "oksh at GitHub". GitHub. 1 August 2020.
- ^ "loksh at GitHub". GitHub. 15 October 2021.
- ^ "Archived copy". Archived from the original on 2014-07-28. Retrieved 2014-07-28.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "Aminet - util/Shell/SKsh21.LZH".
- ^ "David Korn Tells All". Slashdot. Retrieved 2009-10-22.
- ^ "Jerry Feldman — USENIX NT/LISA NT conference attendee". Lists.blu.org. Retrieved 2009-10-22.
- ^ "Windows Services for UNIX Version 3.0". Technet.microsoft.com. Retrieved 2009-10-22.
- ^ Anatole Olczak (2001). The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8.
추가 정보
- Morris I. Bolsky; David G. Korn (1995). The new KornShell command and programming language. Prentice Hall PTR. ISBN 978-0-13-182700-4.
- David G. Korn, Charles J. Northrup 및 Jeffery Korn The New Korn Shell - ksh93, Linux Journal, 제27호, 1996년 7월