กลับไปหน้าบทความ

อ่าน 7 นาที

คอร์นเชลล์

KornShell ( ksh ) เป็น เชลล์ Unix ที่พัฒนาโดย David Korn ที่ Bell Labs ในช่วงต้นทศวรรษ 1980 และประกาศในงาน USENIX เมื่อวันที่ 14 กรกฎาคม 1983 [ 1 ] [ 2 ]...

คอร์นเชลล์

คอร์นเชลล์
ผู้เขียนต้นฉบับเดวิด คอร์น
ปล่อยพ.ศ. 2526 [ 1 ] [ 2 ] ( 1983 )
เวอร์ชันสุดท้าย
93u+ / 1 สิงหาคม 2555 ( 1 สิงหาคม 2555 )
รุ่นทดลองใช้งาน
93v- / 24 ธันวาคม 2014 ( 24 ธันวาคม 2014 )
เขียนเป็นซี
ระบบปฏิบัติการUnixและระบบปฏิบัติการที่คล้าย Unix (เช่นLinuxและmacOS ; ใช้งานได้ในWindows 10 ด้วย [ 3 ] )
มีจำหน่ายในภาษาอังกฤษ
พิมพ์เชลล์ยูนิกซ์
ใบอนุญาต
เว็บไซต์คอร์นเชลล์.comแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ที่เก็บข้อมูลgithub.com/att/ast
ksh2020
นักพัฒนาKurtis Rader, Siteshwar Vashisht, ชุมชน
เวอร์ชันสุดท้าย
10 ตุลาคม 2019 (พ.ศ. 2563) ( 10 ตุลาคม 2019 )
ผู้มาก่อน93v-
ใบอนุญาตใบอนุญาตสาธารณะของ Eclipse
เว็บไซต์คอร์นเชลล์.com แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูลgithub.com/ksh2020/ksh
ksh93u+m
นักพัฒนามาร์ติน เด็คเกอร์, โจโนธาน คิง, ไฮอีเนียส
เวอร์ชันเสถียร
1.0.10 / 2 สิงหาคม 2567 ( 2 สิงหาคม 2024 )
ผู้มาก่อน93u+
ใบอนุญาตใบอนุญาตสาธารณะของ Eclipse
เว็บไซต์github.com/ksh93/ksh/wiki
ที่เก็บข้อมูลgithub.com/ksh93/ksh

KornShell ( ksh) เป็นเชลล์ Unixที่พัฒนาโดยDavid Kornที่Bell Labsในช่วงต้นทศวรรษ 1980 และประกาศในงานUSENIXเมื่อวันที่ 14 กรกฎาคม 1983 [ 1 ] [ 2 ] การพัฒนาเริ่มต้นขึ้นโดยอิงจากซอร์สโค้ดของ Bourne shell [ 7 ] ผู้มีส่วนร่วมในช่วงแรกอื่นๆ ได้แก่ นักพัฒนาของ Bell Labs อย่าง Mike Veach และ Pat Sullivan ซึ่งเขียนโค้ดโหมดการแก้ไขบรรทัดแบบEmacsและvi ตามลำดับ [ 8 ] KornShell สามารถใช้งานร่วมกับ Bourne shell ได้ และมีคุณสมบัติหลายอย่างของC shellซึ่งได้รับแรงบันดาลใจจากคำขอของผู้ใช้ Bell Labs

คุณสมบัติ

