我一直在 Linux 系统上使用复制粘贴功能。我第一次下载内核源码。在哪里可以找到与复制粘贴功能相关的代码?
我的猜测是它不属于Linux的内核部分。如果我是对的,我在哪里可以找到它?
答案1
你是对的,它不是 Linux 内核的一部分。内核根本不负责这样的工作。具体是什么取决于您的系统。在控制台上它可能是你的 tty 驱动程序,在你想到的大多数图形环境中可能都是基于 Xorg 并使用 Xorg 选择缓冲区和剪贴板;但您也可能正在使用 Wayland;直接帧缓冲区驱动程序或其他图形引擎,代码可能位于其他地方。即使在 Xorg 的情况下,Xorg 也不负责将击键和其他事件绑定到操作。这将取决于您的桌面环境或窗口管理器,这可能是很多事情。
如果没有关于您的环境的更多详细信息,就没有一个地方可以指向您。同时,听起来您需要更多地了解 Linux 系统的整体架构以及哪些系统负责哪些类型的操作。您的问题的最终答案几乎肯定会分布在不止一层中,您需要知道它们如何结合在一起才能理解它。
答案2
要在文本模式控制台上进行复制粘贴,请drivers/tty/vt/selection.c
在内核源代码树(drivers/char/selection.c
在较旧的内核中)中查找文件。虚拟终端上剪切和粘贴的用户区部分是gpm
“通用鼠标界面”。
GUI 中的复制粘贴不是由内核处理的,而是由X。
答案3
复制粘贴是桌面环境(X11、GNOME 等)的一部分。在控制台上,复制粘贴将/可以由gpm
在控制台模式下提供鼠标功能的服务来完成。