it-swarm-vi.com

Sự khác biệt chính xác giữa 'thiết bị đầu cuối', 'Shell', 'tty' và 'console' là gì?

Tôi nghĩ rằng các thuật ngữ này gần như đề cập đến cùng một điều, khi được sử dụng một cách lỏng lẻo:

  • thiết bị đầu cuối
  • Vỏ
  • tty
  • bảng điều khiển

Chính xác thì mỗi điều khoản này đề cập đến điều gì?

1278
Lazer

Một thiết bị đầu cuối nằm ở cuối dây điện, Shell là nhà của một con rùa, tty là một từ viết tắt kỳ lạ và một bàn điều khiển là một loại tủ.

Vâng, về mặt từ nguyên, dù sao đi nữa.

Trong thuật ngữ unix, câu trả lời ngắn gọn là

  • terminal = tty = môi trường nhập/xuất văn bản
  • bàn điều khiển = thiết bị đầu cuối vật lý
  • Shell = trình thông dịch dòng lệnh

Bảng điều khiển, thiết bị đầu cuối và tty có liên quan chặt chẽ. Ban đầu, chúng có nghĩa là một thiết bị mà qua đó bạn có thể tương tác với máy tính: trong những ngày đầu của unix, điều đó có nghĩa là một thiết bị teleprinter - giống như một máy đánh chữ, đôi khi được gọi là máy đánh chữ, hay còn gọi là tty Cung điện tốc ký. Cái tên của thiết bị đầu cuối tên lửa xuất phát từ quan điểm điện tử, và cái tên CĐT điều khiển từ quan điểm nội thất. Rất sớm trong lịch sử unix, bàn phím và màn hình điện tử đã trở thành tiêu chuẩn cho các thiết bị đầu cuối.

Trong thuật ngữ unix, a tty là một loại đặc biệt của tệp thiết bị thực hiện một số lệnh bổ sung ( ioctls ) ngoài việc đọc và viết. Theo nghĩa phổ biến nhất của nó, terminal đồng nghĩa với tty. Một số ttys được cung cấp bởi kernel thay mặt cho một thiết bị phần cứng, ví dụ với đầu vào đến từ bàn phím và đầu ra đi đến màn hình chế độ văn bản, hoặc với đầu vào và đầu ra được truyền qua một dòng nối tiếp. Các ttys khác, đôi khi được gọi là pseudo-ttys , được cung cấp (thông qua một lớp nhân mỏng) bởi các chương trình có tên trình giả lập thiết bị đầu cuối , chẳng hạn như Xterm (chạy trong Hệ thống cửa sổ X ), Màn hình = (cung cấp lớp cách ly giữa chương trình và thiết bị đầu cuối khác), Ssh (kết nối thiết bị đầu cuối trên một máy với các chương trình trên máy khác), Mong đợi (để tạo kịch bản tương tác thiết bị đầu cuối), vv.

Thiết bị đầu cuối Word cũng có thể có ý nghĩa truyền thống hơn của một thiết bị thông qua đó một thiết bị tương tác với máy tính, thường là với bàn phím và màn hình. Ví dụ: thiết bị đầu cuối X là một loại máy khách mỏng , một máy tính có mục đích đặc biệt với mục đích duy nhất là điều khiển bàn phím, màn hình, chuột và đôi khi là các thiết bị ngoại vi tương tác khác của con người, với các ứng dụng thực tế chạy trên một ứng dụng khác , máy tính mạnh hơn.

Bảng điều khiển nói chung là một thiết bị đầu cuối theo nghĩa vật lý, theo định nghĩa nào đó, thiết bị đầu cuối chính được kết nối trực tiếp với máy. Bảng điều khiển xuất hiện cho hệ điều hành dưới dạng tty (được triển khai bằng kernel). Trên một số hệ thống, chẳng hạn như Linux và FreeBSD, bảng điều khiển xuất hiện dưới dạng một số ttys (tổ hợp phím đặc biệt chuyển đổi giữa các ttys này); Chỉ cần nhầm lẫn các vấn đề, tên được đặt cho mỗi tty cụ thể có thể là bộ điều khiển của bộ điều khiển, bộ điều khiển ảo, bộ điều khiển ảo, bộ điều khiển ảo, và các biến thể khác.

