Linux Terminal System Conceptual Linux terminal Terminal API - - PowerPoint PPT Presentation

linux terminal system
SMART_READER_LITE
LIVE PREVIEW

Linux Terminal System Conceptual Linux terminal Terminal API - - PowerPoint PPT Presentation

Linux Terminal System Conceptual Linux terminal Terminal API Terminal emulators Graphical user interfaces Conceptual Linux terminal Mainframe Terminal User Application Keyboard Display Kernel Modem Modem stdin/stdout


slide-1
SLIDE 1

Linux Terminal System

  • Conceptual Linux terminal
  • Terminal API
  • Terminal emulators
  • Graphical user interfaces
slide-2
SLIDE 2

Conceptual Linux terminal

Application Kernel Mainframe Modem Modem Terminal Keyboard Display User

slide-3
SLIDE 3

stdin/stdout

  • Low-level calls: read(), write(), fd's
  • High-level calls: fread(), fwrite(), FILE*'s
  • Formatted I/O: fscanf(), fprintf(), FILE*'s
  • Redirection: dup2(), pipes “|”, redir “>”

$ randomize < input | rot13 | tee log | rot13 | sort $ cat log input randomize rot13 tee rot13 log terminal cat sort

slide-4
SLIDE 4

Escape sequences & function keys

  • Many incompatible escape sequences

and terminal capabilities

  • $TERM identifies terminal type
  • termcap/terminfo defines terminal types

Application Terminal Escape sequences “\e[2J” = clear screen Function key sequences “\e[A” = up arrow key

slide-5
SLIDE 5

ioctls and termios

  • ioctls give very low-level access
  • termios standardizes interface
  • ioctls/termios can adjust canonical

(cooked) and non-canonical (raw) modes

  • Linux terminal provides font, etc. ioctls
  • Serial ports have baud rate, etc. ioctls
slide-6
SLIDE 6

curses, ncurses, and S-Lang

  • Wrapper libraries hide complexity of

terminal programming

  • Provides portable interface to many

terminal types

  • curses: cursor control library
  • ncurses: new curses
  • S-Lang: contains terminal control library
slide-7
SLIDE 7

Terminal emulators

  • Consumer computer systems have

integrated human interface hardware, so terminal functionality must be emulated

  • Dumb terminal: works like a teletype
  • Linux vt100: VGA + keyboard + buzzer
  • GNU screen: display multiplexing
  • xterm: text terminals in graphical display
slide-8
SLIDE 8

X Window System

  • X server gives programs access to

keyboard, mouse, and display hardware

  • Client apps tell the server what to draw
  • User sits in front of X server

Mainframe X app 1 X server Kbd/VGA User Mainframe X app 2

slide-9
SLIDE 9

VNC: Virtual Network Computing

  • Cross between GNU screen and X
  • User sits in front of VNC client (“viewer”)

Mainframe gimp Xvnc Mainframe wmaker xterm Workstation XFree86 vncviewer User

slide-10
SLIDE 10

Conclusion

  • Archetypical Linux terminal system
  • Program input and output
  • Terminal API, low- and high-level
  • Terminal emulators
  • Graphical user interfaces

Slides available online: http://ioioio.net/school/terminal/slides.pdf

slide-11
SLIDE 11

GNU screen

ssh mutt bash screen xterm xfree86 User monitor kbd Workstation

slide-12
SLIDE 12

VPN over SSH

PPP0 ETH0 ETH1 PPP1 PPP1 pppd ssh sshd pppd firefox web browser Corporate network Home network Internet / WAN