Brief intro: - Taught at WWU, WCC, WSU, LCSC - Graph Neural Analyzer - GNA is not really my focus at the moment - Mouse retina (CS108 folks know about it) Why learn about Linux? - World's most popular operating system + Android + Routers, home entertainment, etc. + HPC + Servers (Active sites vs. "inactive", NetCraft) + Not so much on the desktop - Principles can be applied to OSX + OSX is unix + This class won't cover OSX specifically + Feel free to follow along with the terminal on a mac Why not learn more about Windows instead? - You probably already know how to use it - Less common + Dominates PC market + Used in small-scale server rooms + Nearly nonexistant everywhere else - I've been a Windows software developer What should we learn about Linux? - Understand the OS, from the kernel up + CS430 covers the kernel + What is the kernel? - Learn to use the command line + Create a text file, two ways + Your program will use it + You might too! + Cygwin - The rainforest + All the computers are connected + But part of it can burn down! * My chicken coop... How do we learn about Linux? - isoptera - syllabus, calendar, website - book (The Linux Command Line) History: - Unix and the letter X + The family tree + A variety of explanations exist online + Started in the 70's + IRIX, AIX, HP-UX, XENIX, etc + Solaris and BSD are the anomolies Where did they all go? - Unix workstations had the features we like + Multitasking + GUI + 3D accelleration + $100K price tag! - DOS ran on dollar store hardware + That's how Microsoft got started - But then gamers outspent everybody else! + Research, money, rise of x86 - free has more than one meaning + Does not cost anything + Open source + Stallman, GNU (GNU's Not Unix), and HERD * Ninjas... + BSD and legal entanglements - Linux was inspired by minix + Not copied from, Tanenbaum... + Named after Linux Torvalds + Torvalds also wrote git - Better for less money, so it took over + BSD still stands, but it's fragmented + FreeBSD, NetBSD, OpenBSD, DragonflyBSD + OSX is a strong compeditor Distributions: - Recall that Linux is a kernel - You need some other software to use it! - Usually: + A shell (BASH, DASH, CSH) + A gui (X11, Android) * And a desktop environment on top of X11 * Like Gnome, KDE, Unity, XFCE, etc. + A remote access server (OpenSSH) A few common distributions: - Debian: Debra and Ian started it + For old folks + Package management + Ubuntu and many others are derived from it + .deb packages + stable, testing, unstable * toy story - Ubuntu: Means human-ness or something + Debian for youth + adjective, animal. like "Karmic Koala" - Red Hat: Black vs. White hats + Fedora + rpm packages - Gentoo: A type of penguin + portage system and emerge + compiling... + No releases - Slackware: Church of the Subgenius + no package manager, as of 10 years ago + .tgz "packages" - There are a LOT of distributions. How to start using Linux: - You'll have access to isoptera + This works from Windows and OSX + putty and WinSCP + Mac/Linux: terminal and SSH + Connect to isoptera.lcsc.edu + port 22, protocol is SSH + You'll have to see me about a username and password - It's also on the computers in MLH 310 - Or you can install it on your own computer - Most of the time, OSX will do the same thing + But I might give bad advice Starting to learn the command line: - Navigating: ls and cd - File tree: / is the root + A, B, C, etc. on Windows + mounting - Another program: man - General note on structure: commmand/program SPACE argument1 SPACE argument2 ... - argument: information for the program or command + Also called a parameter - flags: A special argument starting with - + Settings for that run of the program + Generally not persistent - Commands for you to try: who, w, top, finger Nothing more will I teach you today - If we even get here Ask for an account on isoptera