首页 2008年11月 第3页

2008年11月 第3页

  • 带参数的中断程序实例

    带参数的中断程序实例

    在调试该程序的时候请保证调试了2.6内核模块编程之<< Hello World! >>内的程序,并且对中断有了一定的学习。 /*myirq.c*/ #include <linux/module.h> #include <linux/init.h> #include <linux/interrupt.h> static int irq; static char *interface; module_param(interface,c...

    未命名 2008-11-10 106 3
  • 小任务机制实例

    小任务机制实例

    在调试该程序的时候请保证调试了带参数的中断程序实例内的程序,并且对中断有了一定的学习。 #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/interrupt.h> static int irq; static char *interface; module_param(interface,charp,0644)...

    未命名 2008-11-10 98 1
  • Linux 线程相关(1)-Linux 线程模型的比较:LinuxThreads 和 NPTL

    Linux 线程相关(1)-Linux 线程模型的比较:LinuxThreads 和 NPTL

    级别: 中级 Vikram Shukla (vikshukl@in.ibm.com), 软件工程师, IBM 2006 年 8 月 28 日 LinuxThreads 项目最初将多线程的概念引入了 Linux®,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(NPTL)库填补了一些空白,但是这仍然存在一些问题。本文为那些需要将自己的应用程序从 LinuxThreads 移植到 NPTL 上或者只是希望理解有何区别的开发...

    未分类 2008-11-10 89 0
  • 内核模块编程之进阶(五)-授人以渔

    内核模块编程之进阶(五)-授人以渔

    在上一部分“编写带有参数的中断模块”中,这个看似简单的程序,你调试并运行以后思考了哪些方面的问题? (1)给模块传递参数,使得这个模块的扩展和应用有了空间,例如,在我的机器上查看/proc/interrupts CPU0 0:   10655925    IO-APIC-edge      timer 1:       9148         IO-APIC-edge      i8042 6:          4          I O-APIC-edge      floppy 7:...

    未命名 2008-11-09 111 0
  • 内核模块编程之进阶(四)-编写带参数的中断模块

    内核模块编程之进阶(四)-编写带参数的中断模块

    在此,我们将编写一个模块,其中有一个中断函数,当内核接收到某个 IRQ 上的一个中断时会调用它。先给出全部代码,读者自己调试,把对该程序的理解跟到本贴后面。 ---------------------------------------- #include <linux/module.h> #include <linux/init.h> #include <linux/interrupt.h> static int irq; static char *in...

    未命名 2008-11-09 107 16
  • 内核模块编程之入门(三)-模块实用程序简介

    内核模块编程之入门(三)-模块实用程序简介

    modutils是管理内核模块的一个软件包。可以在任何获得内核源代码的地方获取Modutils(modutils-x.y.z.tar.gz)源代码,然后选择最高级别的patch.x.y.z等于或小于当前的内核版本,安装后在/sbin目录下就会有insomod、rmmod、ksyms、lsmod、modprobe等实用程序。当然,通常我们在加载Linux内核时,modutils已经被载入。 1.Insmod命令 调用insmod程序把需要插入的模块以目标代码的形式插入到内核中。在插入的时候,insmod自动调用...

    未命名 2008-11-09 88 0
  • 内核模块编程之入门(二)—必备知识

    内核模块编程之入门(二)—必备知识

    模块编程属于内核编程,因此,除了对内核相关知识有所了解外,还需要了解与模块相关的知识。 1.应用程序与内核模块的比较 为了加深对内核模块的了解,表一给出应用程序与内核模块程序的比较。 表一 应用程序与内核模块程序的比较   C语言应用程序 内核模块程序 使用函数 Libc库 内核函数 运行空间 用户空间 内核空间 运行权限 普通用户 超级用户 入口函数 main() module_init() 出口函数 exit()...

    未命名 2008-11-09 109 1
  • 内核模块编程之入门(一)-话说模块

    内核模块编程之入门(一)-话说模块

    内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。 一、 什么是模块 模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户...

    未命名 2008-11-09 177 4
  • ubuntu下2.6.24内核编译升级

    ubuntu下2.6.24内核编译升级

    第一步 安装必要的工具 首先要安装必要的包。 包有:libncurses5-dev(menuconfig需要的)和essential sudo apt-get install build-essential kernel-package sudo apt-get install make sudo apt-get install gcc 另外,查看系统是否有这样的两个命令 mkinitramfs mkisofs 这两个工具在编译内核时用来生成 *.img文件的。如果没有就需安装。...

    未命名 2008-11-08 105 1
  • 2.6内核模块编程之<< Hello World! >>

    2.6内核模块编程之<< Hello World! >>

    以下是内核模块的编译: linux内核是一个整体是结构。因此向内核添加任何东西.或者删除某些功能,都十分困难。为了解决这个问题。引入了内核机制.从而可以动态的想内核中添加或者删除模块。模块不被编译在内核中,因而可以控制了内核的大小。然而模块一旦被插入内核,它就和内核其它部分一样。 Linux® 可加载内核模块(从内核的 1.2 版本开始引入)是 Linux 内核的最重要创新之一。它们提供了可伸缩的、动态的内核。探索隐藏在可加载模块后面的原理,并学习这些独立的对象如何动态地转换成 Linux 内核的一部分。 单...

    未命名 2008-11-08 96 0