kernel相关内容

为什么它是不可能使用的ioremap然后remap_pfn_range?

在我的司机,我试图映射地址从ioremap的返回给用户空间地址。 从ioremap的返回1.什么样的地址? 2.它是如何从kmalloc的地址不同? 3.如何映射地址从返回的ioremap? 4.该地址应插入remap_pfn_range? 解决方案 您不需要的ioremap()如果你使用 remap_pfn_range ()。 的ioremap()物理地址映射到内核虚拟地址。 r ..
发布时间:2016-08-21 21:43:13 服务器开发

如何强制两种工艺在同一CPU上运行?

上下文: 我编程,由多个进程的一个软件系统。在C编程++ Linux下。而他们之间的沟通他们使用Linux共享内存。 一般情况下,在软件开发,是在最后阶段的性能优化时作出。在这里,我来到了一个大问题。该软件具有高性能的要求,但在与4个或8个CPU核心(通常使用多个CPU)上,这是只能够使用3个核心,因此浪费CPU的功率的25%,在第一批,而超过在第二组的60%。 很多研究,有丢弃的互斥和锁争 ..
发布时间:2016-08-21 21:39:11 服务器开发

如何映射的物理内存1GB(或以上)

我有2GB的内存一个设置和我想的物理内存1GB(或更多)映射到用户空间的虚拟地址。它是在理论上是可行的,因为有32位设置,虚拟地址的3GB可供用户应用的土地 我的内核命令行更新,包含下列参数:纪念品= 1G MEMMAP = 1G $ 1G 给力的内核,看看1GB的RAM,并保留最后的1GB。 我将处理用户空间mmap()的调用和函数映射remap_pfn_range物理地址为0x40000 ..
发布时间:2016-08-21 21:08:33 服务器开发

编写一个新的系统调用

我一直在试图写在树莓的内核新的系统调用(称为sys_defclose),但在编译我得到这个错误: 弓/ ARM /核心/内置in.o:在功能`__sys_trace_return“: 。:(文字+ 0xd50):未定义的参考`sys_defclose“ 我已经修改以下文件: -include / Linux的/ syscalls.h:这里我把我的系统调用的原型 -arch / ARM / ..
发布时间:2016-08-21 20:47:29 C/C++

实时编程使用Linux

我刚刚建立,并成立了香草Linux内核与应用RT补丁。一切都很好,我现在可以正确地引导进入新的内核。 什么让我怀疑是这样的:我有我用C做了一个模拟程序,我希望它在硬实时模式下执行,因为应该由新的内核被允许。也许整个模拟器并不需要与实时优先级运行,但一些任务里面做的。 我怎样才能做到这一点?我认为,只需运行该程序不会做。 解决方案 如果你问如何运行的一些实时的背景下发生的线程,以及其他常 ..
发布时间:2016-08-21 20:47:08 服务器开发

使用sk_buff中添加以太网帧头

我有一个内核模块捕获传出的互联网流量(Netfilter的钩子:LOCAL_OUT) 在这个钩子,还是有没有以太网头。 我建的以太网帧头,它已经准备好使用,但如何将其连接到 SKB ,这样我可以整个SKB结构发送到 dev_queue_xmit() ? 是否有关于如何处理sk_buff的数据,你可以给我提供进一步信息的任何指导? 作为一个样本,我尝试做什么,我想所有的ICMP ECHO交通 ..
发布时间:2016-08-21 20:42:08 C/C++

为什么零填充需要SOCKADDR_IN?

