SlideShare a Scribd company logo
1 of 33
CSCE 510 -
Systems
Programming
Lecture 01 - Template
CSCE 510 Jan 14, 2013
Overview
Last Time
 Outback
Readings for today
 Text Chapter 1 and 2
Prologue
 A Brief History - Systems programming and Unix (Chap 1)
Interlude - Course Pragmatics, CS man of the day, Quiz
Epilogue
 fundamental Unix/systems programming (Chap 2)
 Kernel, Shell, Users/groups, Directory Hierarchy
 File I/O model
 processes
What is Systems Programming?
 Systems Software
 Donavon Diagram
1/14/2013 CSCE 510 Sp
13 -
Slide - 3
Systems Programming by John Donovan, 1972
The Dark Ages - JCL
1/14/2013 CSCE 510
Slide - 4
 Darkages ~ 1972
 JCL?
 Batch Processing
 Job card?
Systems Programming by John Donovan, 1972
What is CSCE 510?
 First version – assembly language,
 macro processors,
 linkers …
 Unix/C version circa 1987  2002 version
 Make
 M4/cpp macro processors
 Shell1: variables, regexps, filename completion, history
 Shell2: I/O redirection, signals, …
 webserver
 2008 Summer version – done in ruby
1/4/2013 CSCE 510 Sp 13
-
Slide - 5
CSCE 510 - 2005
CSCE 510 the 2013 version
1/4/2013 CSCE 510 Sp 13
-
Slide - 7
 The Usual Suspects: programming assignments
 ls, ar, cpp/m4, shell1, shell2, webserver0, SSH
 New possibilities
 Windows – don’t get me started
 Environments: Rails, Posix Threads, Iphone/Android Apps, Vmware,
Cloud Computing, SourceForge, GitHub
 Unix Software: Shells. Gcc/g++, make, script/pseudo-terminals
 Tools: Valgrind, Cucumber/capybara, Rspec, gdb,
 Database: Mysql; postgress
 Languages: …
 Editors/IDEs: Nano/pico, Vi/Vim, Emacs, OS X Textmate
 IDE: Eclipse Netbeans
 Software Engineering: Agile, Git, Junit, Bugzilla,
Which Language?
1/4/2013 CSCE 510 Sp 13
-
Slide - 8
 Linux Journal Best of 2012
 Best Programming Language
 Python 28%
 C++ 19%
 C 18.9%
 Java 8.2% Perl 6.1% Other 4% Ruby 3.1% JavaScript
2.4% C# .7% Erlang .7% Haskell
 (2012-12-02). Linux Journal December 2012 (Kindle
Locations 1628-1633). BELLTOWN MEDIA INC. Kindle
Edition.
Linux Journal December 2012
1/4/2013 CSCE 510 Sp 13
-
Slide - 9
Linux Journal December 2012
More Linux Journal Best of 2012
1/4/2013 CSCE 510 Sp 13
-
Slide - 10
 Best IDE –Eclipse 27%, vim 26%, Netbeans 5% …
 BEST REVISION CONTROL SYSTEM Git 63%, Subversion 18.6%, …
 BEST OPEN-SOURCE CONFIGURATION MANAGEMENT TOOL – Puppet
42% …
 BEST PLATFORM FOR DEVELOPING RICH INTERNET APPS - HTML5 87%
 BEST PACKAGE MANAGEMENT APPLICATION – apt 34%
 BEST CONTENT MANAGEMENT SYSTEM
 WordPress 35%, Drupal 28%, Joomla 15%
 BEST LINUX-FRIENDLY WEB HOSTING COMPANY–other 19%
 BEST LINUX BOOK
 Tie between Linux in a Nutshell and Debian Administrator’s Handbook
 Second place goes to The Linux Programming Interface: A Linux and UNIX
System Programming Handbook, by Michael Kerrisk.
 BEST OTHER LINUX-BASED GADGET – Raspberry Pi
Linux Journal December 2012
A Brief History of Time (UNIX and C)
1/4/2013 CSCE 510 Sp 13
-
Slide - 11
 1969 – First Unix Ken Thompson at AT&T Bell Labs
 Unix pun on MULTICS
 Ideas from Multics:
 Tree structured file system
 Program for interpreting commands (shell)
 Files – unstructured streams of bytes
 1970 Unix rewritten in assembly for DEC PDP-11
 C – Dennis Ritchie – a systems programming language
 BCPL  B (Thompson)  C
 1970 Kernel rewritten in C – eases porting to other
