linux»ù±¾Çý¶¯ºÍlinux×Ö·ûÉ豸Çý¶¯
ÏÈÕ³ÌùÒ»¸ölinux×î¼òµ¥µÄÇý¶¯£¬Æäʵ¶ÔÓÚÒ»¸ö´Ó2.4ÍæÉÏÀ´µÄÈËÀ´Ëµ£¬Çý¶¯²»¸´ÔÓ£¬±È½Ï²»Ï°¹ßµÄÊÇÄǸömakefile
Çý¶¯±¾Éí£º
hello.c:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(vodi){
printk(KERN_ALERT "hello world\n");
return 0;
}
static void hello_exit(vodi){
printk(KERN_ALERT"bye bye\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
obj-m := hello.o
KERNELDIR :=/lib/modules/$(shell uname -r)/build
all:
make -C $(KERNELDIR) M=$(shell pwd) modules
clean:
rm -rf *.o *.ko
È»ºó¸½¹ýÀ´Ò»¸öÇý¶¯£¬ÔÝʱûÓÐÑéÖ¤£¬ÊÇ×Ö·ûÐ͵ģ¬Èç¹ûÑéÖ¤ºÃÓã¬ÎÒÔÙ¸üÐÂÕâÆªÈÕÖ¾
±¾ÀýÊÇ·ë¹ú½øµÄ ¡¶Ç¶ÈëʽLinux Çý¶¯³ÌÐòÉè¼Æ´ÓÈëÃŵ½¾«Í¨¡·µÄµÚÒ»¸öÀý×Ó
¸Ð¾õÕæÊǺÃÊé Ç¿ÁÒÍÆ¼ö
×¢ÊÍÊÇdeep_pro¼ÓµÄ ×ªÔØÇë×¢Ã÷£¡ÎÒµÄÌØµãÊÇÎIJ»¼Óµã£¡
Õâ¸öÇý¶¯ÊÇÔÚÄÚ´æÖзÖÅäÒ»¸ö256×ֽڵĿռ䣬¹©Óû§Ì¬Ó¦ÓóÌÐò¶Áд¡£
ÏÈÊÇÍ·Îļþ demo.h
#ifndef _DEMO_H_
#define _DEMO_H_
#include <linux/ioctl.h> /* needed for the _IOW etc stuff used later */
/********************************************************
* Macros to help debugging
********************************************************/
#undef PDEBUG /* undef it, just in case */
#ifdef DEMO_DEBUG
#ifdef __KERNEL__
# define PDEBUG(fmt, args...) printk( KERN_DEBUG "DEMO: " fmt, ## args)
#else//usr space
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
#endif
#else
# define PDEBUG(fmt, args...) /* not debugging: nothing */
#endif
#undef PDEBUGG
#define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */
//É豸ºÅ
#define DEMO_MAJOR 224
#define DEMO_MINOR 0
#define COMMAND1 1
#define COMMAND2 2
//×Ô¼º¶¨ÒåµÄÉ豸½á¹¹
struct DEMO_dev
{
struct cdev cdev; /* Char de
Ïà¹ØÎĵµ£º
LinuxÊÖ»úµÄÇ°Í¾ËÆºõºÜÉÙÓÐÈË»³Òɹý¡£Ôø¾×ö¹ýµÄ£¬ÏÖÔÚÕýÔÚ×öµÄ£¬¼´½«´òËã×öµÄ£¬ÔÚ¹úÄÚ¹À¼Æ²»ÏÂÊýÊ®¼Ò¹«Ë¾¡£´ó¼Ò¶¼Ïë´ÓÖÐÌÔһͰ½ð£¬²»¹ý´ó¶àÊdzËÐ˶øÀ´°ÜÐ˶ø¹é£¬ÉÙÔòËðʧ¼¸°ÙÍò£¬¶àÔòÊýǧÍò£¬ÓеÄÉõÖÁÕû¸ö¹«Ë¾Òò´ËÒ»ØÊ²»Õñ¡£ÔÚÕæÕýÒâÒå°ÑLinuxÊÖ»ú×ö³É¹¦µÄ£¬ÔÚ¹úÄÚ¿ÉÒÔ˵ÇúÖ¸¿ÉÊý¡£±¾À´ÒÔΪ¿ÉÒÔ¿¿¿ªÔ´Èí¼þÓë¹úÍâ´ó¹ ......
http://www.openchess.org/noitatsko/programming/ (2001-05-24 16:47:48)
ÐźŴ¦Àí
--------------------------------------------------------------------------------
ÐźŴ¦Àí¸Å˵
ËͳöÐźÅ
½ÓÊÕÐźÅ
ÐźŵĴ¦Àí
ÈÎÎñ¿ØÖÆ
----------------------------------- ......
ÏÖÔںöàµÄÈË¿ªÊ¼½Ó´¥µçÄÔµÄʱºò£¬¼ûµ½µÄÓ¦¸ÃÊÇWindows98
˵ʵ»°£¬98
ÒѾÊÇÒ»¸öºÜÈËÐÔ»¯£¬·â×°µÄºÜºÃµÄÒ»¸öϵͳÁËÒ»¸ö¶ÔµçÄÔÒ»Çϲ»Í¨µÄÈ˶¼ÄܺܿìµÄʹÓÃËü¡£ÕâÑùºÜ¶àÈ˶Ô"
µçÄÔ"
µÄÓ¡ÏóºÍÄÇЩºÍÎÒÒ»ÑùÒ»¿ªÊ¼½Ó´¥µÄÊÇDOS
ÈËÊǾøÈ»²»Í¬µÄ¡£ÔÚDOS
ʱ´ú£¬Èç¹ûÄã¶ÔµçÄԵĻù´¡Ö ......
ÓÃsecureCRT»òÕ߯äËûһЩ¿Í»§¶Ë¹¤¾ßµÇ½µ½Linux¿ÉÒÔ¿´µ½ËüÏÔʾÁËһЩÑÕÉ«£¬ÕâÊÇÔõô×öµ½µÄÄØ£¿
linuxÎı¾ÖÕ¶Ë¿ÉÒÔÀûÓÃÒ»¸ö¼òµ¥¶øÌØÊâµÄÃüÁîÀ´¿ØÖÆÑÕÉ«µÄÏÔʾ£º\033[<command>m£¬ ÆäÖÐcommand¾ÍÊÇÒ»¸öÊý×Ö
Èç¹ûÊÇÓÃechoÀ´ÏÔʾµÄ»°£¬±ØÐëÖ¸¶¨-e²ÎÊý£¬Èç
echo -e "\033[32mtest\033[0m"
ÆäÖÐÊý×Ö0±íʾ»Ö¸´Ö®Ç° ......
1.¹ã¸æÎ¶Ì«Å¨£¬¹ý·Ö¿äÕÅÓû§ÌåÑé¡£
ÕâÊÇLinuxÐû´«ÖÐ×î´óµÄ벡£¬Ò²Ðí¶ÔÏàÐÅ¹ã¸æµÄÀÏÍâÓÐÒ»µãÓ㬵«¶ÔÓÚÔ±¾¾Í¶Ô¹ã¸æÓз´¸Ð̬¶ÈµÄÖйúÓû§À´Ëµ£¬µ±ÕæÕýʹÓÃLinuxºó·¢ÏÖ²¢²»ÏñÐû´«µÄÄÇÑùºÃÓÃʱ£¬»á²úÉú¼«´óµÄ·´¸ÐÐÄÀï¡£
ÕâÖÖÐû´«×îµäÐ͵ÄÑÔÂÛ¾ÍÊÇ“Linux±ÈWindows¿ì£¬¶øÇÒÕ¼ÓÃÏ ......