Articles of pipe理员

内核模块的内存使用情况

在尝试估计内核模块(通常是设备驱动程序)消耗的内存量时,我尝试使用尺寸为.ko(.bss,.data,.text等)的静态内存区域大小的实用程序。 所以我期望这些值的总和恰好等于在插入模块之后立即由lsmod命令给出的输出。 在init()函数中不执行dynamic内存分配(kmalloc或vmalloc),以确保它不会导致差异。那么为什么会有不匹配? 奇怪的是,大多数时候,这个不匹配被认为是一个固定的数量! 命令输出如下所示 大小chardev.ko text data bss dec hex filename 172 448 1024016 1024636 fa27c chardev.ko lsmod的 Module Size Used by Tainted: P chardev 1025040 0 – Live 0xc009d000

从哪里开始学习有关Linux DMA /设备驱动程序/内存分配

我正在移植/debugging一个设备驱动程序(由另一个内核模块使用),并面临死胡同,因为dma_sync_single_for_device()失败与内核oops。 我不知道这个function应该做什么,Google使用google并没有什么帮助,所以我可能需要更多地了解这个function。 问题是,从哪里开始? 哦,是的,如果是相关的,代码应该运行在PowerPC上(而Linux是OpenWRT) 编辑:在线资源优先(书籍需要几天交付:)

在Ubuntu上WKHTMLTOPDF安装错误

我们需要PDF,页眉,页脚,目录和封面的function,我们要从HTML / CSS生成。 我们在Windows上尝试了WKHTML,它的工作就像一个魅力,当移动到我们的服务器,我们在我们的Ubuntu服务器上安装WKHTML,安装过程是成功的,但它只有有限的function,它能够从HTML生成PDF,但提到的所有function即页眉,页脚,内容表和封面页)不起作用。 以下是它产生的错误。 “开关-t不支持使用未经修补的qt,并且将被忽略。错误:此版本的wkhtmltopdf是针对未打补丁的QT版本构build的,并且不支持多于一个的input文档。 我们跟随了很多教程,并安装了QT修补程序,其中一个教程在这里( https://code.google.com/p/wkhtmltopdf/wiki/compilation )。 我们不确定我们是否跳过某些东西或做错了什么,它已经安装好了,很less的function已经开始工作,但不是全部。 我们可以生成页眉和页脚,但封面和内容表仍然不起作用。 这是我们真正需要的。

Linux内存报告差异

我得到了meminfo和ps之间的内存使用差异。 Free的报告的可用内存比根据ps显然使用的进程less得多。 根据免费,我只有3188mb免费: free -m total used free shared buffers cached Mem: 15360 13273 2086 0 79 1022 -/+ buffers/cache: 12171 3188 Swap: 0 0 0 我尝试使用ps来追踪内存的位置(在非0 RSS值下面): ps -A –sort -rss -o comm,pmem,rss COMMAND %MEM RSS mysqld 13.1 2062272 java 6.2 978072 ruby 0.7 114248 ruby 0.7 114144 squid 0.1 30716 ruby 0.0 11868 […]

如何在运行时在C中查看我的程序的内存布局?

我想在C中看到我的程序的内存布局,这样我就可以在运行期间实际上理解内存中所有不同的片段,比如BSS或堆中的改变。

平面内存模型和受保护内存模型之间的区别?

平面内存模型和受保护内存模型之间的区别? VxWorks支持平面内存模型,Linux是否也支持平面内存模型?

使用pipe道将数据发送到多个套接字,tee()和splice()

我正在用tee()复制一个“master”pipe道,使用splice()写入多个套接字。 自然,这些pipe道将以不同的速率清空,具体取决于我可以拼接()到目标套接字的多less。 所以,当我下一步将数据添加到“主”pipe道,然后再次发球时,我可能会遇到这样的情况:我可以向pipe道写入64KB,但只有4KB到“从”pipe道。 我在猜测,如果我拼接()所有的“主”pipe道的套接字,我将永远不能tee()剩余的60KB到奴隶pipe道。 真的吗? 我想我可以跟踪一个tee_offset(从0开始),我将其设置为“不确定”数据的开始,然后不拼接()。 所以在这种情况下,我会设置tee_offset为4096,而不是拼接更多,直到我能够开球到所有其他pipe道。 我在这里的正确轨道? 任何提示/警告给我?

我怎样才能recursion复制一个目录到另一个只replace没有改变的文件?

我期待在Fedora中做一个特定的副本。 我有两个文件夹: 'webroot':保存所有的网页文件/图片等 'export':包含数千个从SVN仓库导出的PHP,CSS,JS文档的文件夹。 导出目录包含许多与根相同的文件/文件夹,但是根包含在导出中找不到的其他文件/文件夹。 我想合并所有的导出内容与我的webroot与以下选项: 如果导出的版本包含不同于webroot版本(实况)内的代码,则覆盖webroot中的文件 保留文件的权限/用户/组(如果被覆盖(导出版本取代实时版本))*注意我希望维护webroots的权限/所有权,但是导出的内容 没有提示/停止任何forms的副本(即不详细) recursion副本 – 显然我想复制在导出中find的所有*文件夹和子文件夹 我已经做了一些关于cp的研究 – 这是否可以完成这项工作? cp -pruf ./export /path/to/webroot

有什么好的PostgreSQL客户端的Linux?

我对没有一个好的PostgreSQL的Linux GUIpipe理和开发工具感到沮丧。 pgAdmin III是与Windows相关的PostgreSQL Maestro和EMS PostgreSQLpipe理器。 phpPgaAmin不看起来很有希望。 EMS PostgreSQLpipe理器可以在Wine下工作,但是这样的设置有一些问题。 要求是: 表格数据编辑和浏览大表格(1M +),可以通过FK跳转或者一些主从编辑,GUI过滤等等。 ER图表就地架构编辑 模式编辑和浏览所有有用的GUI支持 模式更改日志以放入数据库版本(迁移脚本)。 选项卡式接口能够同时处理大量表和SQL查询。 等等。 有任何想法吗?

pss在/ proc / pid / smaps中意味着什么

我对/ proc / pid / smaps中的pss列感到困惑,于是我编写了一个程序来testing它: void sa(); int main(int argc,char *argv[]) { int fd; sa(); sleep(1000); } void sa() { char *pi=new char[1024*1024*10]; for(int i=0;i<4;++i) { for(int j=0;j<1024*1024;++j){ *pi='o'; pi++; } } int cnt; for(int i=0;i<6;++i) { for(int j=0;j<1024*1024;++j){ cnt+=*pi; pi++; } } printf("%d",cnt); } $cat /proc/`pidof testprogram`/smaps 08838000-0885b000 rw-p 00000000 00:00 0 [heap] […]