Difference between revisions of "Operating Systems 2014F: Tutorial 7"

From Soma-notes
Jump to navigation Jump to search
(Created page with "Test")
 
Line 1: Line 1:
Test
In this tutorial you will be learning about the basics of Linux kernel modules and character devices.
 
# Download the source for [this simple module].
 
 
==Source==
 
===simple.c===
 
<source lang="c">
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
 
static int __init simple_init(void)
{
        printk ("Hello kernel world!\n");
        return 0;
}
 
static void __exit simple_exit(void)
{
        printk ("Goodbye kernel world.\n");
        return;
}
 
module_init(simple_init);
module_exit(simple_exit);
 
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Anil Somayaji <soma@scs.carleton.ca>");
MODULE_DESCRIPTION("A simple module");
</source>
 
 
===Makefile (for simple)===
 
<source lang="makefile">
obj-m := simple.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
</source>

Revision as of 14:31, 11 November 2014

In this tutorial you will be learning about the basics of Linux kernel modules and character devices.

  1. Download the source for [this simple module].


Source

simple.c

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>

static int __init simple_init(void)
{
        printk ("Hello kernel world!\n");
        return 0;
}

static void __exit simple_exit(void)
{
        printk ("Goodbye kernel world.\n");
        return;
}

module_init(simple_init);
module_exit(simple_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Anil Somayaji <soma@scs.carleton.ca>");
MODULE_DESCRIPTION("A simple module");


Makefile (for simple)

obj-m := simple.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules