20、Linux 打印服务与内核管理全解析

Linux 打印服务与内核管理全解析

1. 打印服务请求

SERVICE 键值会根据提交的请求类型而有所不同,请求范围从远程服务器的简单连接请求到删除打印作业。打印客户端(如 lpr、lpq、lprm 和 lpc)会发起不同类型的服务请求。其中,lpq 会请求队列信息,SERVICE 的键值为 Q;lprm 会发起删除请求,键值为 M。

LPRng 使用与 CUPS 相同的命令行打印客户端,包括 lpr、lpc、lpq 和 lprm 命令。详细选项可查看各命令的手册页。不过,某些功能(如加密)仅在 CUPS 版本中可用。

2. 内核基础

内核是操作系统的核心,负责管理内存和磁盘访问等核心任务,还能与构成系统的硬件进行交互。例如,它使 Linux 具备多任务和多用户支持等标准特性,同时处理与 CD - ROM 或硬盘等设备的通信。用户通过内核向这些设备发送访问请求,内核再将指令发送给设备。

Kudzu 会在系统启动时自动检测设备,Linux 安装时会对内核进行相应配置。但如果添加新设备,可能需要在内核中启用对其的支持,这通常涉及创建内核的修改版本,也就是构建或编译内核。此外,新的内核版本会不断推出,以提供更好的设备支持和更流畅的系统运行。

3. 内核版本

Linux 内核的版本号由三部分组成:主版本号、次版本号和修订号。主版本号随内核的重大更改而递增;次版本号表示稳定性,偶数用于稳定版本,奇数用于开发版本,开发版本可能不稳定,新特性通常先在开发版本中出现。如果注重稳定性,建议等待稳定版本。修订号表示修正版本,随着漏洞的发现和修复,会发布新的修订版本,开发内核可能有多个修订版本。

例如,内核 2.4.20 的主版本号为 2,次版本号为 4,修订号为 20。发行版通常会添加一个数字,表示应用于内核的特定补丁集。如 Red Hat 9 的内核是 2.4.20 - 8,其中 8 是补丁号。在支持 RPM 包的发行版中,可以使用以下命令查询已安装的内核版本:

rpm -q kernel

系统中可能安装了多个内核版本,要查看当前运行的内核版本,可使用以下命令:

uname -r

新内核在稳定版和开发版两条轨道上发布。稳定内核的修订号为偶数,开发内核为奇数。例如,稳定内核为 2.4,其开发内核为 2.5。虽然开发内核不稳定,但通常支持最新的硬件和软件特性。除非进行内核开发实验,否则应始终安装稳定版本的内核。

4. 内核资源

以下是一些有用的内核资源:
| 资源名称 | 描述 |
| ---- | ---- |
| kernel.org | 官方 Linux 内核网站,所有新内核都源于此 |
| www.linuxhq.com | Linux 总部,提供内核源码和补丁 |
| kernelnewbies.org | 提供 Linux 内核源码和信息 |
| www.tldp.org | Linux 文档项目 |

5. 内核运行时参数调整

一些内核特性可以在不编译和安装新内核或模块的情况下开启或关闭,如 IP 转发或最大文件数。这些可调整的参数由 /proc/sys 文件控制。可以使用 redhat - config - proc 工具为这些参数赋值,该工具可从“更多系统工具”菜单中的“内核调整”访问。它列出了网络、文件系统、虚拟内存、内核和硬件等标题:
- 网络:可控制 IP 转发、ICMP 广播消息和 TCP 时间戳等特性。
- 文件系统:可设置最大文件数。
- 内核:可控制日志记录、共享内存和某些安全特性(如禁用调试)。
- 硬件:可控制 RAID 速度。

设置的参数会保存到 /etc/sysctl.conf 文件中。Red Hat 安装该文件时包含基本配置项,如 IP 转发和调试控制。redhat - config - proc 工具会覆盖此文件,用为不同 /proc/sys 文件赋值的条目替换它。只有点击“激活保存的配置”按钮后,/proc/sys 文件的更改才会生效。

