读书笔记-许式伟的架构课-我的想到

1.疑问里有一个人问,既然cpu只和内存打交道,那磁盘io是如何进行的,大概是这个疑问吧,我一时语塞,想了一下,回复到外设都会以端口映射或者内存映射的方式,在内存中有个记录,所以cpu虽然是与内存打交道,但是通过内存也可以操作外设,因为外设被映射到内存。

现在我补充下,地址是内存的概念,cpu只管告诉内存,地址和操作+数据,所以cpu看来是往一个地址输送指令或数据。而内存的作用只是用作存储,存储数据或者代码。

2.所有电脑的架构可以看做cpu+内存+IO设备‘’

CPU 指令是一个很有限的指令集,指令序列的可能性是无穷的,这也就意味着电脑能够做的事情的可能性也是无穷的。

大体来说,中央处理器(CPU)的指令分为如下这几类。计算类,也就是支持我们大家都熟知的各类数学运算,如加减乘除、sin/cos 等等。I/O 类,(从存储读写数据)从输入输出设备读数据、写数据。指令跳转类,在满足特定条件下跳转到新的当前程序执行位置。

操作系统就出现了。它首先要解决的是软件治理的问题;

其次解决的是基础编程接口问题。像操作系统和编程语言,这些都是我们开发一个应用程序所依赖的基础架构。

基础架构解决的是与业务无关的一些通用性的问题,这些问题往往无论你具体要做什么样的应用都需要面对。而且,基础架构通常以独立的软件存在,所以也称为基础软件。例如,我们熟知的 Linux、Nginx、MySQL、PHP 等这些软件都属于基础软件,这些基础软件极大地降低了应用开发的难度。在今天软件服务化的大趋势下,很多基础软件最终以互联网服务的方式提供,这就是所谓的“云计算”。

这座大厦的地基:冯·诺依曼体系结构。

3.系统调用我认为是用户态程序发起的软中断,cpu执行权跳转到内核中,去执行内核中的程序。

4.但从编程的角度,函数是机器指令的扩展,和机器指令需要用文本符号来助记一样,函数的名称也需要用文本符号来助记。

汇编语言的出现要早于操作系统。操作系统的核心目标是软件治理,只有在计算机需要管理很多的任务时,才需要有操作系统。

5.我认为,用高级语言编程就像学车,开车不需要了解发动机工作原理,唯手熟尔,而高级语言编程,把程序员从计算机的底层原理以及机器码汇编码中解放出来。

包(package),即代码的发布单元。版本(version),即包的依赖管理。

发布了241 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u013755520/article/details/103811885