machines
 1984 Turing Award Lecture – C compiler learned
backdoor
Chapter 1 and …
Berkeley Software Division (BSD)
1/4/2013 CSCE 510 Sp 13
-
Slide - 12
 (1975) Thompson visiting Prof. at UC-Berkeley
 A student Bill Joy added new features
 Vi editor
 C shell
 First paging virtual memory management (Unix) BSD 4.2
 Sendmail, Pascal compiler
 Later co-founded Sun Microsystems
 BSD 4.2 (1983) – full TCP/IP & sockets API
Unix after Unix 7th Edition (1979)
1/4/2013 CSCE 510 Sp 13
-
Slide - 13
 BSD continued at UC-Berkeley
 Bell Labs System III  Systems V
 POSIX standard (1988)
 Other Software
 X windows
 Free Software Foundation
 GNU Public License
 Minix – (1988)Unix like; MINI-uniX; for education; A.
Tannenbaum
1/4/2013 CSCE 510 Sp 13
-
Slide - 14
 .
http://en.wikipedia.org/wiki/Linux
GNU
1/4/2013 CSCE 510 Sp 13
-
Slide - 15
 Recursive acronym “GNU’s not UNIX”
 http://www.gnu.org/ not http://www.gnu.com/
 Richard Stallman (1983) Goal a free Unix
 Known for Free Software movement, GNU, Emacs, gcc
 Never really released GNU operating system
 Free Software Foundation
 http://www.fsf.org/
http://en.wikipedia.org/wiki/GNU
Linux -
1/4/2013 CSCE 510 Sp 13
-
Slide - 16
 (1991) Linus Torvalds
 For Intel x86 systems
 Moved to big Iron
 more than 90% of today's 500 fastest
supercomputers run some variant of Linux
 Network routers
 Embedded systems
 Android
http://en.wikipedia.org/wiki/Linux
Computer Science Concepts- Interrupt
1/4/2013 CSCE 510 Sp 13
-
Slide - 17
 Mr. Smith has a plan that
he is executing
 “run for touchdown”
 Suddenly an interrupt
arrives
 Clowney
 Now he is executing
another plan
 Find helmet, walk to
sideline
Course Pragmatics
1/4/2013 CSCE 510 Sp 13
-
Slide - 18
 Text: The Linux Programming Interface by M. Kerrisk
 Website:
 http://www.cse.sc.edu/~matthews/Courses/510/index.html
 Code Examples
 CSE linux server /class/csce510-001
 Assignments –
 Dropbox - https://dropbox.cse.sc.edu/
 Late HW – not accepted
Provost’s Retreat
1/4/2013 CSCE 510 Sp 13
-
Slide - 19
 Best and Worst Classes
 Dr. Buell’s note
Homework Assignment
1/4/2013 CSCE 510 Sp 13
-
Slide - 20
 Write a C/C++ program to read command line
arguments and just print them.
 Read “man getopt” (all sections).
 What sections of the manual has a getopt section?
 What types of strings does getopt usually process?
References
1/4/2013 CSCE 510 Sp 13
-
Slide - 21
 Text: The Linux Programming Interface by M. Kerrisk
 http://man7.org/tlpi/
 Other Books
 Adv Prog in Unix Environment (APUE) by Richard Stevens
(Rago 2nd ed)
 http://www.kohala.com/start/apue.html
 http://www.apuebook.com/ 2nd edition site – code etc
 C by Kernighan and Ritchie (K&R) 2nd edition
 http://en.wikipedia.org/wiki/The_C_Programming_Language
 http://clc-wiki.net/wiki/K%26R2_solutions
 http://cm.bell-labs.com/who/dmr/
1/4/2013 CSCE 510 Sp 13
-
Slide - 22
 Linux in general
 http://www.linux.org/
 Man Pages
 http://man7.org/linux/man-pages/index.html
 Slashdot
 StackOverflow
 Python
 http://www.python.org/
 http://docs.python.org/2/tutorial/
The kernel
1/4/2013 CSCE 510 Sp 13
-
Slide - 23
 What is the kernel?
 What distinguishes it from the Operating System?
