Post

#05 What is TTY, PTY and PTS?

#05 What is TTY, PTY and PTS?
  • အားလုံးဘဲ မင်္ဂလာပါဗျာ။ ကျွန်တော် ဒီ post လေးမှာတော့ TTY PTY PTS စတဲ့ အကြောင်းအရာလေးတွေကို sharing ပြုလုပ်ပေးချင်ပါတယ်။

What is TTY ?

  • tty ကို teletypewriter လို့ခေါ်ပါတယ်။
  • tty နဲ့ pts တွေသည် terminal interface တွေ ဖြစ်ကြပါတယ်။
  • tty သည် physical teletype terminal အမျိုးအစား ဖြစ်ပြီး pts သည် virtual terminal device အမျိုးအစား ဖြစ်ပါတယ်။
  • User သည် command line interface ကိုအသုံးပြုပြီး linux system ကို access ပြုလုပ်တဲ့အခါ terrminal application ဒါမဟုတ် console ကနေတစ်ဆင့် ခိုင်းစေရပါတယ်။
  • Terminal သည် Linux system ကို command line ကနေ တစ်ဆင့် ခိုင်းစေနိုင်ဖို့ရန်အတွက် user အား shell program နဲ့ ချိတ်ဆက်နိုင်အောင် လုပ်ဆောင်ပေးတဲ့ နေရာလေးဆိုတာ ကျွန်တော်တို့ သိခဲ့ပြီး ဖြစ်ပါတယ်။
  • Terminal အနေနဲ့ user အသုံးပြုခွင့်ရှိတဲ့ privileges level နဲ့ shell program ကို ချိတ်ဆက်နိုင် အောင် tty or pts device connection အမျိုးအစား တစ်ခုခု ကို အသုံးပြုပြီး command input/output တွေ ပြုလုပ်နိုင်အောင် လုပ်ဆောင်ပေးမှာ ဖြစ်ပါတယ်။
  • Linux system ကို pysically direct access ပြုလုပ်ရာမှ အသုံးပြုတဲ့ console environment ဒါမှမဟုတ် terminal app အများစုမှာ tty device connection အမျိုးအစားကို အသုံးပြုပါတယ်။
  • pts device connection အမျိုးအစားကိုတော့ linux system ကို physically direct access ပြုလုပ်တာမျိုးမဟုတ်တဲ့ network ပေါ် ကနေ shell access ကို remote management ရယူတဲ့ နေရာမျိုးတွေမှာ အသုံးပြုပါတယ်။

  • tty နဲ့ pts တို့သည် device အမျိုးအစားထဲတွင် ပါဝင်တဲ့အတွက်ကြောင့် /dev/ directory အောက်မှာ character special file အနေနဲ့ ရှိမှာ ဖြစ်ပါတယ်။ file command ကိုအသုံးပြုပြီး file type အမျိုးအစားကို စစ်ကြည့်လို့ရပါတယ်။

Image

Image

Using Console Interface

console interface

  • Console interface သည် tty device connection ကို အသုံးပြုတဲ့ terminal အမျိုးအစား ဖြစ်ပါတယ်။
  • Console မှာ user ရိုက်လိုက်တဲ့ command or text input/output တွေ သည် tty device connection တွေကို အသုံးပြုပြီး shell program ဆီကို သွားတာ ဖြစ်ပါတယ်။
  • tty device connection တွေမှာလည်း unique id တွေရှိပါတယ်။
  • tty command ကို အသုံးပြုပြီး ကိုယ့်လက်ရှိအသုံးပြုနေတဲ့ tty id number ကို စစ်ကြည့်နိုင်ပါတယ်။ (ဥပမာ - /dev/tty1 , /dev/tty2, /dev/tty3 )

Image

  • Ctrl+Alt+F1 to Ctrl+Alt+F6 ကို နှိပ်ပြီး console environment မှာ tty device connection id အမျိုးမျိုးကို ပြောင်းလဲ အသုံးပြုနိုင်ပါတယ်။
  • Linux Server အများစုသည် console environment တွေဖြစ်ကြပါတယ်။ လိုအပ်မှသာ GUI Environment ကို ထည့်သွင်း installed ပြုလုပ်ကြတာဖြစ်ပါတယ်။

Understanding About PTY and PTS

  • PTY ကို Pseudo-Terminal Master-Slave Pair လို့ ခေါ်ပါတယ်။
  • PTY Pseudo Terminal သည် physical terminal device ဖြစ်တဲ့ tty ရဲ့ အလုပ်လုပ်ပုံကို တုပ ပြုလုပ်ထားတဲ့ virtual terminal device အမျိုးအစား ဖြစ်ပါတယ်။
  • PTS ကိုတော့ Pseudo-Terminal Slave လို့ ခေါ်ပါတယ်။

Image

  • သူတို့ကို software-based terminal session ဒါမဟုတ် ssh လိုမျိုး remote management terminal session တွေမှာ အသုံးပြုကြတာ ဖြစ်ပါတယ်။
  • နောက်ပြီး GNONE Desktop Environment မှာပါဝင်တဲ့ Terminal Emulator တွေသည်လည်း PTY-PTS device pair ကို အသုံးပြုပြီး shell နဲ့ ချိတ်ဆက် တာ ဖြစ်ပါတယ်။

  • Image
  • အပေါ်က example မှာဆိုရင် client computer တစ်လုံးကနေ ssh protocol ကို အသုံးပြုပြီး network ပေါ်ကနေ remote server မှာရှိတဲ့ user ရဲ့ shell access ရယူတာ ဖြစ်ပါတယ်။
  • server side မှာ ကြည့်မယ်ဆိုရင် ssh daemon သည် ssh client ဆီကလာတဲ့ command input/ouput data တွေကို master end device ဖြစ်တဲ့ PTY Psedu-Terminal ဆီကို ပေးပို့ပေးတာ ဖြစ်ပါတယ်။
  • PTY PTS device pair သည် အတူတကွ လုပ်ဆောင်တာ ဖြစ်တဲ့အတွက်ကြောင့် PTY pseudo terminal ဆီကို ရောက်ရှိလာတဲ့ command input/output data သည် PTS Pseudo-Terminal Slave device ဆီကို ရောက်ရှိမှာ ဖြစ်ပါတယ်။
  • နောက်ဆုံးမှာ PTS device မှ တစ်ဆင့် user ရဲ့ shell program ဆီကို command input/output data တွေ ရောက်ရှိသွားမှာ ဖြစ်ပါတယ်။

Image

  • အထပ်ပါ example ကို ကြည့်မယ်ဆိုရင် user - sysadmin ရဲ့ shell နဲ့ ချိတ်ဆက်ထားတဲ့ pts device connection (4) ခု ရှိတာ တွေ့ရမှာ ဖြစ်ပါတယ်။ ( /dev/pts/0 /dev/pts/1 /dev/pts/2 /dev/pts/3 )

  • နောက်ထပ် နည်းလမ်းတွေကတော့ who or w command ကို အသုံးပြုပြီး ကိုယ့် linux server ကို connect ပြုလုပ်ထားတဲ့ shell sessions တွေ ဒါမှမဟုတ် tty or pts device connection တွေကို စစ်ကြည့်နိုင်ပါတယ်။
  • အခု လောက်ဆိုရင် terminal နဲ့ shell program ကြားမှာ tty or pts device connection တွေကို အသုံးပြုပြီး ချိတ်ဆက်လုပ်ဆောင် ပုံတွေကို နားလည် လောက်ပြီလို့ ထင်ပါတယ်။
This post is licensed under CC BY 4.0 by the author.