内核模块cal.ko:
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL")
int add(int a, int b) {
return a+b
}
int sub(int a, int b) {
return a-b
}
static int sym_init() {
return 0
}
static int sym_exit() {
return 0
}
module_init(sym_init)
module_exit(sym_exit)
EXPORT_SYMBOL(add)
EXPORT_SYMBOL(sub)
内核模块hello.ko
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL")
MODULE_AUTHOR("David Xie")
MODULE_DESCRIPTION("Hello World Module")
MODULE_ALIAS("a simplest module")
static int age = 10
module_param(age, int, S_IRUGO)//allow all user to use this param
int add(int a, int b)
int sub(int a, int b)
static int hello_init(void)
{
printk("<0>"" Hello World! age = %d\n", add(10, 20))//调用内核模块cal.ko里面的add函数
return 0
}
static void hello_exit(void)
{
printk("<0>""hello exit %d\n", sub(30,10))//调用内核模块cal.ko里面的sub函数
}
module_init(hello_init)
module_exit(hello_exit)
可以生成多个内核模块的makefile
ifneq ($(KERNELRELEASE),)
obj-m := cal.o hello.o
cal-objs := operator.o
hello-objs := main.o
else
KDIR := /lib/modules/2.6.32-21-generic/build
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers *.order
endif
此时在当前目录执行make就会产生cal.ko和hello.ko两个内核模块
显示时间:年/月/日。
-d参数 ,说明要显示的是后面的字符串表示的时间,"1 day ago" 说明是1天前的时间。
date "+%Y-%m-%d %H-%M-%S "这样才是显示时间 +后都是时间格式。
例如:
date +%Y%m%d //显示前天年月日
date +%Y%m%d --date="+1 day" //显示前一天的日期
date +%Y%m%d --date="-1 day" //显示后一天的日期
date +%s //从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数(时间戳)
扩展资料:
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux *** 作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。
Linux与其他 *** 作系统相比 ,具有开放源码、没有版权、技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
参考资料来源:百度百科-linux
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)