linuxÄÚºËÄ£¿éºÍÇý¶¯³ÌÐòµÄ±àд
linuxÖеĴ󲿷ÖÇý¶¯³ÌÐò,ÊÇÒÔÄ£¿éµÄÐÎʽ±àдµÄ.ÕâЩÇý¶¯³ÌÐòÔ´Âë¿ÉÒÔÐ޸ĵ½ÄÚºËÖÐ,Ò²¿ÉÒÔ°ÑËûÃDZàÒë³ÉÄ£¿éÐÎÊÆ,ÔÚÐèÒªµÄʱºò¶¯Ì¬¼ÓÔØ.
Ò»¸öµäÐ͵ÄÇý¶¯³ÌÐò,´óÌåÉÏ¿ÉÒÔ·ÖΪÕâô¼¸¸ö²¿·Ö:
1¡¢×¢²áÉ豸
ÔÚϵͳ³õÆô,»òÕßÄ£¿é¼ÓÔØÊ±ºò,±ØÐ뽫É豸µÇ¼Çµ½ÏàÓ¦µÄÉ豸Êý×é,²¢·µ»ØÉ豸µÄÖ÷Çý¶¯ºÅ,ÀýÈç:¶Ô¿ìÉ豸À´Ëµµ÷ÓÃrefister_blkdec()½«É豸Ìí¼Óµ½Êý×éblkdevÖÐ.²¢ÇÒ»ñµÃ¸ÃÉ豸ºÅ.²¢ÀûÓÃÕâЩÉ豸ºÅ¶Ô´ËÊý×é½øÐÐË÷Òý.¶ÔÓÚ×Ö·ûÇý¶¯É豸À´Ëµ,ҪʹÓÃmodule_register_chrdev()À´»ñµÃ×£É豸µÄÇý¶¯ºÅ.È»ºó¶ÔÕâ¸öÉ豸µÄËùÓе÷Óö¼ÓÃÕâ¸öÉ豸ºÅÀ´ÊµÏÖ
2¡¢¶¨Ò幦Äܺ¯Êý
¶ÔÓÚÿһ¸öÇý¶¯º¯ÊýÀ´Ëµ.¶¼ÓÐһЩºÍ´ËÉ豸ÃÜÇÐÏà¹ØµÄ¹¦Äܺ¯Êý.ÄÇ×î³£ÓõĿéÉ豸»òÕß×Ö·ûÉ豸À´Ëµ.¶¼´æÔÚ×ÅÖîÈç open() read() write() ioctrol()ÕâÒ»ÀàµÄ²Ù×÷.µ±ÏµÍ³ÉçÓÃÕâЩµ÷ÓÃʱ.½«×Ô¶¯µÄʹÓÃÇý¶¯º¯ÊýÖÐÌØ¶¨µÄÄ£¿é.À´ÊµÏÖ¾ßÌåµÄ²Ù×÷.¶ø¶ÔÓÚÌØ¶¨µÄÉ豸.ÉÏÃæµÄϵͳµ÷ÓöÔÓ¦µÄº¯ÊýÊÇÒ»¶¨µÄ.
Èç:ÔÚ¿éÇý¶¯É豸ÖÐ.µ±ÏµÍ³ÊÔͼ¶ÁÈ¡Õâ¸öÉ豸(¼´µ÷ÓÃread()ʱ),¾Í»áÔËÐÐÇý¶¯³ÌÐòÖеÄblock_read() Õâ¸öº¯Êý. ´ò¿ªÐÂÉ豸ʱ»áµ÷ÓÃÕâ¸öÉ豸Çý¶¯³ÌÐòµÄdevice_open() Õâ¸öº¯Êý.
3¡¢Ð¶ÔØÄ£¿é
ÔÚ²»ÓÃÕâ¸öÉ豸ʱ,¿ÉÒÔ½«ËûÐ¶ÔØ.Ö÷ÒªÊÇ´Ó/proc ÖÐÈ¡ÏûÕâ¸öÉ豸µÄÌØÊâÎļþ.¿ÉÓÃÌØ¶¨µÄº¯ÊýʵÏÖ.
ÏÂÃæÎÒÃÇÁоÙÒ»¸ö×Ö·ûÉ豸Çý¶¯³ÌÐòµÄ¿ò¼Ü.À´ËµÃ÷Õâ¸ö¹ý³Ì.
/* a module of a character device */
/* some include files*/
#include "param.h"
#include "user.h"
#include "tty.h"
#include "dir.h"
#include "fs.h"
/* the include files modules need*/
#include "linux/kernel.h"
#include "linux/module.h"
#if CONFIG_MODBERSIONS==1
define MODBERSIONS
#include" linux.modversions.h"
#endif
#difine devicename mydevice
/* the init funcion*/
int init_module()
{
int tag=module_register_chrdev(0,mydevice,&Fops);
if (tag<0)
{
printk("the device init is erro!\n");
return 1;
}
return 0;
}
/*the funcion which the device will be used */
int device_open ()
{
…….
}
int device_read ()
{
…….
}
int device_write ()
{
…….
}
int device_ioctl ()
{
…….
}
……
/* the deltter function of this module*/
int cleanup_module()
{
int re=module_unregister_chrde
Ïà¹ØÎĵµ£º
²é¿´°²×°µÄϵͳÐÅÏ¢£º
¼òµ¥µÄÐÅÏ¢£ºuname -a
ÏêϸµÄÐÅÏ¢£ºcat /proc/version
cat /etc/issue
lsb_release -a
GentooÉϰ²×°mysql£¬Ö±½ÓÔËÐУº
(1) bigner
@localhost
/ $ sudo emerge mysql
  ......
±àÒëµ¥¸öÔ´Îļþ
ΪÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf(”Hello world!\n”);
exit(0);
}
ʹÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
# gcc -o hello hello.c
# ./hello
Hello wordl!
ÔÚÄ ......
redhat linux °²×°informix¿Í»§¶Ë
ÉÏһƪ / ÏÂһƪ 2009-05-27 22:36:49 / ¸öÈË·ÖÀࣺlinux
²é¿´( 26 ) / ÆÀÂÛ( 0 ) / ÆÀ·Ö( 0 / 0 )
redhat linux °²×°informix¿Í»§¶Ë
1.ÏÂÔØclientsdk.3.50.FC2DE.LINUX.tar(Linux system for x86-64,RedHat)£¬½âѹtar -xvf clientsdk.3.50.FC2DE.LINUX.tar
2.°²×°./installc ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
×ÀÃæ
Linux
ÊÇʲô£¿Ëµµ½µ×£¬×ÀÃæ
Linux
Ó¦¸ÃÊÇÔõÑùµÄ£¿Õâ¸öÎÊÌâËäÈ»¼òµ¥£¬ÕýÈ·»Ø´ðÈ·Êô²»Òס£ÎªÊ²Ã´£¿
ÈËʹÓüÆËã»ú±ÜÃâ²»ÁËʹÓÃ×Àà ......
Trace32-ICDÊÇĿǰ¹¦ÄÜ×îÇ¿´óµÄ·ÂÕæÆ÷£¬Ö§³Ö¸÷ÖÖCPU£¬°üÀ¨ARM/X86µÈ¡£Trace32Êǵ¹úlauterbach¹«Ë¾µÄ²úÆ·£¬¹¦ÄÜÇ¿´ó£¬Ö§³Ö¸÷ÖÖ²Ù×÷ϵͳµ÷ÊÔ£¬Èçlinux/vxworks/winceµÈ£¬²»¹ý¼Û¸ñÒ²±È½Ï¸ß£¬Òª3-5ÍòRMB£¬ÏÖÔÚÒ²ÓÐЩ·ÂÖÆµÄTrace£¨ÈçTrace32-ICP£©£¬¼Û¸ñ±È½Ï±ãÒË£¬´ó¸Å1Íò¶àRMB¡£Trace32ÓÉÓÚÆä¹¦ÄÜÇ¿´ó£¬ÌرðÊʺϴóÐÍÇ¶È ......