Ctrl- Qmemang jawabannya. Saya pikir saya akan melemparkan sedikit sejarah ini yang terlalu panjang untuk masuk ke dalam margin jawaban yang benar ak2 .
Kembali di zaman kegelapan, terminal adalah peralatan besar yang terhubung ke perangkat jarak jauh (awalnya terminal lain karena teletype jauh lebih mudah untuk belajar beroperasi daripada kunci telegraf) melalui kabel panjang atau melalui saluran telepon dengan modem. Pada saat Unix berkembang, kode ASCII sudah mapan (meskipun kode EBCDIC yang bersaing dari IBM masih merupakan kekuatan yang harus diperhitungkan).
Terminal yang paling awal menyimpan catatan cetak dari setiap karakter yang diterima. Selama karakter datang tidak lebih cepat daripada print head bisa mengetiknya, setidaknya. Tetapi begitu terminal berbasis CRT memungkinkan, masalahnya muncul bahwa hanya sekitar 25 baris yang sesuai dengan CRT, dan 25 baris 80 karakter mewakili RAM yang cukup sehingga tidak ada yang berpikir serius tentang menyediakan lebih banyak RAM untuk karakter yang telah menggulir ke atas. layar.
Jadi, beberapa konvensi diperlukan untuk memberi sinyal bahwa pihak pengirim harus berhenti untuk membiarkan pembaca mengejar ketinggalan.
Kode ASCII 7-bit memiliki 33 titik kode yang ditujukan untuk mengontrol karakter (0 hingga 31 dan 127). Beberapa dari mereka memiliki tujuan yang benar-benar mapan, seperti NUL
(kosong pemimpin pita kertas untuk threading, kesenjangan, dan splices), DEL
( "dicoret" karakter pada pita kertas yang ditunjukkan oleh meninju semua tujuh lubang), BEL
(ding!), CR
, LF
, Dan TAB
. Tetapi empat didefinisikan secara eksplisit untuk mengendalikan perangkat terminal itu sendiri ( DC1
untuk DC4
alias Ctrl + Q, Ctrl + R, Ctrl + S dan Ctrl + T).
Dugaan terbaik saya adalah bahwa beberapa insinyur berpikir bahwa (seperti mnemonik pergi), "S" untuk "Stop" dan "Q" untuk "Lanjutkan" tidak terlalu buruk, dan ditugaskan DC3
untuk berarti "tolong berhenti mengirim" dan DC1
berarti "ok , lanjutkan mengirim sekarang ".
Bahkan konvensi itu sudah mapan pada saat Unix meninggalkan sarang di Bell Labs untuk pergi ke dunia.
Konvensi ini dikenal sebagai kontrol aliran perangkat lunak, dan sangat umum di perangkat serial nyata. Ini tidak mudah untuk diimplementasikan dengan benar, karena mencegah penggunaan salah satu dari karakter-karakter itu untuk tujuan lain di saluran komunikasi, dan sinyal Stop harus ditangani terlebih dahulu dari setiap karakter yang diterima yang tertunda untuk menghindari pengiriman lebih dari yang dapat diterima penerima menangani.
Jika praktis, menggunakan sinyal tambahan keluar dari aliran data serial untuk kontrol aliran jauh lebih disukai. Pada koneksi kabel langsung yang mampu menggunakan kabel sinyal tambahan, Anda akan menemukan jabat tangan perangkat keras yang digunakan, yang membebaskan karakter tersebut untuk penggunaan lainnya.
Tentu saja, jendela terminal saat ini tidak menggunakan port serial fisik yang sebenarnya, memiliki bilah gulir, dan tidak benar-benar memerlukan perangkat lunak sama sekali. Tetapi konvensi itu tetap ada.
Saya ingat klaim bahwa Richard Stallman menerima keluhan tentang pemetaannya Ctrl + S untuk pencarian tambahan dalam rilis pertama emacs, dan bahwa ia agak tidak simpatik kepada setiap pengguna yang harus bergantung pada 7-bit, koneksi aliran terkontrol perangkat lunak.
vim
dan saya menekan Ctrl-S untuk menyimpan suntingan saya. Uh-ohXD