CSCI2467: Systems Programming Concepts

Size: px
Start display at page:

Download "CSCI2467: Systems Programming Concepts"

Transcription

1 CSCI2467: Systems Programming Concepts Slide set 1: A Tour of Computer Systems (CS:APP Chapter 1) Instructor: M. Toups Spring 2018

2 Overview 1 A Tour of Computer Systems Systems Information is bits plus context Programs Are Translated by Other Programs into Different Forms Processors Read and Interpret Instructions Stored in Memory Caches & Memory Hierarchy The Operating System manages processes, memory, and more Wrapping up the intro 2 Lab 0 Prerequisites review Remote access with ssh The terminal Text editors Part 1 Part 2 Part 3 Handin notes 3 Preview of next week Reading Data surprises!

3 Systems vs. Applications Applications software provides services to a user Systems software provides a platform for applications and services to build upon Application programs Operating system Processor Main memory I/O devices Software Hardware Figure 1.10 from CS:APP by: Uwe Kils CC BY-SA 3.0 Not pictured: numerous examples of libraries, firmware (for each hardware device, network switches), remote services

4 Systems code is everywhere Running networks 24/7 Cisco Catalyst network switch A Tour of Computer Systems Lab 0 Preview of next week

5 Systems code is everywhere Running networks 24/7 Linksys WRT54G switch/router A Tour of Computer Systems Lab 0 Preview of next week

6 Systems code is everywhere Feeding us!

7 Systems code is everywhere Feeding us!

8 Creating a programming language for systems Originally all systems level code written as assembly

9 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) 1 See Aside on p.4 of CS:APP

10 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) C89/C90 most common. Some updates since then: C99, C See Aside on p.4 of CS:APP 2 See Aside on p.35 of CS:APP

11 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) C89/C90 most common. Some updates since then: C99, C11 2 C was created for a specific purpose: to implement the UNIX OS (kernel, libraries, tools) 1 See Aside on p.4 of CS:APP 2 See Aside on p.35 of CS:APP

12 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) C89/C90 most common. Some updates since then: C99, C11 2 C was created for a specific purpose: to implement the UNIX OS (kernel, libraries, tools) Small, simple language. Easily ported to different hardware. 1 See Aside on p.4 of CS:APP 2 See Aside on p.35 of CS:APP

13 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) C89/C90 most common. Some updates since then: C99, C11 2 C was created for a specific purpose: to implement the UNIX OS (kernel, libraries, tools) Small, simple language. Easily ported to different hardware. C becomes de facto choice for systems (OS, drivers, tools) 1 See Aside on p.4 of CS:APP 2 See Aside on p.35 of CS:APP

14 Creating a programming language for systems Originally all systems level code written as assembly C developed by Dennis Ritchie : K&R book published 1988: 2nd edition (ANSI/ISO standard) C89/C90 most common. Some updates since then: C99, C11 2 C was created for a specific purpose: to implement the UNIX OS (kernel, libraries, tools) Small, simple language. Easily ported to different hardware. C becomes de facto choice for systems (OS, drivers, tools) C also becomes used in applications, but with some difficulty (pointers, fewer abstractions) 1 See Aside on p.4 of CS:APP 2 See Aside on p.35 of CS:APP

15 C: the Systems programming language

16 C: the Systems programming language No classes or objects

17 C: the Systems programming language No classes or objects (therefore no constructors or destructors)

18 C: the Systems programming language No classes or objects (therefore no constructors or destructors) No exceptions (no throw or catch)

19 C: the Systems programming language No classes or objects (therefore no constructors or destructors) No exceptions (no throw or catch) No templates/generics

20 C: the Systems programming language No classes or objects (therefore no constructors or destructors) No exceptions (no throw or catch) No templates/generics... C++ adds these things

21 C: the Systems programming language No classes or objects (therefore no constructors or destructors) No exceptions (no throw or catch) No templates/generics... C++ adds these things... making it very different! Don t confuse C and C++

22

23 hello.c (bits) #inclu de <st dio.h> int main() { print f("hel lo, wo rld\n" ); retur n 0;.}

24 hello.c (hexadecimal) e63 6c c f2e #include <stdio. 683e 0a0a 696e d61 696e a7b h>..int main().{ 0a e c. printf("hel 6c6f 2c20 776f 726c 645c 6e22 293b 0a20 lo, world\n"); e20 303b 0a7d 0a return 0;.}.

25 hello.c (hexadecimal)

26 hello.c (hexadecimal)

27 hello.c (hexadecimal)

28 hello.c (hexadecimal)

29 hello.c (hexadecimal)

30 hello.c (hexadecimal)

31 hello.c (hexadecimal)

32 hello.c (hexadecimal)

33 hello.c (hexadecimal)

34 hello.c (hexadecimal)

35 hello.c (hexadecimal)

36 hello compiled (hexadecimal)

37 hello compiled (hexadecimal)

38 Overview 1 A Tour of Computer Systems Systems Information is bits plus context Programs Are Translated by Other Programs into Different Forms Processors Read and Interpret Instructions Stored in Memory Caches & Memory Hierarchy The Operating System manages processes, memory, and more Wrapping up the intro 2 Lab 0 Prerequisites review Remote access with ssh The terminal Text editors Part 1 Part 2 Part 3 Handin notes 3 Preview of next week Reading Data surprises!

39 Steps in which hello.c gets converted to an executable printf.o hello.c Source program (text) Pre- processor (cpp) hello.i source program (text) Compiler (cc1) hello.s Assembly program (text) Assembler (as) hello.o Relocatable object programs (binary) Linker (ld) hello Executable object program (binary) Source: CS:APP, Bryant & O Hallaron

