ทำไมคำว่า“ shell” จึงถูกนำมาใช้เพื่ออินเตอร์เฟซบรรทัดคำสั่ง?


28

ฉันอยากรู้เกี่ยวกับคำว่า "เชลล์" ฉันคิดว่าฉันรู้ว่ามันคืออะไร (ถึงแม้ว่าความแตกต่างระหว่าง "เชลล์" และ "เทอร์มินัล" ยังคงคลุมเครือ) แต่ทำไมคำว่า "เชลล์" จึงถูกเลือกให้อธิบายโปรแกรมประเภทนี้

สิ่งนี้อาจดูไม่สำคัญ แต่โดยปกติเมื่อคำที่เลือกนั้นทำให้ฉันงง


เทอร์มินัลคืออุปกรณ์หรือไปป์ I / O เชลล์เป็นโปรแกรมปฏิบัติการที่โต้ตอบแบบเรียลไทม์ได้รับอินพุตของผู้ใช้จากเทอร์มินัลจากนั้นทำสิ่งต่าง ๆ ตามนั้น "Shells" ที่ไม่มีข้อกำหนดสำหรับการใช้งานแบบอินเตอร์แอคทีฟโดยตรงคือเทคนิคการแปลสคริปต์บางชนิด
LawrenceC

คำตอบ:


8

Multics คำศัพท์อาจให้เบาะแส เชลล์ถูกนิยามดังนี้:

ตัวประมวลผลคำสั่ง Multics ใช้เรียกเชลล์ โปรแกรมนี้ผ่านบรรทัดคำสั่งสำหรับการดำเนินการโดยผู้ฟัง แยกวิเคราะห์บรรทัดเป็นชื่อคำสั่งและอาร์กิวเมนต์หาตำแหน่งคำสั่งและเริ่มต้นและเรียกโปรแกรมคำสั่งด้วยอาร์กิวเมนต์ที่เป็นสตริงอักขระ PL / I มันง่ายที่จะแทนที่เชลล์ที่ระบบกำหนดมาด้วยโปรแกรมที่ผู้ใช้จัดเตรียมโดยการเรียก cu_ $ set_cp (ดูตัวย่อ) เปลือก Unix รวมถึงแนวคิดของทั้งเปลือกและฟังในความรู้สึก Multics

ความสัมพันธ์ระหว่างเชลล์กับผู้ฟังทำให้รู้สึกได้ทั้ง etymologically และmetaphorically [1]

[1] "เนื่องจากกระสุนเป็นสัญลักษณ์ของผู้มีอำนาจการพูดและการได้ยินซึ่งหมายถึงสัญลักษณ์การพยากรณ์ ... "



10

จากhttp://en.wikipedia.org/wiki/Thompson_shell#History

"ชื่อ" shell "สำหรับล่ามบรรทัดคำสั่งและแนวคิดในการสร้างเชลล์เป็นโปรแกรมผู้ใช้นอกเคอร์เนลระบบปฏิบัติการถูกนำมาใช้ใน Unics ของ Multic precursor Multics"

ยิ่งไปกว่านั้นหลุมกระต่ายวิกิพีเดียพบสิ่งนี้: "Louis Pouzin แนะนำคำว่าเชลล์สำหรับภาษาคำสั่งที่ใช้ใน Multics"

ฉันยังไม่ได้อ่านทั้งหมด แต่งานเขียนของเขาที่นี่อาจให้คำตอบกับคุณ: http://www.multicians.org/shell.html

แก้ไข: แน่นอนมันไม่ได้อธิบาย เขาแค่ "ประกาศเกียรติคุณ" คำนี้ ไม่ใช่เรื่องตลกที่คุณหวังไว้ใช่ไหม


3
ไม่พอใจ แต่นั่นเป็นวิธีที่มันเกิดขึ้นในบางครั้ง
Eric Wilson

10

อาจเป็นเพราะพื้นผิวป้องกันเคอร์เนลด้านในจากผู้ใช้ ดังนั้นเคอร์เนลจะเป็นไข่มุกในเปลือก


ฉันได้ยินมาเสมอว่าเปลือกเป็นชั้นป้องกันที่ป้องกันผู้ใช้จากเคอร์เนล
Glorytoad

1

ดูเหมือนคำตอบอยู่ที่นี่:

บันทึกทางประวัติศาสตร์: เห็นได้ชัดว่า Multics shell เดิม (ความรู้สึก 1) ถูกเรียกเช่นนั้นเพราะมันเป็น Shell (ความรู้สึกที่ 3) มันรันโปรแกรมผู้ใช้ไม่ใช่โดยการเริ่มต้นกระบวนการที่แยกจากกัน แต่โดยการเชื่อมโยงโปรแกรมเข้ากับรหัสของตัวเองเรียกมันว่ารูทีนย่อยแล้วจึงยกเลิกการเชื่อมโยงโปรแกรมเหล่านั้นแบบไดนามิกเมื่อกลับมา ล่ามคำสั่ง VMS ยังคงทำสิ่งนี้อย่างมาก

- วิกิพีเดีย

เช่น "shell" นั้นคล้ายคลึงกับโลกแห่งความเป็นจริงที่ดีสำหรับ Multics ซึ่งเป็นบรรพบุรุษของ Unix ที่รันโปรแกรม


Wikipedia ไม่ได้เป็นแหล่งที่มา การใช้เป็นหนึ่งจะนำไปสู่การจัดหาแบบวงกลมโดยที่ Wikipedia ใช้เว็บไซต์เป็นแหล่งที่มานั้นเองก็ใช้ Wikipedia เป็นแหล่งข้อมูล นี่คือการเก็งกำไรที่บริสุทธิ์
Evi1M4chine

0

ดังที่ฉันเข้าใจแล้ว "shell" เป็นคำศัพท์ที่เก่ากว่าสำหรับสิ่งที่เราจะเรียกว่า "ส่วนติดต่อผู้ใช้หลัก" คำที่คล้ายคลึงกันที่ทันสมัยจะเป็น "สภาพแวดล้อมเดสก์ท็อป" เนื่องจากระบบเสมือนที่ทันสมัยทุกระบบใช้คำเปรียบเทียบของเดสก์ท็อป


1
มีการทับซ้อนกันมากมาย แต่ก็ไม่ถูกต้อง เชลล์ทุกตัวเป็นส่วนต่อประสานกับผู้ใช้ แต่ไม่ใช่ทุกอินเทอร์เฟซผู้ใช้ที่เป็นเชลล์ เชลล์เป็นอินเทอร์เฟซผู้ใช้หลักโดยรอบทุกอย่างและทุกอย่างจะเริ่มต้นขึ้น เป็นอินเทอร์เฟซผู้ใช้หลักของระบบปฏิบัติการ
Evi1M4chine

-2

เคอร์เนลเป็นแกนหลักของระบบในขณะที่เชลล์ล้อมรอบและเป็นส่วนต่อประสานระหว่างเคอร์เนลและผู้ใช้

ภายในระบบ UNIX และแม้แต่กับระบบ Linux เชลล์คือสถานที่ที่ผู้ดูแลระบบทำงานเพื่อกำหนดค่าและจัดการระบบ

คำศัพท์สมัยใหม่มักใช้คำว่า CLI หรืออินเตอร์เฟสบรรทัดคำสั่งเพื่ออธิบายเชลล์พรอมต์ นี่เป็นการแสดงความเคารพต่อ GUI หรือส่วนต่อประสานกราฟิกกับผู้ใช้ อย่างไรก็ตาม Sysadmin จริง ๆ รู้ว่าคุณไม่ควรใช้เครื่องมือ GUI เพื่อกำหนดค่า UNIX / Linux และทำงานได้โดยตรงที่พร้อมท์คำสั่งเชลล์

สิ่งนี้มีความเกี่ยวข้องมากขึ้นทุกวันนี้เมื่อเราได้ยินผู้ที่ชื่นชอบ Linux รุ่นใหม่พูดถึงสิ่งต่าง ๆ เช่น "ฉันใช้ linux แต่ฉันไม่ได้เรียนรู้ CLI"

เมื่อสุภาษิตโบราณไป "ถ้าคุณไม่สามารถทำได้ที่ shell prompt คุณไม่สามารถทำได้"


ฉันลงคะแนนเพื่อบอกความจริง อาดี ...
coLinux
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.