Trước khi những giao diện desktop Linux hiện đại xuất hiện, người dùng đã 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. Hành trình phát triển từ những cỗ máy in ấn ồn ào đến màn hình hiển thị tiên tiến ngày nay đã định hình sâu sắc cách chúng ta làm việc với máy tính, đặc biệt là trong môi trường lập trình và hệ điều hành. Bài viết này sẽ đưa bạn khám phá lịch sử đầy thú vị về sự phát triển của terminal máy tính, một yếu tố cốt lõi đã tạo nên nền tảng cho nhiều công nghệ chúng ta đang sử dụng hôm nay.
Thời Kỳ Sơ Khai: Terminal In Ấn (Printing Terminals)
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 sử dụng thẻ đục lỗ, bạn gần như chắc chắn sẽ dùng một terminal in ấn. Những thiết bị này, thường được gọi là “Teletype” hay tty, đã được sử dụng rộng rãi trong ngành điện tín và dịch vụ tin tức. Như tên gọi, chúng hoạt động bằng cách in thông tin trực tiếp lên giấy, tiêu tốn rất nhiều giấy, chậm chạp và cực kỳ ồn ào.
Ảnh hưởng của những terminal này lên thiết kế của Unix rất đáng kể. Chính vì sự chậm chạp và tốn giấy, các nhà phát triển đã ưu tiên những tên lệnh ngắn gọn như ls
, cat
và pwd
– một di sản vẫn còn tồn tại đến ngày nay, có lẽ vì người dùng Linux không mấy thích gõ phím nhiều.
Một ảnh hưởng khác đến thiết kế chương trình là do cách terminal in ấn xuất dữ liệu ra giấy. Không có màn hình, việc chỉnh sửa một 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 biết đến với tên gọi “trình soạn thảo dòng” (line editors). Để thay đổi một tập tin, người dùng 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ụ điển hình còn tồn tại đến ngày nay là trình soạn thảo ex
, vốn là Vim trong một lớp vỏ khác.
Kỷ Nguyên Terminal Video (CRT) và Sự Ra Đời Của Trình Soạn Thảo Màn Hình
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 công nghệ ố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ế 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 cần hàng chồng 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ị viên, vì khả năng in ấn của chúng kiêm luôn chức năng ghi nhật ký khi hệ thống gặp sự cố và không thể truy cập qua màn hình.
Màn hình terminal DEC VT320 hiển thị ứng dụng Lotus 1-2-3, minh họa khả năng của terminal video.
Không chỉ thay thế giấy bằng màn hình, mà terminal video còn mở ra cánh cửa cho các loại ứng dụng hoàn toàn mới, điển hình là trình soạn thảo màn hình (screen editors). Thay vì bị giới hạn chỉ một dòng, người dùng giờ đây có thể xem toàn bộ hoặc một phần lớn của một tập tin và cuộn qua lại, mang lại sự tiện lợi hơn rất nhiều so với các trình soạn thảo dòng cũ.
Giao diện trình soạn thảo Vim đang hiển thị mã "hello world" trong môi trường Bash, thể hiện sự phát triển từ vi.
Một trong những trình soạn thảo này, vi
, được viết bởi Bill Joy, khi đó là một sinh viên cao học ngành khoa học máy tính tại UC Berkeley. vi
nhanh chóng trở thành một phần quan trọng của phiên bản 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, đồng thời ảnh hưởng sâu sắc đến thiết kế của Vim sau này.
Vấn Đề Tương Thích và Giải Pháp Termcap, Curses
Trong khi terminal video nhanh chóng thay thế terminal in ấn, thị trường lại xuất hiện rất nhiều loại terminal với 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 (Terminal Capabilities), một cơ sở dữ liệu về các terminal phần cứng và khả năng của chúng, chẳng hạn như số cột mà màn hình có thể hỗ trợ, hoặc liệu con trỏ có thể được điều khiển (di chuyển) bởi một chương trình phần mềm hay không.
Cũng giố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 ngẫu nhiên để tìm kiếm Amulet of Yendor. ‘Rogue’ đột phá ở chỗ người chơi di chuyển qua các màn hình thay vì các mô tả văn bản như trong ‘Colossal Cave’. ‘Rogue’ thể hiện hầm ngục, nhân vật người chơi và quái vật dưới dạng các ký tự ASCII. NetHack là một trong những hậu duệ phổ biến của Rogue, và những trò chơi tương tự như vậy được gọi là “roguelikes” vì phong cách chơi tương đồng.
Màn hình trò chơi NetHack với đồ họa ASCII, minh họa game "roguelike" và giao diện người dùng văn bản (TUI).
Điều này cũng đã thúc đẩ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 gọi là giao diện người dùng văn bản (Text User Interfaces – TUIs). Curses vẫn tồn tại dưới dạng mã nguồn mở là ncurses.
X Terminals, Máy Trạm (Workstations) và PC Thay Thế Terminal Truyền Thống
Khi thập niên 1980 tiếp diễn, thay đổi công nghệ một lần nữa làm thay đổi cách mọi người tương tác với máy tính. Máy tính cá nhân (PC) đặt toàn bộ 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 chủ ở phòng khác hoặc thành phố khác. Máy trạm (Workstations) 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ẽ.
Nhiều cửa sổ terminal đang chạy trên môi trường desktop Debian XFCE, biểu thị sự phổ biến của trình giả lập terminal hiện đại.
Tuy nhiên, terminal vẫn không biến mất. Trên PC và máy trạm, các trình giả lập terminal (terminal emulators) 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ó những 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 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, kéo dài từ thời của 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 đó.
Kết luận:
Hành trình từ những chiếc Teletype in ấn thô sơ đến các trình giả lập terminal phức tạp trên máy tính hiện đại là một minh chứng sống động cho sự đổi mới không ngừng trong ngành công nghệ. Mỗi bước tiến của thiết bị đầu cuối không chỉ cải thiện trải nghiệm người dùng mà còn định hình cách chúng ta phát triển phần mềm và tương tác với hệ điều hành. Dù công nghệ có thay đổi nhanh đến đâu, di sản của terminal vẫn còn hiện hữu mạnh mẽ trong mọi lệnh bạn gõ trên dòng lệnh Linux hay các hệ thống khác.
Hãy chia sẻ suy nghĩ của bạn về sự phát triển của terminal máy tính và những công nghệ bạn thấy vẫn còn mang dấu ấn từ thời kỳ sơ khai này trong phần bình luận bên dưới nhé!