标签: kernel

如何对内核进行基准测试(-Os 与 -O2)

在我看来,在 64 位内核上编译它以优化大小似乎是合乎逻辑的,这可能对整体有所帮助。(我选择的发行版使用 -O2)它具有比普通优化代码更多的寄存器和内存以及可能更少的缓存争用的好处。我有一个这样编译的内核,它看起来很棒。但是我的问题是我如何证明这一点?我喜欢将 Phoronix 用于“真实世界”类型的基准测试,所以我更愿意测试这样的案例。我应该选择什么来测试?有没有其他人有其他选择?非常感谢您提前。

linux performance kernel gcc benchmarking

7
推荐指数
1
解决办法
2784
查看次数

Windows 内核名称\版本?

Mac OS X 有Darwin 10.6.0内核,Ubuntu 有Linux 2.6内核,那么在 Windows 中它叫什么?

operating-systems kernel ntoskrnl.exe

7
推荐指数
2
解决办法
5万
查看次数

如何单独使用 Linux 内核制作可启动 USB?

我想单独启动 Linux 内核并运行 busybox,不包括 GUI。

我怎样才能做到这一点?如何进行自定义bzImageinitrd.img以及如何更改该图像中的文件结构?

linux boot kernel usb-storage

7
推荐指数
1
解决办法
8479
查看次数

什么是以及如何增加 USB 设备的最大数量?

我想知道 Linux 内核可以管理的 USB 设备的最大数量是多少?这是否也取决于根集线器或其他什么?

有没有办法增加这个最大数量?

我需要这样做,因为我在尝试写入大量 USB 记忆棒时遇到了问题。为此,我有如下设置:

有 1 台计算机运行 Ubuntu Linux,3 个(活动)集线器连接到这台机器的 3 个 USB 端口。这三个 HUB 都是 7 端口 HUB。这 7 个端口中的 6 个连接了更多 HUB。这给了我“第二”层中 3 * 6 = 18 个 HUB 的数量。这些 HUB 中的每一个也是一个活动的 7 端口 HUB。这些第二层集线器的每个端口都连接了一个 USB 记忆棒。我总共有 126 个 USB 记忆棒连接到计算机。

我有一个搜索所有 USB 磁盘设备的脚本(通过列出 /dev/disk/by-path/ )。然后首先对每个 USB 磁盘设备进行分区,使用 cp 写入,然后使用 syslinux 使其可启动。这不是并行完成的!

问题: 我只使用了 105 个 USB 磁盘设备

ls -la /dev/disk/by-path | grep usb | grep -v part | wc -l
Run Code Online (Sandbox Code Playgroud)

3排摇杆(一排对应第二层的一个HUB)的LED灯也不亮。

我如何让所有这些棒子工作?(或者可能更多?)

usb kernel hub usb-storage usb-flash-drive

7
推荐指数
1
解决办法
5145
查看次数

gnu 和 darwin 和 mach 之间的区别

这些术语属于 Mac OS X 架构主题,我对以下内容感到困惑:

据说 mach 是一个微内核

Darwin 和 XNU 被提到是一个内核

那么...您能帮我理解这些术语的分离以及它们如何协作以支持 Mac OS X 环境吗?

kernel macos

7
推荐指数
1
解决办法
1782
查看次数

新设备状态的主机控制器资源不足

我有一个基于 debian mint 的系统,我在其中插入了 16 个 USB 设备。内核是: 3.11.0-12-generic 在大约 10 个左右的设备之后,我开始遇到连接新设备的问题。可以在 dmesgs 中找到一个这样的设备的错误,如下所示(最后两行不同)

[新更新:变通方法] 我发现此问题特定于 xhci。在我的 bios 中,我实际上能够禁用 xhci 并强制 linux 回退到 ehci(大概)。现在我所有的设备都运行良好!当然,这对我来说意味着没有 USB3 设备。幸运的是,我的即时申请不需要它们。我不知道这是英特尔问题还是 linux 问题。离开这个页面会很好,因为其他人很想找到它。

dmesg | grep -i 3-5.1 
Run Code Online (Sandbox Code Playgroud)

工作装置:

[    1.883505] hub 3-5:1.0: USB hub found
[    1.883733] hub 3-5:1.0: 4 ports detected
[    3.370272] usb 3-5.1: new full-speed USB device number 17 using xhci_hcd
[    3.387126] usb 3-5.1: New USB device found, idVendor=03eb, idProduct=2045
[    3.387129] usb 3-5.1: New USB device strings: Mfr=0, Product=0, …
Run Code Online (Sandbox Code Playgroud)

usb debian kernel linux-kernel dmesg

7
推荐指数
1
解决办法
1万
查看次数

CentOS yum -- 预先存在的 rpmdb 问题

我正在尝试在开发人员框中安装 git,我得到以下信息:

You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
kernel-2.6.32-431.17.1.el6.x86_64 has installed conflicts bfa-firmware < ('0', '3.2.21.1',     '2'): bfa-firmware-3.0.3.1-1.el6.noarch
kernel-firmware-2.6.32-431.17.1.el6.noarch is a duplicate with kernel-firmware-2.6.32-358.23.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-358.23.2.el6.x86_64
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我对 CentOS/RHEL 不太熟悉

谢谢

linux yum git dependencies kernel

7
推荐指数
2
解决办法
3万
查看次数

使用 ptrace 时如何区分“syscall”和“int 80h”

据我所知,ptrace 只能通过 PTRACE_SYSCALL 获取系统调用号,但是 x86 和 x64 中的系统调用号是不同的。那么有没有办法找出这个系统调用的真正起源?

我现在正在编写一个程序来通过系统调用号限制其他一些系统调用,我知道 x86 和 x64 上的系统调用号,但是一些程序使用“int 80h”而不是“系统调用”,这样他们就可以做危险的事情我限制在 x64 上。例如,我在 x64 上禁止了 fork(),他们可以使用 'int 80h(2)'(fork()) 而我认为他们正在使用 'syscall(2)'(open()),因此他们可以打破限制. 尽管 ptrace 可以跟踪它们并获取系统调用号,但我无法区分系统调用实际来自何处。

linux sandbox kernel chroot

7
推荐指数
1
解决办法
807
查看次数

在 GetStackLimits 空闲期间来自 ntoskrnl.exe 的高 CPU

我在 Windows 10 中遇到了一个奇怪的错误。

闲置 5 分钟后,我的 CPU 变高了。我使用了 Win Performance Analyzer,发现它发生在线程 GetStackLimits 上的 ntoskrnl.exe 中。

我已经更新了所有驱动程序,一切正常。空闲任务都被禁用和删除。我也运行 sfc /scannow 和 chkdsk 没有错误。

当它在内核中时,我应该如何找到错误?!

windows drivers kernel ntoskrnl.exe threads

7
推荐指数
1
解决办法
3541
查看次数

如何增加 macOS Big Sur 中的最大打开文件数?

我听说

sudo launchctl limit maxfiles 64000 unlimited
Run Code Online (Sandbox Code Playgroud)

conf=/etc/sysctl.conf
if sudo cat $conf | command rg kern.maxfiles ; then
  ecerr "kern.maxfiles is already set in $conf"
else
  sudo echo 'kern.maxfiles=40480
kern.maxfilesperproc=28000' >> "$conf"
fi
Run Code Online (Sandbox Code Playgroud)

对于以前版本的 macOS,但这些都不适用于 Big Sur。

kernel launchctl ulimit macos macos-bigsur

7
推荐指数
3
解决办法
3万
查看次数