Lecture # 5 - Systems and Network Programming

Shell environment: commands, I/O redirection (pipelines), expansion, permissions

House keeping items:

Agenda for Today (1/29/20):

Lecture # 5 Notes:

  1. Main Lecture Content (class Text): Chapters 5-9
  2. Main Lecture Content (class Text summary): Lecture 5 (Mike C.) notes
  3. Take another run at the environment setup: guest additions, etc.
  4. Previous CSE384 Instructor Notes: YUZHE (RICHARD) TANG
  5. Linux (Background) Material
    1. History - Unix/Linux Timeline
    2. GNU - "GNU is not Unix - collection of "free" softwate (GPL)
    3. Linux Kernel + GNU software = GNU/Linux
    4. Linux Intro/tutorial by Augustine Abaris Summer 2108 (Boston University)

Environment Setup Notes:

  1. Install VirtualBox
  2. Install Linux Mint (based on Ubuntu -- I prefer MATE desktop, but many people like Cinnamon)
    • Desktop Comparisons: MATE versus Cinnamon
    • Install Guest Additions - device drivers and system applications that optimize the guest operating system for better performance and usability.
  3. Enable "Shared Clipboard and Drag'nDrop": Settings -> Advanced
  4. Configure shared folders, then run the following commands..
    1. run: sudo usermod -a -G vboxsf `whoami`
    2. run: sudo chown -R `whoami`:users name-of-mount-point
    3. log out, and log back in
  5. Update Mint (run) "sudo apt update && sudo apt upgrade -y"

Resources:

  1. I/O Redirection (LinuxCommand.org)
  2. Permissions (LinuxCommand.org)
  3. I/O Redirection (Guru 99)
  4. Permissions (Guru 99)
  5. LinuxCommand.org - Excellent Linux web resource (class text book here)
  6. Linux Intro/tutorial by Augustine Abaris Fall 2018 (Boston University)
  7. Linux Intro/tutorial by Augustine Abaris Summer 2108 (Boston University)
  8. A good Linux Overview (by Guru99)
  9. Tutorialspoint - deeper look at OS components
  10. Summary of Bash Commands from Dr. Fawcett's notes
  11. Webminal - discussion, examples, exercises Start Terminal Here

Interesting Technologies related to Linux:

  1. Kernel-based Virtual Machine (KVM) - turn Linux into a Hypervisor
  2. Docker (Container Technology)
  3. TCPDump & LIBPCAP
  4. Extended Berkeley Packet Filter (eBPF)
*** Action Items for Next Class ***