linux-kernel相关内容

在我的回购中,最长的哈希前缀需要多长时间才能防止重叠?

- abbrev-commit 标志可以与 git log 和 git rev-list 为了显示部分前缀而不是完整的40个字符的提交对象的SHA-1哈希值。根据 Pro Git book 它默认使用七个字符,但如果需要使它们更长以保持SHA-1清晰[...] 另外,短SHA至少有4个字符长。仍然根据Pro Git书籍, 一般而言,8到10个字符足以在项目中独一无二。 举个 ..
发布时间:2018-04-26 18:31:40 其他开发

用于企业Linux内核开发的Git工作流程

我为一家使用Linux构建嵌入式系统的公司工作。从历史上看,我们一直使用CVS来存储我们的内核工作。我们的内核最终成为以下集合: 我们专有硬件的驱动程序 随机修复我们使用的Linux版本 非专有硬件驱动程序 随机yukky为我们的应用程序量身定做Linux 我们正处于我们想要在新版本上重新构建一些旧内核的阶段,以及将我们陈旧的CVS工作流修复为基于变更集的东西。明显的选择是git ..
发布时间:2018-04-26 13:47:46 其他开发

如果连接到strace,挂起的进程会恢复

我有一个使用TCP套接字用C编写的网络程序。有时客户端程序会永远挂起,期待从服务器输入。具体而言,客户端挂在fd上的select()调用集上,用于读取服务器发送的字符。 我使用strace来知道进程卡在哪里。但是,有时当我挂上挂起的客户端进程时,它会立即恢复执行并正常退出。并非所有挂起的进程都表现出这种行为,即使我将它们附加到strace中,一些进程仍然卡在select()中。但是大多数进程 ..
发布时间:2018-04-21 15:01:23 其他开发

如何使用QEMUn和GDB调试内核

我想知道如何使用QEMU和gdb调试Linux内核。我在我的虚拟机中编译了新的内核linux-3.18.6。我的VM环境是centos,内核版本是3.10.0-327.el7.x86_64。我使用命令“qemu-system-x86_64 -kernel /usr/src/linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S”来运行 ..
发布时间:2018-04-21 14:56:46 其他开发

我可以在gdb下打印gdtr和gdt描述符吗?

我想用gdb查看我的GDTR / LDTR / TTR和段寄存器 不可见部分(x86) 在gdb中输入“p / x $ gdtr”.... etc 但结果是“$ 6 =值无法转换为整数“ ,在gdb中输入”p / x $ cs“ 唯一的结果是CS,只是可见的部分 pre > 谁能告诉我如何查看这些值? 感谢您的回答 解决方案 如果GDB有这样一个函 ..
发布时间:2018-04-21 14:31:41 其他开发

远程gdb调试不会停在断点处

我在调试修改后的Linux-3.11.0内核时遇到问题。 为了调试代码,我使用: GDB 7.6 QEMU 1.6。 5 Linux内核3.11.0 我的系统具有Intel(R)Core )运行Ubuntu 12.10的i7-2760QM CPU @ 2.40GHz我使用'make menuconfig'创建了一个配置文件来编译修改后的内核。 (在“内核黑客”类别中进行了修改) ..
发布时间:2018-04-21 14:30:31 其他开发

是否可以使用gdb和qemu同时调试linux用户空间程序和内核空间?

到目前为止,使用gdb + qemu,我可以跨入Linux内核源代码。是否可以同时调试用户空间程序?例如,单步执行从用户空间到内核空间的程序,以便通过发布 info registers ?$ b $来观察qemu监视器上的寄存器更改我通过使用gdb命令添加符号文件来添加用户空间程序的调试信息来实现它。但是你必须知道这些程序加载地址。准确地说,您必须像平常一样通过将gdb连接到gdbserver来启 ..
发布时间:2018-04-21 14:29:56 其他开发

如何使用-O0来优化Linux内核并进行编译?

