Ban đầu bạn chỉ có các thiết bị đầu cuối câm - lúc đầu thực sự là máy đánh chữ (tương tự như máy đánh chữ điện, nhưng với một cuộn giấy) (do đó / dev / tty - TeleTYpers), nhưng sau đó là màn hình + tổ hợp bàn phím - chỉ gửi mã khóa đến máy tính và máy tính đã gửi lại một lệnh viết chữ cái trên thiết bị đầu cuối (tức là thiết bị đầu cuối không có tiếng vang cục bộ, máy tính phải ra lệnh cho thiết bị đầu cuối viết những gì người dùng gõ vào thiết bị đầu cuối) - đây là một trong những lý do Tại sao nhiều lệnh Unix quan trọng lại quá ngắn. Hầu hết các thiết bị đầu cuối được kết nối bằng các đường nối tiếp, nhưng (ít nhất) một thiết bị được kết nối trực tiếp với máy tính (thường là cùng một phòng) - đây là bàn điều khiển. Chỉ một số người dùng được chọn được tin cậy để làm việc trên "bảng điều khiển" (đây thường là "thiết bị đầu cuối" duy nhất có sẵn trong chế độ một người dùng).
Sau đó, cũng có một số thiết bị đầu cuối đồ họa (được gọi là "xterminals", không bị nhầm lẫn với xterm
chương trình) với màn hình & card màn hình đồ họa, bàn phím, chuột và bộ xử lý đơn giản; mà chỉ có thể chạy một máy chủ X. Họ không tự mình thực hiện bất kỳ tính toán nào, vì vậy các máy khách X chạy trên máy tính mà họ được kết nối. Một số đã có ổ cứng, nhưng chúng cũng có thể khởi động qua mạng. Chúng rất phổ biến vào đầu những năm 1990, trước khi PC trở nên rẻ và mạnh mẽ.
Một "trình giả lập thiết bị đầu cuối" - "cửa sổ đầu cuối" mà bạn mở bằng các chương trình như xterm
hoặc konsole
- cố gắng bắt chước chức năng của các thiết bị đầu cuối câm đó. Ngoài ra các chương trình như PuTTY
(Windows) mô phỏng các thiết bị đầu cuối.
Với PC, trong đó "bàn điều khiển" (bàn phím + màn hình) và "máy tính" chỉ là một đơn vị, bạn có "thiết bị đầu cuối ảo" (trên Linux, các phím Alt + F1 đến Alt + F6), nhưng các phím này cũng vậy bắt chước thiết bị đầu cuối kiểu cũ. Tất nhiên, với việc Unix / Linux trở thành một hệ điều hành máy tính để bàn thường được sử dụng bởi người dùng singe, giờ đây bạn thực hiện hầu hết công việc của mình "tại bàn điều khiển", nơi người dùng trước khi sử dụng các thiết bị đầu cuối được kết nối bởi các đường nối tiếp.
Tất nhiên đó là cái vỏ bắt đầu các chương trình. Và nó sử dụng fork-systemcall (ngôn ngữ C) để tạo một bản sao của chính nó với cài đặt môi trường, sau đó exec-systemcall được sử dụng để biến bản sao này thành lệnh bạn muốn chạy. Shell tạm ngưng (trừ khi lệnh được chạy trong nền) cho đến khi lệnh hoàn thành. Khi lệnh kế thừa các cài đặt cho stdin, stdout và stderr từ shell, lệnh sẽ ghi vào màn hình của terminal và nhận đầu vào từ bàn phím của terminal.