Xem thêm Tại sao lại là Thiết bị đầu cuối ảo Virtual ảo, và cái gì/tại sao/ở đâu là Thiết bị đầu cuối thực sự của trực tuyến? .


A Shell là giao diện chính mà người dùng nhìn thấy khi họ đăng nhập, mục đích chính của họ là bắt đầu các chương trình khác. (Tôi không biết liệu phép ẩn dụ ban đầu là Shell là môi trường gia đình cho người dùng hay Shell là thứ mà các chương trình khác đang chạy.)

Trong vòng tròn unix, Shell có nghĩa là chuyên biệt dòng lệnh Shell , tập trung vào việc nhập tên của ứng dụng mà người ta muốn để bắt đầu, theo sau là tên của các tệp hoặc các đối tượng khác mà ứng dụng sẽ hành động và nhấn phím Enter. Các loại môi trường khác không sử dụng Word ngay Shell Shell; ví dụ: các hệ thống cửa sổ liên quan đến vùng trình quản lý cửa sổ và và môi trường máy tính để bàn , không phải là một Shell Shell.

Có nhiều vỏ unix khác nhau. Các shell phổ biến để sử dụng tương tác bao gồm Bash (mặc định trên hầu hết các cài đặt Linux), zsh (trong đó nhấn mạnh sức mạnh và khả năng tùy biến) và fish (trong đó nhấn mạnh sự đơn giản).

Các shell dòng lệnh bao gồm các cấu trúc điều khiển luồng để kết hợp các lệnh. Ngoài việc gõ các lệnh tại Dấu nhắc tương tác, người dùng có thể viết các tập lệnh. Các shell phổ biến nhất có cú pháp chung dựa trên Bourne_Shell . Khi thảo luận về nhóm Lập trình Shell , Shell hầu như luôn được ngụ ý là Shell theo kiểu Bourne. Một số shell thường được sử dụng để tạo kịch bản nhưng thiếu các tính năng tương tác nâng cao bao gồm Korn Shell (ksh) và nhiều biến thể ash . Khá nhiều hệ thống giống Unix có Shell kiểu Bourne được cài đặt là /bin/sh, thường là tro, ksh hoặc bash.

Trong quản trị hệ thống unix, Shell của người dùng Shell là chương trình được gọi khi họ đăng nhập. Tài khoản người dùng thông thường có Shell dòng lệnh, nhưng người dùng có truy cập bị hạn chế có thể có Shell bị hạn chế hoặc một số lệnh cụ thể khác (ví dụ: đối với các tài khoản chỉ chuyển tệp).