KornShell เป็นไปตามมาตรฐานPOSIX.2 , Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) ความแตกต่างที่สำคัญระหว่าง KornShell กับ Bourne shell แบบดั้งเดิม ได้แก่:

  • การควบคุมงานการตั้งชื่อแทนคำสั่งและประวัติคำสั่งได้รับการออกแบบตาม คุณสมบัติ ของเชลล์ C ที่เกี่ยวข้อง การควบคุมงานถูกเพิ่มเข้าไปใน Bourne Shell ในปี 1989 [ 9 ]
  • มีรูปแบบการแก้ไขบรรทัดคำสั่งให้เลือก 3 แบบ โดยอิงจากvi , EmacsและGosling Emacs
  • อาร์เรย์แบบเชื่อมโยง และการดำเนินการ ทางคณิตศาสตร์แบบจุดลอยตัวในตัว(มีเฉพาะในKornShell เวอร์ชันksh93 เท่านั้น)
  • การค้นหาแบบไดนามิกสำหรับฟังก์ชัน
  • ฟังก์ชันทางคณิตศาสตร์
  • การทดแทนกระบวนการและการเปลี่ยนทิศทางกระบวนการ
  • นิพจน์ที่คล้ายกับภาษาซี
  • ลูปforและwhileที่เน้นการแสดงออกที่ได้รับการปรับปรุง
  • ความสามารถในการขยายเพิ่มเติมแบบไดนามิกของคำสั่งในตัว (ที่โหลดแบบไดนามิก) (ตั้งแต่ksh93 )
  • ตัวแปรอ้างอิง
  • ตัวแปรที่ซ้อนกันตามลำดับชั้น
  • ตัวแปรสามารถมีฟังก์ชันสมาชิกที่เชื่อมโยงกับตัวแปรนั้นได้
  • การเขียนโปรแกรมเชิงวัตถุ (ตั้งแต่ksh93t )
    • ตัวแปรสามารถเป็นอ็อบเจ็กต์ที่มีสมาชิก (ตัวแปรย่อย) และเมธอดสมาชิกได้
    • การเรียกเมธอดของอ็อบเจ็กต์ทำได้โดยใช้ชื่อตัวแปรของอ็อบเจ็กต์ ตามด้วยชื่อเมธอด (หลังเครื่องหมายจุด)
    • เมธอดพิเศษของอ็อบเจ็กต์จะถูกเรียกใช้ในกรณี: การเริ่มต้นหรือการกำหนดค่าให้กับอ็อบเจ็กต์, การยกเลิกการใช้งานอ็อบเจ็กต์ ( unset )
    • สามารถใช้งานการประกอบและการรวมกลุ่มได้ รวมถึงรูปแบบการสืบทอดด้วย

ประวัติศาสตร์

KornShell ถูกเผยแพร่ครั้งแรกในฐานะส่วนหนึ่งของชุดเครื่องมือทดลองของ AT&Tในปี 1986 และต่อมาได้ถูกรวมอยู่ในUNIX System V Release 4 ในปี 1989

Korn Shell ทำงานบนWindows Services สำหรับ UNIX

KornShell เดิมทีเป็นซอฟต์แวร์กรรมสิทธิ์ในปี 2000 ซอร์สโค้ดถูกเผยแพร่ภายใต้ใบอนุญาตเฉพาะของ AT&T แต่ตั้งแต่ การเผยแพร่ ksh93qในช่วงต้นปี 2005 เป็นต้นมา ได้มีการเผยแพร่ภายใต้ใบอนุญาตสาธารณะของ Eclipse [ 4 ] KornShellมีให้ใช้งานเป็นส่วนหนึ่งของชุดซอฟต์แวร์โอเพนซอร์ส AT&T Software Technology (AST) เนื่องจาก KornShell เดิมทีมีให้ใช้งานผ่านใบอนุญาตกรรมสิทธิ์จาก AT&T เท่านั้น จึงมีการสร้างทางเลือกโอเพนซอร์สและฟรีขึ้นมาหลายตัว ซึ่งรวมถึงpdksh , mksh , BashและZ shell

ฟังก์ชันการทำงานของ KornShell ดั้งเดิมksh88ถูกนำมาใช้เป็นพื้นฐานสำหรับมาตรฐานPOSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992)

ผู้จำหน่ายบางรายยังคงจัดส่งเวอร์ชัน ksh88 รุ่น เก่าของตนเอง ซึ่งบางครั้ง อาจมีส่วนขยายเพิ่มเติมksh93ได้รับการดูแลรักษาบนGitHub [ 10 ]

ksh93ถูกแจกจ่ายเป็นส่วนหนึ่งของสภาพแวดล้อมเดสก์ท็อปทั่วไป (Common Desktop Environment )ในชื่อ "Desktop KornShell" ( dtksh ) [ 11 ]เวอร์ชันนี้ยังมีการแมปในระดับเชลล์สำหรับ วิดเจ็ต Motif ด้วย โดยมีจุดประสงค์เพื่อเป็นคู่แข่งกับTcl / Tk [ 12 ]

