是否可以调整内核参数以允许用户程序绑定到端口 80 和 443?
我问的原因是我认为允许特权进程打开套接字并侦听是愚蠢的。任何打开套接字并侦听的东西都是高风险的,高风险的应用程序不应以 root 身份运行。
我更愿意尝试找出哪些非特权进程正在侦听端口 80,而不是尝试删除以 root 权限潜入的恶意软件。
我不小心删除了我在 Linux 上的内核配置的 .config,并且似乎记得有一种方法可以通过 proc 文件系统以某种方式检索内核配置。
这仍然可能吗,如果是这样,我该怎么做?
一个普通的稳定 3* 内核现在大约 70 mb。但是很少有 30-10 mb 的 linux 发行版带有开箱即用的软件和其他东西。
在这些发行版中,Linux 内核怎么会这么小?仅剥离不需要的模块和驱动程序是否可以显着减小尺寸?还做了什么来减小内核大小?
我知道 BIOS 从 0xFFFFFFF0 加载它的第一条指令,但为什么是这个特定地址?我有很多问题,希望您至少可以帮助我解决其中的一些问题。
我的问题:
我今天下午已经读过,但我仍然不明白。
我知道当源代码(比如 C++)被编译时,编译器的输出是机器代码(可执行),我认为它是直接发送给 CPU 的指令。最近我正在阅读内核,我发现程序不能直接访问硬件,而必须通过内核。
所以当我们编译一些简单的源代码,比如一个printf()函数,并且编译产生可执行的机器码时,这个机器码中的每条指令是直接从内存中执行(一旦代码被操作系统加载到内存中)还是会机器码中的每一条命令还需要经过OS(内核)才能执行?
我读过一个类似的问题。没有说明编译后生成的机器码是直接发给CPU的指令,还是需要再次通过内核为CPU创建正确的指令。即,机器代码加载到内存后会发生什么?它会通过内核还是直接与处理器对话?
我已经通读并学习了Linux From Scratch(和 BLFS),我想知道,我可以按照本指南通过替换xnu内核来创建 Darwin 发行版吗?这个过程会与 LFS 中概述的过程大不相同吗?
我目前的理解是,使系统成为“达尔文”而不是“Linux”所需要的只是内核替换。这样对吗?
编辑:
针对killermist 的评论,我将完善这个问题。虽然我正在寻找有关此主题的一般信息,但我特别寻找的是类似于“达尔文发行版创建指南”的内容,就像 LFS 是“ Linux 发行版创建指南”一样。
我很欣赏这些信息可能只会来自Puredarwin、OpenDarwin或GNU/Darwin 的人,所以这是向他们寻求帮助的一种呼唤。像 LFS 这样的“ How-We-Made-PureDarwin-Nano-Start-To-Finish ”指南将是完美的,但我知道这要求很高。
据我所知,内核完成与硬件的所有交互,并管理内存、I/O 设备等。因此内核在做所有事情,但它只是操作系统的一部分。那么操作系统中还有什么?只是附带的应用程序?例如,Ubuntu 除了内核还有什么?Gnome 桌面和其他一些应用程序?
我的 WSL2 子系统中当前的内核版本是:
5.10.60.1-microsoft-standard-WSL2
Run Code Online (Sandbox Code Playgroud)
但是,我在官方 Microsoft WSL GitHub 存储库中看到有更新版本的内核:
linux-msft-wsl-5.10.102.1
Run Code Online (Sandbox Code Playgroud)
如何更新已安装的 WSL 设置中的内核?我试过这个:
wsl --update
Run Code Online (Sandbox Code Playgroud)
但它不会更新内核版本。
init(pid==1)。但是为什么不是内核(启动)设置系统并创建 init进程。内核是进程吗?基本上,让我感到困惑的是内核的结构。如果是进程,是单个进程,还是由多个进程组成?
我知道有一个 wiki 条目http://wiki.debian.org/DebianIPv6#How_to_turn_off_IPv6显示了如何在 Debian Squeeze 中禁用 IPv6,但这是一个 2.6.* 内核。
运行 Wheezy 的 3.2.* 内核怎么样?