gcc的编译过程
预处理------编译------汇编------链接
Linux文件类型
普通文件,目录文件,管道文件,链接文件,块设备文件,字符设备文件,套接字文件
Linux系统下的软链接和硬链接有什么异同
linux中软链接和硬链接的区别:
1、软链接以路径的形式存在,硬链接以文件副本的形式存在,但不占用实际空间;
2、软链接可以跨文件系统 ,硬链接不可以;
3、软链接可以对一个不存在的文件名进行链接,硬链接只有在同一个文件系统中才能创建;
4、软链接可以对目录进行链接,硬链接不允许给目录创建链接。
Linux内核子系统有哪几个
Linux内核有五大核心子系统,分别是进程调度系统、虚拟文件系统(VFS)、内存管理单元(MMU)、网络单元、进程间通信(IPC)。
Linux的Shell是什么?常见的Shell有哪些?
Linux的Shell是指用户与操作系统内核进行交互的命令行接口,它接收用户输入的命令并将其解释执行。Shell是一个解释器,可以解释和执行用户输入的命令,同时也提供了许多内置的命令和功能,以及对系统调用和程序的调用支持。
在Linux系统中常见的Shell包括但不限于以下几种:
- Bash(Bourne Again Shell):Bash是Linux系统中最常用的Shell,也是大多数Linux发行版的默认Shell。它是Bourne Shell的扩展版本,提供了更多功能和改进,支持脚本编程和命令行操作。
- Zsh(Z Shell):Zsh是一个功能丰富的Shell,提供了很多高级功能和定制选项,如自动补全、主题定制、插件支持等。Zsh相对于Bash来说更加强大和灵活。
- Fish(Friendly Interactive Shell):Fish是一个用户友好的Shell,具有语法高亮、自动补全、友好的错误提示等特性,使得命令行操作更加简单和直观。
- Dash:Dash是一个轻量级的Shell,专注于快速执行命令和脚本,适用于系统启动脚本等需要高效执行的场景。
- Ksh(Korn Shell):Ksh是Bourne Shell的改进版本,提供了更多的功能和特性,适用于编写复杂的脚本和程序。
- Csh(C Shell):Csh是一种C语言风格的Shell,提供了类似C语言的语法和特性,适用于一些特定的需求。
ELF中包含了哪些内容
ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。
(1)由Section头组成的集合称为Section头表,由Program头组成的集合称为Program头表。注意:数个连续的头称之为头表,头表是虚拟出来的定义,文件中不存在头表,只有头。
(2)一个Section头指向一个Section,Section头中包括所指向Section的名字、类型、其在ELF文件中的偏移地址、大小等信息。
(3)一个Program头指向一个Segment,Program头中包括所指向Segment的类型、其在ELF文件中的偏移地址、大小,映射到内存的虚拟地址等信息。一个Segment由一系列连续的Section构成,连续的Section拥有相同的权限,如只读、读写、可读可执行等;
(4)一个ELF头内包含有:Section头表的在ELF文件中的偏移地址、单个Section头的大小、Section头表中Section头的个数;Program头表的在ELF文件中的偏移地址、单个Program头的大小、Program头表中Program头的个数;该ELF文件的类型,若是可执行文件的话,还包含的有程序的入口地址。