Kernel Tasks
1/4/2013 CSCE 510 Sp 13
-
Slide - 24
 Process scheduling
 Memory management
 File System
 Access to devices
 /dev – device drivers
 Networking
 System call API
Kernel Mode and user mode
1/4/2013 CSCE 510 Sp
13 -
Slide - 25
 When an application
makes a system call
 Time command
hermes> time make
… 10 pages of compiles .. uses cc
real 0m33.067s
user 0m13.545s
sys 0m5.596s
hermes>
Directory Hierarchy – fig 2.1
1/4/2013 CSCE 510 Sp 13
-
Slide - 26
File Types
1/4/2013 CSCE 510 Sp 13
-
Slide - 27
 Filenames
 Regular files
 Special Files
 Directory
 . (this directory),
 ..(my parent),
 list of files contained (filename and inode number)
 od –c . “used to work” but alas no longer
 Symbolic link
hermes> ln –s README link
hermes> ls -l link
lrwxrwxrwx 1 matthews faculty 6 2013-01-13 17:51 link -> README
Pathnames
1/4/2013 CSCE 510 Sp 13
-
Slide - 28
 Unix basic commands with hierarchy
 Current working directory – each running process has a
“current working directory” assigned to it
 cd dir - (change directory to dir)
 pwd
 Relative paths
 Absolute Paths – start with /
 / = root of the directory hierarchy
The /class subtree
1/4/2013 CSCE 510 Sp 13
-
Slide - 29
 Examples
 ?
 Code
 TLPI
 APUE
The Shell
1/4/2013 CSCE 510 Sp 13
-
Slide - 30
 Command interpreter in original Unix
 Read command
 Perhaps pre-process command
 Fork/execute
 Return exit status of command
 A little history revisited
 Bourne Shell (sh)
 C chell
 Korn shell
 Bourne Again shell (bash)
Users, Groups and Permissions
1/4/2013 CSCE 510 Sp 13
-
Slide - 31
 User ID (UID)
 Setuid
 Group (GID)
 Permissions
hermes> ls -l
…
drwxr-xr-x 2 matthews faculty 57 2012-10-15 09:54 acl
 Super user = root; sudo
Man – the Online Manual
1/4/2013 CSCE 510 Sp 13
-
Slide - 32
 The sections of the manual
1. Commands
2. System Calls
3. Library functions
4. Special files (usually found in /dev)
5. File formats and conventions eg /etc/passwd
6. Games
7. Miscellaneous (including macro packages and
conventions), e.g. man(7), groff(7)
8. System administration commands (usually only for root)
9. Kernel routines [Non standard]
Man command
Man – the command
1/4/2013 CSCE 510 Sp 13
-
Slide - 33
hermes> man chmod
CHMOD(1) User Commands CHMOD(1)
NAME
chmod - change file mode bits
SYNOPSIS …
 man –k chmod
 man –s 2 chmod
 Online
 http://man.he.net/
 http://www.tldp.org/guides.html
 http://man7.org/linux/man-pages/index.html

More Related Content

Similar to 510Lec01-Overview.pptx

Shell tutorial
Shell tutorialShell tutorial
Shell tutorialVu Duy Tu
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyNugroho Gito
 
CEIS106_Final_Project.pptx.pdf
CEIS106_Final_Project.pptx.pdfCEIS106_Final_Project.pptx.pdf
CEIS106_Final_Project.pptx.pdfluxasuhi
 
Intro tounix (1)
Intro tounix (1)Intro tounix (1)
Intro tounix (1)Raj Mirje
 
Unikernels - Bristech June 2016
Unikernels - Bristech June 2016 Unikernels - Bristech June 2016
Unikernels - Bristech June 2016 Daniel Drozdzewski
 
Shell_Scripting.ppt
Shell_Scripting.pptShell_Scripting.ppt
Shell_Scripting.pptKiranMantri
 
Linux admin interview questions
Linux admin interview questionsLinux admin interview questions
Linux admin interview questionsKavya Sri
 
Advanced Bash Scripting Guide 2002
Advanced Bash Scripting Guide 2002Advanced Bash Scripting Guide 2002
Advanced Bash Scripting Guide 2002duquoi
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Vincent Batts
 
Kqueue : Generic Event notification
Kqueue : Generic Event notificationKqueue : Generic Event notification
Kqueue : Generic Event notificationMahendra M
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device driversAlexandre Moreno
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 

