Trước khi có những giao diện máy tính để bàn Linux hiện đại ngày nay, con người đã tương tác với máy tính thông qua các thiết bị đầu cuối, hay còn gọi là terminal. Vậy chúng ta đã đi từ những terminal in ấn thô sơ đến các màn hình hiển thị tiên tiến như thế nào? Hành trình này không chỉ là sự tiến hóa của phần cứng mà còn định hình cách chúng ta tương tác với máy tính, đặc biệt là trong thế giới Unix và Linux.
Kỷ nguyên Terminal In ấn: Khởi nguồn của giao tiếp máy tính
Vào những năm 1960 và đầu 1970, nếu bạn may mắn có thể truy cập tương tác với máy tính mà không phải dùng thẻ đục lỗ, nhiều khả năng bạn sẽ sử dụng một thiết bị đầu cuối in ấn, còn được gọi là “Teletype” hay “tty”. Những thiết bị này đã được sử dụng rộng rãi trong điện báo và các dịch vụ tin tức. Đúng như tên gọi, chúng in mọi thứ ra giấy – rất nhiều giấy. Chúng cũng chậm và ồn ào.
Một trong những ảnh hưởng lớn nhất của Teletype đến thiết kế của Unix là ưu tiên các tên lệnh ngắn gọn như ls
, cat
, và pwd
. Điều này vẫn còn phổ biến cho đến ngày nay, có lẽ vì người dùng Linux không thích phải gõ nhiều. Một ảnh hưởng khác liên quan đến cách terminal in ấn xuất dữ liệu ra giấy: vì không có màn hình, việc chỉnh sửa tập tin chỉ có thể thực hiện từng dòng một. Các trình soạn thảo này được gọi là line editors (trình soạn thảo dòng). Để thay đổi một tập tin, bạn sẽ in một hoặc vài dòng, sau đó viết một dòng mới để thay thế. Một ví dụ hiện đại điển hình là trình soạn thảo ex
, vốn là Vim dưới dạng khác.
Terminal Video: Mở ra kỷ nguyên mới trên Unix
Đến giữa những năm 1970, những tiến bộ trong công nghệ màn hình đã làm cho các terminal dựa trên CRT (Cathode Ray Tube) trở nên phải chăng hơn. Các trường đại học và công ty bắt đầu thay thế những terminal in ấn cũ kỹ của họ bằng những thiết bị mới này. Một trong những lý do khiến chúng rẻ hơn để vận hành là terminal video không đòi hỏi hàng xấp giấy để hoạt động. (Mặc dù vậy, terminal in ấn vẫn tồn tại một thời gian như các console quản trị vì tính năng in ấn của chúng kiêm luôn nhật ký khi hệ thống gặp sự cố).
Màn hình terminal DEC VT320 chạy ứng dụng Lotus 1-2-3, minh họa thiết bị đầu cuối video phổ biến thời kỳ đầu
Chúng không chỉ thay thế giấy bằng màn hình mà còn cho phép các loại ứng dụng mới ra đời. Một trong số đó là screen editor (trình soạn thảo màn hình). Thay vì bị giới hạn ở một dòng duy nhất, người dùng có thể xem toàn bộ hoặc một phần lớn của tập tin và cuộn qua lại. Điều này tiện lợi hơn rất nhiều so với các line editor cũ.
Giao diện trình soạn thảo văn bản Vim trong môi trường Bash, thể hiện khả năng chỉnh sửa toàn màn hình của các screen editor
Một trong những trình soạn thảo này, vi
, được viết bởi Bill Joy, khi đó là sinh viên sau đại học ngành khoa học máy tính tại UC Berkeley. vi
sau này trở thành một phần quan trọng của bản phân phối Berkeley Software Distribution (BSD) của Unix và là một trình soạn thảo tiêu chuẩn thực tế trên Unix. Nó cũng ảnh hưởng đến thiết kế của Vim
(Vi IMproved).
Termcap và Curses: Giải quyết vấn đề tương thích màn hình
Mặc dù các terminal video đang nhanh chóng thay thế terminal in ấn, có rất nhiều loại terminal khác nhau trên thị trường, mỗi loại lại có các khả năng khác nhau. Điều này gây ra các vấn đề về tương thích phần mềm, bao gồm cả với vi
.
Một giải pháp mà Bill Joy đưa ra là Termcap
, một cơ sở dữ liệu về các terminal phần cứng và khả năng của chúng, ví dụ như số cột màn hình có thể hỗ trợ, và liệu con trỏ có thể định địa chỉ hay không (có thể di chuyển bằng chương trình phần mềm).
Cũng như nhiều tiến bộ khác, một công nghệ chủ chốt trong các hệ thống Unix và Linux hiện đại đã được thúc đẩy bởi một trò chơi. ‘Rogue’ là một trò chơi nhập vai khám phá hầm ngục (RPG) rất phổ biến trên các hệ thống BSD vào những năm 80. Người chơi di chuyển qua một hầm ngục được tạo ngẫu nhiên để tìm kiếm Amulet of Yendor. Rogue mang tính đột phá khi người chơi di chuyển theo màn hình thay vì mô tả văn bản như trong ‘Colossal Cave’. Rogue đã vẽ hầm ngục, nhân vật người chơi và quái vật bằng các ký tự ASCII. NetHack
là một trong những hậu duệ phổ biến của Rogue, và các trò chơi tương tự được gọi là “roguelikes” vì phong cách chơi tương đồng.
Màn hình gameplay của NetHack, một ví dụ điển hình của game roguelike sử dụng giao diện ký tự ASCII trên terminal
Điều này cũng đã đẩy giới hạn khả năng của các terminal. Ken Arnold, một trong những nhà thiết kế game, đã tạo ra thư viện curses
để dễ dàng tạo ra thứ mà ngày nay được gọi là giao diện người dùng văn bản (TUI – text user interfaces). curses
vẫn tồn tại dưới dạng mã nguồn mở là ncurses
.
X Terminals, Workstations và PC: Sự thay đổi cuộc chơi
Khi những năm 1980 trôi qua, sự thay đổi công nghệ một lần nữa đã thay đổi cách con người tương tác với máy tính. Máy tính cá nhân (PC) mang máy tính đến bàn làm việc thay vì chỉ là một terminal kết nối với các máy chủ trong một căn phòng hoặc thành phố khác. Các Workstation cung cấp sức mạnh của một máy minicomputer trên bàn làm việc, với khả năng đồ họa mạnh mẽ.
Nhiều cửa sổ terminal emulator chạy trên giao diện Debian XFCE, minh họa sự thay thế terminal vật lý bằng phần mềm
Tuy nhiên, các terminal vẫn tồn tại. Trên PC và workstation, các terminal emulator (trình giả lập terminal) có thể chạy các chương trình dựa trên văn bản giống như các terminal chuyên dụng và có lợi thế là có thể chạy nhiều cửa sổ terminal trên cùng một màn hình. Thậm chí còn có các terminal có thể chạy X Window System và hiển thị các chương trình đồ họa chạy trên các máy tính từ xa. Chúng được gọi là “X terminals” và là tiền thân của khái niệm thin client (máy khách mỏng) ngày nay.
Có rất nhiều lịch sử ẩn chứa trong một cửa sổ terminal Linux hiện đại mà chúng ta đang sử dụng, kéo dài từ thời kỳ Teletype. Dòng lệnh Linux như hiện tại là bởi cách thức hoạt động của phần cứng cũ, và các nhà phát triển tương lai sẽ tiếp tục xây dựng dựa trên di sản đó. Hãy chia sẻ suy nghĩ của bạn về hành trình thú vị này của terminal trong phần bình luận bên dưới!