Tại sao UNIX / Linux cung cấp nhiều thiết bị đầu cuối?


8

Vào những năm 1970, chúng tôi đã có thiết bị đầu cuối phần cứng với giao diện CUI (giao diện người dùng ký tự) cho đầu vào / đầu ra.

Bây giờ, chúng ta có các trình giả lập thiết bị đầu cuối ( Ctrl+ Alt+ Fn) trong thế giới Unix / Linux.

Trong Ubuntu OS, tôi thấy bảy trình giả lập thiết bị đầu cuối, trong đó GUI đang chiếm phần mềm giả lập thiết bị đầu cuối thứ 7 ( Ctrl+ Alt+ F7).

Ví dụ: đây là trình giả lập thiết bị đầu cuối ( Ctrl+ Alt+ F1) đầu tiên của tôi

$ tty
/dev/tty0

Tại sao Unix / Linux cung cấp nhiều trình giả lập thiết bị đầu cuối?


8
Luôn luôn có một nhu cầu cho nó. Một chương trình có tên "màn hình" đã được sử dụng khi chỉ có một thiết bị đầu cuối khả dụng.
VPfB

7
@vpfb Màn hình vẫn có sẵn và là một phần không thể thiếu trong quy trình làm việc của tôi!
tpg2114

1
Tôi nghĩ những gì bạn đang hỏi ở đây không phải là trình giả lập thiết bị đầu cuối (là các chương trình như xterm, rxvt, & c chạy dưới dạng các ứng dụng đồ họa trong X), mà là các thiết bị đầu cuối ở chế độ văn bản không chạy đồ họa. Việc sử dụng duy nhất tôi thực sự tìm thấy cho những người đó (và không phải trong một vài năm tốt) là gỡ lỗi mọi thứ khi X không hoạt động đúng. OTOH Tôi thực hiện hầu hết các công việc thực tế của mình trong các cửa sổ xterm và có thể có bất kỳ nơi nào từ ba đến một chục hoặc nhiều hơn mở.
jamesqf

@jamesqf tại sao bạn không gọi ctrl + alt + f1 làm trình giả lập thiết bị đầu cuối? Bởi vì nó không phải là thiết bị đầu cuối CUI phần cứng mà chúng tôi có trong những năm 1970
trao đổi quá

2
@overexchange: Tôi không gọi họ như vậy bởi vì đó không phải là thuật ngữ được sử dụng bởi những người quen thuộc với họ. Nếu bạn thực hiện tìm kiếm "trình giả lập thiết bị đầu cuối linux", bạn sẽ nhận được rất nhiều kết quả, hầu hết trong số đó không liên quan gì đến các bảng điều khiển chế độ văn bản bạn nhận được với Ctl-Alt-F [1-7].
jamesqf

Câu trả lời:


25

Tại sao UNIX / Linux cung cấp nhiều trình giả lập thiết bị đầu cuối [trên bàn điều khiển]?

Vì lý do tương tự, trình giả lập thiết bị đầu cuối GUI của bạn có khả năng hỗ trợ các tab (ví dụ: Thiết bị đầu cuối Gnome) và nếu không (ví dụ rxvt), thì với lý do tương tự, việc khởi chạy một phiên bản ứng dụng thiết bị đầu cuối GUI thứ hai không chỉ kéo cái đầu tiên lên tiền cảnh và thoát, buộc bạn phải sử dụng ví dụ đầu tiên.

Tôi thường xuyên sử dụng ít nhất 3 cửa sổ đầu cuối trong công việc của mình và thường xuyên hơn:

  1. Trình chỉnh sửa văn bản cho phía máy chủ của hệ thống tôi đang làm việc

  2. Trình soạn thảo văn bản cho phía máy khách của cùng một hệ thống

  3. Cửa sổ lệnh để chạy máy chủ

Tôi hiếm khi cần một thiết bị đầu cuối thứ tư để chạy chương trình máy khách, vì nó thường chạy ở nơi khác (ứng dụng web, ứng dụng GUI gốc, ứng dụng di động, v.v.), nhưng nếu tôi đang phát triển ứng dụng khách CLI cho ứng dụng máy chủ của mình, tôi sẽ có một thiết bị đầu cuối riêng biệt mở cho nó, quá.

Trong quá khứ, trước khi sudotrở nên phổ biến, tôi luôn rootmở một thiết bị đầu cuối.

