kernel相关内容

在 Windows Server 2008 上安装 ArangoDB

我很难让 Arango 1.4.9 在我的 Windows 2008 Standard (SP2) 服务器上运行.这是全新安装.当我尝试启动 Arango Server 时,我收到此消息: 在动态链接库 KERNEL32.dll 中找不到过程入口点 TryAcquireSRWLockExclusive 我已经尝试了 64 位和 32 位版本.我以管理员身份运行安装程序,反之亦然.有什么 ..
发布时间:2021-11-17 01:33:07 其他开发

QueryPerformanceFrequency 的单位

一个简单的问题: QueryPerformanceFrequency 单位是什么?Hz(每秒滴答数)? 非常感谢,布鲁诺 解决方案 问:QueryPerformanceFrequency 的单位? A:千赫兹(非赫兹) ============ 详情============================================== 我的研究表明 Co ..
发布时间:2021-11-15 04:43:20 其他开发

是否有原始的 linux 系统调用 API/ABI 文档

系统调用有 man(2) 页,但这些页描述了位于系统调用之上的 C 库 (glibc) 的行为.原始系统调用 API/ABI 是否记录在某处(UseTheSourceLuke 除外)?我在手册页中看到了一些关于 kernel/libc 之间差异的提及,但我没有感觉到记录这些差异是首要任务. 我真正想说的是:C 库是否被 POLICY 认为是稳定/记录的 Linux API,而内核的系统调用 ..
发布时间:2021-11-15 02:05:05 服务器开发

如何以编程方式动态管理 iptables 规则?

我需要查询现有规则,以及能够轻松添加和删除规则.我还没有找到任何用于执行此操作的 API.有什么我遗漏的吗? 我最接近的解决方案是使用 iptables-save |iptables-xml 用于查询和手动调用 iptables 命令本身来添加/删除规则.我考虑过的另一个解决方案是简单地从我的应用程序的数据库中重新生成整个规则集并刷新整个链,然后再次应用它.但我想避免这种情况,因为我不想丢弃 ..
发布时间:2021-11-15 00:19:53 服务器开发

Linux如何确定下一个PID?

Linux 如何确定将用于进程的下一个 PID?这个问题的目的是为了更好地理解Linux内核.不要害怕发布内核源代码.如果 PID 是按顺序分配的,Linux 如何填补空白?当它走到尽头时会发生什么? 例如,如果我从 Apache 运行一个 PHP 脚本,该脚本执行 相同的 PID 将在点击时打印几分钟刷新.这段时间是 apache 收到 ..
发布时间:2021-11-11 04:57:57 服务器开发

是否有 64 位 UEFI ELF 引导程序?

我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件.我不需要过时的 Legacy BIOS 引导加载程序,我需要带/不带 GUI 的 UEFI 引导加载程序. 解决方案 我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件. 你有一个 ELF 内核;所以你可能需要一个引导加载程序: 加载内核的 ELF 文件 告 ..
发布时间:2021-10-26 16:15:07 其他开发

如何在yocto中应用dtsi(或dts)的补丁文件

我在 ubuntu 18.04 上使用 yocto(ver.rocko) 并尝试应用补丁文件,但我不能...... 我的目标机器是 qemuarm64,linux 内核是 linux-yocto. 一旦执行$bitbake core-image-base,内核源文件被解压,然后目标dtsi文件位于poky/build/tmp/work/aarch64-poky-linux/linux- ..
发布时间:2021-10-04 19:51:55 服务器开发

Yocto 加载内核模块

我尝试将内核模块添加到 yocto 映像并在启动时加载它. 我创建了一个配方来构建和安装内核模块.这是 Makefile 内容的一部分: modules_install: test_driver.ko安装 -d $(MODULES_DIR)安装 -m 0755 $ 在我的 build/conf/local.conf 中,我添加了包(子系统是我的模块配方的名称): IMAGE_INS ..
发布时间:2021-10-04 19:51:19 其他开发

AMD64 页条目基地址字段如何以 40 位编码 52 位地址?

我正在尝试手动遍历分页结构,以便将虚拟地址转换为其物理地址.我有一个关于存储在 PML4E、PDPE、PDE 和 PTE 中的物理基地址字段的问题.我系统上的页面大小是 4KB.我在内核模式下在 Windows 上执行此操作. 正如 amd64 手册所说,cr3 的第 51-12 位包含 PML4 的物理基址.然而,它说第 11-0 位应该被假定为 0.我想知道是否同样的事情适用于其他分页结 ..
发布时间:2021-09-25 20:32:22 其他开发

在 WinDbg 中定义自定义错误检查代码

有没有办法定义自定义代码(带有消息/描述等),以便在 Windows 的内核模式驱动程序中,我调用 KeBugCheckEx 来发出自定义错误检查代码 WinDbg显示自定义错误检查代码附带的相关消息? 解决方案 关于已知错误检查代码的文本被编译成扩展 DLL 之一.据我所知,这不是可以以任何简单方式扩展的东西(即您不能只是在某个地方向文件添加文本). ..
发布时间:2021-09-25 19:31:46 其他开发

