CS210 Computer Systems
Contents
%run -i python/common.py
%run -i python/ln_preamble.py
CS210 Computer Systems#
Intro and the Big Picture#
Highlight – “Programmable” and “Device”
COMPUTER SYSTEM
A rich and beautifully tapestry of Interacting
Hardware + Software components that are the substrate to our modern digital world
Hardware + Software components that are the substrate to our modern digital world
This Class
Understand the “Anatomy” of Software and how it interacts with the hardware.
Expose you to a deeper view of the digital world and around you
Give you the skills and knowledge to understand and manipulate (program) more of the computing
Generally make you better programmers and more informed decision makers
GENERAL ANATOMY OF COMPUTING
Computing is composed of many parts — roughly organized into layers
HARDWARE: Foundation on which everything is built
SOFTWARE: Complex layers of interacting software components
GENERAL ANATOMY OF COMPUTING
Computing is composed of many parts — roughly organized into layers
HARDWARE: Foundation on which everything is built
SOFTWARE: Complex layers of interacting software components
Despite all the kinds of computers in our lives …
Client Computers
Server Computers
A Programmers View
The two pillars of computer science
Theory and Systems
Lets turn back the clock
Before there was computer science and there was only imagination of what could be
Turing and the Turing machine
Von Neumman and the Von Neumman Architecture
Rear Admiral Grace Hopper and the compiler
May you live in interesting times…
Knowledge is power…
It's up to YOU … as to what comes next
WHO ARE WE?
Welcome to CS210#
Course Goals and Objectives
“Under the Covers : The Secret life of Software”
Rest of course infrastructure
Staff
Syllabus
calendar
grade break down
assignments
midterms
exam
attendance and participation
Lectures, Discussions and Office hours
General Advice
Course Goals#
Understand the layers of computer systems
Understand software / hardware interaction
Learn foundational concepts, skills and tools for working with computers
#FileCodeBox("src/hello_bb.c", "C", "<b>CODE: C - Hello World")
display(Markdown(FileCodeBox(
file="src/hello_bb.c",
lang="C",
title='<b>CODE: C - Hello World')))
showET()
showBT()
showDT()
showET()
#MkCodeBox("src/popcnt_bb.S", "gas", "<b>CODE: asm - Our First assembly program - Playing with popcnt", "200%", "640px")
#FileCodeBox("src/hello_bb.c", "C", "<b>CODE: C - Hello World")
display(Markdown(FileCodeBox(
file="src/popcnt_bb.S",
lang="gas",
title="<b>CODE: asm - Our First assembly program - Playing with popcnt",
h="600px",
w="640px"
)))
showBT()
display(Markdown(FileCodeBox(
file="assembly/popcnt_build.sh",
lang="shell",
title="<b>NOTES: on building popcnt",
h="15em",
w="100%")))
showDT()
display(Markdown(FileCodeBox(
file="assembly/popcnt_gdb.txt",
lang="shell",
title="<b>NOTES: using gdb with popcnt",
h="100%",
w="640px")))