Trước khi các giao diện desktop đồ họa hiện đại như Linux xuất hiện, con người đã tương tác với máy tính thông qua các thiết bị đầu cuối (terminal). Từ những máy in chữ chậm chạp cho đến màn hình hiển thị tiên tiến và cuối cùng là các trình giả lập terminal trên máy tính cá nhân, hành trình phát triển này đã định hình sâu sắc cách chúng ta sử dụng máy tính ngày nay. Bài viết này sẽ đưa bạn khám phá quá trình biến đổi thú vị của terminal, làm rõ những cột mốc quan trọng và những công nghệ đã giúp chúng ta có được dòng lệnh mạnh mẽ trên Linux.
I. Terminal In: Khởi Nguồn Sơ Khai Của Tương Tác Máy Tính
Vào những năm 1960 và đầu 1970, nếu bạn may mắn có được quyền truy cập tương tác với máy tính thay vì phải dùng thẻ đục lỗ, rất có thể bạn đã sử dụng một terminal in, còn được gọi là “Teletype” hay “tty”. Đây là những thiết bị đã được sử dụng rộng rãi cho điện báo và các dịch vụ truyền tin tức. Đúng như tên gọi, chúng in thông tin lên giấy – rất nhiều giấy. Chúng cũng nổi tiếng là chậm và ồn ào.
Ảnh hưởng của những terminal này đến thiết kế của Unix rất đáng kể, đặc biệt là sự ưa chuộng các tên lệnh ngắn gọn như ls
, cat
, và pwd
– một đặc điểm vẫn còn tồn tại đến ngày nay, có lẽ vì người dùng Linux không thích gõ nhiều. Một ảnh hưởng khác đến thiết kế chương trình là do cách các terminal in 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. Những trình soạn thảo này được gọi là 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ạng ẩn mình.
II. Sự Lên Ngôi Của Terminal Video Trên Sân Khấu Unix
Vào 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 ống phóng tia âm cực (CRT) 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ế các terminal in cũ 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 tiết kiệm chi phí vận hành hơn là terminal video không cần hàng xấp giấy để hoạt động. (Terminal in vẫn tồn tại một thời gian như các bảng điều khiển quản trị, vì chức năng in của chúng đóng vai trò như một nhật ký khi hệ thống gặp sự cố).
Không chỉ thay thế giấy bằng màn hình, mà các terminal video còn mở ra khả năng cho những loại ứng dụng hoàn toàn mới. Một trong số đó là 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ộ tập tin hoặc ít nhất là một phần của tập tin lớn hơn và lướt qua các trang. Điều này tiện lợi hơn nhiều so với các trình soạn thảo dòng cũ.
Hình ảnh một thiết bị đầu cuối DEC VT320 với màn hình hiển thị ứng dụng Lotus 1-2-3 đang chạy, minh họa cho terminal video thời kỳ đầu.
Một trong những trình soạn thảo này, vi
, được Bill Joy, khi đó là sinh viên cao học ngành khoa học máy tính tại UC Berkeley, viết ra. vi
sau đó trở thành một phần quan trọng của Bản phân phối Phần mềm Berkeley (BSD) của Unix và là 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, một trong những trình soạn thảo mạnh mẽ và phổ biến nhất hiện nay.
Màn hình hiển thị trình soạn thảo văn bản Vim đang chạy trong môi trường Bash trên Linux, minh họa một ví dụ về screen editor hiện đại.
III. Vượt Qua Rào Cản Tương Thích Với Termcap và Curses
Trong khi các terminal video đang nhanh chóng thay thế terminal in, có rất nhiều loại terminal khác nhau trên thị trường, với các khả năng đa dạng. Điều này gây ra các vấn đề về khả năng 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à các khả năng của chúng, chẳng hạn như số lượng cột mà màn hình có thể hỗ trợ, và liệu con trỏ có thể định vị địa chỉ hay có thể được di chuyển bởi một chương trình phần mềm hay không.
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 (RPG) khám phá hầm ngục rất phổ biến trên các hệ thống BSD vào thập niên 80. Người chơi di chuyển qua một hầm ngục được tạo ra theo thủ tục để tìm kiếm Amulet of Yendor. ‘Rogue’ đột phá ở chỗ người dùng di chuyển theo màn hình thay vì mô tả bằng 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, được gọi là “roguelikes” vì phong cách chơi tương tự.
Ảnh chụp màn hình trò chơi NetHack, một game roguelike cổ điển với giao diện người dùng văn bản (TUI) sử dụng ký tự ASCII để mô tả dungeon và nhân vật.
Đ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 cái mà ngày nay được gọi là giao diện người dùng văn bản hoặc TUI. Curses vẫn tồn tại dưới dạng mã nguồn mở là ncurses, tiếp tục là một công cụ thiết yếu cho các ứng dụng dựa trên văn bản.
IV. Kỷ Nguyên Mới: PC, Workstation và X Terminal Thay Thế
Khi thập niên 1980 trôi qua, thay đổi công nghệ một lần nữa làm 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) đã đưa máy tính lên bàn làm việc thay vì chỉ là một terminal kết nối với các máy lớn ở phòng khác hoặc thành phố khác. Các workstation (máy trạm) cung cấp sức mạnh của một máy tính mini trên bàn làm việc, với khả năng đồ họa mạnh mẽ.
Giao diện desktop Debian với môi trường XFCE, hiển thị nhiều cửa sổ terminal emulator đang chạy, tượng trưng cho sự kế thừa của terminal trên các hệ điều hành hiện đại.
Tuy nhiên, các terminal vẫn tồn tại. Trên PC và workstation, các trình giả lập terminal có thể chạy cùng các chương trình dựa trên văn bản mà các terminal chuyên dụng có thể làm, 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 Hệ thống X Window 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 terminal” và là tiền thân của các máy khách mỏng (thin client) ngày nay.
Kết Luận
Có rất nhiều lịch sử ẩn chứa trong một cửa sổ terminal Linux hiện đại, trải dài từ những ngày đầu của Teletype. Dòng lệnh Linux như chúng ta thấy ngày nay là kết quả của 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 đó. Việc hiểu rõ lịch sử này không chỉ giúp chúng ta đánh giá cao sự tiện lợi của công nghệ hiện tại mà còn cung cấp cái nhìn sâu sắc về những nguyên tắc thiết kế cơ bản vẫn còn ảnh hưởng đến lĩnh vực công nghệ.
Bạn có ấn tượng với hành trình tiến hóa đáng kinh ngạc của terminal không? Hãy chia sẻ suy nghĩ và trải nghiệm của bạn về các thiết bị đầu cuối trong phần bình luận bên dưới!