KornShell ดั้งเดิมksh88กลายเป็นเชลล์เริ่มต้นบนAIXในเวอร์ชัน 4 [ 13 ] [ 14 ]โดยมี ksh93 ให้ใช้งานแยกต่างหาก[ 15 ]

UnixWare 7 ประกอบด้วยทั้งksh88และksh93เชลล์ Korn เริ่มต้นคือksh93ซึ่งมีให้ใช้งานในรูปแบบ/usr/bin/kshและเวอร์ชันเก่ากว่ามีให้ใช้งานในรูปแบบ/usr/bin/ksh88 [ 16 ] UnixWareยังรวมถึงdtkshเมื่อติดตั้ง CDE ด้วย

การ แจกจ่าย ksh93ประสบชะตากรรมที่ไม่เสถียรมากขึ้นหลังจากผู้เขียนออกจาก AT&T ประมาณปี 2012 ในเวอร์ชันเสถียรksh93u+ผู้เขียนหลักยังคงทำงานใน สาขาเบต้า ksh93v-จนถึงประมาณปี 2014 งานนั้นถูกรับช่วงต่อโดย Red Hat เป็นหลักในปี 2017 (เนื่องจากคำขอของลูกค้า) และส่งผลให้มีการเปิดตัวksh2020 [ 17 ] ครั้งแรกในฤดู ใบไม้ร่วงปี 2019 การเปิดตัวครั้งแรกนั้น (แม้ว่าจะแก้ไขปัญหาความเสถียรก่อนหน้านี้หลายประการ) ก็ยังก่อให้เกิดปัญหาการแตกหักและความเข้ากันได้[ 18 ]ในเดือนมีนาคม 2020 AT&T ตัดสินใจที่จะย้อนกลับการเปลี่ยนแปลงของชุมชน เก็บไว้ในสาขา และเริ่มต้นใหม่จากksh93u+เนื่องจากมีการเปลี่ยนแปลงที่กว้างเกินไปและเน้น ksh มากเกินไปสำหรับบริษัทที่จะรับเข้าโครงการในโหมดการบำรุงรักษา[ 19 ] [ 20 ] ksh2020 [ 21 ]ได้รับการเผยแพร่เป็น "การเผยแพร่ครั้งสำคัญด้วยเหตุผลหลายประการ" [ 22 ]เช่น การลบ การสนับสนุน EBCDICการยกเลิกการสนับสนุนปลั๊กอินไบนารีที่เขียนขึ้นสำหรับksh93u+และการลบฟังก์ชันทางคณิตศาสตร์ที่เสียหายบางส่วน แต่ไม่เคยได้รับการบำรุงรักษาหรือสนับสนุนโดย AT&T (แม้แต่ในวันที่เผยแพร่ครั้งแรก) ซอร์สโค้ดของksh2020ไม่ได้รับการคอมมิตใดๆ ตั้งแต่เดือนกุมภาพันธ์ 2020 และถูกเก็บถาวรแบบอ่านอย่างเดียวในเดือนตุลาคม 2021 [ 17 ]

หลังจากปัญหาที่เกิดขึ้นกับ สาขา ksh2020และการละทิ้งสาขาดังกล่าว ได้มีการสร้างที่เก็บข้อมูลใหม่ในเดือนพฤษภาคม 2020 สำหรับ สาขา ksh93u+mโดยอิงจากรุ่น AT&T ที่เสถียรล่าสุด ( ksh93u+ 2012-08-01) ซึ่งการพัฒนาแก้ไขข้อบกพร่องยังคงดำเนินต่อไปอย่างต่อเนื่อง[ 23 ]

ผลงานหลักที่มีส่วนร่วมในสาขาซอฟต์แวร์หลัก

สำหรับรายละเอียดในรายการด้านล่างนี้ สาขาหลักของซอฟต์แวร์ KSH หมายถึงโปรแกรมดั้งเดิมที่พัฒนามาตั้งแต่เดือนกรกฎาคม พ.ศ. 2526 จนถึงKSH2020 ที่วางจำหน่าย ในช่วงปลายปี พ.ศ. 2562 การพัฒนาต่อยอดในเวอร์ชัน (สาขา) อื่นๆ ของ KSH ได้แยกออกเป็นกลุ่มต่างๆ ตั้งแต่ปี พ.ศ. 2563 และจะไม่กล่าวถึงรายละเอียดในส่วนต่อไปนี้

