系统文件在哪个文件里面

我多年来一直在问答论坛中工作,我发现许多新手用户对系统文件的概念感到困惑。
说实话,系统文件是操作系统的“心脏”,应该好好保护​​。
我们先来说说Windows。
我曾经帮助人们修理电脑。
当时我发现系统文件都在C盘的Windows文件夹里。
例如,ntoskrnl.exe,它是Windows的核心文件之一,负责管理系统的主要功能,就应该位于那里。
Linux 更好玩。
系统文件分布在根目录下的各个文件夹中。
我记得有一次,我的一个朋友问我他​​的 Linux 内核文件在哪里,我告诉他应该寻找 /boot 目录。

说到 macOS,系统文件通常隐藏在 MacintoshHD 的系统文件夹中(或任何您命名的硬盘驱动器)。
内核文件、系统库和配置文件都在那里。

不过,我必须提醒大家,这些文件是不能随意动的。
我记得有一次用户更改了系统设置并意外移动了系统文件导致系统崩溃。
因此,我一般建议用户在继续之前备份重要数据。
在这个行业,我也遇到过很多情况。
例如,用户可能有点极端,认为系统文件应该存储在更方便的位置。
当时我不明白,但后来我明白了。
系统的设计者一定有自己的考虑。

总之,系统文件对于操作系统来说就像人体的血液一样,非常重要。
我们普通用户不应该碰它们。
如果出现问题,我们必须请专家来救火。

Linux内核源代码存放位置详解

Linux内核源代码...这个东西就是kernel内核。
想想如果他没有一个系统可以使用,会吗?你需要弄清楚存储位置,否则你会花很长时间找到代码。

1 .源代码放在哪里
你必须知道默认的。
通常在 /usr/src/linux 中。
该路径是旧的,可​​以指向系统当前使用的内核版本。
但现在它更常见了,比如/usr/src/linux-5 .1 5 .0。
您会看到这是一个指示特定内核的版本号,例如 5 .1 5 .0。
这样就支持多个版本合二为一使用,方便多了。

如果您不喜欢这个默认路径或发行版用于特定进程的版本,您也可以将其放在其他位置,例如 ~/linux-kernel。
最后,你可以为自己找到一个地方。

2 如何获取代码
有两种方法可以找到 Antiphon 代码。
一种是通过发行版的包管理器安装合适的 Linux 源。
另一种是去内核官方网站,制作并解压。

3 设备目录
内核源码分目录,按功能划分。
这很重要并且必须被理解。

arch/ 这个目录指的是硬件架构,比如CPU配置、进程中断等。
看一下arch/x8 6 /目录,其中包含Intel和AMD代码,以及arch/arm6 4 /目录,其中包含ARM6 4 位代码。
还有一个关键文件,如arch/x8 6 /kernel/process.c,描述了切换过程是如何实现的。

block/ 该目录是设备设备的设备块,例如硬盘。
有一个名为 block/blk-core.c 的关键块文件,其中包含 I/O 调度逻辑。

fs/ 该目录是文件系统的实现方式,例如Ext4 和XFS。
例如,目录 fs/ext4 / 包含 Ext4 文件系统的代码。

include/ 这个索引充满了定义字符结构、宏、函数声明等的头文件,其中有一个关键文件叫做 include/linux/sched.h,其中包含与调度过程相关的定义。

kernel/ 该内核目录包含功能代码,例如进程管理和代码处理。
有一个名为 kernel/pid.c 的文件。
由此,管理进程ID。
还有core/sched/core.c,这是调度的主要逻辑。

其他重要目录,如drivers/,是设备驱动,如USB、网卡等。
init/,这是内核初始化代码,如init/main.c中的start_kernel()。
mm/,这是内存管理,就像页面分配和虚拟内存一样。
net/,这样网络协议栈就被填满了。

4 获取接收过程的示例代码。
关键代码在核心/结果中。
例如,在文件 pid.c 中,有这样的片段:
c 部署 pidfind_get_pid(pid_t nr){ 结构pidpid; rcu_read_lock(); pid = __find_get_pid(nr); // 查找PID if(pid) get_pid(pid); // 增加引用计数 rcu_read_unlock(); 我回馈,pid; }
该函数的作用是找到PID过程的结构,利用RCU机制保证收敛到安全。
另一个例子是 sched.c 文件。
这是一个类似的片段:
c 无效wake_up_process(结构task_struct p){ if (p> 状态 == TASK_UNINTERRUPTIBLE){ set_task_state(p,TASK_RUNNING); // 唤醒关闭的进程 } }
该函数的作用是将进程从无尽状态变为运行状态。

5 探索的目的
开发的时候一定要用导航工具,不然代码太多,很难找到。
例如,使用 cscope 或 ctags 使代码引用更容易跳转。
导致 cscope 生成代码列表,然后使用 cscope 启动查询的命令。

调试和链接,可以使用printk将调试日志添加到内核代码中,但需要重写内核。
还有动态调试工具,例如kgdb和ftrace。

在各种各样的事情中核心版本,例如4 .x和5 .x,目录结构可能会略有变化,因此建议查阅相应版本的文档/文档。

总结 Linux 内核源代码被组织在模块目录中。
相关的硬件代码在arc/中,内核函数在kernel/中,驱动程序在controllers/中。
由这些结构组成有助于快速部署代码。
在实际开发中,建议深入研究核心文档和社区资源的使用。