ฉันคิดว่าคำเหล่านี้เกือบจะอ้างถึงสิ่งเดียวกันเมื่อใช้อย่างหลวม ๆ :
- สถานีปลายทาง
- เปลือก
- TTY
- ปลอบใจ
แต่ละคำเหล่านี้อ้างถึงอะไรอย่างแน่ชัด?
ฉันคิดว่าคำเหล่านี้เกือบจะอ้างถึงสิ่งเดียวกันเมื่อใช้อย่างหลวม ๆ :
แต่ละคำเหล่านี้อ้างถึงอะไรอย่างแน่ชัด?
คำตอบ:
เทอร์มินัลอยู่ที่ปลายสายไฟฟ้าเปลือกหอยเป็นบ้านของเต่า tty เป็นตัวย่อที่แปลกและคอนโซลเป็นตู้ชนิดหนึ่ง
เอ่อพูดแล้ว
ในคำศัพท์ unix คำตอบสั้น ๆ ก็คือ
คอนโซลเทอร์มินัลและ tty มีความสัมพันธ์กันอย่างใกล้ชิด แต่เดิมพวกเขาหมายถึงชิ้นส่วนของอุปกรณ์ซึ่งคุณสามารถโต้ตอบกับคอมพิวเตอร์ในยุคแรก ๆ ของยูนิกซ์ที่หมายถึงโทรพิมพ์อุปกรณ์สไตล์คล้ายเครื่องพิมพ์ดีดบางครั้งเรียกว่า teletypewriter หรือ“TTY” ชวเลข ชื่อ "เทอร์มินัล" มาจากมุมมองอิเล็กทรอนิกส์และชื่อ "คอนโซล" จากมุมมองเฟอร์นิเจอร์ เร็วมากในประวัติศาสตร์ยูนิกซ์คีย์บอร์ดและจอแสดงผลอิเล็กทรอนิกส์กลายเป็นบรรทัดฐานสำหรับเทอร์มินัล
ในคำศัพท์ unix คำสั่งttyเป็นไฟล์อุปกรณ์ชนิดหนึ่งซึ่งใช้คำสั่งเพิ่มเติมจำนวนมาก ( ioctls ) นอกเหนือจากการอ่านและเขียน ในความหมายทั่วไปเทอร์มินัลมีความหมายเหมือนกันกับ tty เคอร์เนลบางตัวถูกจัดเตรียมโดยเคอร์เนลในนามของอุปกรณ์ฮาร์ดแวร์ตัวอย่างเช่นอินพุตที่มาจากคีย์บอร์ดและเอาต์พุตไปที่หน้าจอโหมดข้อความหรือด้วยอินพุตและเอาต์พุตที่ส่งผ่านบรรทัดอนุกรม ttys อื่น ๆ บางครั้งเรียกว่าpseudo-ttysถูกจัดเตรียม (ผ่านเคอร์เนลเลเยอร์บาง) โดยโปรแกรมที่เรียกว่าเทอร์มินัลอีมูเลเตอร์เช่นXterm (ทำงานในระบบX Window ), หน้าจอ(ซึ่งมีชั้นของการแยกระหว่างโปรแกรมและเทอร์มินัลอื่น), Ssh (ซึ่งเชื่อมต่อเทอร์มินัลในเครื่องหนึ่งกับโปรแกรมบนเครื่องอื่น), คาดหวัง (สำหรับการทำงานร่วมกันของเทอร์มินัลสคริปต์) เป็นต้น
คำว่าเทอร์มินัลยังมีความหมายดั้งเดิมของอุปกรณ์ที่มีการโต้ตอบกับคอมพิวเตอร์โดยทั่วไปจะมีแป้นพิมพ์และจอแสดงผล ตัวอย่างเช่นเทอร์มินัล X เป็นไคลเอ็นต์แบบ thinซึ่งเป็นคอมพิวเตอร์ที่มีวัตถุประสงค์เฉพาะซึ่งมีวัตถุประสงค์เพียงเพื่อขับเคลื่อนแป้นพิมพ์จอแสดงผลเมาส์และอุปกรณ์ต่อพ่วงอื่น ๆ ที่มีปฏิสัมพันธ์กับมนุษย์เป็นครั้งคราวโดยมีแอพพลิเคชันจริงทำงานบนคอมพิวเตอร์เครื่องอื่นที่ทรงพลังกว่า
คอนโซลทั่วไปเป็นขั้วในความรู้สึกทางกายภาพที่เป็นโดยความหมายบางสถานีหลักเชื่อมต่อโดยตรงกับเครื่อง คอนโซลปรากฏต่อระบบปฏิบัติการเป็น tty (ใช้กับเคอร์เนล) ในบางระบบเช่น Linux และ FreeBSD คอนโซลจะปรากฏเป็นหลาย ttys (การผสมคีย์พิเศษสลับไปมาระหว่าง ttys เหล่านี้); เพียงเพื่อสร้างความสับสนเรื่องชื่อที่กำหนดให้กับแต่ละ tty เฉพาะสามารถ "คอนโซล", "คอนโซลเสมือน", "สถานีเสมือน" และรูปแบบอื่น ๆ
ดูเพิ่มเติมเหตุใดเทอร์มินัลเสมือน“ เสมือนจริง” คืออะไรและทำไมเทอร์มินัล“ ของจริง” คืออะไร? .
เปลือกคืออินเตอร์เฟซหลักที่ผู้ใช้เห็นเมื่อพวกเขาเข้าสู่ระบบมีจุดประสงค์หลักคือการเริ่มต้นโปรแกรมอื่น ๆ (ฉันไม่ทราบว่าคำอุปมาเดิมคือเชลล์คือสภาพแวดล้อมภายในบ้านสำหรับผู้ใช้หรือว่าเชลล์เป็นโปรแกรมอื่นที่กำลังทำงานอยู่)
ในแวดวงยูนิกซ์เชลล์มีความหมายเฉพาะเชลล์บรรทัดคำสั่งโดยมีศูนย์กลางอยู่ที่การป้อนชื่อของแอปพลิเคชันที่ต้องการเริ่มต้นตามด้วยชื่อของไฟล์หรือวัตถุอื่น ๆ ที่แอปพลิเคชันควรทำงานและกดปุ่ม Enter สภาพแวดล้อมประเภทอื่น ๆ ไม่ได้ใช้คำว่า "เปลือก"; ตัวอย่างเช่นระบบหน้าต่างเกี่ยวข้องกับ " ตัวจัดการหน้าต่าง " และ " สภาพแวดล้อมเดสก์ท็อป " ไม่ใช่ "เชลล์"
มียูนิกซ์เชลล์ที่แตกต่างกันมากมาย เชลล์ยอดนิยมสำหรับการใช้งานแบบโต้ตอบ ได้แก่Bash (ค่าเริ่มต้นสำหรับการติดตั้ง Linux ส่วนใหญ่), zsh (ซึ่งเน้นพลังงานและความสามารถปรับแต่งได้) และปลา (ซึ่งเน้นความเรียบง่าย)
เชลล์บรรทัดคำสั่งรวมการสร้างโฟลว์คอนโทรลเพื่อรวมคำสั่ง นอกเหนือจากการพิมพ์คำสั่งที่พร้อมต์แบบโต้ตอบผู้ใช้สามารถเขียนสคริปต์ เปลือกหอยที่พบมากที่สุดมีไวยากรณ์ที่พบอยู่บนพื้นฐานของBourne_shell เมื่อพูดถึง“ การเขียนโปรแกรมเชลล์ ” เชลล์จะบอกเป็นนัย ๆ ว่าเป็นเชลล์สไตล์ Bourne เชลล์บางตัวที่มักใช้ในการเขียนสคริปต์ แต่ขาดคุณลักษณะการโต้ตอบขั้นสูง ได้แก่Korn เชลล์ (ksh)และเถ้าหลากหลายรูปแบบ ค่อนข้างเหมือนระบบ Unix ใด ๆ ที่มีการติดตั้งเปลือกสไตล์ Bourne เป็น/bin/sh
ปกติเถ้า Ksh หรือทุบตี
ในการจัดการระบบ unix เชลล์ของผู้ใช้คือโปรแกรมที่ถูกเรียกเมื่อพวกเขาเข้าสู่ระบบบัญชีผู้ใช้ปกติมีเชลล์บรรทัดคำสั่ง แต่ผู้ใช้ที่มีการเข้าถึงที่ จำกัด อาจมีเชลล์ที่ถูก จำกัดหรือคำสั่งเฉพาะอื่น ๆ - บัญชีเท่านั้น)
การแบ่งงานระหว่างเทอร์มินัลและเชลล์ไม่ชัดเจนอย่างสมบูรณ์ นี่คือภารกิจหลักของพวกเขา
\e[D
) เชลล์แปลงลำดับการควบคุมไปเป็นคำสั่ง (เช่น\e[D
→ backward-char
)M-x shell
ใน Emacsfoo
", "สลับสีพื้นหน้าเป็นสีเขียว", "เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป" ฯลฯ เทอร์มินัลทำหน้าที่ตามคำแนะนำเหล่านี้printk
มีลำดับความสำคัญเพียงพอไป (เช่นเคอร์เนลที่ทำให้ตกใจ) มันถูกตั้งค่าโดยการส่งผ่านconsole=DEVICE,...
บรรทัดคำสั่งเคอร์เนล (เช่นconsole=ttyS0,115200
สำหรับพอร์ตอนุกรมแรกที่ 115,200 bps) โดยปกติแล้วจะมีค่าเริ่มต้นเป็นเทอร์มินัลเสมือน แต่สามารถเปลี่ยนแปลงได้เมื่อทำการรวบรวมเคอร์เนล
ขั้วหรือคอนโซลเป็นชิ้นส่วนของฮาร์ดแวร์โดยใช้ที่ผู้ใช้สามารถโต้ตอบกับโฮสต์ โดยทั่วไปแป้นพิมพ์ควบคู่กับหน้าจอข้อความ
ทุกวันนี้เกือบทั้งหมดขั้วและคอนโซลแสดง "เสมือน"
ไฟล์ที่แสดงถึงเทอร์มินัลนั้นเรียกว่าไฟล์tty หากคุณดูภายใต้ไดเรกทอรี "/ dev" ของระบบ UNIX คุณจะพบไฟล์ttyจำนวนมากที่เชื่อมต่อกับคอนโซลเสมือน (เช่น tty1 บน linux), เทอร์มินัลเสมือน (เช่น pts / 0) หรือฮาร์ดแวร์ที่เชื่อมต่อทางกายภาพ (เช่น ttyS0 เป็นฟิสิคัลเทอร์มินัลอนุกรมถ้ามีเชื่อมต่อกับพอร์ตอนุกรมแรกของโฮสต์)
คอนโซลจะต้องเป็นชิ้นส่วนของฮาร์ดแวร์ที่เชื่อมต่อกับร่างกาย (หรือส่วนหนึ่งของ) โฮสต์ มันมีบทบาทพิเศษในระบบ: มันเป็นประเด็นหลักในการเข้าถึงระบบเพื่อการบำรุงรักษาและการดำเนินการพิเศษบางอย่างสามารถทำได้เฉพาะจากคอนโซล (เช่นดูsingle user mode
) ขั้วสามารถและโดยปกติจะเป็นชิ้นส่วนที่ห่างไกลของฮาร์ดแวร์
สุดท้าย แต่ไม่ท้ายสุดเชลล์คือโปรแกรมพิเศษที่โต้ตอบกับผู้ใช้ผ่านการควบคุม ttyและข้อเสนอแก่ผู้ใช้วิธีการเปิดตัวโปรแกรมอื่น ๆ (เช่น bash, csh, tcsh)
จำลอง terminalเป็นโปรแกรมที่จำลองขั้วทางกายภาพ (เช่น xterm, gnome-terminal, minicom)
ดังนั้นเมื่อคุณมองไปที่ "หน้าต่างข้อความ" บนระบบลินุกซ์ (ภายใต้ X11) คุณกำลังมองหาที่: จำลอง terminalเชื่อมต่อกับterminal เสมือนระบุโดยTTYไฟล์ภายในซึ่งวิ่งเปลือก
tty
ในโปรแกรมจำลองเทอร์มินัลเช่น Konsole ของ KDE เอาต์พุตคือ / dev / pts / 0
/dev/pts/0
เป็นไฟล์ tty ซึ่งเป็นตัวจัดการไปยังส่วนต่อประสานแบบโปรแกรมโดยเคอร์เนล ผ่านตัวจัดการนี้โปรแกรม (เช่นเชลล์) สามารถโต้ตอบกับเทอร์มินัล (จริงหรือเสมือน) เทอร์มินัลอีมูเลเตอร์เป็นซอฟต์แวร์ที่จำลองเทอร์มินัล อีมูเลเตอร์ขอให้เคอร์เนลสร้างตัวจัดการเพื่อให้โปรแกรมโต้ตอบกับตัวเอง (ดูman openpty
) ดังนั้นข้อมูลไหลจากเทอร์มินัล (อีมูเลเตอร์) ไปยังเคอร์เนล tty handler ไปที่โปรแกรม (และในทางกลับกัน) โปรแกรมและเทอร์มินัลไม่ได้พูดคุยกันโดยตรง แต่ผ่านไฟล์ tty (ตัวจัดการ) เท่านั้น
คำอธิบายสั้น:
คอนโซลเป็นเทอร์มินัล ระบบมีคอนโซลเดียวและเทอร์มินัลหลายตัว โดยทั่วไปคอนโซลนั้นเป็นอินเทอร์เฟซหลักสำหรับการจัดการคอมพิวเตอร์เช่นในขณะที่มันยังบูตเครื่องอยู่
เทอร์มินัลคือเซสชันที่สามารถรับและส่งอินพุตและเอาต์พุตสำหรับโปรแกรมบรรทัดคำสั่ง คอนโซลเป็นกรณีพิเศษของสิ่งเหล่านี้
TTY เป็นอุปกรณ์หลอกที่เรียกว่าทรัพยากรเคอร์เนลซึ่งถูกใช้โดยกระบวนการเพื่อเข้าถึงเทอร์มินัลเฉพาะ TTY สามารถเชื่อมโยงกับฮาร์ดแวร์เช่นพอร์ตอนุกรมหรืออาจเป็นเสมือนเช่นสร้างขึ้นเมื่อผู้ใช้ล็อกอินผ่านเครือข่าย
เชลล์เป็นโปรแกรมที่ใช้สำหรับควบคุมและรันโปรแกรม มันมักจะใช้แบบโต้ตอบผ่านเทอร์มินัล มีโปรแกรมเชลล์อยู่หลายโปรแกรมการใช้ Bash นั้นถือเป็นเชลล์ที่ใช้กันมากที่สุดในปัจจุบัน เชลล์อื่น ๆ ตามลำดับโดยเฉพาะรวมถึง Bourne Shell, C-shell, Dash, Tsch, Ksh และ zsh ที่เป็นที่นิยมมากขึ้น ยังมีอีกมากมาย
เมื่อคุณมี GUI คุณสามารถใช้โปรแกรมเทอร์มินัลเพื่อวาดเส้นขอบที่ปรับขนาดได้ที่ดีเพิ่มแถบเลื่อนและจัดรูปแบบข้อความและอื่น ๆ สำหรับเทอร์มินัลเซสชัน บ่อยครั้งเหล่านี้เรียกว่าเทอร์มินัลอีมูเลเตอร์และบางครั้งพวกเขาสามารถจัดการหลายเซสชันผ่านแนวคิด TAB Terminal Emulator มักจะเริ่มเชลล์เพื่อให้คุณสามารถทำงานบนบรรทัดคำสั่งแบบโต้ตอบได้
TTY (เช่นTเอเลTY pewriter) เป็นอุปกรณ์พิเศษที่ช่วยให้คนที่มีหูหนวกหูตึงหรือคำพูดบกพร่องการใช้โทรศัพท์ในการติดต่อสื่อสารโดยให้พวกเขาในการพิมพ์ข้อความ ต้องการ TTY ที่ปลายทั้งสองของการสนทนาเพื่อสื่อสาร
OR
TTYเป็นเทอร์มินัลที่ใช้พิมพ์ข้อความ
เชลล์ : ส่วนป้องกันภายนอกครอบคลุมส่วนหนึ่งของเมล็ดเช่นเคอร์เนล
หรือ
กรอบหรือโครงสร้างภายนอกสู่ส่วนกลางหรือส่วนสำคัญของระบบ
คอนโซลหมายถึงแป้นพิมพ์และตรวจสอบการแนบทางกายกับคอมพิวเตอร์
แล้วมีสองคำตอบที่ดี แต่Ī'dต้องการเพิ่มข้อมูลเกี่ยวกับคำพูดที่ว่า“ขั้วเสมือน” โดยทั่วไปหมายถึงสิ่งที่ให้รูปลักษณ์ / การทำงานของเทอร์มินัล i อี ขั้วจำลองในความหมายกว้าง แต่ในช่วงแรก ๆ ของ Linux (1994–95) มีการใช้คำพ้องกับ"virtual console" (ส่วนต่อประสานผู้ใช้ที่ไม่เกี่ยวข้องหลายรายการ)โดยนักพัฒนาบางคน การใช้งานนี้ยังคงอยู่ในเอกสารประกอบ; คำสองคำที่แตกต่างกันคือ (และเป็น) ใช้เพื่ออ้างถึง tty1, tty2 … thingies ทุกวันนี้ (ตั้งแต่“ 1996) "เทอร์มินัลเสมือน" อาจหมายถึงเทอร์มินัลจำลองที่ใช้pty
Linux vt
(ไดรเวอร์ของคอนโซลระบบข้อความ) เป็นส่วนแรกของเคอร์เนล มันถูกใช้ครั้งแรกสำหรับการเชื่อมต่อกับเมนเฟรมและในแง่นี้มันเป็น "สถานีเสมือน" ดังนั้นชื่อ รหัสที่ควบคุมคอนโซลเสมือนอยู่vt.c
เช่นกัน วิศวกรเคอร์เนล Linux ใช้คำว่า "คอนโซล" เพื่อแสดงถึง tty1, tty2 …และใช้คำนำหน้า“ vc_” สำหรับพวกเขา ตัวอย่างเช่นมีvc_allocate
ฟังก์ชั่น ในทางกลับกันนักพัฒนาของเครื่องมือพื้นที่ผู้ใช้ดังกล่าวkbd
และconsole-tools
ใช้“ virtual console” (VC) และ“ virtual terminal” (VT) แทนกันได้ Ī̲ ติดต่อAndries E. Brouwerและขอให้เขาอธิบายคำศัพท์ที่ใช้โดยผู้พัฒนาก่อนหน้านี้ (1994–95) Andries กรุณาให้คำตอบบางอย่าง เขาระบุว่า VT และ VC มีความหมายเหมือนกันและมีตัวย่อ“ แบ่งแยกไม่ได้” -> โดยทั่วไปคอนโซลเสมือนเป็นเทอร์มินัลเสมือน แต่การสนทนาไม่เป็นความจริง "เทอร์มินัลเสมือน" เหล่านั้นที่ไม่ใช่คอนโซลเสมือนจริง ๆ แล้วเป็นpseudoterminals (เช่น Andries ระบุว่าไม่ใช่ VT ) ซึ่งแตกต่างจากคอนโซลเสมือนที่เคอร์เนลมีการทำงานที่สถานีสำหรับการประยุกต์ใช้คอนโซล pseudoterminals ใช้ PTY“อุปกรณ์” จะจัดให้มีการสื่อสารระหว่างโปรแกรมคอนโซลและโปรแกรมมินัลทำที่ทำงานใน userspace ตัวอย่างคือเทอร์มินัลอีมูเลเตอร์ X และsshd
ที่จัดสรร pseudotty สำหรับแต่ละเซสชันการล็อกอิน นามแฝงอาจไม่ถูกเรียกว่า "คอนโซล" - มันเป็นความผิดพลาด
เทอร์มินัล = อินเตอร์เฟสที่ให้การแสดงผลสำหรับเอาต์พุตและบอร์ดคีย์สำหรับอินพุตไปยังเชลล์เซสชั่น
Shell = Interpreter ที่เรียกใช้งานคำสั่งที่พิมพ์เป็นสตริง
คอนโซล: จริงๆแล้วเรามีสองประเภทของคอนโซล
ฟิสิคัลคอนโซล = จอแสดงผลฮาร์ดแวร์และคีย์บอร์ดที่ใช้ในการโต้ตอบกับระบบ
Virtual console = หนึ่งในหลาย ๆ โลจิคัลคอนโซลที่สามารถสนับสนุนเซสชันการล็อกอินอิสระ
tty (เทอร์มินัลโทรพิมพ์เช่น) = เทอร์มินัลนั้นเป็นเพียงอุปกรณ์ส่วนติดต่อผู้ใช้ที่ใช้ข้อความสำหรับอินพุตและเอาต์พุตข้อความ
คุณต้องดำดิ่งสู่ประวัติศาสตร์
มีอุปกรณ์คล้ายเครื่องพิมพ์ดีดพร้อมกระดาษและคีย์บอร์ด พวกเขาถูกเรียกว่าโทรพิมพ์ (ซึ่งหมายถึง "พิมพ์จากระยะไกล" เนื่องจาก "tele" หมายถึง "ระยะไกล") หรือttysสั้น ๆ ใน 70s พวกเขาได้ละทิ้งอุปกรณ์ที่มีจอ CRT ที่เรียกว่าแก้วttys
คอมพิวเตอร์ทุกเครื่องต้องการวิธีรายงานสถานะและข้อผิดพลาด (และอาจยอมรับคำสั่ง) มันทำผ่านคอนโซลซึ่งเกือบจะเชื่อมต่อโดยตรงกับคอมพิวเตอร์ ดังนั้นจึงมี 2 ความหมายสำหรับคอนโซล : สิ่งที่ใช้ในการรายงานสถานะและสิ่งที่เชื่อมต่อโดยตรง
UNIX เป็นระบบแบบโต้ตอบ: ผู้ใช้หลายคนอาจเชื่อมต่อและเริ่มโปรแกรมประยุกต์ คอมพิวเตอร์เครื่องแรกใช้ teletypes ( tty ) สำหรับ: ผู้ใช้แต่ละคนมีการเชื่อมต่อโทรพิมพ์กับเครื่องด้วยการเชื่อมต่อสายอนุกรม โทรพิมพ์ดังกล่าวเรียกว่าขั้ว UNIX ยังมีระบบย่อยพิเศษในการจัดการ "ผู้ใช้ที่นั่งด้านหลังเทอร์มินัล" ซึ่งเรียกอีกอย่างว่าttyเพราะเทอร์มินัลแรกคือโทรพิมพ์ แต่ละกระบวนการสามารถเชื่อมต่อกับ tty ใน Unix นั่นหมายความว่ามีผู้ใช้คนหนึ่งนั่งอยู่ใกล้กับสถานี ดูhttp://www.linusakesson.net/programming/tty/สำหรับข้อมูลเพิ่มเติม
ผู้ใช้ต้องการวิธีบอกเคอร์เนลให้เรียกใช้แอปพลิเคชัน เชลล์ (sh, bash, csh, ksh ฯลฯ ) ใช้สำหรับสิ่งนั้น เชลล์รันบนttyยอมรับคำสั่งจากผู้ใช้และขอให้เคอร์เนลรันบางแอพ
แต่เทอร์มินัลไม่ได้เชื่อมต่อกับตัวเครื่องเสมอไป อาจมีแอปพลิเคชั่นบางตัวที่เทอร์มินัล "จำลอง" ยอมรับการกดแป้นจากผู้ใช้และส่งไปที่ไหนสักแห่ง (xterm และ ssh เป็นตัวอย่างที่ดี) มี API ในเคอร์เนลที่เรียกว่าสถานีหลอกสำหรับสิ่งนั้น ดังนั้นttyของคุณอาจเชื่อมต่อกับแอปพลิเคชั่นบางตัวแทนเทอร์มินัลจริง Xterm ใช้ X11 เพื่อแสดงข้อความและ ssh ใช้การเชื่อมต่อเครือข่าย
IBM PC มีแป้นพิมพ์และการ์ดวิดีโอ ( บางครั้งเรียกว่าคอนโซล ) Linux สามารถทำสิ่งต่าง ๆ ด้วย:
นอกจากนี้ยังอาจหยุดการจำลองเทอร์มินัลบนคอนโซลและมอบให้กับแอพบางตัว แอพสามารถสลับโหมดวิดีโอและใช้งานได้เฉพาะ (X11 หรือ svgalib อาจทำเช่นนั้น)
ดังนั้นนี่คือความหมายที่ทันสมัย:
/dev/console
) หรือแป้นพิมพ์กายภาพและจอแสดงผลวิดีโอที่เชื่อมต่อกับคอมพิวเตอร์นี่คือคำตอบสั้น ๆ -
เคอร์เนล - ส่วนในสุดของระบบปฏิบัติการที่ทันสมัยซึ่งพูดถึงฮาร์ดแวร์โดยตรง
Shell - wrapper รอบเคอร์เนลจริง เมื่อใดก็ตามที่เรารันคำสั่งเราจะพูดกับเชลล์ซึ่งจะเรียกใช้คำสั่งเคอร์เนลที่เหมาะสม นอกเหนือจากนี้เชลล์ยังสามารถทำงานอื่น ๆ ได้เช่นการค้นหาโปรแกรมที่เหมาะสมขณะที่มีคำสั่งชื่อไฟล์สั้น ๆ บางคำสั่ง piping เป็นต้น
เทอร์มินัล - ในยุคของการคำนวณก่อนหน้านี้คอมพิวเตอร์ (รู้จักกันในชื่อเมนเฟรม) เป็นยักษ์ ดังนั้นมันจึงเป็นเรื่องง่ายที่จะมีหน่วยประมวลผลเดียวและเชื่อมต่อจากหลายแห่ง เทอร์มินัลเป็นฮาร์ดแวร์จริงที่มีแป้นพิมพ์และอุปกรณ์ส่งออกเชื่อมต่อกับเมนเฟรม
คอนโซล - เทอร์มินัลชนิดพิเศษที่เชื่อมต่อโดยตรงกับเมนเฟรมเพื่อวัตถุประสงค์ในการดูแลระบบปฏิบัติการ
tty - TeleTypewriter ใช้ในการส่งและรับข้อมูลไปและกลับจากเมนเฟรม ใช้ก่อน Video Terminals พร้อมใช้งาน แต่ตามอัตภาพมันยังถูกตั้งชื่อเป็น tty แม้แต่เพื่อนร่วมงานstty
คำตอบโดยละเอียดอยู่ที่นี่ - เทอร์มินัลคอนโซลเชลล์เคอร์เนลคำสั่ง - ส่วนต่าง ๆ ของคอมพิวเตอร์
root
บัญชีผ่านsudo
หรือผ่านการเข้าสู่ระบบคอนโซล คอนโซลมักจะมีสถานที่พิเศษที่ฉลาดเป็นพิเศษเพราะคนที่เข้าถึงพวกเขาจำเป็นต้องมีการเข้าถึงทางกายภาพกับคอมพิวเตอร์ที่พวกเขาสื่อสารด้วย พวกเขายังเป็นวิธีการเข้าถึงสุดท้าย หากระบบปฏิบัติการอยู่ในสถานะเสียบางส่วน (เช่นไดรเวอร์อีเธอร์เน็ตเสีย) คุณยังคงสามารถเข้าถึงคอนโซลได้ มันเป็นอุปกรณ์อินเทอร์เฟซสำหรับมนุษย์ตัวหนึ่งที่ควรใช้งานได้เสมอไม่ว่าระบบจะอยู่ในสถานะใด
นอกเหนือจากคำตอบที่ได้รับการยอมรับและบทความดีทีทีdemystifiedฉันชอบอ่านบทความทั้งสองนี้จริงๆ:
อันนี้ขึ้นอยู่กับ NetBSD
ย้อนกลับไปในยุคหินของ Unix ระบบคอมพิวเตอร์ประกอบด้วยเมนเฟรมกล่องไฟกะพริบขนาดใหญ่ซึ่งมีหน่วยความจำหน่วยเก็บข้อมูลขนาดใหญ่และหน่วยคำนวณและกระบวนการที่เริ่มต้นโดยผู้ใช้หรือผู้ดำเนินการ เนื่องจากฮาร์ดแวร์มีราคาแพงมากระบบจึงถูกใช้เป็นระบบที่มีผู้ใช้หลายคนโดยหลายคนมีปฏิสัมพันธ์กับระบบในเวลาเดียวกัน สิ่งที่มันมักจะไม่มี - ซึ่งแตกต่างจากเวิร์กสเตชัน Unix ในปัจจุบันคือจอภาพและแป้นพิมพ์แบบคงที่ แต่การออกคำสั่งไปยังเครื่องและการดึงเอาท์พุททำได้ผ่านสายอนุกรมโดยใช้เครื่องโทรพิมพ์ก่อนและเทอร์มินัล CRT (หลอดแคโทดเรย์) Teletypers - นั่นคือสิ่งที่ "ttys" ใน Unix มาจาก - เป็นเครื่องพิมพ์ดีดอิเล็กทรอนิกส์ที่ส่งคีย์ที่กดข้ามสายอนุกรมไปยังโฮสต์
อันนี้ขึ้นอยู่กับ Linux
เทอร์มินัลคืออุปกรณ์ที่ให้ความสามารถด้านอินพุต / เอาต์พุตที่เหนือกว่าสิ่งที่สามารถทำได้ด้วยไฟล์ท่อและซ็อกเก็ตทั่วไปเท่านั้น คุณสมบัติเหล่านี้ได้รับการออกแบบมาเพื่อให้มนุษย์โต้ตอบกับคอมพิวเตอร์ได้ง่ายขึ้นและไร้ประโยชน์สำหรับโปรแกรมที่พยายามพูดคุยกัน
ให้ฉันหยุดที่นี้ ... ฉันจะใช้ Unix และ Linux มากหรือน้อยเหมือนกันในนี้ ถ้าฉันพูดถึงบางสิ่งบางอย่างที่มีมาก่อนประวัติศาสตร์ของลินุกซ์ฉันมักจะเขียน "Unix" และถ้าฉันกำลังพูดถึงบางสิ่งที่ใหม่กว่าหรือสิ่งที่เฉพาะกับรสชาติ Linux ของ Unix ฉันมักจะเขียน "Linux "
สิ่งเดียวในรายการของคุณที่เป็นแนวคิดแบบแยกซึ่งไม่มีการทับซ้อนกับสิ่งอื่นคือ 'เชลล์' เชลล์เป็นโปรแกรมที่มีวัตถุประสงค์เพื่อสื่อสารกับผู้ใช้และดำเนินการระบบปฏิบัติการในนามของพวกเขา
เชลล์ที่ใช้กันมากที่สุดใช้เทคนิคที่เรียกว่า 'command line' ซึ่งประกอบด้วยการส่งผู้ใช้บางประเภทของพรอมต์รอให้ผู้ใช้พิมพ์คำสั่งข้อความแล้วดำเนินการคำสั่งนั้น แต่มีเปลือกหอยที่มีเมนูเป็นหลักและแม้กระทั่งเปลือกหอยแบบกราฟิก (เช่น Windows File Explorer) แม้ว่าจะไม่มีบุคคล Unix ที่เคารพตนเองจะเรียกสิ่งนี้ว่า 'เชลล์'
ใน Unix ถ้ามีคนเรียกบางสิ่งบางอย่างว่า 'shell' พวกเขาเกือบจะหมายถึงอินเตอร์เฟสบรรทัดคำสั่งบางรูปแบบตามที่ฉันเพิ่งอธิบายไป และมันแปลกมากในโลกของ Unix ที่อ้างถึงสิ่งใด ๆ ในฐานะ 'shell' ถ้ามันไม่ได้สื่อสารกับผู้ใช้โดยใช้โมเดล tty ที่ฉันอธิบายเพิ่มเติม
นี่เป็นสิ่งที่สับสนเพราะสามารถอ้างถึงสิ่งต่าง ๆ ได้สองสามอย่าง
ใน Linux มีอุปกรณ์ชนิดหนึ่งที่เรียกว่า 'tty' เป็นอุปกรณ์นามธรรมที่คาดว่าจะใช้สำหรับการสื่อสารแบบสองทิศทางกับสิ่งที่เป็นผู้ใช้หรือกำลังรับข้อมูลจากผู้ใช้ในบางวิธี บางครั้งอุปกรณ์นามธรรมอาจตรงกับอุปกรณ์ทางกายภาพโดยตรง บางครั้งอาจเป็นโปรแกรมที่นำเสนอบางคนที่มีหน้าต่างซึ่งการสื่อสารปรากฏขึ้นและผู้ใช้สามารถพิมพ์ได้
แต่เหตุผลที่อุปกรณ์นามธรรมนี้มีอยู่และเหตุผลที่เรียกว่า 'tty' คือ 'tty' สั้นสำหรับ 'teletype' ซึ่งเป็นอุปกรณ์ทางกายภาพจริงที่มีเครื่องพิมพ์ที่พิมพ์บนกระดาษรวมกับแป้นพิมพ์ แบบจำลองอุปกรณ์นามธรรม 'tty' นำเสนอให้กับโปรแกรมที่ใช้งานโดยทั่วไปแล้วจะมีเครื่องโทรพิมพ์อยู่อีกด้านหนึ่ง คุณส่งตัวอักษรและตัวอักษรเหล่านั้นจะปรากฏบนโทรพิมพ์ เมื่อคุณอ่านตัวละครจากนั้นตัวละครเหล่านั้นจะเป็นตัวแทนของปุ่มที่พิมพ์บนแป้นพิมพ์
ttys ที่ใช้เครื่องพิมพ์กระดาษเก่าถูกแทนที่ด้วย ttys วิดีโออย่างรวดเร็ว แน่นอนว่าไม่มีกระดาษม้วน และในความเป็นจริงมันเป็นไปได้ที่จะเขียนทับตัวละครใด ๆ บนหน้าจอ แต่แทนที่จะแสดงอินเตอร์เฟซแบบ 'หน้าจอ' ที่เป็นนามธรรมไปยังโปรแกรมโปรแกรมจะถูกคาดหวังให้ส่งสตรีมพิเศษของตัวละครที่เรียกว่าลำดับเอสเคป มักจะมีสิ่งที่เป็นนามธรรมที่เรียกว่า 'เคอร์เซอร์' ที่สามารถย้ายไปรอบ ๆ หน้าจอและตัวละครใด ๆ ที่ส่งจะแทนที่สิ่งที่อยู่ที่เคอร์เซอร์และเคอร์เซอร์จะย้ายตัวละครตัวหนึ่งต่อไป บ่อยครั้งที่คุณสามารถเปลี่ยนสีของตัวละครที่กำลังจะพิมพ์ด้วยลำดับการหลีกเลี่ยงได้เช่นกัน
มี 'แก้ว ttys' ที่ไม่เป็นไปตามรุ่นนี้และดังนั้นจึงมีการจัดการที่ไม่ดีในโลก Unix เทอร์มินัลวิดีโอตระกูล IBM 3270 อยู่ในหมวดหมู่นี้
สิ่งที่คน Linux / Unix มักเรียกว่า 'หน้าต่างเปลือกหอย' เป็นการจำลองแบบ tty แบบแก้วโดยใช้ส่วนต่อประสานผู้ใช้แบบกราฟิก ภายในโปรแกรมที่ทำงานภายในหน้าต่างเชลล์กำลังพูดคุยกับอุปกรณ์ tty เสมือนที่บางครั้งเรียกว่า pseudo-tty หรือ pseudo-terminal (aka a pty)
เทอร์มินัลเป็นเพียงสถานที่ที่คอมพิวเตอร์และมนุษย์ควรจะเชื่อมต่อ เทอร์มินัลอาจเป็นกราฟิกที่สมบูรณ์และไม่เป็นไปตามโมเดล tty ในทางใด ๆ แม้ว่าโปรแกรมอาจใช้ความสามารถของพวกเขาในการเลียนแบบสิ่งนี้ ttys จริงทั้งหมด (แก้วหรืออย่างอื่น) เป็นเทอร์มินัล
คอนโซลเป็นเทอร์มินัลชนิดพิเศษที่โดยทั่วไปควรเชื่อมต่อกับฮาร์ดแวร์ที่ระบบปฏิบัติการกำลังทำงานอยู่
ใน Linux คอนโซลเสมือนจริงในวิธีเล็ก ๆ ซึ่งช่วยให้คุณใช้การกดแป้นพิมพ์พิเศษเพื่อสลับระหว่างคอนโซลเสมือน แต่การทำเวอร์ช่วลไลเซชั่นนี้ทำด้วยฮาร์ดแวร์ชิ้นส่วนจริงโดยซอฟต์แวร์ในเคอร์เนล
มีวิธีใช้ Linux ผ่านสิ่งที่เรียกว่า 'serial console' ซึ่งเป็นคอนโซลที่เชื่อมต่อกับคอมพิวเตอร์ผ่านทางพอร์ตอนุกรมเช่นพอร์ต USB (หรือในคอมพิวเตอร์ขนาดเล็กมากและ / หรือเก่ามากพอร์ต RS-232 บางชนิด) และติดตามรุ่นโทรพิมพ์เก่าอย่างเข้มงวด
อีกแนวคิดคือคอนโซลนี้เชื่อมต่อในลักษณะทางกายภาพโดยตรงกับคอมพิวเตอร์แทนที่จะผ่านเครือข่ายบางประเภทที่อาจอนุญาตให้ทุกคนเชื่อมต่อ