ผู้มีส่วนร่วมหลักรายบุคคล

รายชื่อต่อไปนี้เรียงลำดับตามผลงานที่สำคัญที่สุดโดยประมาณจากน้อยไปมาก:

  • เดวิด จี. คอร์น (เอทีแอนด์ที เบลล์ แล็บโบราทอรีส์, เอทีแอนด์ที แล็บโบราทอรีส์ และกูเกิล; และผู้สร้าง)
  • เกล็น เอส. ฟาวเลอร์ (AT&T Bell Laboratories, AT&T Laboratories)
  • Kiem-Phong Vo (AT&T Bell Laboratories, AT&T Laboratories)
  • อดัม เอ็ดการ์ (เอทีแอนด์ที เบลล์ แล็บโบราทอรีส์)
  • ไมเคิล ที. วีช (เอทีแอนด์ที เบลล์ แล็บโบราทอรีส์)
  • แพทริค ดี. ซัลลิแวน (เอทีแอนด์ที เบลล์ แล็บโบราทอรีส์)
  • Matthijs N. Melchior (AT&T Network Systems International)
  • Karsten-Fleischer (วิศวกรรมซอฟต์แวร์ Omnium)
  • บอยเออร์-มัวร์
  • ไซเตศวร วาชิษฐ์ (หมวกแดง)
  • เคอร์ติส เรเดอร์

ที่ปรึกษาด้านการบูรณาการ

  • โรลันด์ ไมนซ์

ผู้สนับสนุนหลักจากภาคธุรกิจ

รายชื่อต่อไปนี้เรียงลำดับตามผลงานที่สำคัญที่สุดโดยประมาณจากน้อยไปมาก:

ทรัพยากรขององค์กรที่บริจาค

นอกจากบริษัทหลักที่ให้การสนับสนุนอย่างมาก (ตามรายชื่อด้านบน) แล้ว ยังมีบริษัทอีกหลายแห่งที่บริจาคทรัพยากรโดยไม่คิดค่าใช้จ่ายเพื่อการพัฒนา KSH ซึ่งรายชื่อมีดังต่อไปนี้ (เรียงตามลำดับตัวอักษร):

ตัวแปร