Similar to 510Lec01-Overview.pptx (20)

Shell tutorial
Shell tutorialShell tutorial
Shell tutorial
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of Technology
 
CEIS106_Final_Project.pptx.pdf
CEIS106_Final_Project.pptx.pdfCEIS106_Final_Project.pptx.pdf
CEIS106_Final_Project.pptx.pdf
 
Intro tounix (1)
Intro tounix (1)Intro tounix (1)
Intro tounix (1)
 
Unikernels - Bristech June 2016
Unikernels - Bristech June 2016 Unikernels - Bristech June 2016
Unikernels - Bristech June 2016
 
Shell_Scripting.ppt
Shell_Scripting.pptShell_Scripting.ppt
Shell_Scripting.ppt
 
Linux admin interview questions
Linux admin interview questionsLinux admin interview questions
Linux admin interview questions
 
Advanced Bash Scripting Guide 2002
Advanced Bash Scripting Guide 2002Advanced Bash Scripting Guide 2002
Advanced Bash Scripting Guide 2002
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
 
Linux
LinuxLinux
Linux
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]
 
Unixshellscript 100406085942-phpapp02
Unixshellscript 100406085942-phpapp02Unixshellscript 100406085942-phpapp02
Unixshellscript 100406085942-phpapp02
 
Linux training
Linux trainingLinux training
Linux training
 
POS 433 Entire Course NEW
POS 433 Entire Course NEWPOS 433 Entire Course NEW
POS 433 Entire Course NEW
 
Threads presentation
Threads presentationThreads presentation
Threads presentation
 
3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura
 
Kqueue : Generic Event notification
Kqueue : Generic Event notificationKqueue : Generic Event notification
Kqueue : Generic Event notification
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device drivers
 
6202942
62029426202942
6202942
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