也可以直接使用 sysctl 命令,其操作如下:
- -p 选项:使 sysctl 从 /etc/sysctl.conf 文件读取参数(可指定其他文件)。
- -w 选项:更改特定参数,通过键引用参数,键是参数名加上其 proc 系统类别(目录),如 net.ipv4.ip_forward 表示位于 /proc/sys/net/ipv4/ 的 ip_forward 参数。
- -a 选项:列出所有可更改的参数。

示例:

# 更改域名参数
sysctl -w kernel.domainname="mytrek.com"
# 开启 IP 转发
sysctl -w net.ipv4.ip_forward=1
# 显示参数当前值
sysctl net.ipv4.ip_forward
6. 安装新内核版本

安装新内核有两种方式:从发行版网站下载二进制版本并安装,或下载源代码、编译内核,然后安装生成的二进制文件和模块。对于 Red Hat,内核的二进制版本以 RPM 包形式提供,可像安装其他 RPM 软件包一样安装新内核。

最简单的方法是使用 Red Hat Network 更新代理(需付费订阅),它会自动下载、更新和安装新内核,但不会自动选择内核文件进行下载,需要手动选择。

若要直接从 Red Hat 下载内核 RPM 包,完整的内核安装通常包括一系列以 kernel 开头的 RPM 包,还可能需要其他包含新内核使用的更新系统配置文件的包。可使用以下命令列出系统中已安装的内核包:

rpm -qa | grep kernel

源代码版本可从发行版 FTP 站点下载,也包含在发行版 CD - ROM 中,还可直接从 www.kernel.org 下载。无论从何处下载,特定内核版本的源代码都是相同的,该版本的补丁可应用于任何发行版。

7. Red Hat 内核包

以下是 Red Hat 的内核包示例:
- CPU 内核包
- kernel - 2.4.20 - 8.athlon.rpm:适用于 Athlon 和 Duron CPU。
- kernel - 2.4.20 - 8.i686.rpm:适用于 Pentium 2、3 和 4 CPU。
- kernel - 2.4.20 - 8.i586.rpm:适用于 Pentium、AMD K6 CPU 和其他旧系统。
- 其他包
- 若安装在笔记本电脑或使用 PCMCIA 卡的系统上,需安装 kernel - pcmcia - cs - 3.1.31 - 13.i386.rpm。
- 若计算机内存超过 4GB,需安装 kernel - bigmem - 2.4.20 - 8.i686.rpm。
- 若系统支持多 CPU 处理器,需安装 smp 包,如 kernel - smp - 2.4.20 - 8.athlon.rpm 和 kernel - smp - 2.4.20 - 8.i686.rpm。

此外,kernel - BOOT 包是内核的较小版本,仅用于软盘安装盘。如果计划自定义内核,应下载源代码包;doc 包提供更新的文档;utils 包包含各种硬件监控工具和用户模式 Linux(UML)工具。

8. 安装内核包

并非所有这些包都需要。例如:
- 对于基本 Pentium 计算机(Pentium 3 或 4,内存小于 4GB,单处理器,无自定义需求)的简单内核升级,只需 kernel - 2.4.20 - 8.i686.rpm。
- 对于 Athlon 或 Duron 系统,使用 kernel - 2.4.20 - 8.athlon.rpm。
- 更完整的升级应包括 pcmcia、source、doc 和 utils 包。

为确保内核 RPM 包下载无误并验证其身份验证,可使用以下命令(需 Red Hat 公钥):

rpm -K *rpm

安装内核时,为安全起见,应保留旧内核。具体操作如下:

# 安装内核包
rpm -ivh kernel-2.4.20-8.i686.rpm
rpm -ivh kernel-pcmcia-cs-3.1.31-13.386.rpm
rpm -ivh kernel-smp-2.4.20-8.i686.rpm

