Linux学习笔记:【001】Linux内核分析

news/2024/7/4 13:34:08

Linux内核

Linux内核是Linux系统构成中最核心的一个部分,是由5个子系统组成。

进程调度:

  进程调度(SCHED)控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。

  处于中心位置的进程调度,所有其他的子系统都依赖它,因为

  可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。(比如进入阻塞态)

  Linux的进程调度机制比较简单的,是基于优先级的。

内存管理:

  内存管理(Memory management)允许多个进程安全地共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中允许的程序,其代码、数据、堆栈的总量可以超过实际物理内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中(Lazy load 惰性加载机制)。

  必要时,操作系统负责在磁盘和内存交换程序块。内存管理从逻辑上分为硬件无关和硬件有关2个部分。

  硬件无关部分提供了进程的映射和逻辑内存的对换。

  硬件相关部分为内存管理硬件提供了虚拟接口。

虚拟文件系统

  虚拟文件系统(Virtual File System)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口.

  VFS 提供了多大数十种不同的文件系统,VFS其本身可以分为逻辑文件系统和设备驱动程序2个部分。

  逻辑文件系统指Linux所支持的文件系统,如ext2、Fat等。

  设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

/*
了解其支持的文件系统类型,可通过以下命令来查看: 
# ls /lib/modules/#版本号#/kernel/fs

1.minix:
   是Minix操作系统使用的文件系统,是Linux最先使用的文件系统。它有许多缺点:分区只能小于64MB,只支持短文件名,单一的时间戳,等等。在软盘和动态磁盘领域仍然有用。

2.ext 
   是对Minix的扩展。已完全被ext2取代,内核最终将不会支持它。

3.ext2
   是Linux使用的,性能很好的文件系统,用于固定文件系统和可活动文件系统。它是作为ext文件系统的扩展而设计的。ext2在Linux所支持的文件系统中,提供最好的性能(在速度和CPU使用方面),简短的说,ext2是Linux的主要文件系统。

4.ext3
   是对ext2增加日志功能后的扩展。它向前,向后兼容ext2。意为ext2不用丢失数据和格式化就可以转换为ext3,ext3也可以转换为ext2 而不用丢失数据(只要重新安装该分区就行了)。我从2001年10月就使用ext3,它简单且稳定。在RedHat7.2和Mandrake8.0,中作为一个选项。强烈推荐使用这种文件系统。

5.xiafs 
   作为Minix文件系统的一个稳定,安全的扩展,提供基本的最常用的特点。目前已经停止开发和维护了。不太常使用。

6.msdos
  是DOS, Windows和一些os/2计算机使用的文件系统。文件名不能超过8个字符,然后跟一个3个字符的后缀。

7.umsdos   
  是Linux使用的扩展的DOS文件系统。增加了长文件名支持,UID/GID,POSIX权限,特殊文件等而依然保持和DOS文件系统兼容。

8.vfat 
  是Windows95,Windows NT使用的扩展的DOS文件系统。增加长文件名支持。

9.proc 
   是一种假的文件系统,用于和内核数据结构接口, 它不占用磁盘空间,参考 man proc。

10.iso9660 
   是一种针对ISO9660标准的CD-ROM文件系统。自动支持两种扩展(看下面)。

11.High Sierra 
   是ISO9660标准的前身。Linux自动支持它。Rock Ridge 是Rock Ridge interchange Protocol协议的一个产品,用于进一步向Unix系统描述ISO9660文件系统下的文件。另外提供诸如长文件名,UID/GID,POSIX权限,等信息。Linux自动支持它。

12.hpfs 
   是OS/2使用的高性能的文件系统。在Linux系统中是只读的,因为缺乏相应的文档资料。

13.sysv 
   是SystemV/Coherent文件系统在Linux上的实现。它实现了所有的Xenix,SystemV/386,和 Coherent文件系统。

14.nfs   
   是用于存取远方计算机硬盘的文件系统。

15.smb  
   是支持SMB协议的网络文件系统,Windows用它来实现工作组共享。

16.ncpfs 
  是Novell NetWare使用的,支持NCP协议的网络文件系统。

17.Devpts
    是一个虚拟的文件系统,一般安装在/dev/pts。为了得到一个虚拟终端,进程打开/dev/ptmx,然后就可使用虚拟终端。

18.fat 
   不是一个单独的文件系统,而是msdos, umsdos 和vfat 文件系统的常用部分。

19.UFS 
   是一个广泛使用于各种操作系统的文件系统

20.swap 
  是一种特殊的分区,用于在内存和硬盘间交换数据的文件系统。

21.raiserfs 
  是Linux内核2.4.1以后(2001年1 月)支持的,一种全新的日志文件系统。

22.hfs     
   hfs(=hierarchical files system)是苹果文件系统。

23.ntfs
   Windows NT文件系统。
*/
Linux支持的文件系统

 

网络接口

  网络接口(Network Interface)提供了对各种网络标准的存取和对各种网络硬件的支持。

  网络接口可分为网络协议和网络驱动程序。

  网络协议负责实现每一种可能的网络传输协议。

  网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

进程间通信

  进程间通信(Inter-Process Communication)支持进程间的各种通信机制。

 

转载于:https://www.cnblogs.com/schips/p/9049216.html


http://www.niftyadmin.cn/n/3280965.html

相关文章

使用log记录日志

1 使用log日志: import logging logging.basicConfig(levellogging.INFO, filename'mylog.log')logging.info(start program)print 1/0logging.info(the division succeeded)logging.info(Ending program) 2 使用输入输出流&am…

python当中的super

https://rhettinger.wordpress.com/2011/05/26/super-considered-super/

git 常用命令集锦

放弃本地修改, 强制使用远程版本覆盖本地: git reset –hard origin/master //把HEAD指向最新下载的版本 或者使用下面的方式也是可以的: git fetch –all git reset –hard origin/master git pull查看、添加、提交、删除、找回,重置修…

内联函数与宏

定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用. 内联的工作机制 内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的…

pdf转为ppt的超简单方法,就用这几个!

在我们的工作和生活中,PDF文件是不可或缺的文件格式之一。它以高准确性、整齐的页面排版和流畅的翻页而闻名,为我们处理文档提供了很大的帮助。然而,PDF文件的一个缺点是无法进行修改。当我们不小心输入错误数据或需要进行编辑时,…

5.17 英语单词小记

1.protocol n. 协议;草案;礼仪 vt. 拟定 vi. 拟定 过去式 protocolled或coled过去分词 protocolled或coled现在分词 protocolling或coling 例:pop Post office protocol发邮件协议2.assignvt. 分配;指派;[计][数] 赋值 vi. 将财…

include的顺序

项目内头文件应按照项目源代码目录树结构排列, 避免使用 UNIX 特殊的快捷目录 . (当前目录) 或 .. (上级目录). 例如, google-awesome-project/src/base/logging.h 应该按如下方式包含: #include "base/logging.h" 又如, dir/foo.cc 的主要作用是实现或测试 dir2/f…

Shell:setfacl缩小普通用户的权限

简介 我们在使用jumpserver的过程中,会向主机推送普通用户,但普通用户有上传下载文件的权限,要想对这些权限进行管控就比较困难,之前考虑通过将$PATH变量下的命令的权限设置为750,设置完发现用户无法正常登陆&#xff…