510Lec01-Overview.pptx

  • 1. CSCE 510 - Systems Programming Lecture 01 - Template CSCE 510 Jan 14, 2013
  • 2. Overview Last Time  Outback Readings for today  Text Chapter 1 and 2 Prologue  A Brief History - Systems programming and Unix (Chap 1) Interlude - Course Pragmatics, CS man of the day, Quiz Epilogue  fundamental Unix/systems programming (Chap 2)  Kernel, Shell, Users/groups, Directory Hierarchy  File I/O model  processes
  • 3. What is Systems Programming?  Systems Software  Donavon Diagram 1/14/2013 CSCE 510 Sp 13 - Slide - 3 Systems Programming by John Donovan, 1972
  • 4. The Dark Ages - JCL 1/14/2013 CSCE 510 Slide - 4  Darkages ~ 1972  JCL?  Batch Processing  Job card? Systems Programming by John Donovan, 1972
  • 5. What is CSCE 510?  First version – assembly language,  macro processors,  linkers …  Unix/C version circa 1987  2002 version  Make  M4/cpp macro processors  Shell1: variables, regexps, filename completion, history  Shell2: I/O redirection, signals, …  webserver  2008 Summer version – done in ruby 1/4/2013 CSCE 510 Sp 13 - Slide - 5
  • 6. CSCE 510 - 2005
  • 7. CSCE 510 the 2013 version 1/4/2013 CSCE 510 Sp 13 - Slide - 7  The Usual Suspects: programming assignments  ls, ar, cpp/m4, shell1, shell2, webserver0, SSH  New possibilities  Windows – don’t get me started  Environments: Rails, Posix Threads, Iphone/Android Apps, Vmware, Cloud Computing, SourceForge, GitHub  Unix Software: Shells. Gcc/g++, make, script/pseudo-terminals  Tools: Valgrind, Cucumber/capybara, Rspec, gdb,  Database: Mysql; postgress  Languages: …  Editors/IDEs: Nano/pico, Vi/Vim, Emacs, OS X Textmate  IDE: Eclipse Netbeans  Software Engineering: Agile, Git, Junit, Bugzilla,
  • 8. Which Language? 1/4/2013 CSCE 510 Sp 13 - Slide - 8  Linux Journal Best of 2012  Best Programming Language  Python 28%  C++ 19%  C 18.9%  Java 8.2% Perl 6.1% Other 4% Ruby 3.1% JavaScript 2.4% C# .7% Erlang .7% Haskell  (2012-12-02). Linux Journal December 2012 (Kindle Locations 1628-1633). BELLTOWN MEDIA INC. Kindle Edition. Linux Journal December 2012
  • 9. 1/4/2013 CSCE 510 Sp 13 - Slide - 9 Linux Journal December 2012
  • 10. More Linux Journal Best of 2012 1/4/2013 CSCE 510 Sp 13 - Slide - 10  Best IDE –Eclipse 27%, vim 26%, Netbeans 5% …  BEST REVISION CONTROL SYSTEM Git 63%, Subversion 18.6%, …  BEST OPEN-SOURCE CONFIGURATION MANAGEMENT TOOL – Puppet 42% …  BEST PLATFORM FOR DEVELOPING RICH INTERNET APPS - HTML5 87%  BEST PACKAGE MANAGEMENT APPLICATION – apt 34%  BEST CONTENT MANAGEMENT SYSTEM  WordPress 35%, Drupal 28%, Joomla 15%  BEST LINUX-FRIENDLY WEB HOSTING COMPANY–other 19%  BEST LINUX BOOK  Tie between Linux in a Nutshell and Debian Administrator’s Handbook  Second place goes to The Linux Programming Interface: A Linux and UNIX System Programming Handbook, by Michael Kerrisk.  BEST OTHER LINUX-BASED GADGET – Raspberry Pi Linux Journal December 2012
  • 11. A Brief History of Time (UNIX and C) 1/4/2013 CSCE 510 Sp 13 - Slide - 11  1969 – First Unix Ken Thompson at AT&T Bell Labs  Unix pun on MULTICS  Ideas from Multics:  Tree structured file system  Program for interpreting commands (shell)  Files – unstructured streams of bytes  1970 Unix rewritten in assembly for DEC PDP-11  C – Dennis Ritchie – a systems programming language  BCPL  B (Thompson)  C  1970 Kernel rewritten in C – eases porting to other machines  1984 Turing Award Lecture – C compiler learned backdoor Chapter 1 and …
  • 12. Berkeley Software Division (BSD) 1/4/2013 CSCE 510 Sp 13 - Slide - 12  (1975) Thompson visiting Prof. at UC-Berkeley  A student Bill Joy added new features  Vi editor  C shell  First paging virtual memory management (Unix) BSD 4.2  Sendmail, Pascal compiler  Later co-founded Sun Microsystems  BSD 4.2 (1983) – full TCP/IP & sockets API
  • 13. Unix after Unix 7th Edition (1979) 1/4/2013 CSCE 510 Sp 13 - Slide - 13  BSD continued at UC-Berkeley  Bell Labs System III  Systems V  POSIX standard (1988)  Other Software  X windows  Free Software Foundation  GNU Public License  Minix – (1988)Unix like; MINI-uniX; for education; A. Tannenbaum
  • 14. 1/4/2013 CSCE 510 Sp 13 - Slide - 14  . http://en.wikipedia.org/wiki/Linux
  • 15. GNU 1/4/2013 CSCE 510 Sp 13 - Slide - 15  Recursive acronym “GNU’s not UNIX”  http://www.gnu.org/ not http://www.gnu.com/  Richard Stallman (1983) Goal a free Unix  Known for Free Software movement, GNU, Emacs, gcc  Never really released GNU operating system  Free Software Foundation  http://www.fsf.org/ http://en.wikipedia.org/wiki/GNU
  • 16. Linux - 1/4/2013 CSCE 510 Sp 13 - Slide - 16  (1991) Linus Torvalds  For Intel x86 systems  Moved to big Iron  more than 90% of today's 500 fastest supercomputers run some variant of Linux  Network routers  Embedded systems  Android http://en.wikipedia.org/wiki/Linux
  • 17. Computer Science Concepts- Interrupt 1/4/2013 CSCE 510 Sp 13 - Slide - 17  Mr. Smith has a plan that he is executing  “run for touchdown”  Suddenly an interrupt arrives  Clowney  Now he is executing another plan  Find helmet, walk to sideline
  • 18. Course Pragmatics 1/4/2013 CSCE 510 Sp 13 - Slide - 18  Text: The Linux Programming Interface by M. Kerrisk  Website:  http://www.cse.sc.edu/~matthews/Courses/510/index.html  Code Examples  CSE linux server /class/csce510-001  Assignments –  Dropbox - https://dropbox.cse.sc.edu/  Late HW – not accepted
  • 19. Provost’s Retreat 1/4/2013 CSCE 510 Sp 13 - Slide - 19  Best and Worst Classes  Dr. Buell’s note
  • 20. Homework Assignment 1/4/2013 CSCE 510 Sp 13 - Slide - 20  Write a C/C++ program to read command line arguments and just print them.  Read “man getopt” (all sections).  What sections of the manual has a getopt section?  What types of strings does getopt usually process?
  • 21. References 1/4/2013 CSCE 510 Sp 13 - Slide - 21  Text: The Linux Programming Interface by M. Kerrisk  http://man7.org/tlpi/  Other Books  Adv Prog in Unix Environment (APUE) by Richard Stevens (Rago 2nd ed)  http://www.kohala.com/start/apue.html  http://www.apuebook.com/ 2nd edition site – code etc  C by Kernighan and Ritchie (K&R) 2nd edition  http://en.wikipedia.org/wiki/The_C_Programming_Language  http://clc-wiki.net/wiki/K%26R2_solutions  http://cm.bell-labs.com/who/dmr/
  • 22. 1/4/2013 CSCE 510 Sp 13 - Slide - 22  Linux in general  http://www.linux.org/  Man Pages  http://man7.org/linux/man-pages/index.html  Slashdot  StackOverflow  Python  http://www.python.org/  http://docs.python.org/2/tutorial/
  • 23. The kernel 1/4/2013 CSCE 510 Sp 13 - Slide - 23  What is the kernel?  What distinguishes it from the Operating System?
  • 24. Kernel Tasks 1/4/2013 CSCE 510 Sp 13 - Slide - 24  Process scheduling  Memory management  File System  Access to devices  /dev – device drivers  Networking  System call API
  • 25. Kernel Mode and user mode 1/4/2013 CSCE 510 Sp 13 - Slide - 25  When an application makes a system call  Time command hermes> time make … 10 pages of compiles .. uses cc real 0m33.067s user 0m13.545s sys 0m5.596s hermes>
  • 26. Directory Hierarchy – fig 2.1 1/4/2013 CSCE 510 Sp 13 - Slide - 26
  • 27. File Types 1/4/2013 CSCE 510 Sp 13 - Slide - 27  Filenames  Regular files  Special Files  Directory  . (this directory),  ..(my parent),  list of files contained (filename and inode number)  od –c . “used to work” but alas no longer  Symbolic link hermes> ln –s README link hermes> ls -l link lrwxrwxrwx 1 matthews faculty 6 2013-01-13 17:51 link -> README
  • 28. Pathnames 1/4/2013 CSCE 510 Sp 13 - Slide - 28  Unix basic commands with hierarchy  Current working directory – each running process has a “current working directory” assigned to it  cd dir - (change directory to dir)  pwd  Relative paths  Absolute Paths – start with /  / = root of the directory hierarchy
  • 29. The /class subtree 1/4/2013 CSCE 510 Sp 13 - Slide - 29  Examples  ?  Code  TLPI  APUE
  • 30. The Shell 1/4/2013 CSCE 510 Sp 13 - Slide - 30  Command interpreter in original Unix  Read command  Perhaps pre-process command  Fork/execute  Return exit status of command  A little history revisited  Bourne Shell (sh)  C chell  Korn shell  Bourne Again shell (bash)
  • 31. Users, Groups and Permissions 1/4/2013 CSCE 510 Sp 13 - Slide - 31  User ID (UID)  Setuid  Group (GID)  Permissions hermes> ls -l … drwxr-xr-x 2 matthews faculty 57 2012-10-15 09:54 acl  Super user = root; sudo
  • 32. Man – the Online Manual 1/4/2013 CSCE 510 Sp 13 - Slide - 32  The sections of the manual 1. Commands 2. System Calls 3. Library functions 4. Special files (usually found in /dev) 5. File formats and conventions eg /etc/passwd 6. Games 7. Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) 8. System administration commands (usually only for root) 9. Kernel routines [Non standard] Man command
  • 33. Man – the command 1/4/2013 CSCE 510 Sp 13 - Slide - 33 hermes> man chmod CHMOD(1) User Commands CHMOD(1) NAME chmod - change file mode bits SYNOPSIS …  man –k chmod  man –s 2 chmod  Online  http://man.he.net/  http://www.tldp.org/guides.html  http://man7.org/linux/man-pages/index.html