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

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

时间: 2024-11-18 21:37:59

Linux学习笔记:【001】Linux内核分析的相关文章

Linux学习笔记:Linux发行版

Linux发行版 什么是Linux distribution – Linux的本质来说,它只是操作系统的核心(内核),负责控制硬件.管理文件系统.程序迚程等,并丌给用户提供各种工具和应用软件. – 人们以Linux核心为中心,再集成搭配各种各样的系统管理软件戒应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版. Linux主要发行版 RedHat Linux:红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持,由于该发行版是商业化产品,所以丌是免费

Linux学习笔记001——win下安装Linux虚拟机

我研二之前算是一个纯粹的计算机小白,因为某些原因开始接触了计算机方面的知识. Linux系统也就是前几个月才听说,因某些需求需要在Linux环境下运行.纯的Linux系统不太现实, 所以在他人帮助和自己的摸索下学会了安装虚拟机VMware.至于用哪个版本的系统, 可以选择ubantu也可以选择centos,用哪个版本就下哪个版本的镜像文件,你也可以两个都安装 第一步:安装前的准备工作(百度下一个VMware虚拟机软件和一个镜像文件)      第二步:安装VMware软件,和安装普通软件一样.安

Linux学习笔记<十八>——内核编译

内核由核心和内核模块两部分组成 核心:/boot/vmlinuz-version 内核模块(ko):/lib/modules/version/ 查看内核版本 uname -r 主版本号.次版本号(偶数表示稳定版本,奇数表示测试版本).修订版本号(修订的次数) 用户空间访问.监控内核是通过访问修改/proc,/sys目录下的文件(即设定内核的参数值)实现的 /proc/sys:此目录中的文件很多是可读写的 /sys:某些文件可写 设定内核参数值的方法: 1.echo VALUE > /proc/s

[转载]【Linux学习笔记】Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)

在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly.本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^).        注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),因此,本文涉及到的汇编代码均以AT&T Syntax为准. 1. 基本语法规则    

Linux学习笔记(21) Linux日志管理

1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致. rsyslogd的新特点: 基于TCP网络协议传输日志信息:更安全的网络传输方式:有日志消息的及时分析框架:后台数据库:配置文件中可以写简单的逻辑判断:与syslogd配置文件相兼容. 1)确定服务启动 ps aux

Linux学习笔记(22) Linux启动管理

1. 系统运行级别 运行级别 含义 0 关机 1 单用户模式,可想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界面 4 系统保留 5 图形模式 6 重启动 (1) 运行级别命令 runlevel #查看运行级别命令 N表示进入3前面的级别 init 运行级别 #改变运行级别命令 (2) 系统默认运行级别 在配置文件/etc/inittab中进行修改即可 id:3:initdefault: #系统开机后直接进入哪个运行级

Linux学习笔记(23) Linux

1. 备份概述 Linux系统需要备份的数据又/root,/home,/var/spool/mail,/etc及日志等其他目录. 安装服务的数据需要备份,如apache需要备份的数据有配置文件.网页主目录.日志文件:源码包安装的mysql需要备份/usr/local/mysql/data,RPM包安装的mysql需要备份/var/lib/mysql. (1) 备份策略 完全备份:就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录.特点备份较慢,且占用的空间

Linux学习笔记:Linux系统的进程调度(任务调度)

今天我们学习了Linux系统的进程调度,进程调度是为了在未来某个时间点,让系统自动执行我们事先编写好的命令或脚本的列表,从而使得即使用户不在计算机旁边也可以按时完成任务.这样有利于我们更好的进行任务计划以及在需要执行任务的时候自动完成我们设定好的命令,从而完成任务. 当然为了能够进行进程调度,就必须要有一种机制能够识别事件发生的时间并且能够运行用户所预期的命令:这种机制在Linux中是通过特定的守护进程来实现的.这类的进程有: atd:将预先编写好的命令在未来某个时间点执行一次. crond:

Linux学习笔记(六)-Linux服务程序的安装和卸载

Linux操作系统的运行级别 1 单用户模式,root权限,用于系统维护,禁止远程登录,就像Windows下的安全模式登录. 2 多用户模式,没有NFS网络支持 3 完整的多用户文本模式,有NFS,登录后进入控制台命令行模式 4 系统未使用,保留一般不用,在一些特殊情况下可以使用它来做一些事情 5 图形化模式,登陆后进入图形GUI模式,X Window系统 6 重启模式,默认运行级别不能设为6,否则不能正常启动 显示当前运行级别命令: runlevel;进入其他运行级别: init level

Linux学习笔记(五)-Linux应用程序的安装和卸载

Linux应用程序安装概述 Windows下安装程序步骤 在program files文件夹下建立程序文件夹(Linux下的/user) copy相关动态链接库(依赖类库)到程序文件夹或者系统文件夹下,比如dll文件 copy可执行文件到程序文件夹下,比如exe文件 copy配置文件到程序文件夹或者系统文件夹下,比如Ini文件 把启动配置和程序依赖的配置放到注册表(Linux没有注册表) 如果有自定义服务程序的,注册并启动服务程序 Linux安装原理:cp类库,可执行程序,配置文件到相应目录,根