我想阅读并理解Linux内核的内存管理(特别是defrag \compaction \ migration)。 因此,我关闭了优化大小在 .config (使用make menuconfig当然)并编译...这使我仍然有一个优化的内核。 注意:当我说优化内核时,我的意思是当我使用 gdb 并告诉它 next code>它会跳过。我不想这样做,我希望能够像一个简单的hello世界一样,逐 ..
发布时间:2018-04-21 14:19:29 服务器开发

远程'g'数据包回复太长

我试图用kvm vm调试Linux内核。我收到一条错误消息“Remote'g'数据包回复过长”。我的主机是64位,所以是我的vm。 我的步骤: 启动gdb 执行“set architecture i386:x86-64 :intel“ 执行”add-symbol-file linux-3.0 / vmlinux“ 执行”show arch“以验证它仍然是”i386: x86-64 ..
发布时间:2018-04-21 14:16:25 其他开发

如何用GDB和QEMU调试Linux内核?

我是内核开发新手,我想知道如何使用QEMU和gdb运行/调试Linux内核。我实际上阅读了罗伯特·洛夫的书,但不幸的是,它并没有帮助读者如何安装合适的工具来运行或调试内核......所以我所做的就是遵循本教程 http://opensourceforu.efytimes.com/2011/02/kernel-development-debugging-using-eclipse / 。我使用ecl ..
发布时间:2018-04-21 14:14:04 服务器开发

kali linux vmware gcc未找到错误

我是kali linux的新手,我试图找到解决方法。我设法安装了vmware workstation 12.1.1,但是当我尝试运行它时,出现此错误。 未找到gcc的兼容版本。未找到GNU C编译器(gcc)版本5.4.0 我安装了gcc 6.1.1并花了3天的时间尝试解决这个没有结果..任何帮助? 解决方案 最后我找到解决方案 。 将Kali升级到最新版即4.8.0-k ..
发布时间:2018-04-21 11:29:22 其他开发

使用gcc和内核头文件编译Linux内核模块

我有一台内核A头文件的Linux机器。 我想用内核A的GCC编译一个C程序,而内核B正在运行。 我该怎么做?如何检查它是否有效? 解决方案 这是需要深入研究的其他信息。 Post 2.6版本,正如其他答复中提到的那样,Makefile负责处理大部分Linux内核模块编译步骤。然而,它的核心仍然是GCC,这就是它的作用:(你也可以在没有Makefile的情况下编译它) 以下GC ..
发布时间:2018-04-20 17:32:55 其他开发

用gcc以外的东西编译Linux内核是否可能?

我想知道是否有人设法使用gcc以外的编译器编译Linux内核。或者如果有人曾经尝试过?问题似乎很愚蠢或者是学术问题,但是当我想到以下答案时就产生了这个问题: C ++ int操作在mips体系结构上是原子性的吗? 似乎某些操作的原子性不仅取决于CPU架构,而且也在使用的编译器上。所以,我想知道在Linux世界中是否存在除gcc以外的其他编译器。 解决方案 Linux明确依赖一些 gcc扩展, ..
发布时间:2018-04-20 16:34:00 服务器开发

arm-eabi arm-gnueabi和gnueabi-hf编译器的区别

arm-eabi,gnueabi和gnueabi-hf交叉编译器有什么区别。 我觉得很难选择编译器。 是否有本地编译器for arm? 解决方案 我不完全确定: eabi代表将在裸机内核上运行的代码的编译。 gnueabi表示汇编代码为linux 对于gnueabi / gnueabi-hf部分,我找到了答案此处。 GCC-臂-Linux的gnueabi是armel ..
发布时间:2018-04-20 16:15:55 服务器开发

GCC对读/写指令进行重新排序

Linux的同步原语(自旋锁,互斥锁,RCU)使用内存屏障指令来强制内存访问指令得到重新排序。这个重新排序可以由CPU自己完成,也可以由编译器完成。 有人可以展示GCC生成代码的例子吗?我主要对x86感兴趣。我问这个问题的原因是要了解GCC如何决定什么指令可以重新排序。不同的x86 mirco架构(例如:sandy bridge vs ivy bridge)使用不同的缓存架构。因此,我想知道 ..
发布时间:2018-04-20 16:01:07 其他开发