Class Projects and Environment

Slides:



Advertisements
Similar presentations
Linux, it's not Windows A short introduction to the sub-department's computer systems Gareth Thomas.
Advertisements

Learning Unix/Linux Bioinformatics Orientation 2008 Eric Bishop.
ENEE150: Discussion 1 Section 0104 Please Sit Down at a Computer and Login!
CSCI 1411 FUNDAMENTALS OF COMPUTING LAB Lab Introduction 1 Shane Transue MSCS.
Working Environment - - Linux - -.
CS1020: Intro Workshop. Topics CS1020Intro Workshop Login to UNIX operating system 2. …………………………………… 3. …………………………………… 4. …………………………………… 5. ……………………………………
“Final?” Day Unix/Linux April 8, 2014 Dr. Bob Mathis.
1 SEEM3460 Tutorial Unix Introduction. 2 Introduction What is Unix? An operation system (OS), similar to Windows, MacOS X Why learn Unix? Greatest Software.
The Unix Environment and Compiling. Getting Set Up Your programs will be compiled and tested on the Departmental server ‘linprog’ The linprog servers.
CS490 Web Design, AJAX, JQuery
Overview of Linux CS3530 Spring 2014 Dr. José M. Garrido Department of Computer Science.
CSE 390a Editing and Moving Files
1 Intro to Linux - getting around HPC systems Himanshu Chhetri.
POS/420 Introduction to Unix Philip Robbins – March 12, 2013 (Week 1)
Essential Unix at ACEnet Joey Bernard, Computational Research Consultant.
COSC513 Project Linux Features Instructor: Prof. Mort Anvari Student: Yingfeng Luo ID: #
1 SEEM3460 Tutorial Unix Introduction. 2 Introduction Unix-like system is everywhere Linux Android for smartphones Google Chrome OS for Chromebook Web.
AN INTRO TO UNIX/LINUX COMMANDS BY: JIAYANG WANG.
HTML Hyper Text Markup Language A simple introduction.
Carnegie Mellon Linux Boot Camp Jenna MacCarley, Peter Pearson, Shashank Goyal 9/19/2015.
PROGRAMMING PROJECT POLICIES AND UNIX INTRO Sal LaMarca CSCI 1302, Fall 2009.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
CS 590 Programming Environments with UNIX. Computer Lab Account Course Homepage
ENEE150 – 0202 ANDREW GOFFIN Introduction to ENEE150.
UNIX Introduction CSCE 221H Texas A&M University.
CGS 3460 Why we choose UNIX n Powerful lMulti-user operating system lGood programming tools Most heavy-duty database management systems started out on.
Introduction to UNIX CS 2204 Class meeting 1 *Notes by Doug Bowman and other members of the CS faculty at Virginia Tech. Copyright
Object Oriented Programming COP3330 / CGS5409.  Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review.
Unix Servers Used in This Class  Two Unix servers set up in CS department will be used for some programming projects  Machine name: eustis.eecs.ucf.edu.
ENEE150: Discussion 1 Section 0104/0105 Please Sit Down at a Computer and Login!
AN INTRO TO UNIX/LINUX COMMANDS BY: JIAYANG WANG.
1 CS3695 – Network Vulnerability Assessment & Risk Mitigation – Introduction to Unix & Linux.
A Mini UNIX Tutorial. What’s UNIX?  An operating system run on many servers/workstations  Invented by AT&T Bell Labs in late 60’s  There are many different.
Projects and Environment Introduction. A lot to go over today… History of Linux Projects Overview Project partners Programming environment Programming.
Object Oriented Programming COP3330 / CGS5409.  Compiling with g++  Using Makefiles  Debugging.
CS 120 Extra: The CS1 Server Tarik Booker CS 120.
Learning Unix/Linux Based on slides from: Eric Bishop.
Linux 101 Mark C. Ballew ACES Program Desert Research Institute.
Object Oriented Programming COP3330 / CGS5409.  Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review.
Intro to GNU/Linux See, Stallman? I said GNU. Are you happy now?
Review Why do we use protection levels? Why do we use constructors?
Tutorial Six Linux Basics CompSci Semester Two 2016.
By Jonathan Rinfret UNIX/LINUX By Jonathan Rinfret
Overview of Linux Fall 2016 Dr. Donghyun Kim
Introduction to Unix for FreeSurfer Users
Operating System Kernel Compilation
ENEE150 Discussion 01 Section 0101 Adam Wang.
UNIX To do work for the class, you will be using the Unix operating system. Once connected to the system, you will be presented with a login screen. Once.
SEEM3460 Tutorial Unix Introduction.
CS1010: Intro Workshop.
slides created by Marty Stepp, modified by Josh Goodwin
Tutorial Six Recap & Linux Basics CompSci Semester Two 2016.
CSCI 2400/ ECE 3217: Computer Architecture
IT244 - Introduction to Linux / Unix Instructor: Bo Sheng
Andy Wang Object Oriented Programming in C++ COP 3330
Intro to UNIX System and Homework 1
Operating System Kernel Compilation
slides borrowed and adapted from Alex Mariakis and CSE 390a
CSE 390a Lecture 1 introduction to Linux/Unix environment
CSE 303 Lecture 1 introduction to Linux/Unix environment
Andy Wang Object Oriented Programming in C++ COP 3330
Class Projects and Environment
Linux Professor Sabol.
Video Notes.
Operating System Kernel Compilation
Introduction to Linux and Code Editing
Sarah Diesburg Operating Systems CS 3430
Presentation transcript:

Class Projects and Environment Networking CS 3470, Section 1 Sarah Diesburg

A lot to go over today… History of Linux Programming environment Programming languages Useful Tools

History of Linux

The Beginning: Unix First implemented in AT&T Bell Labs, 1969. AT&T had to make a choice between using third party OS or developing their own. Chose to implement own OS. Born from ideas and work performed on MULTICS OS. As a result of work on Unix (first implemented in the assembly language), C was born. 4

Linux Today Current kernel version 4.7.1 (as of last week) Supports pretty much any platform and device the average user will interact with. Released to users as distributions, of which there are more than a hundred. 5

Why Use Linux? Linux is open source We actually have access to the kernel code and can change it Much of the Internet runs on UNIX/Linux! Wonderful time to get some experience 6

Unix/Linux Share Desktop/laptop – Linux 1.73% Mobile Devices – Android 79.0% Servers – Unix-like/Linux 66.8% Supercomputers – Linux 96.4-98% Source: http://en.wikipedia.org/wiki/Usage_share_of_operatin g_systems#Servers 7

Projects

Five Projects Projects will include Network programming on a Linux server and clients Chat program Network game Network cables and the physical medium Investigating network protocols Analyzing packets 9

Programming Project Start projects when they're assigned. They're often trickier than they look. Ask questions early. If you're asking questions, be it to yourself or to others, you're thinking about the project. This will make it easier to complete them correctly and on time. Write small programs to test your program or language features you don't understand.

Accessing the Remote Servers Linux server located at student.cs.uni.edu Use CatID and password to access If you are unfamiliar accessing remote Linux servers, please watch this video posted on today’s webpage 11

Logging In Use SSH to connect to “student.cs.uni.edu” Secure SHell If in Linux or OSX Open up a command-line terminal $> ssh <username>@student.cs.uni.edu If in Windows You will need a terminal emulator PuTTY (download from link on resources page)

PuTTY

Once I am Logged In You will be logged onto a single machine But programming on just one machine is no fun… Can test network programs running on multiple machines by booting other lab machines into Linux Lab WRT 112, WRT 339, and “Student Lounge” Reboot into Linux Log in with CatID Start up a terminal program Can run code from there!

Next Steps Get familiar with Linux shell commands inside of student.cs.uni.edu Look at course “Resources” page under “Shell Resources” Know at least the following Maneuvering: cd, ls, pwd Creating/deleting: touch, rm, rmdir, mkdir Reading files: nano Compilation: make, gcc Packaging: zip, unzip Help: man There is a video on the resources page to help

Editing Source Files Two ways I highly recommend the second way! Create and edit files on your own computer, then transfer to Linux server Create and edit files directly on Linux server I highly recommend the second way! File encodings from other operating systems can negatively effect compilations and cause very confusing errors It’s not too bad, just pick a terminal editor

Editors -- Vim The vi editor was created by Bill Joy, the founder of Sun Microsystems when he was a graduate student The vim editor, vi improved, is the Linux version of the vi editor multiple windows, highlighting text, and command history http://www.vim.org/

Editors -- Emacs GNU Emacs is an extensible, customizable text editor Content-sensitive editing modes, including syntax coloring, for a variety of file types including plain text, source code, and HTML http://www.gnu.org/software/emacs/

Editors -- Others Nano and/or pico are also available on most Linux systems If you have never worked in Linux before, this is your editor! Extremely basic $>nano <file name>

Transferring Files In Linux/OSX In Windows From prog1 scp File transfer client like WinSCP From prog1 wget

WinSCP WinSCP

Programming Language C is the programming language of operating systems and the networking stack Kernel, system utilities, and large server programs (like apache and sendmail) Need to understand some C for class examples Will get practice with C in homework 1 I will help, but you also need to get yourself up to speed with the basics 22

Quick C Language Tutorial Look in resources 23

Compiling Video $> gcc myfile.c –o myfile gcc is the compiler myfile.c contains my source code. It could be called anything as long as it ends with .c -o is the output flag – the file that follows this flag will be the output executable myfile – this is the output executable. Can be called anything 24

Running your executable $> ./myfile ./ means “here” (or “this” version of the program) myfile is the name of the executable that you compiled 25

Homework 1 (Due next Wed) Find this linked in eLearning Syllabus quiz (easy points!) Short C program C Program Log onto the class servers Go through the online C tutorial To test your knowledge, create and compile a C program on the servers 26

Useful Tools

manpages Extensive documentation that come with almost all Unix-like systems For documentation on C functions or packages Examples $> man bash $> man strncpy Sometimes multiple definitions, so use man section numbers ‘man 1 printf’ shows bash printf ‘man 3 printf’ shows C printf For more information on sections, see ‘man man’