Ctrl-S'nin amacı nedir?


135

Ctrl+ S, Ctrl+ ile yeniden başlatılabilen terminale giden tüm çıkışları durdurur Q.

Ancak, neden ilk olarak Ctrl+ Svar? Bu kontrol sırasını devreye sokarak hangi sorunu çözmeye çalışıyordu?


5
Bakınız: linusakesson.net/programming/tty (hepsini okuyun, ama özellikle Akış Kontrolü ile ilgili bölüm ...)
Olivier Dulac

8
Pek çok kez domuz pastırmamı korumak için Ctrl-S / Ctrl-Q cihazını, hata mesajları çıkışını ancak işlevsel bir sistemde durdurmak için kullandım.
DocSalvager

4
Bir yan not olarak, benim de bu var .bashrciki işlevi devre dışı bırakmak için: stty stop ''; stty start '';. Bu için kaçış karakteri olarak kullanılmak üzere Ctrl-S serbest bırakır screenskinTenimde bununla, .screenrc: escape ^Ss. Bu da readline"Ctrl-A" kısayolunu "satır başlangıcı" ("satır sonu" için Ctrl-E ile eşleştirilen ve terminal emülasyonuna Giriş ve Sona göre daha az kırılgan) için kullanabileceğim anlamına geliyor. : D
IMSoP

Yanıtlar:


155

Bilgisayarlar olmadan çok önce teleprinters (aka teletypewriters, aka teletypes) vardı. Onları kabaca bir telgrafla aynı teknolojiyle aynı düşünün, ancak bunlara bir tür klavyeyle ve bir tür yazıcıyla.

Teletypes, bilgisayarlar ilk yapıldığında zaten mevcut olduğundan ve o zamanki bilgisayarlar oda boyutunda olduğundan, teletypes ilk bilgisayarlara uygun bir kullanıcı arayüzü haline geldi - bir komut yazın, gönder düğmesine basın, bir süre bekleyin ve komutun çıktısı önünüzdeki bir kağıda yazdırılır.

Yazılım akış kontrolü bu döneme dayanıyordu - eğer yazıcı teletype veri aldığı kadar hızlı yazdıramazsa, örneğin, teletype uzak tarafa "Şimdilik iletimi durdur" diyerek bir XOFF akış kontrol komutu ( Ctrl+ S) gönderebilirdi. ve sonra XON akış kontrol komutunu ( Ctrl+ Q) uzaktaki tarafa "Yakaladım, lütfen devam et" diyerek gönderebilir .

Ve bu kullanım Unix'te varlığını sürdürmektedir, çünkü modern terminal emülatörleri, teletipleri kendileri (bir şekilde) taklit eden fiziksel terminalleri ( vt100 gibi ) taklit etmektedir.


29
Büyük olasılıkla "bir sayfa kağıda basılmış" değil, "fanfold kağıt destesine basılmış".
Dubu

3
Ya da delikli banttan bir ROLL'a!
mdpc

2
Control-S ve control-Q'nun başlangıçta bilgisayarlardan gelen çıktıyı başlatmak ve durdurmak için kullanıldığını sanmıyorum, bunun yerine diğer teletiplere bağlı kağıt bant okuyuculardan kullanıldığını düşünüyorum . Zaman paylaşım sistemlerinin ortaya çıkmasına kadar teletipleri bilgisayarlara bağlamanın fazla ilgi olacağını sanmıyorum. Aksi halde, bir bilgisayar bir kullanıcının bir şeyi yazmasını beklerken geçirdiği zaman, yararlı bir şeyler yapmak için harcamamakta olduğu zamandır.
supercat

2
Veya 8½ʹʹ kağıt rulosuna.
Scott

44
1987'de üniversitemde hayatta kalan son teletipleri alevler içinde bıraktım. Seri yazıcı olarak kullandı ve sürekli olarak 35 sayfa yazdırmaya zorlanırsa aşırı ısınacağının farkında değildi. Aşırı ısınma az önce kötü kokuyordu, ancak kağıt sıcaktan dolayı alev aldı. Ancak o zaman bana her iki sayfada bir Ctrl-S vermem gerektiğini söylediler ya da birkaç dakika soğuması için.
Tonny,

25