如果系统有 SCSI 控制器或其他专用硬件,RPM 会创建一个 RAM 磁盘来保存适当的支持模块,该磁盘名为 initrd - kernel - version.img,位于 /boot 目录,如 /boot/initrd - 2.4.20 - 8.img。

若要自定义内核,安装内核的源代码和头文件很重要。例如:

rpm -Uvh kernel-source-2.4.20-8.i386.rpm

大多数发行版中,内核安装在 /boot 目录。使用以下命令可列出当前安装的所有内核:

ls -l /boot

如果使用 GRUB 等引导加载器,无需更改其配置文件(grub.conf),因为调用内核的条目仍引用 /boot/vmlinuz 链接,该链接现在指向新内核。grub.conf 文件中,内核行和 RAM 磁盘行示例如下:

kernel /boot/vmlinuz-2.4.20-8 ro root=/dev/hda3
initrd /boot/initrd-2.4.20-8.img
9. 修改相同版本内核的预防措施

如果要修改内核配置并构建新内核,应保留当前内核的副本,以防修改版本出现问题时可从保留的副本启动。新内核会有不同的名称,不会覆盖旧内核。

要保留当前内核的副本,可备份相关文件。已安装的内核会使用 /boot 目录中的多个文件,文件名以该内核版本号结尾,如:

/boot/vmlinuz-2.4.20-8
/boot/System.map-2.4.20-8
/boot/module-info-2.4.20-8
/boot/config-2.4.20-8

特定内核的 vmlinuz、System.map 和 module - info 文件还有不带版本号的符号链接。安装新内核时,这些链接会指向新内核。例如,安装版本 2.4.21 - 10 后,/boot/vmlinuz 会链接到 /boot/vmlinuz - 2.4.21 - 10。

以下是内核安装和修改的流程图:

graph TD
    A[开始] --> B[选择内核安装方式]
    B --> C{二进制版本}
    B --> D{源代码版本}
    C --> E[从发行版网站下载 RPM 包]
    D --> F[从 FTP 或 kernel.org 下载源码]
    E --> G[验证 RPM 包]
    F --> H[编译内核]
    G --> I[安装内核包]
    H --> J[安装编译后的内核和模块]
    I --> K[保留旧内核副本]
    J --> K
    K --> L[创建或更新 RAM 磁盘]
    L --> M[更新引导加载器配置]
    M --> N[结束]

通过以上内容,你可以全面了解 Linux 打印服务和内核管理的相关知识,包括内核版本、参数调整、安装和修改等方面,希望对你有所帮助。

Linux 打印服务与内核管理全解析

10. 打印服务请求总结

打印服务的 SERVICE 键值因请求类型而异,不同的打印客户端会发起不同类型的服务请求,如下表所示:
| 打印客户端 | 请求类型 | SERVICE 键值 |
| ---- | ---- | ---- |
| lpq | 队列信息请求 | Q |
| lprm | 删除请求 | M |

LPRng 和 CUPS 使用相同的命令行打印客户端,但某些功能(如加密)仅在 CUPS 版本中可用。

11. 内核知识回顾
  • 内核版本 :Linux 内核版本号由主版本号、次版本号和修订号组成。主版本号反映重大更改,次版本号区分稳定版(偶数)和开发版(奇数),修订号表示修正版本。可通过 rpm -q kernel 查询已安装内核版本, uname -r 查看当前运行内核版本。
  • 内核资源 :有多个有用的内核资源网站,如 kernel.org、www.linuxhq.com、kernelnewbies.org 和 www.tldp.org。
  • 内核运行时参数调整 :可通过 redhat - config - proc 工具或 sysctl 命令调整内核运行时参数。redhat - config - proc 工具操作步骤为:从“更多系统工具”菜单进入“内核调整”,设置各标题下的参数,点击“激活保存的配置”使更改生效;sysctl 命令的操作选项及示例如下:
    • -p 选项: sysctl -p /etc/sysctl.conf (可指定其他文件)
    • -w 选项: sysctl -w net.ipv4.ip_forward=1
    • -a 选项: sysctl -a
