Skip to content

Commit 2d8a7e6

Browse files
committed
[refractor]Linux
1 parent 00a20ca commit 2d8a7e6

File tree

8 files changed

+40
-30
lines changed

8 files changed

+40
-30
lines changed

docs/operating-system/basis.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,12 @@
2222

2323
🙋 **** :我通过以下四点向您介绍一下什么是操作系统吧!
2424

25-
1. **操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;**
26-
2. **操作系统本质上是运行在计算机上的软件程序 ;**
27-
3. **操作系统为用户提供一个与系统交互的操作界面 ;**
28-
4. **操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。**
25+
1. **操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。**
26+
2. **操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。** 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
27+
3. **操作系统存在屏蔽了硬件层的复杂性。** 操作系统就像是硬件使用的负责人,统筹着各种相关事项。
28+
4. **操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理**。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。
2929

30-
> 关于内核多插一嘴:内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统等等,决定着系统的性能和稳定性。是连接应用程序和硬件的桥梁。
31-
> 内核就是操作系统背后黑盒的核心。
32-
33-
![操作系统分内核与外壳](images/操作系统内核和外核.png)
30+
![Kernel_Layout](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout.png)
3431

3532
### 1.2 系统调用
3633

52.3 KB
Loading
36.9 KB
Loading
114 KB
Loading
163 KB
Loading
-23.3 KB
Binary file not shown.
-893 KB
Binary file not shown.

docs/operating-system/linux.md

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,26 @@
22

33
今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。
44

5-
如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!
5+
*如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯!*
66

77
## 从认识操作系统开始
88

9+
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/image-20200807161118901.png)
10+
911
正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。
1012

1113
### 操作系统简介
1214

1315
我通过以下四点介绍什么是操作系统:
1416

15-
1. **操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石**
16-
2. **操作系统本质上是一个运行在计算机上的软件程序 **
17-
3. **操作系统为用户提供一个与系统交互的操作界面 ;**
18-
4. **操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。**
17+
1. **操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石**
18+
2. **操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。** 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
19+
3. **操作系统存在屏蔽了硬件层的复杂性。** 操作系统就像是硬件使用的负责人,统筹着各种相关事项。
20+
4. **操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理**
1921

2022
> 内核(Kernel)在后文中会提到。
2123
22-
![操作系统分Linux与外壳](images/操作系统内核和外核.png)
24+
![Kernel_Layout](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout.png)
2325

2426
### 操作系统简单分类
2527

@@ -29,13 +31,15 @@
2931

3032
*玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台Windows用于玩游戏,一台Mac 用于平时日常开发和学习使用。*
3133

34+
![windows](images/windows.png)
35+
3236
#### Unix
3337

3438
最早的多用户、多任务操作系统 。后面崛起的 Linux 在很多方面都参考了 Unix。
3539

3640
目前这款操作系统已经逐渐逐渐退出操作系统的舞台。
3741

38-
![Unix](images/操作系统简单分类.png)
42+
![unix](images/unix.png)
3943

4044
#### Linux
4145

@@ -45,12 +49,14 @@
4549
>
4650
> **很多人更倾向使用 “GNU/Linux” 一词来表达人们通常所说的 “Linux”。**
4751
48-
![Linux](images/Linux-Logo.png)
52+
![linux](images/linux.png)
4953

5054
#### Mac OS
5155

5256
苹果自家的操作系统,编程体验和 Linux相当,但是界面、软件生态以及用户体验各方面都要比 Linux 操作系统更好。
5357

58+
![macos](images/macos.png)
59+
5460
### 操作系统的内核(Kernel)
5561

5662
我们先来看看维基百科对于内核的解释,我觉得总结的非常好!
@@ -61,16 +67,18 @@
6167
6268
简单概括两点:
6369

64-
1. 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。
65-
2. 操作系统的内核是连接应用程序和硬件的桥梁,决定着操作系统的性能和稳定性。
70+
1. **操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。**
71+
2. **操作系统的内核是连接应用程序和硬件的桥梁,决定着操作系统的性能和稳定性。**
6672

6773
### 中央处理器(CPU,Central Processing Unit)
6874