Sự phân công lao động giữa nhà ga và Shell không hoàn toàn rõ ràng. Dưới đây là nhiệm vụ chính của họ.

  • Đầu vào: thiết bị đầu cuối chuyển đổi các khóa thành các chuỗi điều khiển (ví dụ: Left → \e[D). Shell chuyển đổi các chuỗi điều khiển thành các lệnh (ví dụ: \e[Dbackward-char).
  • Chỉnh sửa dòng, lịch sử đầu vào và hoàn thành được Shell cung cấp. [.__.]
    • Thay vào đó, thiết bị đầu cuối có thể cung cấp chỉnh sửa, lịch sử và hoàn thành dòng riêng của mình và chỉ gửi một dòng tới Shell khi nó sẵn sàng để được thực thi. Thiết bị đầu cuối phổ biến duy nhất hoạt động theo cách này là M-x Shell trong Emacs.
  • Đầu ra: Shell phát ra các hướng dẫn, chẳng hạn như màn hình hiển thị foo '.
  • Lời nhắc hoàn toàn là một khái niệm Shell.
  • Shell không bao giờ thấy đầu ra của các lệnh mà nó chạy (trừ khi được chuyển hướng). Lịch sử đầu ra (cuộn lại) hoàn toàn là một khái niệm đầu cuối.
  • Thiết bị sao chép liên ứng dụng được cung cấp bởi thiết bị đầu cuối (thường là bằng chuột hoặc các chuỗi chính như Ctrl+Shift+V hoặc là Shift+Insert). Shell cũng có thể có cơ chế sao chép nội bộ riêng (ví dụ: Meta+W và Ctrl+Y).
  • Kiểm soát công việc (khởi chạy các chương trình trong nền và quản lý chúng) hầu hết được thực hiện bởi Shell. Tuy nhiên, đó là thiết bị đầu cuối xử lý các tổ hợp phím như Ctrl+C để giết công việc tiền cảnh và Ctrl+Z đình chỉ nó.
1253

A terminal hoặc a console là một phần cứng, sử dụng mà người dùng có thể tương tác với Máy chủ. Về cơ bản một bàn phím kết hợp với màn hình văn bản.
[.__.] Ngày nay, gần như tất cả các thiết bị đầu cuối và bảng điều khiển đại diện cho các thiết bị "ảo".

Theo truyền thống, tệp đại diện cho một thiết bị đầu cuối được gọi là tệp tty. Nếu bạn xem trong thư mục "/ dev" của hệ thống UNIX, bạn sẽ tìm thấy rất nhiều tty tệp được kết nối với bảng điều khiển ảo (ví dụ: tty1 trên linux), thiết bị đầu cuối ảo (ví dụ: pts/0) hoặc phần cứng được kết nối vật lý (ví dụ: ttyS0 là thiết bị đầu cuối nối tiếp vật lý, nếu có, được gắn trên cổng nối tiếp đầu tiên của Máy chủ).

A bàn điều khiển phải là một phần cứng được kết nối vật lý với (hoặc một phần) của Máy chủ. Nó có một vai trò đặc biệt trong hệ thống: đó là điểm chính để truy cập hệ thống để bảo trì và một số thao tác đặc biệt chỉ có thể được thực hiện từ bảng điều khiển (ví dụ: xem single user mode). Một terminal có thể, và thường là, một phần cứng từ xa.

Cuối cùng, nhưng không kém phần quan trọng, Shell là một chương trình đặc biệt tương tác với người dùng thông qua kiểm soát tty và cung cấp cho người dùng, cách khởi chạy các chương trình khác ( ví dụ: bash, csh, tcsh).

A trình giả lập thiết bị đầu cuối là chương trình mô phỏng thiết bị đầu cuối vật lý (ví dụ: xterm, gnome-terminal, minicom).

Vì vậy, khi bạn tìm đến một "cửa sổ văn bản" trên hệ thống linux của mình (dưới X11), bạn đang tìm kiếm: a trình giả lập thiết bị đầu cuối, được kết nối với a thiết bị đầu cuối ảo , được xác định bởi tệp a tty, bên trong chạy a Shell.

199
andcoz

Giải thích NGẮN:

Bảng điều khiển là một thiết bị đầu cuối. Một hệ thống đã có một bàn điều khiển và có khả năng nhiều thiết bị đầu cuối. Bảng điều khiển thường là giao diện chính để quản lý máy tính, ví dụ như trong khi nó vẫn đang khởi động.

Thiết bị đầu cuối là một phiên có thể nhận và gửi đầu vào và đầu ra cho các chương trình dòng lệnh. Bảng điều khiển là một trường hợp đặc biệt trong số này.

TTY về cơ bản là một thiết bị giả, gọi nó là tài nguyên hạt nhân, được sử dụng bởi các quy trình để truy cập vào một thiết bị đầu cuối cụ thể. TTY có thể được gắn với phần cứng như cổng nối tiếp hoặc có thể là ảo, ví dụ: được tạo khi người dùng đăng nhập qua mạng

Shell là một chương trình được sử dụng để kiểm soát và chạy các chương trình. Nó thường được sử dụng tương tác, thông qua một thiết bị đầu cuối. Một số chương trình Shell tồn tại, Bash được cho là Shell được sử dụng phổ biến nhất hiện nay. Các loại vỏ khác, không theo thứ tự cụ thể, bao gồm Bourne Shell, C-Shell, Dash, Tsch, Ksh và zsh ngày càng phổ biến. Chúng còn nhiều nữa.

Khi bạn có GUI, bạn có thể sử dụng chương trình thiết bị đầu cuối để vẽ đường viền có thể thay đổi được Nice, thêm thanh cuộn và định dạng văn bản, v.v., cho phiên cuối. Thông thường chúng được gọi là trình giả lập thiết bị đầu cuối và đôi khi chúng có thể xử lý nhiều phiên thông qua khái niệm TAB. Trình mô phỏng đầu cuối thường khởi động Shell để cho phép bạn tương tác làm việc trên một dòng lệnh.

51
Johan

A [~ # ~] tty [~ # ~] (tức là [~ # ~] t [~ # ~] ele [~ # ~] ty [~ # ~] pewriter) là một thiết bị đặc biệt cho phép những người bị điếc, lãng tai hoặc khiếm thính sử dụng điện thoại để liên lạc, bằng cách cho phép họ nhập tin nhắn văn bản. Một TTY được yêu cầu ở cả hai đầu của cuộc trò chuyện để giao tiếp.
HOẶC LÀ
[.__.] [~ # ~] tty [~ # ~] is terminal được sử dụng để nhập tin nhắn văn bản.


Shell: phần bảo vệ bên ngoài của hạt nhân, tức là hạt nhân.
HOẶC LÀ
[.__.] khung hoặc cấu trúc bên ngoài đến phần trung tâm hoặc thiết yếu của hệ thống.
[.__.] enter image description here


Bảng điều khiển có nghĩa là bàn phím và màn hình đính kèm vật lý vào máy tính.

36
Premraj

Đã có hai câu trả lời tuyệt vời, nhưng Ī̲ Giảd muốn thêm thông tin về cụm từ Thiết bị đầu cuối ảo ảo . Nói chung, nó có nghĩa là một cái gì đó cung cấp sự xuất hiện/chức năng của một thiết bị đầu cuối, i. e. a terminal-giả lập theo nghĩa rộng. Nhưng trong những ngày đầu của Linux (1994, 95), được sử dụng đồng nghĩa với bộ điều khiển ảo ảo (một số giao diện người dùng không liên quan) , bởi một số nhà phát triển. Việc sử dụng này vẫn tồn tại trong tài liệu; hai thuật ngữ khác nhau được (và đang) được sử dụng để chỉ các điều tty1, tty2. Ngày nay (kể từ 9961996), thiết bị đầu cuối ảo ảo cũng có thể đề cập đến pty - trình giả lập thiết bị đầu cuối dựa trên.

Linux vt (trình điều khiển của bảng điều khiển hệ thống chế độ văn bản) là phần đầu tiên của kernel. Ban đầu, nó được sử dụng để kết nối với các máy tính lớn và theo nghĩa này, nó là một thiết bị đầu cuối ảo ảo, do đó có tên. Mã kiểm soát bảng điều khiển ảo cũng nằm trong vt.c . Các kỹ sư hạt nhân Linux luôn sử dụng các bảng điều khiển Word Word để biểu thị tty1, tty2, và sử dụng tiền tố Vc_ Cảnh dùng cho họ. Ví dụ: có hàm vc_allocate. Mặt khác, các nhà phát triển của các công cụ không gian người dùng như kbdconsole-tools Đã sử dụng giao diện điều khiển ảo ảo (VC) và thiết bị đầu cuối ảo ảo (VT) thay thế cho nhau. Đã liên lạc AndriesE. Brouwer và yêu cầu anh ta làm rõ thuật ngữ được sử dụng bởi các nhà phát triển đầu tiên (1994, 95). Andries vui lòng cung cấp một số câu trả lời. Anh ta nói rằng VT và VC là từ đồng nghĩa và viết tắt không thể tách rời. -> Nói chung, bảng điều khiển ảo là một thiết bị đầu cuối ảo, nhưng ngược lại là không đúng. không phải là bảng điều khiển ảo thực sự pseudotermests (theo trạng thái của Andries, những không phải là VT). Không giống như các bảng điều khiển ảo, trong đó kernel cung cấp chức năng đầu cuối cho ứng dụng bảng điều khiển, giả hành sử dụng các thiết bị PTY tựa đề để sắp xếp giao tiếp giữa các ứng dụng bảng điều khiển và chương trình tạo thiết bị đầu cuối chạy trong không gian người dùng . Ví dụ là trình giả lập thiết bị đầu cuối dựa trên X và sshd, phân bổ giả cho mỗi phiên đăng nhập. Một giả hành có thể không được gọi là điều khiển điều khiển - đó là một sai lầm.

30
Incnis Mrsi
  • Terminal = Giao diện cung cấp màn hình hiển thị đầu ra và bảng phím để nhập vào phiên Shell.

  • Shell = Trình thông dịch thực thi các lệnh được nhập dưới dạng chuỗi

  • Bảng điều khiển: Trên thực tế có hai loại bảng điều khiển chúng tôi sử dụng

    • Bảng điều khiển vật lý = Màn hình phần cứng và bàn phím được sử dụng để tương tác với hệ thống

    • Bảng điều khiển ảo = Một trong nhiều bảng điều khiển logic có thể hỗ trợ một phiên đăng nhập độc lập.

  • tty (teletype tức là thiết bị đầu cuối). = Thiết bị đầu cuối về cơ bản chỉ là một thiết bị giao diện người dùng sử dụng văn bản cho đầu vào và output.message.

16
Rakib

Bạn cần phải đi sâu vào lịch sử.

Có những thiết bị giống như máy đánh chữ bằng giấy và bàn phím. Chúng được gọi là teletypes (có nghĩa là "gõ từ xa", vì "tele" có nghĩa là "từ xa") hoặc ttys . Vào những năm 70, chúng đã bị các thiết bị có màn hình CRT gọi là kính ttys .

Bất kỳ máy tính nào cũng cần một số cách để báo cáo trạng thái và lỗi của nó (và, có lẽ, chấp nhận các lệnh). Nó được thực hiện thông qua console gần như luôn được kết nối trực tiếp với máy tính. Vì vậy, có 2 ý nghĩa cho console : một cái gì đó được sử dụng để báo cáo trạng thái và một cái gì đó được kết nối trực tiếp.

UNIX là một hệ thống tương tác: một số người dùng có thể kết nối với nó và bắt đầu các ứng dụng. Các máy tính đầu tiên sử dụng teletypes ( tty ) cho điều đó: mỗi người dùng có teletype được kết nối với máy có kết nối đường nối tiếp. Teletype như vậy được gọi là terminal . UNIX cũng có hệ thống con đặc biệt để xử lý "người dùng ngồi sau thiết bị đầu cuối" còn được gọi là tty vì thiết bị đầu cuối đầu tiên là teletype. Mỗi quá trình có thể được kết nối với tty trong Unix. Điều đó có nghĩa là có một người dùng ở đâu đó gần nhà ga. Xem http://www.linusakesson.net/programming/tty/ để biết thêm thông tin.

Người dùng cần một số cách để nói kernel chạy ứng dụng. Shell (sh, bash, csh, ksh, v.v.) được sử dụng cho điều đó. Shell chạy trên tty , chấp nhận lệnh từ người dùng và yêu cầu kernel chạy. một số ứng dụng.

Nhưng các thiết bị đầu cuối không phải lúc nào cũng được kết nối vật lý với máy. Có thể có một số ứng dụng "mô phỏng" thiết bị đầu cuối chấp nhận tổ hợp phím từ người dùng và gửi chúng đi đâu đó (xterm và ssh là những ví dụ điển hình). Có một API trong Kernel được gọi là thiết bị đầu cuối giả cho điều đó. Vì vậy, tty của bạn thực sự có thể được kết nối với một số ứng dụng thay vì thiết bị đầu cuối thực sự. Xterm sử dụng X11 để hiển thị văn bản và ssh sử dụng kết nối mạng cho nó.

IBM PC có bàn phím và thẻ video (đôi khi chúng còn được gọi là bàn điều khiển ). Linux có thể làm những điều khác nhau với nó:

  • Sử dụng nó làm "công cụ báo cáo lỗi và trạng thái": Bảng điều khiển Linux. Nếu bạn chuyển giao bàn điều khiển =/dev/ttyS0 cho kernel, nó sẽ sử dụng thứ gì đó được kết nối với COM1 làm bàn điều khiển và nếu bạn không sử dụng bảng điều khiển PC.
  • Sử dụng nó để mô phỏng thiết bị đầu cuối, nên được gọi là thiết bị đầu cuối ảo (vty).

Nó cũng có thể dừng thiết bị đầu cuối giả lập trên bàn điều khiển và cung cấp cho một số ứng dụng. Ứng dụng có thể chuyển chế độ video của nó và sử dụng riêng (X11 hoặc svgalib có thể làm điều đó).

Vì vậy, đây là những ý nghĩa hiện đại:

  • thiết bị đầu cuối: Một cái gì đó với người dùng thực sự ngồi đằng sau nó. Có thể là thiết bị đầu cuối vật lý (hiếm) hoặc thiết bị đầu cuối giả (xterm, ssh) hoặc thiết bị đầu cuối ảo (vty trong Linux)
  • Shell: ứng dụng (bash, tcsh, v.v.) giúp người dùng tương tác với hệ thống.
  • tty: hoặc thiết bị con hoặc hệ thống con kernel để hỗ trợ các thiết bị đầu cuối.
  • bảng điều khiển: một cái gì đó trong đó trạng thái và lỗi được báo cáo (/dev/console) hoặc bàn phím và video hiển thị vật lý được kết nối với máy tính.
12
user996142

Đây là câu trả lời ngắn gọn -

Kernel - phần trong cùng của bất kỳ hệ điều hành hiện đại nào trực tiếp nói chuyện với phần cứng thực tế.

Shell - trình bao bọc xung quanh Kernel thực tế. Bất cứ khi nào chúng tôi chạy lệnh, chúng tôi thực sự nói chuyện với Shell, lần lượt gọi các lệnh Kernel thích hợp. Ngoài ra, Shell có khả năng thực hiện một số nội dung khác như tìm chương trình phù hợp trong khi có lệnh, một số tên tệp tay ngắn, lệnh đường ống, v.v.

Terminal - trong thời đại điện toán trước đó, máy tính (được gọi là Mainframe) là khổng lồ. Vì vậy, thật dễ dàng để có một đơn vị xử lý và kết nối nó từ nhiều nơi. Terminal là phần cứng thực tế với bàn phím và thiết bị đầu ra được kết nối với máy tính lớn.

Bảng điều khiển - Loại thiết bị đầu cuối đặc biệt được kết nối trực tiếp với Mainframe cho mục đích Quản trị hệ điều hành.

tty - TeleTypewriter được sử dụng để gửi và nhận dữ liệu đến và từ Mainframe. Được sử dụng trước khi thiết bị đầu cuối video có sẵn. Nhưng thông thường nó vẫn được đặt tên là tty. Ngay cả đồng nghiệp stty

Câu trả lời chi tiết dài có ở đây - Terminal, Console, Shell, Kernel, Commands - Các phần khác nhau của máy tính

9
Palash Kanti Kundu

Ngoài câu trả lời được chấp nhận và The TTY demystized bài viết, tôi thực sự thích đọc hai bài viết này:

Cái này một cái dựa trên NetBSD.

Quay trở lại thời kỳ đồ đá của Unix, các hệ thống máy tính bao gồm một máy tính lớn, một hộp đèn nhấp nháy lớn có bộ nhớ, bộ lưu trữ khối và máy tính và chạy các quy trình được bắt đầu bởi người dùng hoặc nhà khai thác. Vì phần cứng rất đắt tiền, các hệ thống được sử dụng như các hệ thống nhiều người dùng thực sự, với nhiều người tương tác với hệ thống cùng một lúc. Những gì nó thường không có - không giống như các máy trạm Unix ngày nay - là một màn hình và bàn phím cố định. Thay vào đó, việc ban hành các lệnh cho máy và truy xuất đầu ra được thực hiện trên các dòng nối tiếp, trước tiên sử dụng các thiết bị teletypers và các đầu cuối CRT (ống tia catôt). Teletypers - đó là nơi "ttys" trong Unix đến từ - là những máy đánh chữ điện tử gửi các phím được nhấn qua dòng nối tiếp đến Máy chủ và trả lời được gửi lại cho char teletyper bằng char qua dòng nối tiếp, với máy in tích hợp đặt câu trả lời trên giấy, giống như một máy đánh chữ.

Cái này một cái dựa trên Linux.

Thiết bị đầu cuối là thiết bị cung cấp khả năng đầu vào/đầu ra nâng cao vượt ra ngoài những gì có thể đạt được chỉ với các tệp, ống dẫn và ổ cắm thông thường. Các tính năng này được thiết kế để giúp con người dễ dàng tương tác với máy tính hơn và vô dụng đối với các chương trình cố gắng nói chuyện với nhau.

7
Nishant

Hãy để tôi giải quyết vấn đề này ... Tôi sẽ sử dụng Unix và Linux ít nhiều đồng nghĩa trong việc này. Nếu tôi đang đề cập đến một cái gì đó lịch sử có trước sự tồn tại của Linux, tôi sẽ thường viết "Unix" và nếu tôi đang nói về một cái gì đó gần đây hơn, hoặc một cái gì đó đặc trưng cho hương vị Linux của Unix, tôi thường sẽ viết "Linux ".

Vỏ

Điều duy nhất trong danh sách của bạn là một khái niệm rời rạc không có sự trùng lặp với các khái niệm khác là 'Shell'. Shell là một chương trình với mục đích là giao tiếp với người dùng và thực hiện các hoạt động của hệ điều hành thay mặt họ.

Các shell phổ biến nhất sử dụng một kỹ thuật gọi là 'dòng lệnh', bao gồm gửi cho người dùng một loại Nhắc, chờ người dùng gõ một lệnh văn bản, rồi thực hiện lệnh đó. Nhưng có các shell dựa trên menu và thậm chí cả shell đồ họa (như Windows File Explorer) mặc dù không có người Unix tự trọng nào có thể gọi một thứ như vậy là 'Shell'.

Trong Unix, nếu ai đó gọi một cái gì đó là 'Shell' thì gần như chắc chắn họ có nghĩa là một dạng giao diện dòng lệnh như tôi vừa mô tả. Và thật kỳ quặc trong thế giới Unix khi đề cập đến bất cứ thứ gì là 'Shell' nếu nó không giao tiếp với người dùng bằng mô hình tty mà tôi mô tả thêm.

TTY

Đây là một điều khó hiểu bởi vì nó có thể đề cập đến một vài loại khác nhau.

Trong Linux, có một loại thiết bị gọi là 'tty'. Nó là một thiết bị trừu tượng dự kiến ​​sẽ được sử dụng để liên lạc hai chiều với một thứ gì đó là người dùng hoặc đang lấy đầu vào từ người dùng theo một cách nào đó. Đôi khi thiết bị trừu tượng đó có thể tương ứng trực tiếp với một số thiết bị vật lý. Đôi khi nó có thể là một chương trình đang giới thiệu ai đó với một cửa sổ trong đó giao tiếp xuất hiện và người dùng có thể nhập vào.

Nhưng, lý do thiết bị trừu tượng này tồn tại và lý do nó được gọi là 'tty' là vì 'tty' là viết tắt của 'teletype', là một thiết bị vật lý thực tế có máy in được in trên giấy kết hợp với bàn phím. Mô hình mà thiết bị 'tty' trừu tượng trình bày cho các chương trình đang sử dụng nó về cơ bản là có một teletype ở đầu bên kia. Bạn gửi cho nó các ký tự và các ký tự đó xuất hiện trên teletype. Khi bạn đọc các ký tự từ nó, các ký tự đó biểu thị các phím được gõ trên bàn phím.

Các ttys dựa trên máy in giấy cũ đã nhanh chóng được thay thế bằng các tty video. Trên đó, tất nhiên, không có cuộn giấy. Và, trên thực tế, có thể ghi đè lên bất kỳ nhân vật nào trên màn hình. Nhưng, thay vì trình bày một số loại giao diện 'màn hình' trừu tượng cho các chương trình, thay vào đó, các chương trình dự kiến ​​sẽ gửi các luồng ký tự đặc biệt gọi là chuỗi thoát thực hiện nhiều nhiệm vụ khác nhau. Thông thường, có một thứ trừu tượng gọi là 'con trỏ' có thể được di chuyển xung quanh màn hình và bất kỳ ký tự nào được gửi sẽ thay thế bất cứ thứ gì ở con trỏ và con trỏ sẽ di chuyển thêm một ký tự. Thường thì bạn có thể thay đổi màu sắc của một nhân vật sắp được in với các chuỗi thoát.

Có 'ttys thủy tinh' không theo mô hình này và do đó được xử lý kém trong thế giới Unix. Họ thiết bị đầu cuối video 3270 của IBM thuộc loại này.

Cái mà mọi người Linux/Unix thường gọi là 'Cửa sổ Shell' là sự mô phỏng của một tty thủy tinh bằng giao diện người dùng đồ họa. Trong nội bộ, các chương trình chạy bên trong cửa sổ Shell đang nói chuyện với một thiết bị tty ảo đôi khi được gọi là pseudo-tty hoặc pseudo-terminal (hay còn gọi là pty).

Thiết bị đầu cuối

Một thiết bị đầu cuối chỉ là nơi mà máy tính và con người có nhiệm vụ giao tiếp. Thiết bị đầu cuối có thể hoàn toàn là đồ họa và không theo mô hình tty theo bất kỳ cách nào, mặc dù một chương trình có thể sử dụng khả năng của chúng để mô phỏng điều này. Tất cả các ttys vật lý thực tế (thủy tinh hoặc cách khác) là thiết bị đầu cuối.

Bảng điều khiển

Bàn điều khiển là một loại thiết bị đầu cuối đặc biệt thường được cho là được gắn theo một cách an toàn trực tiếp nào đó với phần cứng mà hệ điều hành đang chạy.

Trong Linux, bàn điều khiển được ảo hóa theo một cách nhỏ cho phép bạn sử dụng một tổ hợp phím đặc biệt để chuyển đổi giữa các bảng điều khiển ảo. Nhưng ảo hóa này được thực hiện với một phần cứng thực sự bằng phần mềm trong kernel.

Có nhiều cách để sử dụng Linux thông qua cái gọi là 'bàn điều khiển nối tiếp', đó là bàn điều khiển được gắn vào máy tính thông qua cổng nối tiếp như cổng USB (hoặc, trên một số máy tính rất nhỏ và/hoặc rất cũ, cổng RS-232 một số loại) và theo mô hình teletype cũ một cách khá nghiêm ngặt.

Một lần nữa, ý tưởng là bảng điều khiển này được kết nối theo cách vật lý trực tiếp với máy tính thay vì thông qua một loại mạng nào đó có thể cho phép mọi người kết nối.

5
Omnifarious