Điểm của Ctrl-S là gì?


135

Ctrl+ Sdừng tất cả đầu ra đến thiết bị đầu cuối có thể được khởi động lại bằng Ctrl+ Q.

Nhưng, tại sao Ctrl+ Stồn tại ở nơi đầu tiên? Vấn đề gì đã cố gắng được giải quyết bằng cách đặt trình tự điều khiển đó vào vị trí?


5
Xem: linusakesson.net/programming/tty (đọc tất cả, nhưng đặc biệt là phần về Kiểm soát dòng chảy ...)
Olivier Dulac

8
Đã sử dụng Ctrl-S / Ctrl-Q để lưu thịt xông khói của tôi nhiều lần để ngăn chặn đầu ra của các thông báo lỗi trên một hệ thống hầu như không có chức năng để tôi có thể thấy chúng là gì.
DocSalvager

4
Là một lưu ý phụ, tôi có cái này trong .bashrcđể tắt cả hai chức năng : stty stop ''; stty start '';. Điều này để lại Ctrl-S miễn phí để sử dụng làm ký tự thoát cho screen, với điều này trong .screenrc: escape ^Ss. Điều đó có nghĩa là tôi có thể sử dụng readlinephím tắt tiêu chuẩn Ctrl-A cho "đầu dòng" (khớp với Ctrl-E cho "cuối dòng" và ít dễ bị mô phỏng đầu cuối hơn so với Home và End). : D
IMSoP

Câu trả lời:


155

Rất lâu trước khi có máy tính, đã có máy điện báo (hay còn gọi là teletypewriters, hay còn gọi là teletypes). Hãy nghĩ về chúng gần giống như công nghệ điện báo, nhưng với một số loại bàn phím và một số loại máy in được gắn vào chúng.

Bởi vì teletype đã tồn tại khi máy tính được chế tạo lần đầu tiên và bởi vì máy tính lúc đó có kích thước phòng, teletypes trở thành giao diện người dùng thuận tiện cho các máy tính đầu tiên - nhập lệnh, nhấn nút gửi, chờ một lúc và đầu ra của lệnh được in ra một tờ giấy trước mặt bạn.

Kiểm soát luồng phần mềm bắt nguồn từ thời đại này - nếu máy in không thể in nhanh như teletype đang nhận dữ liệu, ví dụ, teletype có thể gửi lệnh điều khiển luồng XOFF ( Ctrl+ S) đến phía từ xa nói "Dừng truyền ngay bây giờ" và sau đó có thể gửi lệnh điều khiển luồng XON ( Ctrl+ Q) đến phía từ xa nói rằng "Tôi đã bắt kịp, vui lòng tiếp tục".

Và việc sử dụng này tồn tại trong Unix bởi vì các trình giả lập thiết bị đầu cuối hiện đại đang mô phỏng các thiết bị đầu cuối vật lý (như vt100 ) mà chính chúng (theo một cách nào đó) đã mô phỏng các kiểu điện báo.


29
Nhiều khả năng không phải là "in ra một tờ giấy" mà là "in ra một chồng giấy".
Dubu

3
Hoặc đến một cuộn băng đục lỗ!
mdpc

2
Tôi không nghĩ rằng control-S và control-Q ban đầu được sử dụng để bắt đầu và dừng đầu ra từ máy tính, mà là từ các đầu đọc băng giấy được gắn vào các loại tele khác . Tôi không nghĩ rằng sẽ có nhiều mối quan tâm trong việc kết nối teletypes với máy tính cho đến khi có sự xuất hiện của các hệ thống chia sẻ thời gian. Mặt khác, bất cứ khi nào máy tính dành thời gian chờ người dùng gõ một cái gì đó là thời gian nó không chi tiêu để làm một cái gì đó hữu ích.
supercat

2
Hoặc để một cuộn 8½ʹʹ giấy.
Scott

44
Quay trở lại năm 1987, tôi đã thực hiện kiểu điện thoại cuối cùng còn sót lại trong trường đại học của mình trong ngọn lửa. Sử dụng nó như một máy in nối tiếp và không nhận ra nó sẽ quá nóng nếu buộc phải in 35 trang liên tục. Quá nóng chỉ có mùi khó chịu, nhưng sau đó giấy bốc cháy vì nóng. Chỉ sau đó họ mới nói với tôi rằng tôi nên đưa ra một Ctrl-S cứ sau 2 trang hoặc lâu hơn để nó nguội đi trong vài phút.
Tonny

25

