0% found this document useful (0 votes)
2 views

ECE2220Slides(1.1-Intro-SystemProgramming) (1)

The document introduces system programming, defining it as programming for system software that performs tasks for the operating system, which manages hardware and software resources. It discusses the evolution of operating systems and the distinction between system software and application software, as well as the importance of hardware and software in performing tasks. Additionally, it highlights the advantages of using Linux and the C programming language for system programming due to their open-source nature and efficiency.

Uploaded by

a02spam9
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

ECE2220Slides(1.1-Intro-SystemProgramming) (1)

The document introduces system programming, defining it as programming for system software that performs tasks for the operating system, which manages hardware and software resources. It discusses the evolution of operating systems and the distinction between system software and application software, as well as the importance of hardware and software in performing tasks. Additionally, it highlights the advantages of using Linux and the C programming language for system programming due to their open-source nature and efficiency.

Uploaded by

a02spam9
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 6

ECE 2220 - System Programming Chapter 1.

1 - Introduction - System Programming 1

Chapter 1

Introduction

Linux and Development Tools

WJR, Clemson University, 2010-2018


ECE 2220 - System Programming Chapter 1.1 - Introduction - System Programming 2

1.1 System Programming


What is “System Programming?”
Programming “System Software.”

So what is “System Software?”


System software is software which is designed to perform tasks for
the system.
So what is the “System?”

The Operating System is software which User(s)


performs common services for the computer
and its programs and manages and protects Applications
hardware and software resources.
Operating System
“Application” or “User” Software sits “above”
the O/S and is designed to perform tasks for
Hardware
the actual user(s) of the computer.
WJR, Clemson University, 2010-2018
ECE 2220 - System Programming Chapter 1.1 - Introduction - System Programming 3

O/S Software vs. Applications


What constitutes “common services” for computers has evolved as
computer hardware and software has evolved.
MS DOS 1.0, which stood for “Disk Operating System” and was the
ancestor of Windows was very primitive and contained very little of
the functionality expected in a PC operating system today.
As the internet grew in importance, Microsoft began bundling a web
browser with their Windows O/S. They were sued in an anti-trust
suit by Netscape who argued it was not an operating system
function.
Which type of software are the following?
• Spreadsheet • CAD Program • Backup Program • Word Processor
• Disk Defragmenter • Video Game • Directory Lister • Web Browser
When should a program be a system program?
What are the advantages of a system program?
WJR, Clemson University, 2010-2018
ECE 2220 - System Programming Chapter 1.1 - Introduction - System Programming 4

Hardware and Software


Hardware
Physical, “Touchable” Components:
• CPU and ICs • Memory • Buses • Hard Drives and CD ROMs
• Monitor, Keyboard, and Mouse • Power Supply and Cables
Software
Programs (Instructions) to Control the Hardware
• BIOS Firmware • Operating System • Applications
What is the Purpose of Hardware?
Perform Tasks
What is the Purpose of Software?
To Perform Tasks
What are the advantages of each?
Hardware is Fast and Software is Inexpensive
Robust and Flexible
WJR, Clemson University, 2010-2018
ECE 2220 - System Programming Chapter 1.1 - Introduction - System Programming 5

Software Development Tools


What Tools aid us in Software Development?
• Shell Environments
• File Structures
• System Programs
• Function Libraries and System Calls
• Debuggers
What is the Purpose of these Tools?
• Efficiency: Speed in Development.
• Ability: Perform tasks otherwise wouldn’t/couldn’t do.
• Reusability: Reuse code already written to solve a certain problem.
• Portability: Code can be easily modified to run on a different platform.
• Standardization: Reduces the initial steep learning curve of a
completely new system.
WJR, Clemson University, 2010-2018
ECE 2220 - System Programming Chapter 1.1 - Introduction - System Programming 6

Why Linux and C?


Why are we programming under Linux (and not Windows)?
• Windows is a “Closed” System in order to make it “Safer”
• Windows is “Proprietary” and therefore has a monetary cost.
• Windows is “Monolithic” in an “all-or-nothing” package.
• Linux is Open Source, Modular, and Free

Why are we programming C (and not C#, C++, Java, Python, etc…)?
• C was written for System Programming
• Both Linux and Windows are written in C (or C++).
• C is powerful at a high level, yet also has little abstraction from
Hardware and so is powerful at a low-level.
• C is written to be fast and efficient.
• Though not easy to learn, C is comprehensive and make learning
other languages easier.
WJR, Clemson University, 2010-2018

You might also like