Lecture 1: Introduction to System Programming

Get Started. It's Free
or sign up with your email address
Lecture 1: Introduction to System Programming by Mind Map: Lecture 1: Introduction to System Programming

1. Unix

1.1. • It is an operating system • It is created in AT&T’s Bell Laboratories and evolved into what is known as “System V” UNIX • Unix is written in C language • It is easy to port to different hardware platform

2. Linux

2.1. • Linux is a freely distributed implementation of a UNIX-like kernel, the low-level core of an operating system. • Because Linux takes the UNIX system as its inspiration, Linux and UNIX programs are very similar. • Linus Torvalds

3. Why we choose Linux for SP?

3.1. • Versions of Linux are now available for a wide variety of computer systems using many different types of CPUs, including PCs based on Intel x86 and compatible processors; workstations and servers using Sun SPARC, IBM PowerPC, and Intel Itanium; and even some handheld PDAs and the Sony Playstation 2. • If it’s got a processor, someone somewhere is trying to get Linux running on it!

4. System Programming

4.1. What is system programming?

4.1.1. – Art of writing system software – Is a branch of computer science that deals with the structure of a machine. – The structure of a machine may compose of memory, I/O, CPU, etc. – systems programming aims to produce software which provides services to the computer hardware

4.2. Why system programming?

4.2.1. – essential to any kind of computing. – an important foundation for application development. – constantly evolving to accommodate changes in hardware. – hacking with unparalleled freedom. – fun!

5. Why we use C lang. for SP?

5.1. • C is the language of system programmers. • All major OS are written in C (BSD, Linux, OS X, Windows). • C is a subset of C++ • C and C++ together are used for more than 1/3 of all open source projects at SourceForge.

6. Manage the computer's resources and allow other programs to run and use these resources.

7. Introduction

7.1. Computer System consist of Hardware and Software

7.1.1. Software consists of - System Software, Application Software

7.1.1.1. System Software eg. Operating system, Utilities

7.1.1.2. Application Software eg. Computer Games, Spreadsheets, Word Processors, Databases, Internet Browsers

7.1.2. Hardware consists of- Processor, Main Memory and I/O device

7.1.2.1. Hardware eg. CPU, Printer, Disks, Mouse

7.2. Difference between System Software and Application Software

7.2.1. System software used to operating computer hardware

7.2.2. Application software is used by user to perform specific task

8. Operating System

8.1. A program that acts as an intermediary between a user of a computer and computer hardware.

8.2. Goals-

8.2.1. Execute user programs and make solving user problems easier.

8.2.2. Make the computer system convenient to use.

8.3. Use the computer hardware in an efficient manner.

8.4. Operating System Features:

8.4.1. • Memory • File systems • Resource naming and location • Multitasking • Communication and synchronization • Security and protection

9. Kernel

9.1. The kernel of an operating system is the part responsible for all other operations.

9.2. Primary function:

9.3. Resources:

9.3.1. CPU, memory, I/O, etc.

9.4. Kernels also provide methods for synchronization and communication between processes called inter-process communication (IPC).

9.5. It is a bridge between applications and the actual data processing done at the hardware level.

9.6. Kernel basic facilities:

9.6.1. 1. Process management 2. Memory management 3. Device management 4. System calls

10. Three cornerstones to system programming in Linux:

10.1. System calls

10.1.1. System programming starts with system calls.

10.2. The C library

10.2.1. The C library (libc) is at the heart of Unix applications.

10.3. The C compiler

10.3.1. In Linux, the standard C compiler is provided by the GNU Compiler Collection (gcc).