我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux服务器中的三个内核文件分别是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux服务器中的三个内核文件分别是什么

linux服务器中的三个内核文件分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

linux系统只要是使用过的用户,都应该知道其强大的功能。但是可能用户对linux内核中的一些文件并不了解。

Linux服务器的使用非常普遍。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHatLinux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls-l。编译过RedHatLinux内核的人对其中的System.map、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?本文简单介绍linux中的三个内核文件。

一、vmlinuz

vmlinuz是可引导的、压缩的内核。"vm"代表"VirtualMemory"。Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名"vm"。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。

vmlinuz的建立有两种方式。一是编译内核时通过"makezImage"创建,然后通过:"cp/usr/class="lazy" data-src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz"产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。二是内核编译时通过命令makebzImage创建,然后通过:"cp/usr/class="lazy" data-src/linux-2.4/arch/i386/linux/boot/bzImage/boot/vmlinuz"产生。bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示"bigzImage"。bzImage中的b是"big"意思。

zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip或gzip-dc解包vmlinuz。

内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(***个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。

vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

二、initrd-x.x.x.img

initrd是"initialramdisk"的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7-10.img主要是用于加载ext3等文件系统及scsi设备的驱动。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件。

linuxrc这个脚本initrd实现加载一些模块和安装文件系统等。initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:manmkinitrd。

三、System.map

System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。

内核符号表是怎么创建的呢?System.map是由"nmvmlinux"产生并且不相关的符号被滤出。对于本文中的例子,编译内核时,System.map创建在/usr/class="lazy" data-src/linux-2.4/System.map。像下面这样:

nm/boot/vmlinux-2.4.7-10>System.map

下面几行来自/usr/class="lazy" data-src/linux-2.4/Makefile:

nmvmlinux|grep-v'\(compiled\)\|\(\.o$\)\|   \([aUw]\)\|\(\.\.ng$\)\|\(LASH[RL]DI\)'|sort>System.map

然后复制到/boot:

cp/usr/class="lazy" data-src/linux/System.map/boot/System.map-2.4.7-10

在进行程序设计时,会命名一些变量名或函数名之类的符号。Linux内核是一个很复杂的代码块,有许许多多的全局符号。

Linux内核不使用符号名,而是通过变量或函数的地址来识别变量或函数名。比如不是使用size_tBytesRead这样的符号,而是像c0343f20这样引用这个变量。

对于使用计算机的人来说,更喜欢使用那些像size_tBytesRead这样的名字,而不喜欢像c0343f20这样的名字。内核主要是用c写的,所以编译器/连接器允许我们编码时使用符号名,当内核运行时使用地址。

然而,在有的情况下,我们需要知道符号的地址,或者需要知道地址对应的符号。这由符号表来完成,符号表是所有符号连同它们的地址的列表。变量名checkCPUtype在内核地址c01000a5。

Linux符号表使用到2个文件:

/proc/ksyms   System.map

/proc/ksyms是一个"procfile",在内核引导时创建。实际上,它并不真正的是一个文件,它只不过是内核数据的表示,却给人们是一个磁盘文件的假象,这从它的文件大小是0可以看出来。然而,System.map是存在于你的文件系统上的实际文件。当你编译一个新内核时,各个符号名的地址要发生变化,你的老的System.map具有的是错误的符号信息。每次内核编译时产生一个新的System.map,你应当用新的System.map来取代老的System.map。

虽然内核本身并不真正使用System.map,但其它程序比如klogd,lsof和ps等软件需要一个正确的System.map。如果你使用错误的或没有

System.map,klogd的输出将是不可靠的,这对于排除程序故障会带来困难。没有System.map,你可能会面临一些令人烦恼的提示信息。

另外少数驱动需要System.map来解析符号,没有为你当前运行的特定内核创建的System.map它们就不能正常工作。

Linux的内核日志守护进程klogd为了执行名称-地址解析,klogd需要使用System.map。System.map应当放在使用它的软件能够找到它的地方。执行:manklogd可知,如果没有将System.map作为一个变量的位置给klogd,那么它将按照下面的顺序,在三个地方查找System.map:

/boot/System.map   /System.map   /usr/class="lazy" data-src/linux/System.map

System.map也有版本信息,klogd能够智能地查找正确的映象(map)文件。

关于linux服务器中的三个内核文件分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux服务器中的三个内核文件分别是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux服务器中的三个内核文件分别是什么

linux服务器中的三个内核文件分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。linux系统只要是使用过的用户,都应该知道其强大的功能。但是可能用户对linux内
2023-06-16

Linux系统文件中的三个时间是什么

这篇文章主要介绍了Linux系统文件中的三个时间是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux系统文件中的三个时间是什么文章都会有所收获,下面我们一起来看看吧。在Linux系统中文件涉及到三个时
2023-06-27

Linux内核发现两个没有被修复的DoS漏洞分别是什么

这篇文章给大家介绍Linux内核发现两个没有被修复的DoS漏洞分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。贡献者Wanpeng Li(李万鹏,音译)近日在Linux Kernel中发现了两个拒绝服务(DOS
2023-06-06

Linux下三种提高工作效率的文件处理技巧分别是什么

这期内容当中小编将会给大家带来有关Linux下三种提高工作效率的文件处理技巧分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作
2023-06-28

亚马逊的个人文件服务器是什么

亚马逊的个人文件服务器是指亚马逊提供的一种云存储服务,称为AmazonDrive。它允许用户将文件存储在亚马逊的服务器上,并随时从任何地方访问这些文件。用户可以使用AmazonDrive应用程序在计算机、手机或平板电脑上访问这些文件,也可以通过网页浏览器访问。AmazonDrive还提供了自动备份功能,可以将用户设备上的照片和视频备份到亚马逊的服务器上,以便用户可以轻松地在不同设备之间共享和访问这些文件。此外,AmazonDrive...
2023-10-27

Linux文件服务器搭建的方法是什么

搭建Linux文件服务器的步骤如下:1. 安装Linux操作系统(如Ubuntu、CentOS等)。2. 安装Samba服务,Samba是一种用于在Linux和Windows之间共享文件和打印机的软件。在Ubuntu上,可以使用以下命令安装
2023-06-07

linux服务器传输文件的方法是什么

在Linux服务器上,可以使用多种方法来传输文件,以下是一些常用的方法:SCP(Secure Copy):SCP是基于SSH协议的文件传输工具,可以通过命令行将文件从本地计算机传输到远程服务器,或者从远程服务器传输到本地计算机。示例命令:s
linux服务器传输文件的方法是什么
2024-04-26

影响服务器稳定的七个原因分别是什么

影响服务器稳定的七个原因分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。随着互联网的普及,电子商务的热潮也开始越来越高涨,企业看准网络的推广效应,各种企
2023-06-07

云服务器linux传输文件的方法是什么

云服务器Linux文件传输方法本指南介绍了在Linux系统之间安全传输文件的多种方法:SCP(安全复制):加密且安全的远程文件传输,使用SSH协议。SFTP(SSH文件传输协议):通过SSH提供命令行文件传输界面。Rsync(远程同步):用于增量同步本地和远程文件系统。FTP(文件传输协议):广泛使用的文件传输协议,通过TCP连接传输文件。WebDAV(基于Web的分布式创作和版本控制):允许通过HTTP接口访问远程文件系统。选择最佳方法取决于安全需求、传输效率、易用性和可访问性。
云服务器linux传输文件的方法是什么
2024-04-09

云服务器linux传输文件的方法是什么

云服务器Linux传输文件的方法有多种,以下是几种常用的方法:1. SCP(Secure Copy):SCP是一个安全的文件传输工具,可以通过SSH协议在本地和远程服务器之间复制文件。使用命令`scp`可以将文件从本地复制到云服务器,或从云
2023-09-23

6个最佳的开源Python应用服务器分别是什么

本篇文章为大家展示了6个最佳的开源Python应用服务器分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先,你知道什么是应用服务器吗?应用服务器通常被描述为是存在于服务器中心架构中间层的一
2023-06-17

Linux服务器操作系统的六大特性分别是什么

这篇文章将为大家详细讲解有关Linux服务器操作系统的六大特性分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  随着互联网的快速发展,大家对于系统的要求越来越高了,Linux系统凭
2023-06-05

云服务器的种类包括什么内容和功能分别是

云服务器可以分为以下几类内容和功能:虚拟化技术:将计算、存储等资源虚拟化为逻辑设备(VM),实现了更高效地管理资源和提高服务器利用率。分布式云计算:将大量计算资源分散部署在不同的服务器节点上,通过负载均衡等技术分布在多个服务器上,以提高资源的利用率和并发处理能力。云存储:通过云存储技术将数据存储在本地或者云端的设备上,实现了更方便的数据存储管理和访问方式。云安全:通过虚拟化安全技术,实
2023-10-26

Linux中3种修改打开文件数量限制的方法分别是什么

这篇文章给大家介绍Linux中3种修改打开文件数量限制的方法分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字。主内存的一个特殊区域是为文件句柄预留的,这
2023-06-28

云服务器的种类包括什么内容和功能分别是哪些

云服务器可以分为以下几类内容和功能:虚拟服务器:虚拟服务器是指在不同的物理服务器之间创建虚拟集群,并将用户分配到这些集群中的服务器上的一种服务。虚拟服务器的好处是可以随时随地访问和管理,但是它的部署和管理相对困难,需要专业的技术团队进行维护。云存储服务:云存储服务是云计算的一种服务,它可以将用户的数据存储在云服务器上,并提供云存储服务。云存储服务的好处是存储和访问都不受限制,用户可以随时随地访问自己的数据和...
2023-10-27

设置服务器安全环境的4个Nginx小技巧分别是什么

这篇文章给大家介绍设置服务器安全环境的4个Nginx小技巧分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。分享我们常用的WEB环境安全技巧,一般我们使用NGINX比较多的,对于一般的安全我们很少有去其他的操作,
2023-06-05

香港服务器上无法打开网站的几个处理方法分别是什么

这篇文章给大家介绍香港服务器上无法打开网站的几个处理方法分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 有些客户在租用香港服务器以后,有时候会遇到打不开网站的情况。实际上,我们在访问网站的时候经常会遇到无法打
2023-06-07

云服务器ecs的产品组件有哪些类型和特点分别是什么

云服务器ECS(ElasticComputeService)是一种云计算服务,它具有以下特点和功能:数据存储:云服务器ECS可以作为服务器集群的一部分,可以将数据存储在各个服务器上。这意味着它可以更容易地从数据中心存储数据到云服务器ECS,或者从云服务器ECS存储数据到本地数据存储。可伸缩性:云服务器ECS可以在不中断运行的情况下扩展其性能。它可以通过增加容量和减少服务器数量来满足业务需求
2023-10-26

在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么

今天就跟大家聊聊有关在Linux中创建自定义脚本和创建systemd服务单元文件的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言systemd是Linux操作系统的系统
2023-06-26

编程热搜

目录