มีการแยกสาขาและคัดลอก KornShell ออกมาหลายเวอร์ชัน:

  • dtksh  – เป็นเวอร์ชันที่แตกแขนงมาจากksh93และรวมอยู่ในCDE
  • tksh  – เป็นเวอร์ชันที่แตกแขนงมาจากksh93ซึ่งช่วยให้เข้าถึงชุดเครื่องมือวิดเจ็ตTkได้
  • oksh  – พอร์ตของ KornShell เวอร์ชัน OpenBSDซึ่งมีจุดประสงค์เพื่อให้พกพาได้สูงสุด[ 24 ]ข้ามระบบปฏิบัติการต่างๆ มันถูกใช้เป็นเชลล์เริ่มต้นในDeLi Linux 7.2
  • loksh  – พอร์ตLinux ของ KornShell เวอร์ชัน OpenBSDโดยมีการเปลี่ยนแปลงเพียงเล็กน้อย[ 25 ]
  • mksh  – การใช้งานภาษา KornShell ฟรี ซึ่งแยกมาจาก pdksh ของ OpenBSD เดิมทีพัฒนาขึ้นสำหรับMirOS BSDและได้รับอนุญาตภายใต้ เงื่อนไข ที่อนุญาต (แม้ว่าจะไม่ใช่สาธารณสมบัติ) โดยเฉพาะอย่างยิ่งMirOS Licence [ 6 ] นอกเหนือจากการใช้งานบน BSD แล้ว เวอร์ชันนี้ยังได้แทนที่pdkshบน Debian [ 26 ]และเป็นเชลล์เริ่มต้นบน Android [ 27 ]
  • SKsh  – ตัวแปร AmigaOSที่ให้คุณสมบัติเฉพาะของ Amiga หลายอย่าง เช่นความสามารถในการทำงานร่วมกันของ ARexx [ 28 ]ตามธรรมเนียมนี้MorphOSใช้pdkshใน SDK ของตน
  • MKS Korn shell ของ MKS Inc. – การใช้งานภาษา KornShell ที่เป็นกรรมสิทธิ์จากMicrosoft Windows Services for UNIX (SFU) จนถึงเวอร์ชัน 2.0; ตามที่ David Korn กล่าว MKS Korn shell ไม่เข้ากันได้อย่างสมบูรณ์กับ KornShell ในปี 1998 [ 29 ] [ 30 ]ใน SFU เวอร์ชัน 3.0 Microsoftได้แทนที่ MKS Korn shell ด้วย shell ใหม่ที่สอดคล้องกับ POSIX.2 ซึ่งเป็นส่วนหนึ่งของInterix [ 31 ]
  • KornShell รวมอยู่ในUWINซึ่งเป็นแพ็คเกจความเข้ากันได้ของ Unix โดย David Korn [ 32 ]
  • /bin/sh ในแพ็คเกจ System V บน BSD ของ Doug Gwyn (US Army BRL) ประกอบด้วย /bin/shเวอร์ชัน SVR2 ของ Ron Natalie ซึ่งมีทั้งการควบคุมงานและการแก้ไขบรรทัดคำสั่ง นี่เป็นเวอร์ชันร่วมสมัยกับ kshดั้งเดิมในช่วงเวลาที่ AT&T ยังไม่สามารถเข้าถึงได้ ต่อมา/bin/sh นี้ ถูกจัดส่งมาพร้อมกับระบบที่พัฒนามาจาก CMU Mach ทั้งหมด[ 33 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • Morris I. Bolsky; David G. Korn (1995). ภาษาคำสั่งและการเขียนโปรแกรม KornShell ใหม่ . Prentice Hall PTR. ISBN 978-0-13-182700-4.
  • David G. Korn; Charles J. Northrup; Jeffery Korn (กรกฎาคม 1996). "KornShell ใหม่—ksh93" . Linux Journal (27).{{cite journal}}: CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว ( ลิงก์ )
  • หน้าคู่มือการใช้งาน ksh93บนWayback Machine (เก็บถาวรเมื่อวันที่ 5 มิถุนายน 2013)
  • หน้าคู่มือการใช้งาน ksh88บนWayback Machine (เก็บถาวรเมื่อวันที่ 5 พฤศจิกายน 2015)
  • Korn shell (pdksh) ที่เป็นสาธารณสมบัติ สามารถดูได้ที่Wayback Machine (เก็บถาวรเมื่อวันที่ 21 ตุลาคม 2016)
  • MirBSD Korn Shell (mksh)
  • mksh(1) –  คู่มือคำสั่งทั่วไปของ MirOS BSD i386
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=KornShell&oldid=1340826549#Variants "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ คอร์นเชลล์

KornShell ( ksh ) เป็น เชลล์ Unix ที่พัฒนาโดย David Korn ที่ Bell Labs ในช่วงต้นทศวรรษ 1980 และประกาศในงาน USENIX เมื่อวันที่ 14 กรกฎาคม 1983 [ 1 ] [ 2 ]...

คุณสมบัติ

KornShell เป็นไปตามมาตรฐาน POSIX.2 , Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) ความแตกต่างที่สำคัญระหว่าง KornShell กับ Bourne shell แบบดั้งเดิม ได้แก่:

ประวัติศาสตร์

KornShell ถูกเผยแพร่ครั้งแรกในฐานะส่วนหนึ่งของ ชุดเครื่องมือทดลองของ AT&T ในปี 1986 และต่อมาได้ถูกรวมอยู่ใน UNIX System V Release 4 ในปี 1989

ผลงานหลักที่มีส่วนร่วมในสาขาซอฟต์แวร์หลัก

สำหรับรายละเอียดในรายการด้านล่างนี้ สาขาหลักของซอฟต์แวร์ KSH หมายถึงโปรแกรมดั้งเดิมที่พัฒนามาตั้งแต่เดือนกรกฎาคม พ.ศ. 2526 จนถึง KSH2020 ที่วางจำหน่าย ในช่วงปลายปี พ.ศ. 2562 การพัฒนาต่อยอดในเวอร์ชัน (สาขา) อื่นๆ ของ KSH ได้แยกออกเป็นกลุ่มต่างๆ ตั้งแต่ปี พ.ศ.