第0章 计算机概论
第1遍
第2遍
0.7 参考数据与扩展阅读
注1:英文维基百科
CPU:点击打开链接
Contents
0.4.2操作系统
如前所述,早期想要让计算机执行程序就得要参考一堆硬件功能函数,并且要学习机器语言才能够编写程序。同时每次写程序是时必须重新改写,因为硬件与软件功能不见得都一致。那如果我能够将所有的硬件都驱动,并且提供一个开发软件的参考接口来给工程师开发软件。
操作系统内核(Kernel):
操作系统其实也是一组程序,这组程序的重点在于管理计算机的所有活动,驱动系统中所有硬件,通俗地说,操作系统可以:
让CPU开始逻辑与运算数值;
让内存可以开始加载/读出数据与程序代码;
让硬盘可以被访问;
让网卡可以开始传输数据;
让所有周边可以开始运转。
总之,硬件所有的操作都必须要通过这个操作系统来完成。
上述功能就是操作系统内核了!你的计算机能不能做到某些事情,都与内核有关。只有内核提供了相关的功能,你的计算机系统才能帮你完成。(内核不支持TCP/IP协议,无论购买什么样网卡,这个内核都无法提供网络服务)
内核主要在于管控硬件与提供相关的能力。内核程序放置到内存当中的区块是受保护的,并且开机后就一直常驻在内存当中。
第一章 Linux是什么
1.1.2 Linux之前的UNIX的历史
# Multics系统(Bell/MIT/GE一个伟大的梦想)
卡片阅读机——键盘一台主机多终端机——MIT开发分时操作系统:让大型主机提供多个终端机连接进入主机,从而利用主机的资源进行运算工作。(这个兼容分时操作系统可以说是近代操作系统的鼻祖呢!它可以让多个用户在某一段时间内分别使用CPU资源,感觉上会觉得大家是同时使用该主机的资源。事实上,是CPU在每个用户的工作之间进行切换)
为加强大型主机功能以便让主机资源可以提供更多用户来利用,发起这个Multics系统计划(让大型主机可以同时提供300台以上终端机连接使用)
# Ken Thompson的小型File Server System
原本参与Multics项目人员中已经从该项目中获得一些想法,Ken Thompson就是其中之一。他利用DEC的PDP-7进行操作系统内核程序编写。(以汇编语言写出了一组内核程序,包括内核工具程序以及一个小的文件系统)。该系统就是UNIX的原型。(当时Thompson将Multics庞大的复杂系统简化了不少,于是实验室朋友都戏称这个系统为Unics)
Thompson的这个文件系统有两个重要的概念:
所有程序和系统装置都是文件;不管构建编辑器还是附属文件,所写的程序只有一个目的,就是要有效地完成目标。
UNIX正式诞生,Ritchie等人以C语言写出第一个正式UNIX内核
Thompson写的那个操作系统实在太好用了广为流传,但其以汇编语言写成,具有专一性不方便移植。
Thompson和Ritchie合作将Unics改以更高级程序语言来编写。(当时现成高级程序语言有B语言,后来Dennis Ritchie将B语言重新改写成C语言,以C语言重新改写与编译UniCS的内核,最后发行UNIX正是版本)
UNIX分支——BSD诞生
对UNIX移植得到BSD
X86架构的Minix操作系统诞生
既然1979年UNIX第七版可以在Intel的x86架构上面进行移植,那么是否意味着可以将UNIX改写并移植到x86上面呢?AndrewTanenbaum教授自己动手写了Minix这个UNIX Like内核程序。
第3章 主机规划与磁盘分区
3.1.3 各硬件设备在Linux中的文件名
在Linux系统中,每个设备都被当成了一个文件来对待。
3.2磁盘分区
IDE接口,一个IDE扁平电缆看可以连接两个IDE设备,通常主机会提供两个IDE接口,因此最多可以连接四个IDE设备。这两个IDE接口通常被称为IDE1和IDE2,而每条扁平电缆上面的IDE设备可以被区分为Master(主设备)与Slave(从设备)。
SATA接口 根据Linux内核检测到磁盘的顺序
3.2.2 磁盘的组成复习
其实整块磁盘第一扇区(512bytes)特别重要,因为它记录了整块磁盘的重要信息:
主引导分区:可以安装引导加载程序的地方。(446bytes)
分区表:记录整块分区的状态(64bytes)
3.2.3磁盘分区表
3.2.4开机流程与主引导分区
开机程序
整个开机流程到操作系统之前的动作应该是这样的:
1 BIOS:开机主动执行的韧体,会认识第一个可开机的设备(开机后计算机系统会主动执行的第一个程序,取得能够开机的硬盘,并到该硬盘里面读取第一个扇区的MBR位置。)
2 MBR: 第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序。
3 引导加载程序(Boot loader):一支可读取内核文件来执行的软件。(主要任务:提供菜单,选择不同开机选项;载入内核文件,直接指向可开机的程序区段来开始操作系统;转交其他loader,将引导加载功能转交给其他loader负责)
4 内核文件: 开始操作系统的功能。
多重引导
一块硬盘,如何在开机时候选择用Windows还是Linux开机呢,其流程!
先装Windows后装Linux依据。
3.2.5 Linux安装模式下,磁盘分区选择
目录树结构(directory tree)
整个Linux系统最重要的地方就是在于目录树结构。所谓目录树就是以根目录为主,然后向下呈现分支状的目录结构一种文件结构。
我们文件数据其实就是放置在磁盘分区当中,现在的问题是如何结合目录树的架构与磁盘内的数据,这个时候就牵扯到“挂载”的问题(mount)
文件系统与目录树的关系
第4章 安装CentOS 5.x与多重引导小技巧
第5章 首次登录与在线求助man page
Linux系统使用了异步的磁盘/内存数据传输模式 || 多人多任务的环境 = 不能随便不正常关机(错误关机导致磁盘数据损毁)
5.1 X Window的窗口管理员环境:GNOME 和 KDE
X Window与命令行模式的切换
5.2 在命令行模式下执行命令
显示日期与时间命令:date
显示日历的命令:cal
简单好用的计算器:bc
5.2.3 重要的热键[Tab], [Ctrl]-c, [Ctrl]-d
5.3 Linux系统在线求助man page与info page
5.4 超简单文本编辑器:nano
5.5正确关机方法: