我一直在阅读有关如何在 Linux 内核中实现管道的信息,并希望验证我的理解。如果我不正确,将选择具有正确解释的答案。
pipe:) 上,旁边是/pipe(2)系统调用pipe(2)shell 用于与|操作员(或从任何其他进程手动)进行管道传输的系统调用在 pipefs 中创建一个新文件,该文件的行为与普通文件非常相似stdout重定向到在 pipefs 中创建的临时文件stdin设置为 pipefs 上的文件这是对管道(例如ls -la | less)如何运作的解释非常正确吗?
我不明白的一件事是像 bash 这样的东西如何设置一个进程stdin或stdout由pipe(2). 我还没有找到任何关于它的信息。
为什么 Linux 允许 'init=/bin/bash'?
我读了这个,答案是说它是运行这个初始化程序的内核。
然后我开始怀疑,Linux通常带有一个initramfs,它最终会mount和pivot_root到真正的根文件系统。那么这个init论点是什么意思呢?initramfs中的路径?或者就像我猜的那样,它不是由内核读取,而是由 initramfs 的 init 来执行真正的 init。
另外,root=UUID=xxxx论点,是真正由内核读取还是仅由 initramfs 的 init 读取以找到真正的根文件系统?
似乎我可以将我想要的任何参数作为内核参数传递,那么它们是否都被内核读取,或者至少其中一些只对用户空间程序有意义?
我正在阅读有关文件系统的内容,并想到了一些问题。
问:如果文件是 unix/linux 的一个组成部分(即代表 中的进程/proc或设备文件/dev),如一句名言'一切都是文件”,它们是否存在于文件系统的上下文之外?我觉得像网络套接字文件或块设备文件这样的文件是独立于文件系统的,更像是操作系统本身的一部分。
后续 Q. unix/linux 可以在没有文件系统的情况下运行吗?例如,Linux 系统是否可以通过手动访问二级存储来工作?