What is TTY/PTY in Unix/Linux


What is TTY in Unix/Linux



TTY ဆုိတာ ဘာလဲဆုိေတာ့ ဟုိးအရင္ computerေခတ္ဦးတုန္းက user ေတြဟာ Main Framecomputer ကို connect
လုပ္တဲ့ေနရာမွာ  electromechanical teleprinters or teletypewriters (TeleTYpewriter,TTY) ေတြကို terminal ေတြ
အေနနဲ ့အသံုးျပဳပါတယ္။ TTY အေျကာင္းေျပာရင္ Teletype-writer ေတြ အေျကာင္းကို ေျပာမွ ပိုျပီး ျပည့္စံုတာဗ်ာ့။
တစ္ကယ္ေတာ့ အစတုန္းက  အိုင္ဒီယာက stock exchange အတြက္ ရည္ရြယ္ျပီး  stock ticker ဆုိတာေလးကို  
တီထြင္ခဲ့တာဗ်ာ့။
stock ticker မွာဘာေတြပါလဲဆုိေတာ့  typewriter( keyboard လိုမ်ိုး) ရယ္ wireျကိုးမွ်င္ေလးေတြပါတဲ့
 ျကိုးအရွည္ရယ္ ျပီးေတာ့ ticker tape printer ရယ္ပဲ ျဖစ္ပါတယ္။
ခုပံုေလးကေတာ့ stock ticker ေလးပဲျဖစ္ပါတယ္။ သူ့ရည္ရြယ္ခ်က္ကေတာ့  စေတာ့ရွယ္ယာ တန္ဖိုးေတြကို
 ဘယ္ေလာက္ေ၀းေ၀း (ျကိုးေတာ့ဆြဲေပးထားရတာေပါ့ေနာ္) အခ်ိန္နဲ့ တစ္ေျပးညီ real time 
သိနုိင္ေအာင္လို့ ပဲျဖစ္ပါတယ္။ အဲ့ အယူအဆ (idea) ဟာ တစ္ျဖည္းျဖည္း တိုးတက္လာျပီးေတာ့ 
ASCII-based teletype ေတြျဖစ္လာပါတယ္။ ေျကးနန္းဆက္သြယ္ေရး (telegrams) ဘက္မွာလဲ 
စီးပြားျဖစ္သံုးလာက်ပါတယ္။ world wide အေနနဲ့ ေျကးနန္းဆက္သြယ္ေရးမွာ သံုးတဲ့ Teletype ကို 
Telex လို့ေခာ္ပါတယ္။ ဒါေပ့မယ္ အဲ့အခ်ိန္ထိ ကြန္ပ်ူတာေတြနဲ့ ဆက္သြယ္ျပီး မသံုးက်ေသးပါဘူး။
Computer ေတြဟာလဲ  user နဲ့ real time ျမန္ျမန္ဆန္ဆန္အလုပ္လုပ္နုိင္လာက်တယ္။ ဒါေပမယ့္ တစ္ကယ့္ကို
 heavy metal အျကီးစားျကီးေတြ အေနနဲ့ ပဲရွိေနတုန္းပဲ.. အိမ္ေလာက္ရွိတဲ့ main frame computer ျကီးေတြေပါ့ဗ်ာ။
ကြန္ပ်ူတာေတြ ေခတ္ဦးတုန္းက ခုေခတ္လို system ပုန္းေတြ monitor ေတြ  keyboard ေတြ တြဲရက္မဟုတ္ဘူးဗ်ာ့။
အိမ္ေလာက္ျကီးတဲ့ system box ေတြကို ျမင္ျကည့္ေပါ့ဗ်ာ။ အဲ့ main frame ေတြရဲ့ termintal ကို access လုပ္ဖုိ့ 
teletype writer ေတြကို သံုးတယ္ဗ်ာ့။ main frame ရဲ့ input output device အေနနဲ့ သံုးပါတယ္။

Teletypewrite ဆုိတဲ ့ စကားကေနျဖစ္ေပၚလာတဲ့ စကားေလးကို text-only console ေတြကို ေခၚတဲ့ေနရာမွာ
tty လို ့ပဲ ဆက္ျပီး ေခၚေ၀ၚအသံုးျပဳပါတယ္။ Unix system ေတြ Linux system ေတြရွိတဲ့ main frame
တြကို serial cable ေတြနဲ့ ခ်ိတ္ဆက္ျပီး တစ္ျခားတစ္ဘက္ကိုေတာ့ teletype ကို ခ်ိတ္လိုက္ျပီး 
အသံုးျပုပါတယ္။ အဲ့ connection တစ္ခုကို TTY session တစ္ခုလို့ေခာ္နုိင္ပါတယ္။

အဲ့လို paper နဲ့ result ကို print ထုတ္ေနရာကေနျပီး တစ္ဆင့္တက္ျပီး monitor display နဲ့ input/output 
result ေတြကို ျပတဲ့  computer terminal ေတြကို အသံုးျပုလာက်ပါတယ္။
ယေန့ေခတ္မွာေတာ့ ပိုအဆင္ျမင့္လာျပီး  physical hardware အေနနဲ ့ မဟုတ္ေတာ့ပဲနဲ ့ virtual terminal အေနနဲ ့ပဲ
ဆက္လက္တည္ရွိပါေတာ့တယ္။ အဲ့မွာ အေခါအေ၀ါ နွစ္ခုကို ဆက္ျပီး ရွင္းျပခ်င္ပါတယ္။
TTY   နဲ့ PTY ပဲ ျဖစ္ပါတယ္။