VT100 terminalleri ve benzerlerinden gelen bir kontrol karakteridir. CTRL-S ile başlamak için bu terminallerde sınırlı kaydırma özelliği (varsa) vardı, ekranda şu anda yazılmadan ne olduğunu görmek için çıkışı dondurmanıza izin veriyordu.

Modern terminallerde gördüğünüz her şey bu eski terminal sistemlerini taklit etmek için uygulandı.


İşte duyduğum şey buydu (teleprinter cevabından ziyade (muhtemelen hatta) böyle bir işlevselliğin korunmasının nedeni bu olsa da mümkün.) Bu amaç için Cntr-S'yi az ya da çok sorun yaşarken kullandım.
Lyndon White

2
Çıktıyı başlatmak / durdurmak için mekanik ihtiyaç, insanın okuyabilmesi için ihtiyaç duyulmadan önce geldi!
TripeHound

@TripeHound: Gerçekten, insanların bilgiye ulaşırken bakmalarına dair herhangi bir özel beklenti olmadan çok önce geldi (bir hikayeyi merakla bekleyen bir teletype tarafından izlenenleri izleyebilirdi, ancak operatörler genellikle daha iyi şeyler yaptılar) yapmak).
supercat,

21

BTW, ekranınızda uzun bir çıktı listeliyorsanız, olasılıkla çıktıyı çıkaran bilgisayar kadar hızlı okumamanız olabilir. CTRL-S / CTRL-Q'nun bir kedi (veya aktif kuyruk) üzerinde kullanılması, çıktının durdurulması ve sürdürülmesi için ÇOK faydalıdır.


25
lessDaha fazla olan.
dotancohen

2
@dotancohen: Çok komik. Hatta moreilk Unix (featuring sonra dört ya da beş yıl kadar tanıtılan değildi cat, amacat -v ) serbest bırakıldı. Ayrıca Unix'ten önce başka zaman paylaşım (etkileşimli) işletim sistemleri olduğunu unutmayın ; örneğin, RSTS .
Scott

2
@dotancohen tercihim lessama insanlar ise, demek lessolduğunu more, mosthala zor less!
Volker Siegel

1
@ VolkerSiegel: Beni tanıştırdığınız için teşekkür ederiz most! Birisi, ssh üzerinde ssh üzerinde bir görüntü dosyası (gif, jpg, png) görmenizi sağlayan bir program bilme şansınız varsa, onu duymayı çok isterim. Şu anda kullanıyorum asciiviewya da img2txthiçbiri tatmin edici değil.
dotancohen

2
@ VolkerSiegel: Ayrıca çoğu için teşekkürler ! Yazarın dediği gibi: "Neden daha azına razı olun?". Debian kullanıcıları yapabilir apt-get install most.
mivk

17

Kağıt kaseti okuyuculu eski teletiplerde, bir kontrol-Q alımı kağıt kaseti okuyucusunu açar ve klavyede yazılmış gibi banttan karakter göndermeye başlar. Control-S, kağıt şerit okuyucuyu kapatır. Teletiplerin başlangıçta bilgisayarlardan değil, diğer teletiplerden veri yazdırmak için tasarlandığı düşünülürse, "kağıt kaseti okuyucusunu kapat" ın "iletmeyi durdurmak için diğer ucu istemek" e benzer olarak nasıl anlaşılabileceği açıkça anlaşılmalıdır.

Bu arada, control-R kâğıt şeridi zımbasını açacak, teletip tarafından alınan her karakter (ya da eğer yerel yankı etkinleştirildiyse klavyede yazılmış) kağıda yazılacaktı; control-T, kağıt şeridi zımbasını kapatır. Ancak control-S ve control-Q ile ilişkili işlemlerin aksine, bu işlemlerin modern bir eşdeğeri yok gibi görünüyor.

Ayrıca, kontrol-Q / R / S / T için orijinal isimler DC1 / DC2 / DC3 / DC4'tür ("Aygıt Kontrolü 1", vb.). Geçmişden emin olmasam da, bu tür isimlendirmeler başlangıçta belirtilmemiş bir tür eylemi tetiklemeye yönelikti, ancak insanların DC1 ve DC3 ile yaptıkları en yaygın şey, kağıt şerit okuyucuyu kontrol etmekti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.