Operating Systems 2017F Lecture 4

From Soma-notes
Jump to navigation Jump to search

Video

Video from the lecture given on September 19, 2017 is now available.

Notes

- The textbook
  - Is just for reference as supporting material.  The class lectures will not follow the text.
- Some concepts from the tutorial
  - Running an ltrace on a statically compiled program prints an error.  The error just explains that the file was not dynamically compiled "couldn't find .dynsym"
  - What is obj code?
    - machine code.  It is important to have a good mental picture of what is happening.  Notice that addresses are unique for each process.
  - The point is that the system is not clean, it is complicated and not well understood.
- How to build a Linux machine using virtualbox and an iso image (concepts)
  - iso: international organization for standardization for optical disk media
    - it's a cd or dvd
  - The VM uses a dynamically allocated hard drive.  It is a file that has a filesystem and it grows and shrinks as needed.
  - Hard drive partition: Creates memory segments on the disk that is used to store different types of data.
  - Memory swapping: The processor uses hard disk space when it runs out of RAM.
- Things about linux
  - Why is the kernel split?
    - So the various hardware modules can be added to the system when the hardware is installed
    - We can see the modules using ls mod or cd /sys/proc
  - Environment Variables
    - TERM or USER for example.  They are capitalized by convention.  The significance is that these variables belong to a process (like a shell).  
    - Child processes inherit the environment variables from the parent; envp[] stores the values of these variables.
- Things that can be done in a shell
  - We can run programming commands directly in the shell
    - things like loops and conditionals
    - $ defines a variable
    - echo is the shell's version of printf
- ssh
  - used to access remote machines using a secure shell
  - The ssh uses a file that stores authorized keys.  If a user has a key for the remote terminal then they do not require a password.
  - certificates
    - used by websites to maintain security
    - A secure website encrypts the data so it can't be viewed by hackers.