Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
2d8a7e6f
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2d8a7e6f
编写于
8月 07, 2020
作者:
G
guide
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[refractor]Linux
上级
00a20cab
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
40 addition
and
30 deletion
+40
-30
docs/operating-system/basis.md
docs/operating-system/basis.md
+5
-8
docs/operating-system/images/linux.png
docs/operating-system/images/linux.png
+0
-0
docs/operating-system/images/macos.png
docs/operating-system/images/macos.png
+0
-0
docs/operating-system/images/unix.png
docs/operating-system/images/unix.png
+0
-0
docs/operating-system/images/windows.png
docs/operating-system/images/windows.png
+0
-0
docs/operating-system/images/操作系统内核和外核.png
docs/operating-system/images/操作系统内核和外核.png
+0
-0
docs/operating-system/images/操作系统简单分类.png
docs/operating-system/images/操作系统简单分类.png
+0
-0
docs/operating-system/linux.md
docs/operating-system/linux.md
+35
-22
未找到文件。
docs/operating-system/basis.md
浏览文件 @
2d8a7e6f
...
...
@@ -22,15 +22,12 @@
🙋
**我**
:我通过以下四点向您介绍一下什么是操作系统吧!
1.
**操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机
系统的内核与基石;
**
2.
**操作系统本质上是
运行在计算机上的软件程序 ;**
3.
**操作系统
为用户提供一个与系统交互的操作界面 ;**
4.
**操作系统
分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。**
1.
**操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机
的基石。
**
2.
**操作系统本质上是
一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。**
举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
3.
**操作系统
存在屏蔽了硬件层的复杂性。**
操作系统就像是硬件使用的负责人,统筹着各种相关事项。
4.
**操作系统
的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理**
。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。
> 关于内核多插一嘴:内核负责管理系统的进程、内存、设备驱动程序、文件和网络系统等等,决定着系统的性能和稳定性。是连接应用程序和硬件的桥梁。
> 内核就是操作系统背后黑盒的核心。
![
操作系统分内核与外壳
](
images/操作系统内核和外核.png
)
![
Kernel_Layout
](
https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout.png
)
### 1.2 系统调用
...
...
docs/operating-system/images/linux.png
0 → 100644
浏览文件 @
2d8a7e6f
52.3 KB
docs/operating-system/images/macos.png
0 → 100644
浏览文件 @
2d8a7e6f
36.9 KB
docs/operating-system/images/unix.png
0 → 100644
浏览文件 @
2d8a7e6f
114.4 KB
docs/operating-system/images/windows.png
0 → 100644
浏览文件 @
2d8a7e6f
162.7 KB
docs/operating-system/images/操作系统内核和外核.png
已删除
100644 → 0
浏览文件 @
00a20cab
23.3 KB
docs/operating-system/images/操作系统简单分类.png
已删除
100644 → 0
浏览文件 @
00a20cab
893.0 KB
docs/operating-system/linux.md
浏览文件 @
2d8a7e6f
...
...
@@ -2,24 +2,26 @@
今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。
如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!
*如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯!*
## 从认识操作系统开始
![](
https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/image-20200807161118901.png
)
正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。
### 操作系统简介
我通过以下四点介绍什么是操作系统:
1.
**操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石
;
**
2.
**操作系统本质上是一个运行在计算机上的软件程序
;**
3.
**操作系统
为用户提供一个与系统交互的操作界面 ;**
4.
**操作系统
分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。**
1.
**操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石
。
**
2.
**操作系统本质上是一个运行在计算机上的软件程序
,用于管理计算机硬件和软件资源。**
举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
3.
**操作系统
存在屏蔽了硬件层的复杂性。**
操作系统就像是硬件使用的负责人,统筹着各种相关事项。
4.
**操作系统
的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理**
。
> 内核(Kernel)在后文中会提到。
![
操作系统分Linux与外壳
](
images/操作系统内核和外核
.png
)
![
Kernel_Layout
](
https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout
.png
)
### 操作系统简单分类
...
...
@@ -29,13 +31,15 @@
*玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台Windows用于玩游戏,一台Mac 用于平时日常开发和学习使用。*
![
windows
](
images/windows.png
)
#### Unix
最早的多用户、多任务操作系统 。后面崛起的 Linux 在很多方面都参考了 Unix。
目前这款操作系统已经逐渐逐渐退出操作系统的舞台。
![
Unix
](
images/操作系统简单分类
.png
)
![
unix
](
images/unix
.png
)
#### Linux
...
...
@@ -45,12 +49,14 @@
>
> **很多人更倾向使用 “GNU/Linux” 一词来表达人们通常所说的 “Linux”。**
![
Linux
](
images/Linux-Logo
.png
)
![
linux
](
images/linux
.png
)
#### Mac OS
苹果自家的操作系统,编程体验和 Linux相当,但是界面、软件生态以及用户体验各方面都要比 Linux 操作系统更好。
![
macos
](
images/macos.png
)
### 操作系统的内核(Kernel)
我们先来看看维基百科对于内核的解释,我觉得总结的非常好!
...
...
@@ -61,16 +67,18 @@
简单概括两点:
1.
操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。
2.
操作系统的内核是连接应用程序和硬件的桥梁,决定着操作系统的性能和稳定性。
1.
**操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。**
2.
**操作系统的内核是连接应用程序和硬件的桥梁,决定着操作系统的性能和稳定性。**
### 中央处理器(CPU,Central Processing Unit)
简单概括三点:
关于 CPU 简单概括三点:
1.
**CPU 是一台计算机的运算核心(Core)+控制核心( Control Unit),可以称得上是计算机的大脑。**
2.
**CPU 主要包括两个部分:控制器+运算器。**
3.
**CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。**
1.
CPU 是一台计算机的运算核心(Core)+控制核心( Control Unit),可以称得上是计算机的大脑。
2.
CPU 主要包括两个部分,即控制器、运算器。
3.
CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。
### CPU vs Kernel(内核)
很多人容易无法区分操作系统的内核(Kernel)和中央处理器(CPU),你可以简单从下面两点来区别:
...
...
@@ -79,7 +87,7 @@
下图清晰说明了应用程序、内核、CPU这三者的关系。
<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%;"
/>
![
Kernel_Layout
](
https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/2020-8/Kernel_Layout.png
)
### 系统调用
...
...
@@ -112,10 +120,10 @@
### Linux简介
我们上面已经
介绍到了Linux,我们
这里只强调三点。
我们上面已经
简单了Linux,
这里只强调三点。
-
**类Unix系统**
: Linux是一种自由、开放源码的类似Unix的操作系统
-
**Linux 本质是指 Linux 内核**
: 严格来讲,Linux这个词本身只表示Linux内核,单独的 Linux 内核并不能成为一个可以正常工作的操作系统。所以,就有了各种Linux发行版。
-
**Linux之父**
: 一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是
**Linux内核**
的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师
与项目协调者
。他还发起了Git这个开源项目,并为主要的开发者。
-
**Linux之父**
: 一个编程领域的传奇式人物,真大佬!我辈崇拜敬仰之楷模。他是
**Linux内核**
的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师。他还发起了Git这个开源项目,并为主要的开发者。
![
Linux
](
images/Linux之父.png
)
...
...
@@ -151,13 +159,18 @@ Linux 的发行版本可以大体分为两类:
其实这是UNIX哲学的一个体现,在UNIX系统中,把一切资源都看作是文件,Linux 的文件系统也是借鉴UNIX文件系统而来。
### inode
**inode是linux/unix文件系统和硬盘存储的基础。那么,inode是什么?有什么作用呢?**
### inode 介绍
**inode是linux/unix文件系统的基础。那么,inode是什么?有什么作用呢?**
硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是4kb,约为8个连续的扇区组成(每个扇区存储512字节)。一个文件可能会占用多个block,但是一个块只能存放一个文件。
虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的
**元信息metadata**
:如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种
**存储文件元信息的区域就叫inode**
,译为索引节点:
**i(index)+node**
。 每个文件都有一个inode,存储文件的元信息。
可以使用
`stat`
命令可以查看文件的inode信息。每个inode都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用inode号码区分不同的文件。
文件存储在硬盘上,硬盘的最小存储单位是扇区(Sector),每个扇区存储512字节(0.5kb)。操作系统读取硬盘的数据时,不会一个扇区一个扇区的读取,这样做效率较低,而是一次读取多个扇区,即一次读取一个块(block)。块由多个扇区组成,是文件读取的最小单位,块的最常见的大小是4kb,约为8个连续的扇区组成。文件数据存储在块中, 但还需要一个空间来存储文件的
**元信息metadata**
,如文件拥有者,创建时间,权限,大小等。这种
**存储文件元信息的区域就叫inode**
,译为索引节点。 每个文件都有一个inode,存储文件的元信息。
使用
`stat`
命令可以查看文件的inode信息。每个inode都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用inode号码区分不同的文件。
简单来说:inode就是用来维护某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等信息。
**总结:**
简单总结一下:
-
**inode**
:记录文件的属性信息,可以使用stat命令查看inode信息。
-
**block**
:实际文件的内容,如果一个文件大于一个块时候,那么将占用多个block,但是一个块只能存放一个文件。(因为数据是由inode指向的,如果有两个文件的数据存放在同一个块中,就会乱套了)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录