Tôi hiếm khi sử dụng các hộp Unix / Linux tương tác tại bàn điều khiển mà không có GUI trong những ngày này, nhưng tôi thường chạy chúng không đầu và truy cập chúng qua SSH. Ứng dụng khách thiết bị đầu cuối SSH của tôi hỗ trợ các tab, được định cấu hình như trên.

Thỉnh thoảng, một trong những dự án sở thích hiện tại của tôi là tôi sử dụng một thiết bị đầu cuối bằng kính thực sự , điều đó có nghĩa là tôi không còn có nhiều cửa sổ đầu cuối nữa, vì vậy cuối cùng tôi đã tìm hiểu một chút về GNUscreen , một chương trình tôi chưa từng sử dụng trước đây, vì tôi đã có hoặc nhiều thiết bị đầu cuối giao diện điều khiển hoặc nhiều thiết bị đầu cuối GUI. Và screenlàm gì? Trong số những thứ khác, bạn có thể định cấu hình nó để cung cấp cho bạn nhiều thiết bị đầu cuối ảo trên một màn hình, giống như Linux làm với Ctrl- Alt- .Fx


10
Điểm tốt hơn về màn hình - ngoài việc có nhiều thiết bị đầu cuối trên thiết bị đầu cuối bảng điều khiển câm - là bạn có thể ngắt kết nối, đăng xuất, đăng nhập lại và kết nối lại với các phiên và quy trình hoặc bất cứ điều gì bạn đang làm trong điều khoản màn hình tiếp tục đi.
ivanivan

Thêm vào những gì @ivanivan nói, những người khác có thể thấy phiên màn hình của bạn và nhiều người có thể xem nó cùng một lúc. Nó giống như chia sẻ máy tính để bàn.
stanri

Lưu ý bên lề: có một số lựa chọn thay thế có sẵn để sử dụng superuser
q / 423310

18

Đây là một tính năng được cung cấp bởi hầu hết tất cả nếu không phải tất cả Unix và Unix như chạy trên phần cứng x86. Thật thú vị, các bảng điều khiển ảo đã được Microsoft Xenix giới thiệu đầu tiên trong Unix vào đầu những năm tám mươi và cũng có sẵn trong CP / M đồng thời.

Tính năng này sau đó đã được tích hợp trong AT & T SVR4 Unix, Solaris và được BSD và Linux mượn.

Tại sao UNIX / Linux cung cấp nhiều trình giả lập thiết bị đầu cuối?

Khi chúng được giới thiệu lần đầu tiên, không có môi trường đồ họa có sẵn cho các máy chạy các triển khai Unix này. Mặc dù có một thiết bị đầu cuối vật lý được kết nối với một máy chủ Unix trung tâm thông qua các đường dây RS232 là tiêu chuẩn, việc kết nối nhiều thiết bị đầu cuối với một PC tiêu chuẩn đang chạy Xenix là quá mức nếu mục tiêu chỉ dành cho một người dùng để chạy nhiều chương trình tương tác. Thiết bị đầu cuối ảo cung cấp một giải pháp thanh lịch và thuận tiện cho vấn đề đó.

Các triển khai Unix khác sau đó cung cấp tính năng tương tự để đáp ứng cùng một nhu cầu.

Khi môi trường đồ họa, đặc biệt là X11, trải rộng ra, việc có thể thấy nhiều trình giả lập thiết bị đầu cuối cùng một lúc trên cùng một màn hình là một cải tiến đáng kể. Tuy nhiên, tính năng bảng điều khiển ảo thường được giữ nếu chỉ vì nó vẫn thuận tiện để có thể chuyển sang bảng điều khiển nếu môi trường đồ họa bị đóng băng hoặc rối loạn chức năng vì một số lý do.

Lưu ý rằng các tiện ích như screentmuxđến muộn hơn nhiều so với các thiết bị đầu cuối ảo để khái quát hóa cùng chức năng. Lợi thế của họ là họ có thể được sử dụng không chỉ trên bàn điều khiển vật lý địa phương, mà còn trên bất kỳ phiên, một trong hai địa phương hoặc từ xa (ví dụ telnet, ssh). Khi được sử dụng trên bảng điều khiển vật lý, bảng điều khiển ảo vẫn hữu ích vì chúng hoạt động trong một số trường hợp screen/ tmuxkhông thể giúp đỡ, như nếu X11 bị đóng băng hoặc nếu một cửa sổ đã lấy nét và không giải phóng nó.

