CSAPP学习笔记 第一章 计算机系统漫游
Ch 1.0
1.计算机系统是由硬件和系统软件组成的
2.本书阐述了计算机组件是如何工作的以及执行组件是如何影响程序正确性和性能的。
3.通过跟踪hello程序的生命周期来开始对系统的学习。
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
Ch 1.1 信息就是 位+上下文
1.hello程序的生命周期始于源程序;源程序是由一系列的位序列组成的,8个位被组织成一组,称为字节;每个字节表示程序中的某些文本字符;hello.c程序是以字节序列的方式存储在文件中的。
2.只由ASCII字符组成的文件称为文本文件,所有其他文件称为二进制文件。
Ch 1.2 程序被其他程序翻译成不同的格式
1.每条C语言指令都必须被其他程序转化为一系列的低级机器语言指令。
2.编译系统:
一个现代编译器的主要工作流程如下:
源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 可执行文件(executables)
对应至Hello程序:
hello.c => cpp => hello.i(修改了的源程序) => ccl => hello.s(汇编) => as => hello.o(二进制程序) + printf.o => ld => hello(executable)
Ch 1.3 了解编译系统如何工作是大有益处的
为什么要了解编译系统?
1.优化程序性能
2.理解链接时出现的错误
3.避免安全漏洞
Ch 1.4 CPU读并解释存储在内存中的指令
1.4.1 系统的硬件组成
- Bus总线
传送定长的字节块(字,word)
- I/O设备
I/O设备是系统与外界世界的联系通道;
通过一个控制器或者适配器与I/O相连
- 主存
临时存储设备,由一系列动态随机存取存储器DRAM组成;
逻辑上来说,存储器是一个线性的字节数组
- 处理器CPU
解释和执行存储于主存中指令的引擎;
处理器的核心是程序计数器(Program Counter, PC),PC记录主存中机器指令的地址;
系统运作时,处理器一直不断地执行PC指向的指令,再更新PC,使其指向下一个地址;
处理器的工作模型:指令集模型,围绕着主存、寄存器文件、算术/逻辑运算单元(ALU)进行。
处理器指令集架构和处理器微体系架构的区别:1)指令集架构描述每条机器指令的效果;2)处理器微体系架构描述的是处理器实际如何处理。

CSAPP学习笔记 第一章 计算机系统漫游的更多相关文章
- [CSAPP笔记][第一章计算机系统漫游]
计算机系统漫游 我们通过追踪hello程序的生命周期来开始对系统的学习—–从它被程序员创建,到系统上运行,输出简单的消息,然后终止.我们沿着这个程序的生命周期,简要介绍一些逐步出现的概念,专业术语和组 ...
- 《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念 ...
- CSAPP 第一章 计算机系统漫游
第一章 计算机系统漫游 C语言的起源:(系统级编程的首选) C语言与Unix操作系统关系密切 C语言小而简单:其设计由一个人掌控 C语言是为实践目的设计的:其设计用来实现Unix操作系统 C语言程序编 ...
- CSAPP:第一章计算机系统漫游
CSAPP:计算机系统漫游 关键点:上下文.程序运行.计算机系统抽象. 信息就是位+上下文一个程序的运行过程系统的硬件组成编译系统是如何工作的?一个程序的运行过程(c语言举例)计算机系统中的抽象 信息 ...
- 《跟我学Shiro》学习笔记 第一章:Shiro简介
前言 现在在学习Shiro,参照着张开涛老师的博客进行学习,然后自己写博客记录一下学习中的知识点,一来可以加深理解,二来以后遗忘了可以查阅.没有学习过Shiro的小伙伴,也可以和我一起学习,大家共同进 ...
- JavaScript高级程序设计学习笔记第一章
作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Inter ...
- C语言学习笔记第一章——开篇
本文章B站有对应视频 (本文图片.部分文字引用c primer plus) 什么是C语言 顾名思义,c语言是一门语言,但是和我们所讲的话不同,它是一门编程语言,是为了让机器可以听懂人的意思所以编写的一 ...
- Java学习笔记 第一章 入门<转>
第一章 JAVA入门 一.基础常识 1.软件开发 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合 系统软件:DOS,Windows,Linux 应用软件:扫雷.QQ.迅雷 什么是开 ...
- c#高级编程第七版 学习笔记 第一章 .NET体系结构
第一章 .NET体系结构 本章内容: 编译和运行面向.NET的代码 Microsoft中间语言(Microsoft Intermediate Language,MSIL或简称IL)的优点 值 ...
随机推荐
- HPC高性能计算知识: 异构并行计算
版权声明:很多其它内容,请关注[架构师技术联盟]公众号 https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/80059122 当摩尔定 ...
- VUX
1.mapState 2.mapGetters 3. 4. 当你的操作行为中含有异步操作,比如向后台发送请求获取数据,就需要使用action的dispatch去完成.其他使用commit即可. 举个例 ...
- SQL 2
SQL SELECT 语句 SELECT 语句用于从数据库中选取数据. SQL SELECT 语句 SELECT 语句用于从数据库中选取数据. 结果被存储在一个结果表中,称为结果集. SQL SELE ...
- golang使用vendor目录来管理依赖包
Vendor目录介绍 随着Go 1.5 release版本的发布,vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方案.在Go 1.6之前,你需要手动的设置环境变量GO1 ...
- [py]access日志入mysql-通过flask前端展示
目录 pymysql组装sql入库日志 代码组织 将入库的日志通过flask前端展示 pymysql组装sql入库日志 pymysql模块的用法 采集这些指标(metirc)都是linux环境,会用到 ...
- visualSVN server安装使用
SVN服务推荐使用visualSVN server,安装完成之后自动设置开机启动服务,具体使用如下图:
- word转pdf时图片质量下降的解决方案__亲测有效
写论文时经常需要将word文档转成pdf文档,通常的做法是word另存为pdf文档,这样很简洁很方面,可是最大的问题是图片质量会大大下降.究其原因,“另存为”选项会压缩图片,以降低pdf文档的大小.解 ...
- codefirst configuration
codefirst 书写配置类,用于entity与数据库中表或view映射 1.对应表或视图都用this.ToTable("SimpleCompanyLoanView", &quo ...
- cxf-webservice完整示例
最近一段时间研究webservice,一般来说,开发java的Webservice经常使用axis2和cxf这两个比较流行的框架 先使用cxf,开发一个完整示例,方便对webservice有一个整体的 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON HomMat2dRotate2
zw版[转发·台湾nvp系列Delphi例程]HALCON HomMat2dRotate2 procedure TForm1.Button1Click(Sender: TObject);var op ...