12. 内核安装步骤梳理

安装新内核有二进制版本和源代码版本两种方式,以下是详细步骤:
1. 选择安装方式
- 二进制版本:从发行版网站下载 RPM 包。
- 源代码版本:从 FTP 站点或 www.kernel.org 下载源码。
2. 验证与处理
- 二进制版本:使用 rpm -K *rpm 验证 RPM 包。
- 源代码版本:编译内核。
3. 安装内核
- 二进制版本:使用 rpm -ivh 命令安装内核包。
- 源代码版本:安装编译后的内核和模块。
4. 安全措施 :保留旧内核副本,以防新内核出现问题。
5. 创建或更新 RAM 磁盘 :如果系统有特殊硬件,RPM 会自动创建;也可手动使用 mkinitrd 命令创建。
6. 更新引导加载器配置 :若使用 GRUB 引导加载器,无需更改 grub.conf 文件,因为其引用的 /boot/vmlinuz 链接会指向新内核。

13. Red Hat 内核包选择

Red Hat 提供多种内核包,选择时需根据硬件配置:
| 硬件配置 | 所需内核包 |
| ---- | ---- |
| 基本 Pentium 计算机(Pentium 3 或 4,内存小于 4GB,单处理器,无自定义需求) | kernel - 2.4.20 - 8.i686.rpm |
| Athlon 或 Duron 系统 | kernel - 2.4.20 - 8.athlon.rpm |
| 笔记本电脑或使用 PCMCIA 卡的系统 | kernel - pcmcia - cs - 3.1.31 - 13.i386.rpm |
| 内存超过 4GB 的计算机 | kernel - bigmem - 2.4.20 - 8.i686.rpm |
| 支持多 CPU 处理器的系统 | kernel - smp - 2.4.20 - 8.athlon.rpm 或 kernel - smp - 2.4.20 - 8.i686.rpm |

如果计划自定义内核,还需下载源代码包;doc 包提供更新文档;utils 包包含硬件监控工具和 UML 工具。

14. 修改内核配置的注意事项

修改内核配置并构建新内核时,要保留当前内核副本。已安装内核在 /boot 目录下的相关文件(如 vmlinuz、System.map、module - info 和 config 文件)以版本号结尾,且有不带版本号的符号链接。安装新内核时,这些链接会指向新内核。

15. 内核管理的最佳实践
  • 稳定性优先 :除非进行内核开发实验,否则应安装稳定版本的内核。
  • 备份重要文件 :在安装新内核或修改内核配置前,备份旧内核相关文件,以防出现问题可恢复。
  • 定期更新 :关注内核新版本,及时更新以获得更好的设备支持和系统性能。
16. 总结

通过对 Linux 打印服务和内核管理的学习,我们了解到打印服务的请求类型和 SERVICE 键值的关系,以及内核的版本、资源、参数调整、安装和修改等方面的知识。在实际操作中,要根据系统硬件配置和需求选择合适的内核包,遵循正确的安装和修改步骤,并采取必要的预防措施,以确保系统的稳定运行。

以下是内核管理操作的流程图,进一步梳理操作步骤:

graph LR
    A[确定需求] --> B{是否需要新内核}
    B --> C{是 - 选择安装方式}
    B --> D{否 - 调整内核参数}
    C --> E{二进制版本}
    C --> F{源代码版本}
    E --> G[下载 RPM 包]
    F --> H[下载源码]
    G --> I[验证 RPM 包]
    H --> J[编译内核]
    I --> K[安装内核包]
    J --> L[安装编译后的内核和模块]
    K --> M[保留旧内核副本]
    L --> M
    M --> N[创建或更新 RAM 磁盘]
    N --> O[更新引导加载器配置]
    D --> P[使用 redhat - config - proc 或 sysctl 命令调整参数]
    O --> Q[完成内核安装]
    P --> R[完成内核参数调整]

希望这些知识和操作指南能帮助你更好地管理 Linux 系统的打印服务和内核。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值