lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser...
Transcript of lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser...
![Page 1: lec1 - WINLABgruteser/ap_s05/lec1.pdf · Title: Microsoft PowerPoint - lec1.ppt Author: gruteser Created Date: 1/20/2005 5:35:26 AM](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052008/601c9c81008be57067574e32/html5/thumbnails/22.jpg)
22
Final Note
• This is a new course, please provide feedback