Linux 内核是否使用 /usr/share/consolefonts 中的字体?工作内核安全吗?

Linux 内核是否使用 /usr/share/consolefonts 中的字体?工作内核安全吗?

操作系统:乌班图18.04。我认为它是独立于发行版的。 Arch Linux 使用相同的原理,但以不同的方式实现。

tty通过编辑文件来设置 的字体/etc/default/console-setup

CODESET="guess"
FONTFACE="TerminusBold"
FONTSIZE="22x11"

字体的文件位于/usr/share/consolefonts/.它有psf格式。

维基百科:

PC 屏幕字体 (PSF) 是一种位图字体格式,目前 Linux 内核用于控制台字体。 PSF 文件格式的文档可以在 Linux 内核的源代码中找到。

问题:

  1. 内核是否将此文件加载到内核空间?
  2. tty如果不是,那么(驻留在内核中)如何呈现.psf驻留在文件中的字符/usr/share/consolefonts/
  3. 我在想,出于可靠性和安全性的原因,内核是一段可靠的代码,它不使用任何用户文件(内核模块除外)。我错了吗?或者控制台字体是例外?
  4. 如何检查.psf具体加载了哪个文件?因为该/usr/share/consolefonts/文件夹有很多TerminusBold22x11.psf.gz文件,具有不同的代码集。我想知道使用了哪个特定文件。我检查了dmesgsyslog,但没有找到此类信息。

答案1

我找到了答案第四名Ubuntu 18.04 的问题:

sudo strace -s99 setupcon 2>&1 | grep '.psf' 

输出

read(3, "/etc/console-setup/cached_Uni2-TerminusBold22x11.psf.gz\n", 128)

解释:

通过使用该setupcon程序,systemd可以在操作系统启动时进行控制台设置。可以在这个文件中查看:/lib/systemd/system/console-setup.service.因此,通过setupcon手动重复,我们有可能对其strace系统调用并找到所使用的字体文件。

安装程序 是一个用于在控制台上快速轻松地设置字体和键盘的程序。大多数时候,您调用 setupcon 时不带参数。键盘配置在 ~/.keyboard 或 /etc/default/keyboard 中指定。字体配置在中指定 ~/.console-设置或者/etc/default/控制台设置

相关内容