Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介

简介: 原文:Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理子系统、网络子系统、虚拟文件系统在这个阶段进行分析的,但是为了让大家对内核有个整体的把握,今天还是简单的介绍一下剩余的几个子系统,我们对这几个子系统的分析,只要了解其作用和部分内容即可,不必深究,等我们写上几个驱动,到时候按照驱动再来分析这几个子系统我们就清晰多了。
原文: Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介

Linux内核分析(四)

两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理子系统、网络子系统、虚拟文件系统在这个阶段进行分析的,但是为了让大家对内核有个整体的把握,今天还是简单的介绍一下剩余的几个子系统,我们对这几个子系统的分析,只要了解其作用和部分内容即可,不必深究,等我们写上几个驱动,到时候按照驱动再来分析这几个子系统我们就清晰多了。

http://www.cnblogs.com/wrjvszq/p/4257164.html一文我们提到过linux由七个部分构成,最重要的四个子系统是内存管理子系统、进程管理子系统、网络子系统、虚拟文件系统、上次我们已经对内存管理子系统进行了分析(谈不上分析,只是个简单了解)。

所以今天我们会分析到以下内容:

1.      Linux进程管理子系统

2.      Linux网络子系统

3.      虚拟文件系统

4.      Linux设备驱动简介

 

l  Linux进程管理子系统

在进程管理中最重要的就是进程的调度和进程的通信下面我们一一分析。

1.       进程调度

进程调度使得多个进程增长CPU中“微观串行,宏观并行”的进行执行。进程调度处于系统的中心位置,内核中其他子系统都依赖于它。

a)      进程调度意义

进程调度使得多个进程增长CPU中“微观串行,宏观并行”的进行执行。进程调度处于系统的中心位置,内核中其他子系统都依赖于它。

b)      进程的状态切换

Linux的进程在几个状态间进行切换,如下图展现了其切换关系。

c)      进程调度策略

Linux中常见的有以下

1)    SCHED_OTHER 分时调度策略。

2)    SCHED_FIFO实时调度策略,先到先服务

3)    SCHED_RR实时调度策略,时间片轮转

 

2.       进程通信

Linux支持进程间的多种通信机制,可以通过这些通信机制进行多个进程、多资源的互斥访问、进程间的同步和消息传递。

a)      linux进程间通信方式

1)        管道:分为有名管道(用于同一系统间的任意进程)和无名管道(用于父子进程)

2)        信号量

3)        信号

4)        消息队列

5)        共享内存

6)        套接字(socket

l  Linux网络子系统

Linux网络子系统提供了对各种网络标准的存取和各种硬件的支持。下图是其整体结构。其可以分为协议层和网络驱动程序,其中网络协议主要负责实现每一种可能的网络传输协议,而网络驱动程序负责与硬件通信。

l  Linux虚拟文件系统

Linux虚拟文件系统(VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,它是对各种文件系统的一个抽象,其实使用超级块super block存放文件系统相关信息,使用索引节点inode存放文件的物理信息,使用目录项dentry存放文件的逻辑信息,其整体架构如下。

l  Linux设备驱动简介

上面的介绍很简单,仅仅是对这些子系统的概念什么的进行了简介,下面我们对linux设备驱动进行简单介绍。

1.       设备驱动分类

Linux分为下面三种基本设备。

a)      字符设备

是一种按照字节来访问的设备,字符设备适用于大多数的简单硬件。常见的LED、按键等

b)      块设备

是一种以块(通常为512字节)为最小访问单位的设备,常见的硬盘、SD卡等。linux中对块没有大小限制,可以访问任意数目的字节。

c)      网络设备

用来负责发送和接收报文的设备,比如网卡。

 

今天的简单分析就先到这里,我以后会慢慢的伴随着驱动的开发去分析内核,感谢大家的关注。

 





目录
相关文章
|
8天前
|
Linux C语言
Linux内核队列queue.h
Linux内核队列queue.h
|
9天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
9天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
9天前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
17天前
|
Linux
Linux中centos桌面消失网络图标
Linux中centos桌面消失网络图标
13 0
|
7天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
7天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
16 3
|
11天前
|
监控 Linux Shell
初识Linux下进程2
初识Linux下进程2
|
11天前
|
Linux 编译器 Windows
【Linux】10. 进程地址空间
【Linux】10. 进程地址空间
19 4
|
11天前
|
机器学习/深度学习 人工智能 运维
构建未来:AI驱动的自适应网络安全防御系统
【4月更文挑战第7天】 在数字时代的浪潮中,网络安全已成为维系信息完整性、保障用户隐私和确保商业连续性的关键。传统的安全防御策略,受限于其静态性质和对新型威胁的响应迟缓,已难以满足日益增长的安全需求。本文将探讨如何利用人工智能(AI)技术打造一个自适应的网络安全防御系统,该系统能够实时分析网络流量,自动识别并响应未知威胁,从而提供更为强大和灵活的保护机制。通过深入剖析AI算法的核心原理及其在网络安全中的应用,我们将展望一个由AI赋能的、更加智能和安全的网络环境。
25 0