上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
2011年9月16日
摘要: http://www.jollen.org/blog/2006/10/_asmlinkage.html什麼是 "asmlinkage"?jollen發表於 October 26, 2006 4:15 PM有網友來信問到,kernel 裡的 system call 實作函數中(C 函數),為什麼每一個函數原型宣告的前面都有一個 "asmlinkage" 的字串?例如:asmlinkagelong sys_nice(int increment)"asmlinkage" 是在 i386 system call 實作中相當重要的一個 gcc 阅读全文
posted @ 2011-09-16 16:53 chingliuyu 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 线程退出时自动释放资源今天碰到一个问题:主线程pthread_create一个子线程A,子线程pthread_mutex_lock,然后调用其他的函数fun,最后从fun返回后再pthread_mutex_unlock.但是如果在fun中调用了pthread_exit异常退出,那么岂不是没释放锁就退出了,这肯定会引起死锁.解决办法一:在fun中调用pthread_exit之前都先调用pthread_mutex_lock释放锁,但是这就需要吧mutex作为参数传给fun,如果fun再调用了其他函数,就得一层一层的把mutex传下去,而且要找到fun及其调用的函数中的pthread_exit然后再 阅读全文
posted @ 2011-09-16 16:42 chingliuyu 阅读(3277) 评论(0) 推荐(0) 编辑
摘要: http://blogold.chinaunix.net/u2/86590/showart_2185876.htmllinux内核中用d_path得到绝对路径名Linux 内核的d_path()函数转换目录数据结构(dentry结构)到ASCII路径名字,指定的目录数据结构(dentry结构)路径返回在一个缓冲区中,这个缓冲区得内核开发人员自己申请,自己释放。在linux2.4.18以前的内核中,指定的目录数据结构(dentry结构)路径返回在一段大小为PAGE_SIZE字节的固定缓冲区中。 这样就存在一个著名的d_path()路径截断漏洞,也就是如果提交的的目录数据结构(dentry结构)路 阅读全文
posted @ 2011-09-16 16:11 chingliuyu 阅读(3767) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/csdn_zc/article/details/67769291. 质数判断对于这个,很多人可能会直接这样写:view plainintisPrime(intn)//函数返回1表示是质数,返回0表示不是质数{inti;for(i=2;i<n;i++)if(n%i==0)break;returni>=n;}又或者,有的人知道平方根的优化:view plainintisPrime(intn){inti,s=(int)(sqrt((double)n)+0.01);for(i=2;i<=s;i++)if(n%i==0)break;return 阅读全文
posted @ 2011-09-16 09:52 chingliuyu 阅读(191) 评论(0) 推荐(0) 编辑
2011年9月9日
摘要: 一,linux系统处理的地址类型1,用户虚拟地址:这是用户空间程序见到的常规地址。每个进程都有自己的虚拟地址空间2,物理地址物理地址用于处理器和系统内存之间3,总线地址总线地址在外围总线和内存这间使用4,内核逻辑地址内核逻辑地址组成了内核的常规地址空间。它一对一的映射部分或全部系统内存。在大多数架构中,内核逻辑地址与物理地址的不同,仅是它们之间存在一个固定的偏移。kmalloc 分配的就是逻辑地址,__get_free_pages?5,内核虚拟地址。它与内核逻辑地址的不同这处在于,内核虚拟地址不是一一对应到物理地址。内核虚拟地址空间是连续,但其映射的物理地址可以是离散的。内核逻辑地址是连续的, 阅读全文
posted @ 2011-09-09 09:44 chingliuyu 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 简明Vim练级攻略2011-09-08 10:33|2586次阅读|来源:酷壳网【已有0条评论】发表评论关键词:Vim,练级攻略|作者:陈皓|收藏这篇资讯导读:本文来自《Learn Vim Progressively》,译文来自酷壳网陈皓整理编译的《简明Vim练级攻略》。这是一篇给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。文章内容如下:Vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM 阅读全文
posted @ 2011-09-09 09:07 chingliuyu 阅读(171) 评论(0) 推荐(0) 编辑
2011年9月8日
摘要: 近几天有个项目需要实现用户层与内核共享内存。在前几篇博客中找到的均是kernel2.4 的。实现过程中,改的痛苦。对kernel源码才,勉强搞定。后来在此网站(http://www.scs.ch/~frey/linux/memorymap.html)发现原来有一个demo:#include <linux/config.h>#include <linux/version.h>#include <linux/init.h>#include <linux/module.h>#include <linux/fs.h>#include < 阅读全文
posted @ 2011-09-08 16:21 chingliuyu 阅读(492) 评论(0) 推荐(0) 编辑
2011年9月1日
摘要: http://www.linuxforums.org/forum/kernel/158548-avoid-memory-copying-between-user-space-kernel-space.html1. you allocate memory in the kernel device driver2. You write a "mmap" function in the device driver3. This mmap file_ops function will do a remap_pfn when invoked by the user-space app 阅读全文
posted @ 2011-09-01 23:45 chingliuyu 阅读(388) 评论(0) 推荐(0) 编辑
摘要: http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html#s8#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/debugfs.h>#include <linux/mm.h> /* mmap related stuff */struct dentry *file1;struc 阅读全文
posted @ 2011-09-01 23:22 chingliuyu 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 利用mmap /dev/mem 读写Linux内存分类: linux linux kernel2011-08-02 14:00 114人阅读 评论(1)收藏 举报使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mmap将/dev/mem map出来,然后直接对其读写可以实现用户空间的内核操作。以下是我写的一个sampleview plain#include<stdio.h>#include<unistd.h>#include<sys/mman.h>#include<sys/types.h>#include<sys 阅读全文
posted @ 2011-09-01 22:28 chingliuyu 阅读(1846) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页