linux什么是根目录

我记得上大学的时候,实验室里的旧服务器仍然有金属外壳。
每次开机都要输入命令,不然连网线都连接不上。
当时老师说,你看“/proc/cpuinfo”就可以看到这台机器有多少个核心,有多么神奇。

那么,当时的根目录“/dev/cpu0”是什么样子的呢?
让我们再考虑一下“/var/log/syslog”。
每天晚上1 2 :00,我需要检查一组日志,找出哪个进程再次失败。
当时,“tail -f /var/log/syslog”命令是夜猫子的主要命令。

等一下,还有一件事。
我曾经在“/etc/fstab”中添加了错误的条目,结果我的硬盘在半夜崩溃了,差点让我跳起来。
幸运的是,“/bin/mount”也有回滚操作。
如果没有,你必须在当天晚上天亮之前修复它。

我突然想起来,但当时“/home/用户名/.bashrc”已经乱了,每次登录都显示“命令未找到”的信息。
想了想,我发现路径写反了。
当时,“alias ll='ls -la'”命令对我来说是救星。

现在想起来,当时的根目录结构看似简单,其实很复杂。
它非常简单,您只需几个命令即可修复系统。
它是如此复杂,如果你不小心的话,可能会导致整个系统瘫痪。

您是否遇到过“/etc/passwd”修改错误甚至root也无法登录的情况?

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

唉,当涉及到Linux内核源代码时,我遇到了很多陷阱。
记得当年我在公司做项目的时候,必须深入内核源码看看到底是怎么回事,发现这个东西很复杂。

首先我们来说说存储空间。
我的默认路径是/usr/src/linux,但建议的内核版本与我想要的不同。
后来了解到现在一般都用/usr/src/linux-
比如我当时用的是linux-5 .1 5 .0,所以多个版本可以共存。
然而,这有点棘手,因为有时您必须自己将其导出到自定义路径。
例如,在我的个人目录中有一个~/linux-kernel。

那么说到目录结构,它们确实是不同的。
当时我正在寻找与Intel或AMD CPU指令集等硬件架构相关的代码,发现有像arch/x8 6 /和arch/arm6 4 /这样的子目录。
关键文件如arch/x8 6 /kernel/process.c,这是进程切换的代码。
我想要它很久了。

再比如fs目录,就是文件系统实现代码。
像Ext4 、XFS这样的文件系统都在这里。
当时我研究了fs/ext4 /目录下的代码,很有趣。

有一个 include 目录,它是内核头文件,其中定义了数据结构、宏和函数声明。
当时我在include/linux/sched.h中找到了与进程调度相关的定义,非常重要。

然后,这里是内核目录,主要是运行代码、进程管理、信号处理。
当时我研究了kernel/pid.c和kernel/sched/core.c中的进程ID管理和调度核心逻辑。

我给大家举一个代码示例分析的例子。
在pid.c中,有一个find_get_pid函数,它通过PID搜索进程配置并使用RCU方法检查对称安全性。
sched.c中有一个trigger_process函数,该函数将进程从非停止状态切换到运行状态。

至于注释,我使用了cscope和ctags创建了代码索引,方便跳转。
在调试和日志记录方面,我在内核代码中添加了 printk() 以添加调试日志,然后必须重新编译内核。
我使用过动态调试工具,如 kgdb 和 ftrace。
关于版本差异,不同内核版本中目录结构可能会发生变化,所以我查阅了当时的文档,了解各个版本的差异。
总结一下,Linux内核源码是以模块化的方式组织的,硬件在arch/中,核心函数在内核中,驱动程序在drivers/中。
理解这些结构将帮助您更快地找到代码。
在实际开发中,内核文档和社区资源也很重要。
哦,一说起这件事我就哭了。
当时要花很大的力气才能看懂内核源代码。

linux内核在哪个目录

内核文件位于/boot。
就像 vmlinuz 一样。
说白了:就是压缩的内核镜像。
包括核心代码和驱动程序。
就在上周,我还遇到了由内核问题引起的系统蓝屏问题。

内核做了三件事。
1 . 管理资源。
对CPU、内存和硬盘进行管理。
2 .控制硬件。
键盘和显示器已准备就绪。
3 . 管理进程和内存。
系统稳定性取决于此。

如何处理内核。
1 . 编译新内核。
必须支持新硬件。
2 . 调整参数。
修改/sysctl.conf。
3 . 加载模块。
使用modprobe。

注意!不要弄乱内核文件。
直接轻松地更改蓝屏。
建议在继续之前创建备份。
普通用户只需使用apt即可更新。