Linux 内核无法支持 1GB 物理内存和 HIGHMEM 解决方案

我一直在阅读 [1] 以了解 HIGHMEM.文章说“如果内核希望能够直接访问系统的物理内存,那么它必须设置页表,将内存映射到内核的地址空间部分" .这正是我感到困惑的地方.直接访问物理内存是什么意思?这是否意味着明确说明物理地址?(AFAIK,这在 Linux 内核中是不可能的)然后他们继续说明“它必须设置页表,将内存映射到内核的地址部分空间".那是您在 HIGHMEM 解决方案中所做的事情,不 ..

USBInterfaceOpen 总是报 kIOReturnExclusiveAccess 错误

最近遇到这个问题很头疼,我已经在这个问题上花了一个星期,但还是失败了.希望你能帮我把这块石头踢开,非常感谢. 我的问题:我们公司为iPhone生产USB存储设备,这个存储设备实际上有一个SDCard.现在,我们要开发一个 Mac 应用程序来更新此存储设备的固件.但是每次我将存储设备连接到 Mac 时,Mac 都会自动挂载它,并且在调用 USBInterfaceOpen 时总是以 kIORet ..
发布时间:2021-09-15 18:52:08 其他开发

单元测试内核驱动程序

我正在寻找适用于 Windows 内核环境的测试框架.到目前为止,我已经找到了 cfix.有人试过吗?有替代品吗? 解决方案 作为 cfix 的作者,我在这里可能有点偏见——但事实上,我目前不知道任何其他单元测试NT内核模式的框架. 如果您在使用 cfix 时遇到任何问题,请随时与我联系. ..
发布时间:2021-09-14 18:58:14 其他开发

其中结构“struct page"是存储在linux内核上吗?

我了解到linux内核管理内存,分配/释放内存的单位是4KB,也就是页面大小.而且我知道这个页面是由 struct page 处理的.我在这里得到了一个实际的代码. struct page {无符号长标志;/* 原子标志,有些可能* 异步更新 *//** 该联合中有五个字(20/40 字节)可用.* 警告:第一个字的位 0 用于 PageTail().那* 表示该联合的其他用户不得使用该位* 避 ..
发布时间:2021-06-02 20:08:03 服务器开发

vfs_stat()调用有什么问题?

我正在尝试对文件进行统计, struct kstat stat;int错误= vfs_stat("/bin/ls",& stat);///bin/ls存在如果(错误){printk(KERN_INFO“错误代码%d \ n",错误);}别的{printk(KERN_INFO"ls模式:%o \ n",stat.mode);printk(KERN_INFO"ls的所有者:%o \ n",stat ..
发布时间:2021-05-30 18:37:39 服务器开发

内核启动后main()的线程上下文

考虑一个具有main()的代码库.调用内核启动函数后,我们就可以运行操作系统了. 现在,在内核启动函数调用之后,代码片段在哪个线程中运行? int main(){/* 做一点事 *//*启动调度程序*/osKernelStart();/* 无限循环 */而(1){/*用户代码*/}} 在给定代码段中,“用户代码"的上下文是什么在此先感谢 解决方案 对于RTOS,除非发生错误, ..
发布时间:2021-05-28 19:19:20 其他开发

如何在控制台中显示printk()消息?

printk()打印的信息只能在 Alt + Ctrl + F1 〜 F7 下看到kbd>控制台.这些控制台非常难以调试,因为它们无法回滚.我正在使用KDE桌面环境和控制台终端,如何将printk()消息重定向到控制台? 解决方案 printk 是 printk(“日志级别",“消息",“参数"); 内核在文件printk.h中定义了8个日志级别. #define KERN_E ..
发布时间:2021-05-28 19:19:14 服务器开发

Windows API是否授予对内核的一种访问权?或者比这更复杂?

我知道Windows API的功能远远超出了OS Kernel的预期.我的问题是Windows API和内核之间的连接是什么?Windows API是否在其中包含所有内核功能作为子集? 解决方案 没有连接.winapi是本机操作系统之上的一层.它的设计类似于Windows版本3的api,旨在简化移植程序.它是三个API层之一,OS/2和Posix,另外两个.但是由于没有人使用它们而被删除, ..
发布时间:2021-05-28 19:19:08 其他开发

内核中的native_write_msr有什么作用?

我有一个python脚本,开始时有时会很慢.前几天我在它上面跑了 perf top ,我所能看到的是: PerfTop:2 irqs/sec内核:100.0%准确:0.0%[4000Hz周期],(target_pid:1234)------------------------------------------------------------------------------------ ..
发布时间:2021-05-28 19:19:01 其他开发