Linux基础2
3. Linux系统下的软链接和硬链接有什么异同
在Linux系统中,软链接和硬链接都是用于建立文件关联的机制,但它们的实现原理和特性有显著差异。
相同点
- 功能:两者都能通过一个文件名访问另一个文件或文件目录
- 基本使用:都可以通过
ln
命令创建(软链接常见应链接)、ln -s
(创建软软链接) - 询问方式:访问链接文件时,都会直接指向目标文件内容(除非链接失效)
核心差异点
特征 | 软链接 | 硬链接 |
---|---|---|
本质 | 是一个独立的文件,存储文件的路径信息(类似于Windows快捷键) | 与目标文件共享同一个inode ,时目标文件的“别名” |
标识 | ls -l 输出中以l 开头 | 无特殊的标识,与普通文件一样- 或d 开头 |
跨文件系统 | 支持跨文件系统链接 | 不支持跨文件系统进行连接(只能子啊同一文件系统内创建) |
链接目录 | 可以对目录创建软链接 | 不能对目录创建硬链接(避免目录树循环,仅、目录有特殊硬链接)。 |
目标删除后 | 软链接会失效(显示“断链”,文件大小变为0或显示异常) | 硬链接扔能正常访问(因为inode 和数据未被删除,仅删除了一个“别名” |
文件大小 | 大小等于目标文件路径的字符长度(如链接/home/file 大小为9) | 与目标文件大小相同(因为共享数据) |
权限显示 | 权限固定为rwxrwxrwx (但实际访问权限由目标文件决定) | 与目标文件权限一致(因为共享inode ,权限同步) |
inode 编号 | 有自己独立的inode 编号 | 与目标文件的inode 编号相同 |
使用场景
- 软链接的使用适合分区链接、链接目录、临时引用文件的场景(如程序版本奇幻、简化长路径访问)
- 硬链接使用于备份文件但节省空间的场景
理解两者的差异有助于避免误操作(如删除软链接目标导致程序报错,或硬链接跨分区创建失败)。
3. Linux内核子系统有哪几个
Linux内核是一个复杂的系统,由多个功能组成,这些子系统协同工作实现操作系统的核心功能。
主要包括:
- **进程管理子系统:**负责进程的创建、调度、终止进程间通信(IPC)。核心功能包括进程调度器、进程状态管理、线程支持、以及信号、管道、共享内存等IPC机制
- **内存管理子系统:**管理系统内存资源,实现虚拟内存、物理内存分配与回收、地址映射(MMU交互)、页面置换(如LRU算法)等功能。通过虚拟内存技术,让进程拥有独立地址空间,提高内存利用率。
- **文件系统子系统:**提供文件和目录的统一管理接口,核心是 VFS(虚拟文件系统)抽象层,兼容 ext4、XFS、tmpfs 等多种文件系统。负责 inode 管理、文件权限、磁盘配额及文件操作(创建、读写、删除等)。
- 设备驱动子系统:作为内核与硬件的交互桥梁,管理各类硬件设备(字符设备、块设备、网络设备等)。通过统一的设备模型(如 kobject、sysfs)实现设备的枚举、配置和操作,使硬件功能可被系统调用。
- **网络子系统:**实现 TCP/IP、UDP 等网络协议栈,处理数据包的封装、路由、转发及网络设备管理。提供 socket 接口供用户态程序进行网络通信,支持各类网络设备和服务(如防火墙、NAT)