--整理来源:《鸟哥的Linux私房菜第三版》
--原创,转载请标明
- 计算机概论
计算机:辅助人脑的好工具 。用户输入指令与数据,经过中央处理器(CPU)的算术逻辑单元运算后,产生有用的信息。
之前学过《微机原理》或《计算机组成原理》的童鞋可能对计算机的五大组成十分熟悉。考虑大家在不断扩充知识,在这里还是再普及一遍吧。
冯·诺依曼计算机的基本设计思想第四条:
计算机由:输入单元,控制单元,算术逻辑单元,存储器,输出单元五大部分组成。
注意几个点:
- 可以总结为:I/O设备,CPU,内存
- CPU都是通过内存来读入数据,也通过内存来流出数据。
CPU的种类:
精简指令集(常见的ARM机构):手机,路由,交换机,导航,都是使用的ARM架构的CPU,可以说是世界上使用最广泛的CPU。
复杂指令集(常见的X86架构):X86_64即为64位个人计算机。
下面这个图把计算机的一些基本设备用人的各项器官来比喻,很生动形象,鸟哥脑洞大开。
计算单位:
关于硬盘的计算度量,会使用十进制的方式来计算,因为硬盘的最小组成单位为:扇区(Sector),所以都会用“多少个sector”来计算硬盘的大小。买个实际容量只有7点多G的8G U盘,莫张口就抱(po)怨(gai),正常的啦,没有被骗。
扇区(sector):在物理组成分面,每个扇区的大小为512bytes,这个是固定值。
磁道(track):扇区组成的圆称为磁道。
柱面(cylinder):对于多磁道,同一个磁道组成柱面。柱面即为分割硬盘的最小单位。
操作系统
操作系统内核(Kernel) :操作系统也是一组程序,这组程序的重点是管理计算机的所有活动以及驱动所有的硬件。
系统调用(System Call):即提供的一系列开发接口。
总的说来,操作系统其实就是内核程序与其提供的开发接口,应用程序参考调用接口而开发,举个通俗的例子:印象笔记的客户端程序参考Windows操作系统的调用接口来开发,从而通过windows系统的内核程序去驱动系统的各种硬件,内存,显卡等各种,从而可以让我们喝鸡汤码字,还是很容易理解的吧~
几个注意点:
- 内核程序在内存中所占用的区块是受保护的,开机之后就常驻内存之中。
- 操作系统的内核直接参考硬件规格来写成,所以同一个操作系统不能够在不一样的硬件架构中运行。
- 操作系统只是在管理整个硬件资源,包括CPU,内存,I/O设备等。
- 应用程序的开发都是参考操作系统提供的开发接口,每个操作系统上对应匹配的应用程序。
- Linux是什么?
Linux的内核程序是1991年托瓦茲(Torvalds)写出的一套操作系统,Linux由于是OpenSource【开源】的操作系统,所以程序代码可以被修改成适合在各种机器上面运行【可移植性】。
Linux内核版本: 主、次版本为奇数,开发中版本(development)
主、次版本为偶数,稳定版本(stable)
LinuxDistributions : 例如国内十分热门的RedHat、CentOS、Ubuntu等,就属于Linux Distributions。
各大
Linux Distributions的主要异同就是支持标准。内核程序相同。
Linux的特色与优缺点:
-->优点:
-->缺点
当然,Linux的优点正是它能在win的挤压下获得生存并越来越繁华的原因。但Linux的终端机模式使得它的普及率受到很大的限制,虽然有一系列的图形界面比较完善,但是图形界面的工作毕竟还是有限的。所以Linux的主要用户群体当然就我们这些搬砖的了,相对还是专业一点吧。。
- Linux如何学习?
Linux有两种主要的操作模式:图形界面和命令行界面。Linux kernel小巧精致,可以在较低的硬件资源环境下执行,Linux distributions集成了非常棒的软件,因为应用环境很广泛。下面举几个常见应用:
- 网络服务器,Linux当前最热门的应用。。
- 学术机构的高性能计算,集群计算机系统(Cluster),这个也是我学习linux的出发点了。
- 嵌入式系统。小巧精致,耗费资源少,硬件要求低。
- 桌面系统(X-window),普及率并不是很高。
鸟哥的学习建议:
(1)从文字界面开始(命令行,终端模式terminal等,叫法很多)
(2)Linux最强的地方在于网络功能,而window赢在用户界面的亲和。
(3)X-window只是Linux内的一套软件,而不是kernal,图形界面下的工作毕竟是有限的。鸟哥也简单粗暴地提到:即使
X-window挂了也没事,内核Kernel不会挂,哈哈,多么嫌弃啊...请计算曾经鸟哥使用图形界面的心理阴影面积。
- 主机规划与磁盘分区
Linux与Windows对于计算机各设备/组件的分辨不一样,各个组件或设备在Linux下面都是一个文件。(几乎都在/dev内)
常见的个人计算机设备接口有两种:1、IDE 2、SATA。
-->对于IDE接口,一个主机两个接口,一条线可以插两个磁盘
-->对于SATA接口,这些接口的文件名是/dev/sd[a-p]的格式,根据Linux内核检测到的顺序来命名。
磁盘的第一扇区记录了两个重要信息:
- 主引导分区(MBR):包含了引导加载程序,446bytes。
- 分区表:记录整块硬盘的分区的状态,64bytes。
-->分区表的64bytes中,共分为四组记录区:P1:/dev/hda1 , P2:/dev/hda2, P3:/dev/hda3, P4:/dev/hda4
-->拓展分区:使用额外的扇区来记录分区信息
P1:/dev/hda1 , P2:/dev/hda2, L1:/dev/hda5, L2:/dev/hda6...其中hda3,hda4被御用了,咋老百姓还是没那艳福,好比当年后宫佳丽三千,占了茅坑不拉shit,哈哈,记得这个特点很重要。
关于分区的几个要点:
- 硬盘默认的分区表只有4个,即主分区与扩展分区只能有4个。
- 扩展分区最多只能有1个。
- 逻辑分区由扩展分区切割,扩展分区不可格式化,只能格式化主分区与逻辑分区。
- 分区的最小单位为柱面(cylinder)
-->开机流程
- BIOS:开机之后主动执行的第一个程序,寻找可开机的设备(硬盘等)。bios是写入到主板的一个韧体。
- MBR:第一扇区内的主引导分区,包含引导加载程序。
- 引导加载程序(Boot Loader):一支读取内核文件来执行的软件。
- 内核文件(Kernel):开始操作系统的功能。
-->多重引导
在上面的引导加载程序中(Boot loader)的主要任务有三个:
- 提供菜单
- 载入内核文件
- 转交其它loader
第三点很有趣,有没有像之前分区表的感觉,同样引导加载程序也不一定只能放在第一扇区的MBR中,也可以放在每个分区的引导扇区(boot sector)中,也就是我们常说的双系统概念。
双系统的几个要点:
- 每个分区都有自己的启动分区(Boot loader)
- 先安装Windows,后安装Linux,原因:windows在安装时,安装程序会覆盖MBR以及所在分区的启动扇区,从而丢失linux的引导加载程序(boot loader).着实有点霸道主义。
Linux文件系统与目录树(挂载)
上图中假设我的硬盘分为两槽,partition 1是挂载到根目录,partition 2则是挂载到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition 2中,如果不是放在/home底下的目录, 那么数据就会被放置到partition 1了!
看到这Linux安装的前备工作总算是功成圆满了,什么?是前备工作?骚年,莫慌,只是看起来有点多,慢慢消化了,其实就只是一点知识了。
Linux安装需要注意的几个点:
- 一定要使用自定义安装,Custom or Expert模式,相信自己。
- 初次接触Linux,只需要分"/","swap"和“/boot”三个区就好了。
- 入门学习,使用命令行模式,命令行模式,命令行模式,鸟哥的肺腑之言,说不定以后走上事业巅峰就靠这个了~