69-
简单概括三点:
75+
关于 CPU 简单概括三点:
76+
77+
1. **CPU 是一台计算机的运算核心(Core)+控制核心( Control Unit),可以称得上是计算机的大脑。**
78+
2. **CPU 主要包括两个部分:控制器+运算器。**
79+
3. **CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。**
7080

71-
1. CPU 是一台计算机的运算核心(Core)+控制核心( Control Unit),可以称得上是计算机的大脑。
72-
2. CPU 主要包括两个部分,即控制器、运算器。
73-
3. CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。
81+
### CPU vs Kernel(内核)
7482

7583
很多人容易无法区分操作系统的内核(Kernel)和中央处理器(CPU),你可以简单从下面两点来区别:
7684

@@ -79,7 +87,7 @@
7987

8088
下图清晰说明了应用程序、内核、CPU这三者的关系。
8189

82-
<img src="https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/1200px-Kernel_Layout.svg.png" alt="Kernel (operating system) - Wikipedia" style="zoom:50%;" />
90+
![Kernel_Layout](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout.png)
8391

8492
### 系统调用
8593

@@ -112,10 +120,10 @@
112120

113121
### Linux简介
114122

115-
我们上面已经介绍到了Linux,我们这里只强调三点
123+
我们上面已经简单了Linux,这里只强调三点
116124
- **类Unix系统** : Linux是一种自由、开放源码的类似Unix的操作系统
117125
- **Linux 本质是指 Linux 内核** : 严格来讲,Linux这个词本身只表示Linux内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种Linux发行版。
118-
- **Linux之父** : 一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是 **Linux内核** 的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师与项目协调者。他还发起了Git这个开源项目,并为主要的开发者。
126+
- **Linux之父** : 一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是 **Linux内核** 的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师。他还发起了Git这个开源项目,并为主要的开发者。
119127

120128
![Linux](images/Linux之父.png)
121129

@@ -151,13 +159,18 @@ Linux 的发行版本可以大体分为两类:
151159

152160
其实这是UNIX哲学的一个体现,在UNIX系统中,把一切资源都看作是文件,Linux 的文件系统也是借鉴UNIX文件系统而来。
153161

154-
### inode
155-
**inode是linux/unix文件系统和硬盘存储的基础。那么,inode是什么?有什么作用呢?**
162+
### inode 介绍
163+
**inode是linux/unix文件系统的基础。那么,inode是什么?有什么作用呢?**
164+
165+
硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是4kb,约为8个连续的扇区组成(每个扇区存储512字节)。一个文件可能会占用多个block,但是一个块只能存放一个文件。
166+
167+
虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 **元信息metadata** :如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 **存储文件元信息的区域就叫inode**,译为索引节点:**i(index)+node**。 每个文件都有一个inode,存储文件的元信息。
168+
169+
可以使用 `stat` 命令可以查看文件的inode信息。每个inode都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用inode号码区分不同的文件。
156170

157-
文件存储在硬盘上,硬盘的最小存储单位是扇区(Sector),每个扇区存储512字节(0.5kb)。操作系统读取硬盘的数据时,不会一个扇区一个扇区的读取,这样做效率较低,而是一次读取多个扇区,即一次读取一个块(block)。块由多个扇区组成,是文件读取的最小单位,块的最常见的大小是4kb,约为8个连续的扇区组成。文件数据存储在块中, 但还需要一个空间来存储文件的 **元信息metadata**,如文件拥有者,创建时间,权限,大小等。这种 **存储文件元信息的区域就叫inode**,译为索引节点。 每个文件都有一个inode,存储文件的元信息。
158-
使用 `stat` 命令可以查看文件的inode信息。每个inode都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用inode号码区分不同的文件。
171+
简单来说:inode就是用来维护某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等信息。
159172

160-
**总结:**
173+
简单总结一下:
161174

162175
- **inode** :记录文件的属性信息,可以使用stat命令查看inode信息。
163176
- **block** :实际文件的内容,如果一个文件大于一个块时候,那么将占用多个block,但是一个块只能存放一个文件。(因为数据是由inode指向的,如果有两个文件的数据存放在同一个块中,就会乱套了)

0 commit comments

Comments
 (0)