Đó là một nhân vật điều khiển từ thời của các thiết bị đầu cuối VT100 và tương tự. Khả năng cuộn hạn chế (nếu có) trên các thiết bị đầu cuối đó để bắt đầu với CTRL-S cho phép bạn đóng băng đầu ra để xem những gì hiện trên màn hình mà không bị xóa.

Hầu hết mọi thứ bạn thấy trong các thiết bị đầu cuối hiện đại đã được đưa ra để mô phỏng các hệ thống thiết bị đầu cuối cũ hơn đó.


Đây là những gì tôi đã nghe, (chứ không phải là câu trả lời của teleprinter, mặc dù có thể (thậm chí có thể) rằng đây là lý do chức năng như vậy được bảo tồn.) Tôi đã sử dụng Cntr-S cho mục đích này, khi gặp sự cố với ít nhiều
Lyndon White

2
Nhu cầu cơ học để bắt đầu / dừng đầu ra xuất hiện trước nhu cầu của con người để có thể đọc nó!
TripeHound

@TripeHound: Thật vậy, nó đã xuất hiện từ lâu trước khi có bất kỳ kỳ vọng cụ thể nào về việc con người sẽ xem thông tin trong khi nhận được (một người đang háo hức chờ đợi một câu chuyện có thể được xem bởi một teletype, nhưng các nhà khai thác thường có những điều tốt hơn làm).
supercat

21

BTW, nếu bạn đang liệt kê một đầu ra dài trên màn hình của mình, rất có thể bạn không nhất thiết phải đọc nhanh như máy tính phun ra đầu ra. Sử dụng CTRL-S / CTRL-Q trên mèo (hoặc đuôi hoạt động) rất hữu ích để dừng và tiếp tục đầu ra.


25
lessthêm nữa.
dotancohen

2
@dotancohen: Rất buồn cười. Thậm chí morekhông được giới thiệu cho đến bốn hoặc năm năm sau khi Unix đầu tiên (có tính năng cat, nhưng khôngcat -v ) được phát hành. Cũng lưu ý rằng có các hệ điều hành chia sẻ thời gian (tương tác) khác trước Unix; ví dụ: RSTS .
Scott

2
@dotancohen tôi thích less, nhưng người ta nói rằng, trong khi lessmore, mostvẫn còn hơn less!
Volker Siegel

1
@VolkerSiegel: Cảm ơn bạn đã giới thiệu cho tôi most! Nếu bạn biết về một chương trình cho phép người ta xem một tệp hình ảnh (gif, jpg, png) trên ssh trên cli, tôi rất muốn nghe về nó. Tôi hiện đang sử dụng asciiviewhoặc img2txtkhông thỏa đáng.
dotancohen

2
@VolkerSiegel: Cũng cảm ơn vì hầu hết ! Như tác giả nói: "Tại sao giải quyết cho ít?". Người dùng Debian có thể apt-get install most.
mivk

17

Trên các loại điện thoại cổ có đầu đọc băng giấy, nhận được điều khiển-Q sẽ bật đầu đọc băng giấy và bắt đầu gửi các ký tự từ băng như thể chúng đã được gõ vào bàn phím. Control-S sẽ tắt đầu đọc băng giấy. Nếu người ta cho rằng các loại tele ban đầu được dự định không in dữ liệu từ máy tính, mà là từ các loại tele khác, thì rõ ràng "cách tắt đầu đọc băng giấy" có thể được hiểu là tương tự như "yêu cầu đầu cuối khác ngừng truyền".

Ngẫu nhiên, control-R sẽ bật cú đấm băng giấy, sao cho mọi ký tự được nhận bởi teletype (hoặc, nếu tiếng vang cục bộ được bật, gõ vào bàn phím) cũng sẽ bị đấm vào băng giấy; control-T sẽ tắt cú đấm băng giấy. Tuy nhiên, không giống như các hoạt động liên quan đến control-S và control-Q, các hoạt động đó dường như không có tương đương hiện đại.

Ngoài ra, tên ban đầu của điều khiển-Q / R / S / T là DC1 / DC2 / DC3 / DC4 ("Điều khiển thiết bị 1", v.v.) Trong khi tôi không chắc chắn về lịch sử, việc đặt tên như vậy sẽ gợi ý rằng ban đầu chúng được dự định kích hoạt một số loại hành động không xác định, nhưng điều phổ biến nhất mà mọi người đã làm với DC1 và DC3 là điều khiển đầu đọc băng giấy.

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.