Ảo hóa dựa trên container như các vùng Solaris hoặc Linux LXC cũng cung cấp một phương thức để kết nối với bảng điều khiển container thông qua zlogin -C zonelxc-console -t 0 -n containertương ứng.


4

Tôi cho rằng một lý do chính đáng để có thêm trình giả lập thiết bị đầu cuối là nếu bạn làm gì đó sai trong giao diện đồ họa của mình và nó trở nên không sử dụng được, bạn có thể nhanh chóng chuyển sang trình giả lập thiết bị đầu cuối và khắc phục tất cả các sự cố bạn gặp phải trong giao diện đồ họa. Điều này thực sự xảy ra khá thường xuyên khi bạn thực hiện các thay đổi đối với trình quản lý cửa sổ hoặc các tính năng khác của giao diện đồ họa. Tôi cho rằng cũng sẽ hữu ích khi có thêm một vài thiết bị đầu cuối, tuy nhiên việc có 6 điểm vượt trội của giao diện đồ họa chính có vẻ hơi quá.

Cũng sửa tôi nếu tôi sai, nhưng không thể chạy nhiều lệnh như những người dùng khác nhau từ một trình giả lập thiết bị đầu cuối duy nhất?


"Nếu bạn làm điều gì đó sai" - điều đó giải thích tại sao có một bảng điều khiển ảo, chứ không phải tại sao có nhiều (nghĩa là trả lời một câu hỏi khác nhau). "không thể chạy nhiều lệnh như những người dùng khác nhau từ một trình giả lập thiết bị đầu cuối duy nhất?" - có, nhưng kết quả đầu ra của chúng sẽ bị lẫn lộn và việc chạy các chương trình nguyền rủa sẽ khó khăn.
Radovan Garabík

4

Nhiều câu hỏi khác dường như trả lời tại sao tính năng này được giới thiệu.

Tuy nhiên, câu hỏi thực tế là:

Tại sao Unix / Linux cung cấp nhiều trình giả lập thiết bị đầu cuối?

"không", không "đã làm".

Vì vậy, tập trung vào thời điểm hiện tại, đây là một số lý do hiện tại:

  • Chúng có thể có ích. Đôi khi, thay vì tạo một cửa sổ mới bao phủ các cửa sổ khác trên máy tính để bàn, tôi chỉ có thể lật sang một thiết bị đầu cuối khác. Sau đó, tôi có thể thay đổi trở lại, vì vậy máy tính để bàn là tiền cảnh. Thỉnh thoảng (thường là khi có nhiều cửa sổ được mở), điều này có thể thuận tiện hơn so với việc đặt một cửa sổ đầu cuối trong nền và sau đó, sau đó, cố gắng làm cho cùng một cửa sổ đến trước (thay vì vô tình chọn một cửa sổ khác cửa sổ trên màn hình đồ họa).

    Chẳng hạn, tôi có thể nhớ rằng Alt-Ctrl-F2 là trình soạn thảo văn bản xem một tệp văn bản (ví dụ: tài liệu) và Alt-Ctrl-F3 được sử dụng để xem nhanh một tệp khác (ví dụ: tệp cấu hình), và Alt-Ctrl-F4 được sử dụng cho dấu nhắc lệnh, trong khi màn hình đồ họa có thể được phân chia giữa trình duyệt web, E-Mail, trình phát nhạc, v.v.
  • Cửa sổ đầu cuối có thể hữu ích để làm việc với máy tính nếu có bất kỳ vấn đề nào với màn hình đồ họa. Đối với những người có thể có nhu cầu hiện tại sử dụng máy tính (có thể tùy chỉnh) không có thẻ video đồ họa, chức năng này có thể cần thiết. Ngoài ra còn có khả năng các nhu cầu trong tương lai (có thể có hệ điều hành kế thừa / hậu duệ) có thể bổ sung cho bất kỳ nhu cầu hiện tại nào có thể tồn tại.
    • Các thiết bị đầu cuối văn bản có xu hướng sử dụng ít tài nguyên hơn. Chẳng hạn, họ có xu hướng sử dụng ít bộ nhớ hơn trên card đồ họa. Vì vậy, nếu một card đồ họa gặp trục trặc vật lý đã phá vỡ chức năng của bộ nhớ video thứ 3 và thứ 4, điều đó thậm chí có thể không ảnh hưởng đến ai đó chỉ sử dụng các thiết bị đầu cuối văn bản cổ điển. Các quy trình đơn giản hơn, sử dụng ít tài nguyên hơn, có thể hữu ích khi thực hiện khôi phục.
  • Mã đã tồn tại. Do đó, hỗ trợ họ rất dễ dàng.
  • Lượng tài nguyên cho một thiết bị đầu cuối không sử dụng (trước khi đăng nhập) là rất nhỏ. Ngay cả số lượng bộ nhớ nhỏ đó cũng có thể được xác nhận lại bằng cách điều chỉnh / etc / ttys
  • Mã để hỗ trợ nhiều thiết bị đầu cuối khá giống với mã để hỗ trợ I / O qua các kết nối nối tiếp. Các nhà phát triển hệ điều hành có xu hướng coi trọng điều đó rất nhiều. Với những tiến bộ trong các máy ảo, giá trị của việc sử dụng các kết nối nối tiếp ít quan trọng hơn trước đây. Tuy nhiên, một số nhà phát triển kernel (đã quen thuộc với quy trình) có thể muốn sử dụng phần cứng như vậy. Các tổ chức sử dụng phần cứng cũ cũng có thể thấy lợi ích khi không cần thay đổi phần cứng.

