是不是有时觉得 Linux 中的概念有点天花乱坠 _(:з」∠)_
这篇文章会随着系列的更新介绍咱用到的术语的意思呐,也许汝不一定都要知道~有更新时会通知汝啦~
但是咱不是专业的啦,如果汝正好是个 Linux 高手的话, 来评论里或是直接和咱交流下呗~
本文
基本中的基本概念 _(:з」∠)_
操作系统
操作系统(英语:operating system,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的核心与基石。 操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出装置、操作网络与管理文件系统等基本事务。 操作系统也提供一个让使用者与系统互动的操作界面。 操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从非智慧型手机的嵌入式系统到超级电脑的大型作业系统。 许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程式。
操作系统理论在计算机科学中,为历史悠久而又活跃的分支;而操作系统的设计与实现则是软件工业的基础与核心。
(下面是一幅典型的操作系统架构图~)
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。以现代标准而言,一个标准PC的操作系统应该提供以下的功能:
- 进程管理(Processing management)
- 内存管理(Memory management)
- 文件系统(File system)
- 网络通信(Networking)
- 安全机制(Security)
- 用户界面(User interface)
- 驱动程序(Device drivers)
操作系统内核
在計算機科學中,内核(英语:Kernel),又稱核心,是一個電腦程式,用來管理軟體發出的資料I/O(輸入與輸出)要求,將這些要求轉譯為資料處理的指令, 交由中央處理器(CPU)及電腦中其他電子元件進行處理,是現代操作系统中最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件, 这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法, 来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。
严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行;这样的设计, 说明了设计者不希望提供任何硬件抽象和操作系统的支持;它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器, 被设计到机器核心当中,或者写入在只读记忆体里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。
所谓的"操作系统内核",就是操作系统最核心最关键的部件啦。它负责一些最基本的工作,比如:管理硬件驱动、管理内存、管理文件系统、管理进程、等等。这些工作只要少了任何一样,整个操作系统都没法运转。
Linux 相关 ~(>_<~)
Linux 内核
Linux内核(英语:Linux kernel),是一种计算机操作系统内核,以C语言和汇编语言写成,符合POSIX标准,以GNU通用公共许可证釋出。Linux内核最早是由芬兰黑客林納斯·托瓦茲为尝试在自己的英特尔x86架构计算机上提供自由免费的类Unix系统而开发的。该计划开始于1991年,林納斯·托瓦茲当时在Usenet新闻组comp.os.minix登载帖子[7],这份著名的帖子標示着Linux内核计划的正式开始。
在计划的早期有一些Minix的黑客提供了协助,而今天全球有无数程序员正在为该计划无偿提供帮助。
从技术上说Linux只是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核并不是一套完整的操作系统。有一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux(在该系统中包含了很多GNU计划的系统组件)。
Linux 内核的特点是:彻底的开放性。所谓的"开放性"包括如下几方面:
- 任何人都可以随意获取(可以从 Linux Kernel 官网直接下)
- 任何人都可以免费获取(完全不用花银子)
- 任何人都可以参与开发(阿猫阿狗都可以向 Linux 社区提交代码,只要你提交的代码符合要求,就会被合并到内核主线)
Linux 操作系统
Linux 是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。 在加上使用者空間的應用程式之後,成為Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。 只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。 大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發行版,而不是自己選擇每一樣組件或自行設置。
严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统, 包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux不屬於GNU計劃。
Linux 发行版
Linus 领导的开源社区只负责开发内核,不开发其它的东西(比如:运行库、图形界面、应用软件、等)。
这就引出一个问题——光有一个赤裸裸的内核,用户是没法用的(就好比你光拿到一个汽车引擎,你是没法开车的)。为此,就有一大帮开源社区或商业公司,在这个裸露的内核外面,再包上一些东西(比如:运行库、应用软件)。经过这样包装之后,就成为"发行版"。
在这种模式下,会有各种各样的发行版,正好可以覆盖千奇百怪的需求;其次,同质化的发行版之间会产生竞争,最终只有优秀的发行版会存活,差劲的发行版会逐渐消亡——这就是开源生态圈的"达尔文主义"。
如果用一个词来形容 Linux 的优点,那就是——多元化。内核的开发是多元化的(任何人都可以参与),发行版是多元化的(任何人都可以搞发行版)。
硬盘相关
MBR ( Master Boot Record , 主引导记录 )
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。因此,在使用“主引导记录”(MBR)这个术语的时候,需要根据具体情况判断其到底是指整个主引导扇区,还是主引导扇区的前446字节。
从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘,最多只能识别4个主要分区(Primary partition)。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主要分区的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区。[2]
扩展分区中逻辑驱动器的引导记录是链式的。每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR),其分区表的第一项指向该逻辑分区本身的引导扇区,第二项指向下一个逻辑驱动器的EBR,分区表第三、第四项没有用到。
Windows系统默认情况下,一般都是只划分一个主分区给系统,剩余的部分全部划入扩展分区。这里有下面几点需要注意:
- 在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
- 在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
- 在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。[3]如果硬盘太大则必须改用GPT。
UEFI ( Unified Extensible Firmware Interface, 统一可扩展固件界面)
统一可扩展固件界面(Unified Extensible Firmware Interface, UEFI)是一种个人电脑系统规格,用来定义作业系统与系统固件之间的软件界面,作为BIOS的替代方案[1]。可扩展固件接口负责加电自检(POST)、连系作业系统以及提供连接作业系统与硬体的介面。
UEFI的前身是Intel在1998年开始开发的Intel Boot Initiative,后来被重命名为可延伸韧体介面(Extensible Firmware Interface, EFI)。Intel在2005年将其交由统一可扩展固件接口论坛(Unified EFI Forum)来推广与发展,为了凸显这一点,EFI也更名为UEFI(Unified EFI)。UEFI论坛的创始者是11家知名电脑公司,包括Intel、IBM等硬件厂商,软件厂商Microsoft,及BIOS厂商AMI、Insyde及Phoenix。