40 Layered view of systems Application programs Operating system Processor Main memory I/O devices Software Hardware Source: CS:APP, Bryant & O Hallaron

41 A diagram of the computer s hardware CPU PC ALU System bus Memory bus Bus interface I/O bridge Main memory USB Graphics adapter I/O bus Disk other devices such as network adapters Mouse Keyboard Disk hello executable stored on disk Source: CS:APP, Bryant & O Hallaron

42 Someone types in the hello command... CPU PC ALU System bus Memory bus Bus interface I/O bridge Main "hello" memory USB Graphics adapter I/O bus Disk controller Expansion slots for other devices such as network adapters Mouse Keyboard User types "hello" Display Disk Source: CS:APP, Bryant & O Hallaron

43 OS loads hello from the disk into memory CPU PC ALU System bus Memory bus Bus interface I/O bridge Main memory "hello,world\n" hello code USB Graphics adapter I/O bus Disk controller other devices such as network adapters Mouse Keyboard Disk hello executable stored on disk Source: CS:APP, Bryant & O Hallaron

44 How hello output reaches the display CPU PC ALU System bus Memory bus Bus interface I/O bridge Main "hello,world\n" memory hello code USB Graphics adapter I/O bus Disk other devices such as network adapters Mouse Keyboard "hello,world\n" Disk hello executable stored on disk Source: CS:APP, Bryant & O Hallaron

45 Caches on the Intel Core i7 CPU Processor package Core 0 Core 3 Regs Regs L1 d-cache L1 i-cache L1 d-cache L1 i-cache (shared by all cores) Main memory

46 Memory Hierarchy: many layers, from fast down to slow Smaller, faster, and costlier (per byte) storage devices Larger, slower, and cheaper (per byte) storage devices L5: L6: L4: L3: L2: L1: L0: Regs L1 cache (SRAM) L2 cache (SRAM) L3 cache (SRAM) Main memory (DRAM) Local secondary storage (local disks) Remote secondary storage CPU registers hold words retrieved from cache memory. L1 cache holds cache lines retrieved from the L2 cache. L2 cache holds cache lines retrieved from L3 cache L3 cache holds cache lines retrieved from memory. Main memory holds disk blocks retrieved from local disks. retrieved from disks on remote network servers.

47 OS Kernel handles switching between two processes Process A Process B Time read Disk interrupt Return from read CS:APP, Bryant & O Hallaron User code Kernel code User code Kernel code User code Context switch Context switch Source:

48 OS Kernel also manages Virtual Memory addressing Kernel virtual memory User stack (created at runtime) Memory invisible to user code Memory mapped region for shared libraries printf function Run-time heap (created by malloc) Program start 0 Read/write data Read-only code and data Loaded from the hello Source: CS:APP, Bryant & O Hallaron

49 Chapter 1: to sum up Systems skills give you a broad and deep insight into what happens when you write and/or run programs

50 Chapter 1: to sum up Systems skills give you a broad and deep insight into what happens when you write and/or run programs Potentially big impacts on speed, reliability, security

51 Chapter 1: to sum up Systems skills give you a broad and deep insight into what happens when you write and/or run programs Potentially big impacts on speed, reliability, security This is a brief preview of what is to come! You aren t expected to know all of this... yet

52 Chapter 1: to sum up Systems skills give you a broad and deep insight into what happens when you write and/or run programs Potentially big impacts on speed, reliability, security This is a brief preview of what is to come! You aren t expected to know all of this... yet Chapter 1 should be a quick read.

53 Chapter 1: to sum up Systems skills give you a broad and deep insight into what happens when you write and/or run programs Potentially big impacts on speed, reliability, security This is a brief preview of what is to come! You aren t expected to know all of this... yet Chapter 1 should be a quick read. Don t worry about memorizing Amdahl s law, it is a useful principle to keep in mind but I will not ask you to solve those math problems

54 2 Lab 0 Prerequisites review Remote access with ssh The terminal Text editors Part 1 Part 2 Part 3 Handin notes

55 Your first lab assignment

56 Prerequisites A few notes on this process: bash shell, text editors, permissions Also: remote access via ssh Be careful about usernames, and be aware there is a temporary block after a certain number of failed login attempts.

57 Using Sun Ray terminals Log in using UNO username, password.

58 Using Sun Ray terminals All labs are done using math209 (linux)... BUT you can access math209 on the Sun Ray in class OR remotely (on or off-campus) using ssh

59 Using git-bash

60 Using git-bash

61 Using PuTTY

62 Using PuTTY Pay attention to which prompt is which

63 Directories and permissions changed directory with cd command

64 Directories and permissions changed directory with cd command created a directory with mkdir command

65 Directories and permissions changed directory with cd command created a directory with mkdir command changed permissions with chmod command

66 Directories and permissions changed directory with cd command created a directory with mkdir command changed permissions with chmod command

67 Directories and permissions Source: Open Source GIS: A GRASS GIS Approach, First Edition, 2002

68 Directory hierarchy Starting at the root / (root of file system) bin etc home lib opt sbin tmp usr var

69 Directory hierarchy System files/programs / (root of file system) bin bash home usr bin... firefox vim lib share...

70 Directory hierarchy Our work happens in /home / (root of file system)... home... hmahdi matoups2... usr...

71 Directory hierarchy We each created a 2467 working directory in our own home directory / (root of file system)... home... hmahdi matoups Downloads usr

72 Directory hierarchy... and worked on files within that directory / (root of file system) home matoups introlab-handout.tar part1 part1.c student.c student.h part2 part3

73 Directory hierarchy There is also a separate class directory /home/csci2467 / (root of file system) home CSCI2467 handin labs lab0 introlab-handout.tar matoups part1 part1.c part1

74 Directory hierarchy / (root of file system) home CSCI2467 handin matoups2 labs lab0 introlab-handout.tar matoups2 2467

75 Directory hierarchy / (root of file system) home CSCI2467 handin... matoups2 labs matoups part1 part1.c part1

76 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~

77 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt.

78 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt... is an alias to the parent directory: cp ~/foo.txt..

79 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt... is an alias to the parent directory: cp ~/foo.txt.. * will match as many characters as it can. cp ~/*.txt.

80 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt... is an alias to the parent directory: cp ~/foo.txt.. * will match as many characters as it can. cp ~/*.txt. Example: objdump -d *

81 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt... is an alias to the parent directory: cp ~/foo.txt.. * will match as many characters as it can. cp ~/*.txt. Example: objdump -d * Example: rm *.c (be very very very careful!!)

82 Terminal Shortcuts (bash shell) is an alias to your home directory: cp foo.txt ~. is an alias to your present directory: cp ~/foo.txt... is an alias to the parent directory: cp ~/foo.txt.. * will match as many characters as it can. cp ~/*.txt. Example: objdump -d * Example: rm *.c (be very very very careful!!) There is no trash with rm. It is gone.

83 More bash tricks Pressing tab will autocomplete filenames.

84 More bash tricks Pressing tab will autocomplete filenames. Use the up & down arrow keys to scroll through your previous commands.

85 More bash tricks Pressing tab will autocomplete filenames. Use the up & down arrow keys to scroll through your previous commands. Control+R lets you search your command history.

86 More bash tricks Pressing tab will autocomplete filenames. Use the up & down arrow keys to scroll through your previous commands. Control+R lets you search your command history. Control+C terminates your current program.

87 More bash tricks Pressing tab will autocomplete filenames. Use the up & down arrow keys to scroll through your previous commands. Control+R lets you search your command history. Control+C terminates your current program. Control+D (on a blank line) exits the terminal.

88 Text editors Source: xkcd.com

89 nano Note command-key functions described at bottom

90 vi / vim see vimtutor command stateful or modal editor: can be in command, insert or visual mode.

91 emacs Described in Section 4 of Unix programming tools (optional reading)

92 gedit Nice GUI you can use in the lab Disadvantage: doesn t work (easily) via ssh Previous examples were all text-mode (terminal-based, work the same over ssh)

93 Sublime Text

94 How to use Sublime Text for these labs Haydar can show you how to set up SFTP for sublime to keep files in sync with our server. (See resources section of class website)

95 Notepad++ Haydar can show you the steps to get notepad++ to sync with our server.

96 Notepad++ Haydar can show you the steps to get notepad++ to sync with our server.

97 Notepad++ Haydar can show you the steps to get notepad++ to sync with our server.

98 Part 1: Who are you?

99 Part 1: Who are you?

100 Part 1: Who are you?

101 Part 1: Compiling and running Save (in text editor)

102 Part 1: Compiling and running Save (in text editor) Compile with gcc as given in lab manual

103 Part 1: Compiling and running Save (in text editor) Compile with gcc as given in lab manual Did compilation succeed? (No errors means yes)

104 Part 1: Compiling and running Save (in text editor) Compile with gcc as given in lab manual Did compilation succeed? (No errors means yes) Run with./part1

105 Part 1: Compiling and running Save (in text editor) Compile with gcc as given in lab manual Did compilation succeed? (No errors means yes) Run with./part1 Turn in by copying into /home/csci2467/handin/<userid>

106 Part 2: lifecycle of a C program A slightly modified hello.c

107 Part 2: lifecycle of a C program printf.o hello.c Source program (text) Pre- hello.i processor (cpp) source program (text) Compiler (cc1) hello.s Assembly program (text) Assembler (as) hello.o Relocatable object programs (binary) Linker (ld) hello Executable object program (binary) Source: Bryant & O Hallaron (2003)

108 Part 3: How long does it take to copy an array? Source: Bryant & O Hallaron (2003)

109 Part 3: How long does it take to copy an array? Source: Bryant & O Hallaron (2003)

110 Part 3: Memory mountain Source: Bryant & O Hallaron (2003)

111 Part 3: Memory hierarchy from Chapter 1 Smaller, faster, and costlier (per byte) storage devices Larger, slower, and cheaper (per byte) storage devices L5: L6: O Hallaron (2003) L4: L3: L2: L1: L0: Regs L1 cache (SRAM) L2 cache (SRAM) L3 cache (SRAM) Main memory (DRAM) Local secondary storage (local disks) Remote secondary storage CPU registers hold words retrieved from cache memory. L1 cache holds cache lines retrieved from the L2 cache. L2 cache holds cache lines retrieved from L3 cache L3 cache holds cache lines retrieved from memory. Main memory holds disk blocks retrieved from local disks. retrieved from disks on remote network servers. Source: Bryant &

112 Wrapping up: Handing in your work To hand in your work (when finished), you will put the files into /home/csci2467/handin/<username> on math209 (not your own system) Programs must work when compiled with gcc on math209 You can work in the lab or remotely via ssh. Either way your program must compile and run on math209. (Compile and run before you hand in)

113 3 Preview of next week Reading Data surprises!

114 Chapter 2 is long, start today! Read 2.1 before Monday January 29 Section 2.2 for Wednesday January 31 Section 2.3 for Monday February 5

115 Source: xkcd.com

116 ints are not Integers Source: xkcd.com Z is infinitely large, computer memory is not. This is the fundamental challenge!

CSCI2467: Systems Programming Concepts

CSCI2467: Systems Programming Concepts CSCI2467: Systems Programming Concepts Slide set 0: Introduction to the course Instructor: Matthew A. Toups, ms Fall 2018 Today s Overview 1 Welcome What s new? Topics The labs Why systems? 2 Syllabus

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today:! Welcome to EECS 213! Lecture topics and assignments Next time:! Bits & bytes! and some Boolean algebra Fabián E. Bustamante, 2007 Welcome to Intro. to Computer

More information

Introduction to Computer Systems

Introduction to Computer Systems CS-213 Introduction to Computer Systems Yan Chen Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F 06 Teaching staff Instructor TA Prof. Yan Chen (Thu 2-4pm, Tech

More information

Bilgisayar Sistemlerine Genel Bakış

Bilgisayar Sistemlerine Genel Bakış Süleyman Demirel Üniversitesi / Mühendislik Fak. / Bilgisayar Mühendisliği Carnegie Mellon Bölümü Bilgisayar Sistemlerine Genel Bakış BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr.

More information

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp)

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp) A software view User Interface Computer Systems MTSU CSCI 3240 Spring 2016 Dr. Hyrum D. Carroll Materials from CMU and Dr. Butler How it works hello.c #include int main() { printf( hello, world\n

More information

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011 Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Spring 2011 Outline Using Secure Shell Clients GCC Some Examples Intro to C * * Windows File transfer client:

More information

Carnegie Mellon. Linux Boot Camp. Jack, Matthew, Nishad, Stanley 6 Sep 2016

Carnegie Mellon. Linux Boot Camp. Jack, Matthew, Nishad, Stanley 6 Sep 2016 Linux Boot Camp Jack, Matthew, Nishad, Stanley 6 Sep 2016 1 Connecting SSH Windows users: MobaXterm, PuTTY, SSH Tectia Mac & Linux users: Terminal (Just type ssh) andrewid@shark.ics.cs.cmu.edu 2 Let s

More information

CSCI 2467, Fall 2017 Lab 0: Introductions to C and Unix Due: Thursday August. 24, 11:59PM

CSCI 2467, Fall 2017 Lab 0: Introductions to C and Unix Due: Thursday August. 24, 11:59PM CSCI 2467, Fall 2017 Lab 0: Introductions to C and Unix Due: Thursday August. 24, 11:59PM 2467 Instructor: M. Toups mtoups@cs.uno.edu Office: Math 335 1 Introductions The purpose of this assignment is

More information

Computer Systems Organization

Computer Systems Organization Computer Systems Organization 1 Outline 2 A software view User Interface 3 How it works 4 The gcc compilation system 5 The gcc compilation system hello.c (source code) Pre-processor (cpp) hello.i (modified

More information

ENCE Computer Organization and Architecture. Chapter 1. Software Perspective

ENCE Computer Organization and Architecture. Chapter 1. Software Perspective Computer Organization and Architecture Chapter 1 Software Perspective The Lifetime of a Simple Program A Simple Program # include int main() { printf( hello, world\n ); } The goal of this course

More information

Lab 1 Introduction to UNIX and C

Lab 1 Introduction to UNIX and C Name: Lab 1 Introduction to UNIX and C This first lab is meant to be an introduction to computer environments we will be using this term. You must have a Pitt username to complete this lab. The doc is

More information

Introduction Presentation A

Introduction Presentation A CSE 2421/5042: Systems I Low-Level Programming and Computer Organization Introduction Presentation A Read carefully: Bryant Chapter 1 Study: Reek Chapter 2 Skim: Reek Chapter 1 08/22/2018 Gojko Babić Some

More information

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University Introduction to Linux Woo-Yeong Jeong (wooyeong@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating system of a computer What is an

More information

Linux and Git Boot Camp

Linux and Git Boot Camp Linux and Git Boot Camp Roshan, Zack, Blair, Ian Jan. 21, 2018 1 Connecting Clients SSH Windows users: MobaXterm, PuTTY, SSH Tectia Mac & Linux users: Terminal (Just type ssh) ssh andrewid@shark.ics.cs.cmu.edu

More information

CSCI2467: Systems Programming Concepts

CSCI2467: Systems Programming Concepts CSCI2467: Systems Programming Concepts Slideset 2: Information as Data (CS:APP Chap. 2) Instructor: M. Toups Spring 2018 Course updates datalab out today! - due after Mardi gras... - do not wait until

More information

Intermediate Programming, Spring Misha Kazhdan

Intermediate Programming, Spring Misha Kazhdan 600.120 Intermediate Programming, Spring 2017 Misha Kazhdan Outline Unix/Linux command line Basics of the Emacs editor Compiling and running a simple C program Cloning a repository Connecting to ugrad

More information

Perl and R Scripting for Biologists

Perl and R Scripting for Biologists Perl and R Scripting for Biologists Lukas Mueller PLBR 4092 Course overview Linux basics (today) Linux advanced (Aure, next week) Why Linux? Free open source operating system based on UNIX specifications

More information

Read-only memory (ROM): programmed during production Programmable ROM (PROM): can be programmed once SRAM (Static RAM)

Read-only memory (ROM): programmed during production Programmable ROM (PROM): can be programmed once SRAM (Static RAM) Memory Hierarchy Computer Systems Organization (Spring 2017) CSCI-UA 201, Section 3 Storage: Memory and Disk (and other I/O Devices) Instructor: Joanna Klukowska Slides adapted from Randal E. Bryant and

More information

Introduction to Linux. Fundamentals of Computer Science

Introduction to Linux. Fundamentals of Computer Science Introduction to Linux Fundamentals of Computer Science Outline Operating Systems Linux History Linux Architecture Logging in to Linux Command Format Linux Filesystem Directory and File Commands Wildcard

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Dong-Yun Lee (dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating

More information

CS CS Tutorial 2 2 Winter 2018

CS CS Tutorial 2 2 Winter 2018 CS CS 230 - Tutorial 2 2 Winter 2018 Sections 1. Unix Basics and connecting to CS environment 2. MIPS Introduction & CS230 Interface 3. Connecting Remotely If you haven t set up a CS environment password,

More information

Session 1: Accessing MUGrid and Command Line Basics

Session 1: Accessing MUGrid and Command Line Basics Session 1: Accessing MUGrid and Command Line Basics Craig A. Struble, Ph.D. July 14, 2010 1 Introduction The Marquette University Grid (MUGrid) is a collection of dedicated and opportunistic resources

More information

Lec 1 add-on: Linux Intro

Lec 1 add-on: Linux Intro Lec 1 add-on: Linux Intro Readings: - Unix Power Tools, Powers et al., O Reilly - Linux in a Nutshell, Siever et al., O Reilly Summary: - Linux File System - Users and Groups - Shell - Text Editors - Misc

More information

A Tour of Computer Systems

A Tour of Computer Systems CHAPTER 1 A Tour of Computer Systems 11 Information Is Bits + Context 3 12 Programs Are Translated by Other Programs into Different Forms 4 13 It Pays to Understand How Compilation Systems Work 6 14 Processors

More information

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry Intro to Linux and C CSCI 2400/ ECE 3217: Computer Architecture Instructors: David Ferry 1 Overview Linux C Hello program in C Compiling 2 History of Linux Way back in the day: Bell Labs Unix Widely available

More information

CSE 351. Introduction & Course Tools

CSE 351. Introduction & Course Tools CSE 351 Introduction & Course Tools Meet Your TA TA Name Interesting information examples: Where you are from Year in school Hobbies Unique talents Introductions Pick an interesting (but quick) ice breaker

More information

Lab 1 Introduction to UNIX and C

Lab 1 Introduction to UNIX and C Name: Lab 1 Introduction to UNIX and C This first lab is meant to be an introduction to computer environments we will be using this term. You must have a Pitt username to complete this lab. NOTE: Text

More information

CSC111 Computer Science II

CSC111 Computer Science II CSC111 Computer Science II Lab 1 Getting to know Linux Introduction The purpose of this lab is to introduce you to the command line interface in Linux. Getting started In our labs If you are in one of

More information

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science High Performance Computing Lecture 1 Matthew Jacob Indian Institute of Science Agenda 1. Program execution: Compilation, Object files, Function call and return, Address space, Data & its representation

More information

1 Installation (briefly)

1 Installation (briefly) Jumpstart Linux Bo Waggoner Updated: 2014-09-15 Abstract A basic, rapid tutorial on Linux and its command line for the absolute beginner. Prerequisites: a computer on which to install, a DVD and/or USB

More information

Recitation #1 Boot Camp. August 30th, 2016

Recitation #1 Boot Camp. August 30th, 2016 18-600 Recitation #1 Boot Camp August 30th, 2016 Welcome to 18-600! Purpose of recitation Useful tools, information pertaining to the labs Hands-on activities Problem solving and exam prep Last ~30 mins

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Kisik Jeong (kisik@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu What is Linux? A Unix-like operating

More information

INF322 Operating Systems

INF322 Operating Systems Galatasaray University Computer Engineering Department INF322 Operating Systems TP01: Introduction to Linux Ozan Çağlayan ocaglayan@gsu.edu.tr ozancaglayan.com Fundamental Concepts Definition of Operating

More information

EE516: Embedded Software Project 1. Setting Up Environment for Projects

EE516: Embedded Software Project 1. Setting Up Environment for Projects EE516: Embedded Software Project 1. Setting Up Environment for Projects By Dong Jae Shin 2015. 09. 01. Contents Introduction to Projects of EE516 Tasks Setting Up Environment Virtual Machine Environment

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical

More information

CS197U: A Hands on Introduction to Unix

CS197U: A Hands on Introduction to Unix CS197U: A Hands on Introduction to Unix Lecture 3: UNIX Operating System Organization Tian Guo CICS, Umass Amherst 1 Reminders Assignment 2 is due THURSDAY 09/24 at 3:45 pm Directions are on the website

More information

Lecture 1. A. Sahu and S. V. Rao. Indian Institute of Technology Guwahati

Lecture 1. A. Sahu and S. V. Rao. Indian Institute of Technology Guwahati Lecture 1 Introduction to Computing A. Sahu and S. V. Rao Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati 1 Outline Computer System Problem Solving and Flow Chart Linux Command ls, mkdir,

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 6: Introduction to C (pronobis@kth.se) Overview Overview Lecture 6: Introduction to C Roots of C Getting started with C Closer look at Hello World Programming Environment Schedule Last time (and

More information

Chapter 1 A Tour of Computer Systems

Chapter 1 A Tour of Computer Systems Chapter 1 A Tour of Computer Systems A computer system consists of hardware and systems software that work together to run application programs. Specific implementations of systems change over time, but

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA Sanghoon Han(sanghoon.han@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Announcement (1) Please come

More information

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4

Beyond this course. Machine code. Readings: CP:AMA 2.1, 15.4 Beyond this course Readings: CP:AMA 2.1, 15.4 CS 136 Spring 2018 13: Beyond 1 Machine code In Section 04 we briefly discussed compiling: converting source code into machine code so it can be run or executed.

More information

CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX

CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX CS 215 Fundamentals of Programming II Spring 2019 Very Basic UNIX This handout very briefly describes how to use Unix and how to use the Linux server and client machines in the EECS labs that dual boot

More information

Recitation #1 Unix Boot Camp. August 29th, 2017

Recitation #1 Unix Boot Camp. August 29th, 2017 18-600 Recitation #1 Unix Boot Camp August 29th, 2017 Welcome to 18-600! Purpose of recitation Useful tools, information pertaining to the labs Hands-on activities Problem solving and exam prep Last ~30

More information

Linux at the Command Line Don Johnson of BU IS&T

Linux at the Command Line Don Johnson of BU IS&T Linux at the Command Line Don Johnson of BU IS&T We ll start with a sign in sheet. We ll end with a class evaluation. We ll cover as much as we can in the time allowed; if we don t cover everything, you

More information

CISC 220 fall 2011, set 1: Linux basics

CISC 220 fall 2011, set 1: Linux basics CISC 220: System-Level Programming instructor: Margaret Lamb e-mail: malamb@cs.queensu.ca office: Goodwin 554 office phone: 533-6059 (internal extension 36059) office hours: Tues/Wed/Thurs 2-3 (this week

More information

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions Lanka Education and Research Network Linux Architecture, Linux File System, Linux Basic Commands 28 th November 2016 Dilum Samarasinhe () Overview History of Linux Linux Architecture Linux File System

More information

CS Fundamentals of Programming II Fall Very Basic UNIX

CS Fundamentals of Programming II Fall Very Basic UNIX CS 215 - Fundamentals of Programming II Fall 2012 - Very Basic UNIX This handout very briefly describes how to use Unix and how to use the Linux server and client machines in the CS (Project) Lab (KC-265)

More information

Version Control with Git

Version Control with Git Version Control with Git Methods & Tools for Software Engineering (MTSE) Fall 2017 Prof. Arie Gurfinkel based on https://git-scm.com/book What is Version (Revision) Control A system for managing changes

More information

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview Today CSCI 4061 Introduction to s Instructor: Abhishek Chandra OS Evolution Unix Overview Unix Structure Shells and Utilities Calls and APIs 2 Evolution How did the OS evolve? Dependent on hardware and

More information

27-Sep CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation. Faculty of Computer Science, Dalhousie University

27-Sep CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation. Faculty of Computer Science, Dalhousie University Lecture 4 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lab 4: Exploring bash and C Compilation 27-Sep-2017 Location: Goldberg CS Building Time: Wednesday, 16:05

More information

EL2310 Scientific Programming

EL2310 Scientific Programming (yaseminb@kth.se) Overview Overview Roots of C Getting started with C Closer look at Hello World Programming Environment Discussion Basic Datatypes and printf Schedule Introduction to C - main part of

More information

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview Today CSCI 4061 Introduction to s Instructor: Abhishek Chandra OS Evolution Unix Overview Unix Structure Shells and Utilities Calls and APIs 2 Evolution How did the OS evolve? Generation 1: Mono-programming

More information

Chapter Two. Lesson A. Objectives. Exploring the UNIX File System and File Security. Understanding Files and Directories

Chapter Two. Lesson A. Objectives. Exploring the UNIX File System and File Security. Understanding Files and Directories Chapter Two Exploring the UNIX File System and File Security Lesson A Understanding Files and Directories 2 Objectives Discuss and explain the UNIX file system Define a UNIX file system partition Use the

More information

CSCI 2132 Software Development. Lecture 3: Unix Shells and Other Basic Concepts

CSCI 2132 Software Development. Lecture 3: Unix Shells and Other Basic Concepts CSCI 2132 Software Development Lecture 3: Unix Shells and Other Basic Concepts Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 10-Sep-2018 (3) CSCI 2132 1 Introduction to UNIX

More information

EECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou

EECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou EECS 2031 - Software Tools Lab 2 Tutorial: Introduction to UNIX/Linux Tilemachos Pechlivanoglou (tipech@eecs.yorku.ca) Sep 22 & 25, 2017 Material marked with will be in your exams Sep 22 & 25, 2017 Introduction

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Linux Systems Administration Getting Started with Linux

Linux Systems Administration Getting Started with Linux Linux Systems Administration Getting Started with Linux Network Startup Resource Center www.nsrc.org These materials are licensed under the Creative Commons Attribution-NonCommercial 4.0 International

More information

CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C

CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C CpSc 1111 Lab 1 Introduction to Unix Systems, Editors, and C Welcome! Welcome to your CpSc 111 lab! For each lab this semester, you will be provided a document like this to guide you. This material, as

More information

LAB #5 Intro to Linux and Python on ENGR

LAB #5 Intro to Linux and Python on ENGR LAB #5 Intro to Linux and Python on ENGR 1. Pre-Lab: In this lab, we are going to download some useful tools needed throughout your CS career. First, you need to download a secure shell (ssh) client for

More information

Introduction to Linux for BlueBEAR. January

Introduction to Linux for BlueBEAR. January Introduction to Linux for BlueBEAR January 2019 http://intranet.birmingham.ac.uk/bear Overview Understanding of the BlueBEAR workflow Logging in to BlueBEAR Introduction to basic Linux commands Basic file

More information

CSCI 2132 Software Development. Lecture 4: Files and Directories

CSCI 2132 Software Development. Lecture 4: Files and Directories CSCI 2132 Software Development Lecture 4: Files and Directories Instructor: Vlado Keselj Faculty of Computer Science Dalhousie University 12-Sep-2018 (4) CSCI 2132 1 Previous Lecture Some hardware concepts

More information

Programming 1 - Honors

Programming 1 - Honors Programming 1 - Honors Lecture 1 COP 3014 Spring 2017 January 10, 2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer. ISA - Instruction Set Architecture: the specific

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Introduction to Cygwin Operating Environment

Introduction to Cygwin Operating Environment Introduction to Cygwin Operating Environment ICT 106 Fundamentals of Computer Systems Eric Li ICT106_Pract_week 1 1 What s Cygwin? Emulates Unix/Linux environment on a Windows Operating System; A collection

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 From Programs to Processes Hello. In

More information

Filesystem Hierarchy and Permissions

Filesystem Hierarchy and Permissions and Linux Prepared by Steven Gordon on 19 April 2017 Common/Reports/linux-file-permissions.tex, r1417 1/15 Multiuser and Server Operating System Linux systems are commonly used as a multi-user system E.g.

More information

Getting started with Hugs on Linux

Getting started with Hugs on Linux Getting started with Hugs on Linux COM1022 Functional Programming Techniques Dr Hans Georg Schaathun University of Surrey Autumn 2009 Week 7 Dr Hans Georg Schaathun Getting started with Hugs on Linux Autumn

More information

CMSC 104 Lecture 2 by S Lupoli adapted by C Grasso

CMSC 104 Lecture 2 by S Lupoli adapted by C Grasso CMSC 104 Lecture 2 by S Lupoli adapted by C Grasso A layer of software that runs between the hardware and the user. Controls how the CPU, memory and I/O devices work together to execute programs Keeps

More information

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines Introduction to UNIX Logging in Basic system architecture Getting help Intro to shell (tcsh) Basic UNIX File Maintenance Intro to emacs I/O Redirection Shell scripts Logging in most systems have graphical

More information

Continue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Last Time: A Simple(st) C Program 1-hello-world.c!

Continue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Last Time: A Simple(st) C Program 1-hello-world.c! Continue: How do I learn C? C Primer Continued (Makefiles, debugging, and more ) Hello Word! ~/ctest/ In addition to syntax you need to learn: the Tools the Libraries. And the Documentation. Maria Hybinette,

More information

Welcome To The New Foundations of Computer Systems (Fall 2017)

Welcome To The New Foundations of Computer Systems (Fall 2017) Welcome To The New 18-600 Foundations of Computer Systems (Fall 2017) Instructors: John P. Shen & Gregory Kesden Head TAs: Abhinav Jauhri & Gautam Arakalgud 8/28/2017 ( J.P. Shen) 18-600 Lecture #1 1 18-600

More information

C++ Programming on Linux

C++ Programming on Linux C++ Programming on Linux What is Linux? CS 2308 Spring 2017 Jill Seaman Slides 14-end are for your information only, you will not be tested over that material. 1 l an operating system l Unix-like l Open

More information

Contents. Note: pay attention to where you are. Note: Plaintext version. Note: pay attention to where you are... 1 Note: Plaintext version...

Contents. Note: pay attention to where you are. Note: Plaintext version. Note: pay attention to where you are... 1 Note: Plaintext version... Contents Note: pay attention to where you are........................................... 1 Note: Plaintext version................................................... 1 Hello World of the Bash shell 2 Accessing

More information

Essential Unix and Linux! Perl for Bioinformatics, ! F. Pineda

Essential Unix and Linux! Perl for Bioinformatics, ! F. Pineda Essential Unix and Linux! Perl for Bioinformatics, 140.636! F. Pineda Generic computer architecture Memory Storage Fig. 1.2 From Designing Embedded Hardware, 2 nd Ed. by John Catsoulis OS concepts Shell

More information

Introduction to Linux

Introduction to Linux Introduction to Linux The command-line interface A command-line interface (CLI) is a type of interface, that is, a way to interact with a computer. Window systems, punched cards or a bunch of dials, buttons

More information

GNU/Linux 101. Casey McLaughlin. Research Computing Center Spring Workshop Series 2018

GNU/Linux 101. Casey McLaughlin. Research Computing Center Spring Workshop Series 2018 GNU/Linux 101 Casey McLaughlin Research Computing Center Spring Workshop Series 2018 rccworkshop IC;3df4mu bash-2.1~# man workshop Linux101 RCC Workshop L101 OBJECTIVES - Operating system concepts - Linux

More information

CSE 391 Lecture 3. bash shell continued: processes; multi-user systems; remote login; editors

CSE 391 Lecture 3. bash shell continued: processes; multi-user systems; remote login; editors CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller and Ruth Anderson http://www.cs.washington.edu/391/

More information

Compilation, Disassembly, and Profiling (in Linux)

Compilation, Disassembly, and Profiling (in Linux) Compilation, Disassembly, and Profiling (in Linux) CS 485: Systems Programming Spring 2016 Instructor: Neil Moore 1 Turning C into Object Code Code in files p1.c p2.c Compile with command: gcc O1 p1.c

More information

Review of Fundamentals

Review of Fundamentals Review of Fundamentals 1 The shell vi General shell review 2 http://teaching.idallen.com/cst8207/14f/notes/120_shell_basics.html The shell is a program that is executed for us automatically when we log

More information

F28HS Hardware-Software Interface: Systems Programming

F28HS Hardware-Software Interface: Systems Programming F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2016/17 0 No proprietary software has

More information

CSCI2467: Systems Programming Concepts

CSCI2467: Systems Programming Concepts CSCI2467: Systems Programming Concepts Class activity: bash shell literacy Instructor: Matthew Toups Fall 2017 Today 0 Shells History Usage Scripts vs. Programs 1 Bash shell: practical uses for your systems

More information

Review of Fundamentals. Todd Kelley CST8207 Todd Kelley 1

Review of Fundamentals. Todd Kelley CST8207 Todd Kelley 1 Review of Fundamentals Todd Kelley kelleyt@algonquincollege.com CST8207 Todd Kelley 1 GPL the shell SSH (secure shell) the Course Linux Server RTFM vi general shell review 2 These notes are available on

More information

Unix and C Program Development SEEM

Unix and C Program Development SEEM Unix and C Program Development SEEM 3460 1 Operating Systems A computer system cannot function without an operating system (OS). There are many different operating systems available for PCs, minicomputers,

More information

Intro to HPC Exercise

Intro to HPC Exercise Intro to HPC Exercise Lab Exercise: Introduction to HPC The assumption is that you have already tested your Amazon Web Service Elastic Compute Cloud (EC2) virtual machines chosen for the LCI hands on exercises.

More information

Getting Started with UNIX

Getting Started with UNIX Getting Started with UNIX What is UNIX? Boston University Information Services & Technology Course Number: 4000 Course Instructor: Kenny Burns Operating System Interface between a user and the computer

More information

Laboratory 1 Semester 1 11/12

Laboratory 1 Semester 1 11/12 CS2106 National University of Singapore School of Computing Laboratory 1 Semester 1 11/12 MATRICULATION NUMBER: In this lab exercise, you will get familiarize with some basic UNIX commands, editing and

More information

Filesystem Hierarchy and Permissions

Filesystem Hierarchy and Permissions 2 and Prepared by Steven Gordon on 19 April 2017 Common/Reports/linux-file-permissions.tex, r1417 1 Multiuser and Server Operating System systems are commonly used as a multi-user system E.g. multiple

More information

Introduction of Linux

Introduction of Linux Introduction of Linux 阳 oslab2018_class1@163.com 寅 oslab2018_class2@163.com PART I Brief Introduction Basic Conceptions & Environment Install & Configure a Virtual Machine Basic Commands PART II Shell

More information

Introduction to Linux Basics

Introduction to Linux Basics Introduction to Linux Basics Part-I Georgia Advanced Computing Resource Center University of Georgia Zhuofei Hou, HPC Trainer zhuofei@uga.edu Outline What is GACRC? What is Linux? Linux Command, Shell

More information

Short Read Sequencing Analysis Workshop

Short Read Sequencing Analysis Workshop Short Read Sequencing Analysis Workshop Day 2 Learning the Linux Compute Environment In-class Slides Matt Hynes-Grace Manager of IT Operations, BioFrontiers Institute Review of Day 2 Videos Video 1 Introduction

More information

CSC116: Introduction to Computing - Java

CSC116: Introduction to Computing - Java CSC116: Introduction to Computing - Java Course Information Introductions Website Syllabus Schedule Computing Environment AFS (Andrew File System) Linux/Unix Commands Helpful Tricks Computers First Java

More information

The Memory Hierarchy 10/25/16

The Memory Hierarchy 10/25/16 The Memory Hierarchy 10/25/16 Transition First half of course: hardware focus How the hardware is constructed How the hardware works How to interact with hardware Second half: performance and software

More information

CSE 390a Lecture 3. Multi-user systems; remote login; editors; users/groups; permissions

CSE 390a Lecture 3. Multi-user systems; remote login; editors; users/groups; permissions CSE 390a Lecture 3 Multi-user systems; remote login; editors; users/groups; permissions slides created by Marty Stepp, modified by Jessica Miller and Ruth Anderson http://www.cs.washington.edu/390a/ 1

More information

9 and 11-Jan CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial. FCS Computing Environment, SVN Tutorial

9 and 11-Jan CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial. FCS Computing Environment, SVN Tutorial Lecture 1 p.1 Faculty of Computer Science, Dalhousie University CSCI 4152/6509 Natural Language Processing Lab 1: FCS Computing Environment, SVN Tutorial 9 and 11-Jan-2019 Lab Instructor: Dijana Kosmajac,

More information

What s next. Computer Systems A Programmer s Perspective

What s next. Computer Systems A Programmer s Perspective What s next Computer Systems A Programmer s Perspective 198 The role of the operating system Protect the computer from misuse Provide an abstraction for using the hardware so that programs can be written

More information

CS 246 Winter Tutorial 1

CS 246 Winter Tutorial 1 CS 246 Winter 2015 - Tutorial 1 January 11, 2016 1 Summary General Administration Stuff CS Undergraduate Environment Useful Software Basic Commands.profile Text Editors 2 General Administration Stuff Course

More information

Introduction to Unix The Windows User perspective. Wes Frisby Kyle Horne Todd Johansen

Introduction to Unix The Windows User perspective. Wes Frisby Kyle Horne Todd Johansen Introduction to Unix The Windows User perspective Wes Frisby Kyle Horne Todd Johansen What is Unix? Portable, multi-tasking, and multi-user operating system Software development environment Hardware independent

More information

Linux for Beginners. Windows users should download putty or bitvise:

Linux for Beginners. Windows users should download putty or bitvise: Linux for Beginners Windows users should download putty or bitvise: https://putty.org/ Brief History UNIX (1969) written in PDP-7 assembly, not portable, and designed for programmers as a reaction by Bell

More information