TTY: ဆိုတာက အေပဿဿါ္မွာလဲ ရွင္းျပခဲ့ပါတယ္။ သူက serial  နဲ့ခ်ိတ္ဆက္ထားတဲ့ connection ေတြ 
linux system ထဲမွာ locally (dirctly) အေနနဲ့ ရွိေနတဲ့  terminal ေတြကို TTY အေနနဲ့ သက္မွတ္ပါတယ္။

အခုပံုကေတာ့ current terminal  မွာ who လို့ရိုက္လုိက္ရင္ လက္ရွိ ရွိေနတဲ့ user ေတြကို ထုတ္ျပေပးပါလိမ့္မယ္။ 
spacex ဆိုျပီး tty7 နဲ့ ရွိေနတာကို ေတြ့ရပါတယ္။ Linux system အမ်ားစုမွာ Ctrl+Alt+F(1 to 6) အထိ 
virtaul console (tty) ေတြကို support ေပးပါတယ္။ Ctrl+Alt+F2 ကိုနွိပ္လိုက္မယ္ဆုိ virtual console 
တစ္ခုျဖစ္တဲ့ tty2 ကို ေရာက္သြားပါလိမ့္မယ္။
Ctrl+Alt+F6 ကို နွိပ္လုိက္ရင္ေတာ့ tty6 ကိုေရာက္ရွိသြားမွာပဲ ျဖစ္ပါတယ္။


ကုိယ္ GUI နဲ့ သံုးေနတဲ့  terminal ကိုျပန္ေရာက္ခ်င္တယ္ဆုိရင္ေတာ့ Ctrl+Alt+F7 ကိုနွိပ္လုိက္ရင္  X server run
 ေနတဲ့ Console ရွိရာကို ေခါ္သြားေပးပါတယ္။ GUI (Gnome/KDE or any other) ေတ္ာေတာ္မ်ားမ်ား ဟာ 
X ေပါ္ကေန လုပ္ေဆာင္ေနတာပါ။ အဲ့အတြက္ေျကာင့္ GUI window ဘက္ကို ျပန္လည္ေရာက္ရွိသြားပါ လိမ့္မယ္။

pty-pseudoterminal interfaces ဆုိတာကက်ေတာ့ သူ ့ Meaning ေလးကို တစ္ခ်က္္ျကည့္က်ရေအာင္ဗ်ာ။။
 A pseudo-terminal is a pair of virtual character devices that provide a bidirectional 
communication channel. ေျပာရရင္ သူက bidirectional channel ရွိတဲ့ terminal pair တစ္ခုပဲဗ်ာ့။ 
Bidirectional ဆိုတဲ့အတုိင္းပဲ ဟိုဘက္ ဒီဘက္ အပိုင္းနွစ္ပိုင္းရွိပါတယ္။ တစ္ဘက္ျခမ္းက master ျဖစ္ျပီး  
တစ္ျခားဘက္ျခမ္းက slave ပါ။

Slave ဘက္ျခမ္းက  classical terminal ပံုစံ interface ရွိေနပါမယ္။ slave ဘက္ျခမ္းကေန session တစ္ခု
ဖြင့္လိုက္တာနဲ့ master ဘက္မွာလဲ အသင့္ျဖစ္ေနပါျပီ (start open process) ။ slave ဘက္ ရိုက္လိုက္တဲ့ inpute ေတြကို
 master ဘက္ကို ပို့ေပးျပီး master ဘက္က ျပန္လာတဲ့  result ေတြကို slave ဘက္ျခမ္းမွာ ျပလု့ိရေအာင္ ပို့ေပးပါတယ္။ 
အေပါ္မွာ ခုနက ေျပာခဲ့တဲ့ TTY ေတြနဲ့ဘာကြာလဲ ဆုိေတာ့.. TTY က local login, direct serial connection
တြအတြက္ပါ။ PTYက remote login ေတြအတြက္ပါ။ linuxဆုိတာ့ multi-task, multi-user support OS တစ္ခု
မဟုတ္လား။
Remote login application  ေတြျဖစ္တဲ့ SSH, Telnet စတဲ့ network login services ေတြကို သံုးျပီး
၀င္ေရာက္တာပဲျဖစ္ပါတယ္။ အဲ့ SSHတုိ့ Telnet တုိ့ကို PTS (pseudo terminal slave) လို့ ေခါ္ပါတယ္။
 ခု က်ြန္ေတာ့္ Linux OS နဲ့  Tablet တုိ့ဟာ same wifi ထဲမွာပါ။ tablet ကေန ssh နဲ့ Linux OS ကို 
server ေနရာထားျပီး ၀င္ျကည့္ပါ့မယ္။ linux OS ရဲ့ IP က 192.168.0.116 ျဖစ္ျပီး Tablet ကေတာ့ 
192.168.0.102 ပါ
ခုျကည့္လိုက္တဲ့အခါမွာေတာ့ PTS အေနနဲ့ ၀င္ေနတာကို ေတြ့ျမင္နုိုင္ပါတယ္။  ;-)

သျက္န္မွာ ေပ်ာ္ေပ်ာ္ရြင္ရြင္နဲ့ ေဘးရန္ကင္းကင္း လည္နုိင္က်ပါေစဗ်ာ့။
ခုေရးခဲ့တဲ့  TTY ေတြ PTS ေတြ အေျကာင္းကေတာ့ ကိုရဲကို birthday present အေနနဲ့ ေရးေပးတာပါ။
HappyBirthdy U Lay!!

BRs,
Khant Phyo
~[F]or-get


Comments