Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
Linux 内核:为什么调用 kstrtol 会崩溃?
我正在学习内核编程 并且对 kstrtol 进行了简单的调用 我用它来将字符串转换为数字 然而 每次我编译这个模块并使用 insmod 将其放入内核时 我都会收到 BUG 无法处理 f862b026 处的内核分页请求 然后是寄存器和堆栈转储
c
Linux
Linuxkernel
Linux用户空间线程、内核线程、轻量级进程
我对所有这些实体以及它们在 Linux 中如何互连感到有点困惑 Unix 内部原理 一书指出lightweight process LWP 是内核支持的用户线程 并且该内核看不到进程内的线程 对于 Linux 来说仍然如此吗 据我了解 用户
Linux
Multithreading
Linuxkernel
自动持有自旋锁时返回是否不安全?
受人尊敬的书说 The flags参数传递给spin unlock irqrestore必须与传递给的变量相同spin lock irqsave 您还必须致电spin lock irqsave and spin unlock irqrest
Linuxkernel
linuxdevicedriver
interrupthandling
spinlock
Linux Slab 分配器和缓存性能
来自指南理解Linux内核第三版 第 8 2 10 章 板坯着色 从第 2 章我们知道 同一个硬件缓存行映射许多不同的 RAM 块 在这个 在本章中 我们还看到相同大小的对象最终存储在缓存中的相同偏移量处 不同板内具有相同偏移量的对象将以相
Linux
memory
memorymanagement
Linuxkernel
slab
fork() & 内存分配行为
我在一个禁用交换和禁用内存过量使用的系统上工作 假设我的进程当前消耗 100 MB 内存 而系统可用内存小于 100 MB 如果我执行 fork 它会失败 因为内核也尝试为子进程分配 100 MB 的空间吗 我读过 Linux 在分叉时使用
Linux
memorymanagement
Linuxkernel
fork
为什么函数 printk() 不使用逗号来分隔参数?
一个例子printk call printk KERN INFO Log message n 也许这个问题更多地是关于C的 因为我之前从未见过C中的函数可以不用逗号分隔参数 这是如何运作的 编译器如何处理这些信息 由于日志级别是一个整数 而
c
Linux
Linuxkernel
如何杀死内核模块中的等待队列?
我是内核模块的新手 使用等待队列 我阻塞线程 直到缓冲区有数据 使用hrtimer 我定期唤醒队列 现在 问题是即使在我删除内核模块之后 我也可以看到该进程 thread1 仍在运行 我认为问题在于等待队列永远等待并且进程在这里被阻塞 请帮
c
Linuxkernel
kernelmodule
Linux 内核模块 Makefile 不能包含相对路径
我正在尝试构建 Linux 内核模块 KBUILD EXTRA SYMBOLS Module symvers KBUILD EXTRA SYMBOLS dir0 Module symvers KDIR kernel linux 4 9 IN
c
Linux
makefile
Linuxkernel
gnumake
内核虚拟地址转换
考虑到 Linux 和 32 位 x86 架构 可访问的 4GB 地址空间的比例为 3 1 用户空间分配0 3 Gb 而3 4 Gb 分配给内核 大于 3Gb 且位于内核地址空间的虚拟地址如何转换为物理地址 页表会出现吗 梅尔 戈尔曼的书中
memorymanagement
Linuxkernel
Paging
加载内核模块时出现未知符号
我需要帮助理解为什么在插入模块时出现错误 我努力了this http www linuxforums org forum kernel 56497 unkown symbol module error while insmodding bu
Linux
Linuxkernel
kernelmodule
linuxscst
ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?
MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
Linuxkernel
arm
kernelmodule
cpuregisters
cortexa8
/dev/mem的访问权限
我有一系列关于 dev mem 网上很多文章 好像都提到了 dev mem作为通往 Physical RAM 但如果我是对的 dev mem是通往 Physical Address Space 处理器的控制寄存器可能包括许多硬件外设的控制寄
Linux
memory
Linuxkernel
哪个进程拥有给定的端口(Linux 内核)?
我正在为 Linux 编写一个简单的应用程序层防火墙 目前没什么特别的 只是我需要的东西 由于 iptables 的所有者模块不够 我决定使用 libnetfilter queue 来实现 在我的防火墙 C C 应用程序 中的某个时刻 我需
c
Linuxkernel
NetworkProgramming
netfilter
尝试将 GCC 特定的 asm goto 移植到 Clang
我一直在尝试将一些 GNU 扩展转换为实际的标准 C 这样它就可以在 clang 上运行 知道标准 C 而不是 GNU 扩展 我有点不知所措 asm goto 1 STATIC KEY INITIAL NOP pushsection jum
c
Linux
gcc
Linuxkernel
Clang
加载linux内核的基地址
我对内核如何加载到内存有一些疑问 检查后 proc kallsyms我能够找到内核中各种符号的地址 cat proc kallsyms head n 10 00000000 t vectors start 80008240 T asm do
Linux
Linuxkernel
kernelmodule
ELF
virtualmemory
物理地址、设备地址和虚拟地址的区别
有什么区别设备地址 实际地址 and 虚拟地址 其实我正在努力mmap在驱动程序中 我一直坚持这个概念 The 文档 https www kernel org doc Documentation DMA API HOWTO txt says
Android
Linuxkernel
Kernel
kernelmodule
Linux 如何在 x86-64 中支持超过 512GB 的虚拟地址范围?
Linux 中 x86 64 的用户虚拟地址空间为 47 位长 这本质上意味着 Linux 可以映射大约 128 TB 虚拟地址范围的进程 然而 令我困惑的是 x86 64 架构支持 ISA 为每个进程定义的 4 级分层页表 排列为基数树
Linux
Linuxkernel
x8664
MMU
使用 gdb 在指定的可执行文件之外单步执行汇编代码会导致错误“无法找到当前函数的边界”
我在 gdb 的目标可执行文件之外 甚至没有与该目标对应的堆栈 无论如何 我想单步执行 以便我可以验证汇编代码中发生了什么 因为我不是 x86 汇编方面的专家 不幸的是 gdb 拒绝进行这种简单的汇编级调试 它允许我设置并停止在适当的断点上
Linux
Assembly
GDB
x86
Linuxkernel
tcp_max_syn_backlog 和 somaxconn 有什么区别?
我一直在阅读一些关于 Linux 上的 TCP 实现的文章 我很困惑 它们之间有什么区别net ipv4 tcp max syn backlog and net core somaxconn和backlog作为参数传递给listen 系统调
Linux
Sockets
Networking
TCP
Linuxkernel
Kubernetes Node 中的内核内存使用率较高
我非常绝望地寻找解决方案 我正在 AWS 上运行 Kubernetes 集群 v1 16 7 节点规格为 它是一个亚马逊 EC2 t3 medium实例与4GB RAM和 AMI k8s 1 11 debian stretch amd64
Kubernetes
memorymanagement
memoryleaks
Linuxkernel
fluentd
«
1
2
3
4
5
6
...29
»