- 博客(13)
- 资源 (8)
- 收藏
- 关注
原创 netlink demo
最近在学习linux netlink相关内容,发现这是一个用户空间和内核空间通信的好办法,于是写一个demo体验一下,一下代码基于linux kernel 3.19。kernel mode的代码netlink_demo_kmode.c如下:--------------------------------------------------------------------------
2015-07-25 17:48:11 1364
原创 linux kernel time management
time_init -->late_time_init = x86_late_time_initx86_late_time_init -->x86_init.timers.timer_init(); -->tsc_init(); x86_init.timers.timer_init = hpet_time_inithpet_time_in
2014-10-29 17:49:38 749
原创 kthread_work和kthread_worker机制
Kernel中提供的kthread_work和kthread_worker机制和经典的work_struct和workqueue_struct的关系有点类似.通过一个kthread_worker可以处理多个kthread_work,其实就是利用了工人在流水线上工作的形式.先来看看这两个数据结构的定义,它们定义在头文件include/linux/kthread.h(3.1版本)struct
2014-09-28 22:20:05 6178
原创 kthread_run创建内核线程的原理
kthread_run是一个宏,用来创建一个进程,并且将其唤醒,其定义在头文件include/linux/kthread.h中.#define kthread_run(threadfn, data, namefmt, ...) \({ \ struct task_struc
2014-09-28 20:39:26 7169
原创 mount系统调用的实现
mount系统调用在内核中对应的服务函数为do_mount函数.下面就简单总结一下该函数的实现.long do_mount(char *dev_name, char *dir_name, char *type_page, unsigned long flags, void *data_page){ struct path path; int ret
2014-08-24 22:26:23 2149
原创 非线性映射
mmap是将一个文件中的连续部分映射到虚拟内存中的一块连续的区域,它做的映射是线性映射,如果需要将一个文件中的不同部分以不同的顺序映射到虚拟内存中的连续区域,则需要使用多个mmap映射,从消耗的资源来看这样做代价比较昂贵(因为分配的vm_area_struct多了)。内核提供了一个系统调用叫做remap_file_pages,通过这个函数可以实现非线性映射,同时不需要分配更多的vm_area_st
2014-08-11 21:47:37 4502
原创 Kernel调度器负载均衡(一)
Kernel中的CPU负载均衡是对调度器的增强,在多处理器上(SMP/NUMA),必须要考虑CPU的负载均衡,包括:1.CPU负荷尽可能公平地在所有处理器上共享。2.内核必须能够将进程从一个CPU迁移到另一个CPU上。在Kernel中调度器进行负载均衡的时机有4个:1.在时钟中断时,周期性调度器scheduler_tick会被调用,它在最后会调用trigger_load_b
2014-08-10 19:32:32 3098
转载 解决ubuntu花屏
解决办法: 【安装】 1 安装时按任一键,将出现选单“就是有试用和安装”那个界面 2 选语言后,光标移到“试用和安装”,按F6【其他选项】,再按ESC跳出来 3 此时屏幕下方会有一行“开机选项”【一段可编辑的文字】 4 找到“quite splash”,在其后空一格输入nomodeset 5 按enter,就进入“试用和安装”界面 【初次使用-安装成功后】 1
2014-06-14 10:19:10 2411
四位吸血鬼数字
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字: 1260 = 21 * 60 1827 = 21 * 87 2187 = 27 * 81下面是我写的关于求出所有四位吸血鬼数字的代码,请大家看看有没有问题,或者有...
2011-04-14 16:48:19 323
获取一个字符串中的第一个不重复字符
[code="java"]import java.io.*;public class Test{ public static int search(String str){ int[][] a=new int[128][2]; int length=str.length(); for(int i=0;i
2011-04-14 13:20:06 329
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人