我GOOGLE了它,有些人说:“为了保持同样的大小与结构sockaddr”。但是,内核不会使用SOCKADDR直接(右?)。当使用它。内核将它转换回它是什么。那么,为什么是零填充需要的? 结构sockaddr { 无符号短上sa_family; //地址族,AF_xxx 炭sa_data [14]; // 14字节协议地址的 };结构SOCKADDR_IN { 短sin_ ..
发布时间:2016-08-21 20:31:34 服务器开发

在内核中的地址

我有,当我设在内核中的地址的问题。我插入一个hello模块中的内核,在这个模块中,我把这些东西: 字符的myString [] =“这是我的地址”; printk的(“&所述1为卤素; MyString的地址是%P”,virt_to_phys(了mystring)); 我想我可以得到MyString的物理地址,但我发现,在系统日志,它的打印地址是0x38dd0000。然而,我甩存储器,发现真 ..
发布时间:2016-08-21 20:26:20 服务器开发

Linux的内核调试打印输出?

有没有更好的方法来调试Linux内核打印? 现在乱扔垃圾的code有: 的printk(KERN_DBG“%S:%d个 - %S()<&消息GT;”,__FILE__,__LINE__,__FUNCTION__); 这是不是很干净。 有应该是一种方式,整行是 #IFDEF :在编一些不错的方式。 解决方案 使用 / *在文件的顶部,任何包括之前* / #定义pr_fmt(FMT) ..
发布时间:2016-08-21 20:19:36 C/C++

系统的实施调用Linux内核源代码内/陷阱

目前,我正在学习操作系统的使用陷阱,以方便系统在Linux内核中调用。我已经位于traps.c陷阱的桌子和许多陷阱内entry.S中的实施。 不过,我奉命找到在Linux内核两个系统调用它利用陷阱来实现系统调用的实现。虽然我可以找到自己的陷阱的定义,我不知道什么是“呼”地内核中的这些陷阱会是什么样子之一。因此,我苦苦寻找的这种行为的例子。 在有人问,没错,这就是家庭作业。 作为一个说明,我使 ..
发布时间:2016-08-21 20:12:54 C/C++

使用Linux的netfilter从结构iphdr *转换的源IP地址,等效字符串

我希望将源和放大器转换;使用网络过滤器为char *捕获数据包的目的地IP地址。 在我的netfilter钩子函数,我有: sock_buff = SKB; //钩子函数的参数2// IP_HEADER是结构iphdr * IP_HEADER =(结构iphdr *)skb_network_header(sock_buff);//现在怎么ip_header-&GT转换; SADDR和放大器; ..
发布时间:2016-08-21 19:59:29 服务器开发

netlink_kernel_create不与最新的Linux内核工作

我收到编译器错误在编译时我的老这是使用网络链路功能的内核模块。 INT 的init_module() { / *初始化网络链路内核接口* / nl_sk = netlink_kernel_create(安培; init_net,17,0,recv_cmd,NULL,THIS_MODULE); 如果(!nl_sk) { printk的(KE ..
发布时间:2016-08-21 19:55:42 C/C++

如何使用内核libcrc32c(或相同功能)的用户空间程序?

我想要做一些CRC校验在我自己的用户空间程序。而且我发现,内核加密的lib已经在系统中,并配备了SSE4.2支持。 我试过直接的#include< Linux的/ crc32c.h> 和运行gcc与 -I在/ usr / src / linux中/包括/ 。然而,它亘古不变的工作。 任何方式使用某种libcrc32c的? 解决方案 您可以通过插座用户空间使用内核加密 CRC ..
发布时间:2016-08-19 16:31:16 C/C++

如何用C来获得开放套接字名单在Linux呢?

有没有办法在用户空间或内核用C来获得在Linux中所有打开的套接字(套接字地址或socket描述符)的列表? 感谢您 解决方案 打开并阅读以下内容: 的/ proc /净/ TCP - 开TCP套接字的列表 的/ proc /净/ UDP - 开UDP套接字的列表 的/ proc /净/原料 - 列表中的所有“原始”插槽 这就像“正规”的文件,您打开,并用文件句柄读取并会给你你可 ..
发布时间:2016-08-19 16:29:34 服务器开发

每线程处理时间量子

我有关于Windows和Linux环境提供给进程和线程时间段的问题。 我知道一般的操作系统给每个线程时间量的固定金额。 (我知道这取决于前台或后台线程时间量的变化。根据进程的优先级也可能改变。) 有每个进程的一个固定的时间段?对于如。如果操作系统给每个进程36时间段,如果一个进程有2个线程然后各自将获得18量子。如果线程数变为3则每个将获得12 但是,如果每个进程的一个固定的量子不存在和操作 ..
发布时间:2016-08-19 16:29:13 服务器开发

内存初始化的Linux内核的高CPU使用率

我与Linux内核的高CPU cunsumption一个问题,而在服务器自举我的Java应用程序。只有在生产中发生此问题,开发服务器上的一切都是光速。 upd9:有这个问题上有两个问题: 如何解决呢? - 标称动物建议同步和放下一切,它确实有帮助。 须藤SH -c'同步;回声3>的/ proc / SYS / VM / drop_caches; 作品。 upd12:不过说实在的同步足 ..
发布时间:2016-08-19 16:19:38 服务器开发

如何转换的char [],在linux内核诠释?

如何转换的char []在linux内核为int 与验证所输入的文本实际上是一个int? INT procfile_write(结构文件*文件,为const char *缓冲区,无符号长计数, void *的数据) { 焦炭procfs_buffer [PROCFS_MAX_SIZE] / *获取缓冲区大小* / 无符号长procfs_buffer_size = ..
发布时间:2016-08-19 16:19:15 服务器开发

unlocked_ioctl与正常的ioctl

在我的驾驶file_operations结构,我有: 结构file_operations的头纱= { 阅读:device_read, 写:device_write, unlocked_ioctl:device_ioctl, ... }; 即。有没有使用的ioctl领域。这是足以避免大内核锁,没有任何同步进入device_ioctl()?或做我必须要改变的ioctl()在cod ..
发布时间:2016-08-19 16:17:03 服务器开发