+ All Categories
Home > Documents > lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser...

lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser...

Date post: 30-Sep-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
22
1 Course Overview Marco Gruteser Advanced Programming for Linux
Transcript
Page 1: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

1

Course Overview

Marco GruteserAdvanced Programming for Linux

Page 2: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

2

The Instructor

• Marco Gruteser– Office Hours: Thu 3:30pm-4:20pm CoRE

505 or by appointment– Email: [email protected]– Rule of thumb: brief or urgent questions by

email, difficult questions face to face

Page 3: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

3

My Background

• Assistant Professor WINLAB/ECE– Ph.D. from University of Colorado– Research Topics:

• Sensor systems• Location-aware systems• Privacy & Security

– Biggest software project:• 1yr 7 Headcount project at IBM T.J. Watson Research

Center• C, Java

Page 4: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

4

BlueSpace

Page 5: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

5

Orbit Wireless Network System

Page 6: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

6

Your Background?• Send me email (question will be on website):

– Short bio (junior or senior year)?– What is your programming experience?

• Programming languages?– Did you take an OS or networking class?– Have you had any network programming

experience or class?– Why are you taking this course?– Which topic are you most interested in?– Do you prefer Java or Python?

Page 7: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

7

The Course …

Page 8: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

8

This Course is a practical course about writing larger

programs

Page 9: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

9

How does it relate to other software classes?

• PM I – basic programming• PM II – algorithms and data structures• Computer architecture – how do you

program

Page 10: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

10

More classes• Operating Systems – how do you write an

operating system to make application programming easier

• Advanced Programming – writing larger network-centric programs

• Telecommunication Networks – how do network protocols work

• Software Engineering – designing large team projects

Page 11: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

11

Advanced Programming

• Writing larger network-centric programs from scratch– Using operating system services effectively– Using development tools– Good development style– Performance tuning– Enhancing security– Small (2-person) team projects

Page 12: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

12

Topics • Linux development environment, coding style• Data and event-driven program models• Linux system calls• Multi-threaded programs and synchronization• Memory Allocation and Garbage Collection• Profiling and Performance Analysis• Secure Programming• Linux Kernel Modules and Device Drivers• Socket Network Programming Scripting Languages

Page 13: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

13

Which application creates the largest share of Internet

traffic?

Page 14: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

14

Programming Homework / Projects

• Minimal bittorrent client • Write a minimal webserver ~100 LOC• Use threads and process control to

improve performance• Implementation as a kernel module• Write a buffer overflow exploit to hack

into a server

Page 15: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

15

Course Schedule

• A more detailed schedule will be available on the web before next class

• Currently, a syllabus is athttp://www.winlab.rutgers.edu/~gruteser/ap_s05/

Page 16: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

16

Prerequisites

• Programming Methodology I/II• Coregistered with OS• C/C++ programming skills and

familiarity with basic development tools: editors, compilers

Page 17: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

17

Course Organization• Biweekly Programming Homework

– Will be autograded– You can implement it on your own machine if you

like, but it has to run on our Debian server– You can test it there– All work must be done individually, unless

otherwise stated• Weekly reading assignments

– May be web-based quizzes• Expect in-class programming exams

Page 18: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

18

Grading

40%Programming Homeworks &projects

10%Attendance & Participation

20%Mid-term

30%Final Exam

Page 19: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

19

Required Textbook

• Advanced Programming in the UNIX environment,W. Richard Stevens, 1ed. Addison-Wesley.

Page 20: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

20

Also recommended

• UNIX Network Programming Vol 1. (The Sockets Networking API),Stevens, Fenner, Rudoff, 3rd Edition, Addision Wesley

Page 21: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

21

Next Class

• Linux Introduction• Reading: Chapter 1

Page 22: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM

22

Final Note

• This is a new course, please provide feedback


Recommended