Tóm lại, không có nhiều lý do để không hỗ trợ điều này. Có một số lợi ích mà một số người đánh giá cao, ít nhất là một số lần, và không tốn nhiều chi phí.

Trên thực tế, loại bỏ hỗ trợ cho việc này có thể là công việc nhiều hơn là chỉ để lại hỗ trợ ở đó. Mặc dù loại bỏ hỗ trợ có thể đơn giản, nhưng nếu có bất cứ điều gì bị phá vỡ, thì việc xác định và khắc phục sự cố có thể là một thách thức nhỏ. Vì vậy, việc giảm số lượng nỗ lực cần thiết (để phát triển phiên bản tiếp theo của hệ điều hành) vẫn là một lý do khác để bỏ mặc mọi thứ. Điều đó có nghĩa là tính năng này có xu hướng vẫn còn có sẵn.


Có một quan điểm lịch sử thường hữu ích. Bạn nói rằng bạn muốn tập trung vào hiện tại nhưng cuối cùng kết luận "Một trong những lý do tại sao Unix / Linux hiện cung cấp nhiều trình giả lập thiết bị đầu cuối là vì nó đã cung cấp chúng ở vị trí đầu tiên"
jlliagre

Đúng. Nó đã làm. Nếu không, nó có thể không phải hôm nay. Nhưng vì Unix đã làm, đó vẫn là một lý do thuyết phục tại sao nó lại như vậy. Tôi không có ý định giảm thiểu sự hữu ích của việc làm quen với quá khứ. Khuynh hướng tự nhiên của tôi sẽ tập trung vào lý do tại sao nó được thêm vào (và bản dự thảo đầu tiên của tôi hoặc hai chi tiết đó), nhưng lý do chính của tôi để cố gắng tập trung vào hiện tại là những gì câu hỏi được hỏi. Thêm vào đó, các câu trả lời khác đã đề cập đến quá khứ và tôi đã cố gắng đưa ra một câu trả lời hữu ích bằng cách thêm vào những gì đã nêu, thay vì chỉ sao chép những gì đã nói ở nơi khác trên trang.
TẤT CẢ NGÀY

3

Đầu tiên, những gì bạn đã hỏi là một tính năng của kernel có tên Linux. Không phải của Unix nói chung, và không phải Gnu.

Về lý do, bạn sẽ phải hỏi các tác giả. Tuy nhiên, tôi đoán là, nó cho phép quản trị viên của một thiết bị không nối mạng (ở đây tôi bao gồm một loại mạng như một loại mạng), để đăng nhập và thực hiện một số công việc quản trị viên mà không cần đăng xuất người dùng khác.


Có, các hạt nhân VT được thiết lập theo mã đất của người dùng và có một số Unix khác có chúng. Tuy nhiên nó không phải là một thứ Unix chung.
ctrl-alt-delor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.