http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html
¹²ÏíÄÚ´æ¿ÉÒÔ˵ÊÇ×îÓÐÓõĽø³Ì¼äͨÐÅ·½Ê½£¬Ò²ÊÇ×î¿ìµÄIPCÐÎʽ¡£Á½¸ö²»Í¬½ø³ÌA¡¢B¹²ÏíÄÚ´æµÄÒâ˼ÊÇ£¬Í¬Ò»¿éÎïÀíÄÚ´æ±»Ó³Éäµ½
½ø³ÌA¡¢B¸÷×ԵĽø³ÌµØÖ·¿Õ¼ä¡£½ø³ÌA¿ÉÒÔ¼´Ê±¿´µ½½ø³ÌB¶Ô¹²ÏíÄÚ´æÖÐÊý¾ÝµÄ¸üУ¬·´Ö®ÒàÈ»¡£ÓÉÓÚ¶à¸ö½ø³Ì¹²Ïíͬһ¿éÄÚ´æÇøÓò£¬±ØÈ»ÐèҪijÖÖͬ²½»úÖÆ£¬»¥
³âËøºÍÐźÅÁ¿¶¼¿ÉÒÔ¡£
²ÉÓù²ÏíÄÚ´æÍ¨ÐŵÄÒ»¸öÏÔ¶ø
Ò×¼ûµÄºÃ´¦ÊÇЧÂʸߣ¬ÒòΪ½ø³Ì¿ÉÒÔÖ±½Ó¶ÁдÄڴ棬¶ø²»ÐèÒªÈκÎÊý¾ÝµÄ¿½±´¡£¶ÔÓÚÏñ¹ÜµÀºÍÏûÏ¢¶ÓÁеÈͨÐÅ·½Ê½£¬ÔòÐèÒªÔÚÄں˺ÍÓû§¿Õ¼ä½øÐÐËĴεÄÊý¾Ý¿½±´£¬
¶ø¹²ÏíÄÚ´æÔòÖ»¿½±´Á½´ÎÊý¾Ý[1]£ºÒ»´Î´ÓÊäÈëÎļþµ½¹²ÏíÄÚ´æÇø£¬ÁíÒ»´Î´Ó¹²ÏíÄÚ´æÇøµ½Êä³öÎļþ¡£Êµ¼ÊÉÏ£¬½ø³ÌÖ®¼äÔÚ¹²ÏíÄÚ´æÊ±£¬²¢²»×ÜÊǶÁдÉÙÁ¿Êý¾Ýºó
¾Í½â³ýÓ³É䣬ÓÐеÄͨÐÅʱ£¬ÔÙÖØÐ½¨Á¢¹²ÏíÄÚ´æÇøÓò¡£¶øÊDZ£³Ö¹²ÏíÇøÓò£¬Ö±µ½Í¨ÐÅÍê±ÏΪֹ£¬ÕâÑù£¬Êý¾ÝÄÚÈÝÒ»Ö±±£´æÔÚ¹²ÏíÄÚ´æÖУ¬²¢Ã»ÓÐд»ØÎļþ¡£¹²ÏíÄÚ
´æÖеÄÄÚÈÝÍùÍùÊÇÔÚ½â³ýÓ³Éäʱ²Åд»ØÎļþµÄ¡£Òò´Ë£¬²ÉÓù²ÏíÄÚ´æµÄͨÐÅ·½Ê½Ð§ÂÊÊǷdz£¸ßµÄ¡£
LinuxµÄ2.2.xÄÚºËÖ§
³Ö¶àÖÖ¹²ÏíÄڴ淽ʽ£¬Èçmmap()ϵͳµ÷Óã¬Posix¹²ÏíÄڴ棬ÒÔ¼°ÏµÍ³V¹²ÏíÄÚ´æ¡£linux·¢Ð ......
9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²
¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ±¾½Ú½«½éÉÜÈçºÎʹÓà GCC ºÍһЩ
GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
ʹÓà GCC
ͨ³£ºó¸úһЩѡÏîºÍÎļþÃûÀ´Ê¹Óà GCC ±àÒëÆ÷. gcc ÃüÁîµÄ»ù±¾Ó÷¨ÈçÏÂ:
gcc [options] [filenames]
ÃüÁîÐÐÑ¡ÏîÖ¸¶¨µÄ²Ù×÷½«ÔÚÃüÁîÐÐÉÏÿ¸ö¸ø³öµÄÎļþÉÏÖ´ÐÐ. ÏÂһС½Ú½«ÐðÊöһЩÄã»á×î
³£Óõ½µÄÑ¡Ïî.
GCC Ñ¡Ïî
GCC Óг¬¹ý100¸öµÄ±àÒëÑ¡Ïî¿ÉÓÃ. ÕâЩѡÏîÖеÄÐí¶àÄã¿ÉÄÜÓÀÔ¶¶¼²»»áÓõ½, µ«Ò»Ð©Ö÷
ÒªµÄÑ¡Ï»áƵ·±Óõ½. ºÜ¶àµÄ GCC Ñ¡Ïî°üÀ¨Ò»¸öÒÔÉϵÄ×Ö·û. Òò´ËÄã±ØÐëΪÿ¸öÑ¡Ïî
Ö¸¶¨¸÷×ÔµÄÁ¬×Ö·û, ²¢ÇÒ¾ÍÏó´ó¶àÊý Linux ÃüÁîÒ»ÑùÄã²»ÄÜÔÚÒ»¸öµ¥¶ÀµÄÁ¬×Ö·ûºó¸úÒ»
×éÑ¡Ïî. ÀýÈç, ÏÂÃæµÄÁ½¸öÃüÁîÊDz»Í¬µÄ:
gcc -p -g test.c
gcc -pg test.c
µÚÒ»ÌõÃüÁî¸ ......
9)LinuxÏÂC¿ª·¢¹¤¾ß½éÉÜ
LinuxµÄ·¢ÐаæÖаüº¬Á˺ܶàÈí¼þ¿ª·¢¹¤¾ß. ËüÃÇÖеĺܶàÊÇÓÃÓÚ C ºÍ C++Ó¦ÓóÌÐò¿ª·¢
µÄ. ±¾ÎĽéÉÜÁËÔÚ Linux ÏÂÄÜÓÃÓÚ C Ó¦ÓóÌÐò¿ª·¢ºÍµ÷ÊԵŤ¾ß. ±¾ÎĵÄÖ÷Ö¼ÊǽéÉÜÈç
ºÎÔÚ Linux ÏÂʹÓà C ±àÒëÆ÷ºÍÆäËû C ±à³Ì¹¤¾ß, ¶ø·Ç C ÓïÑÔ±à³ÌµÄ½Ì³Ì.
GNU C ±àÒëÆ÷
GNU C ±àÒëÆ÷(GCC)ÊÇÒ»¸öÈ«¹¦ÄÜµÄ ANSI C ¼æÈݱàÒëÆ÷. Èç¹ûÄãÊìϤÆäËû²Ù×÷ϵͳ»òÓ²
¼þƽ̨ÉϵÄÒ»ÖÖ C ±àÒëÆ÷, Ä㽫ÄÜºÜ¿ìµØÕÆÎÕ GCC. ±¾½Ú½«½éÉÜÈçºÎʹÓà GCC ºÍһЩ
GCC ±àÒëÆ÷×î³£ÓõÄÑ¡Ïî.
ʹÓà GCC
ͨ³£ºó¸úһЩѡÏîºÍÎļþÃûÀ´Ê¹Óà GCC ±àÒëÆ÷. gcc ÃüÁîµÄ»ù±¾Ó÷¨ÈçÏÂ:
gcc [options] [filenames]
ÃüÁîÐÐÑ¡ÏîÖ¸¶¨µÄ²Ù×÷½«ÔÚÃüÁîÐÐÉÏÿ¸ö¸ø³öµÄÎļþÉÏÖ´ÐÐ. ÏÂһС½Ú½«ÐðÊöһЩÄã»á×î
³£Óõ½µÄÑ¡Ïî.
GCC Ñ¡Ïî
GCC Óг¬¹ý100¸öµÄ±àÒëÑ¡Ïî¿ÉÓÃ. ÕâЩѡÏîÖеÄÐí¶àÄã¿ÉÄÜÓÀÔ¶¶¼²»»áÓõ½, µ«Ò»Ð©Ö÷
ÒªµÄÑ¡Ï»áƵ·±Óõ½. ºÜ¶àµÄ GCC Ñ¡Ïî°üÀ¨Ò»¸öÒÔÉϵÄ×Ö·û. Òò´ËÄã±ØÐëΪÿ¸öÑ¡Ïî
Ö¸¶¨¸÷×ÔµÄÁ¬×Ö·û, ²¢ÇÒ¾ÍÏó´ó¶àÊý Linux ÃüÁîÒ»ÑùÄã²»ÄÜÔÚÒ»¸öµ¥¶ÀµÄÁ¬×Ö·ûºó¸úÒ»
×éÑ¡Ïî. ÀýÈç, ÏÂÃæµÄÁ½¸öÃüÁîÊDz»Í¬µÄ:
gcc -p -g test.c
gcc -pg test.c
µÚÒ»ÌõÃüÁî¸ ......
ÒÔÏÂΪSHELL½Å±¾´´½¨Ò»¸ö±È½ÏÍêÕûµÄFTPÕʺÅ,°üÀ¨:
1) ÐÂÔöFTPÕÊ»§ºÍĿ¼
2) ÐÞ¸ÄFTPÕÊ»§ÃÜÂë
3) ÔÚFTPÕÊ»§Ä¿Â¼ÏÂ,н¨Èý¸ö×ÓĿ¼,´æ·Å²»Í¬Êý¾Ý
4) Ŀ¼ȨÏÞÖÃΪ¿É¶Áд
ʹÓÃ˵Ã÷:
1) ´´½¨ÐÂshÎļþ(Èç:addFTPAcc.sh), ½«Ô´½Å±¾È«²¿¿½±´ÆäÖÐ
2) Ö´ÐÐ: #sh ./addFTPAcc.sh
3) ÊäÈëÐÂÃÜÂë, È»ºó½Å±¾»á×Ô¶¯Íê³ÉÆäËü´´½¨
#Ô´½Å±¾¿ªÊ¼
#!/bin/sh
#Êä³ö¸ñʽ¹æ·¶
sign="----------"
#FTPÓû§Ïà¹ØÐÅÏ¢
ftpuser="ftptest1"
ftppath="ftptest1"
baseftppath="/var/ftp/pub/"
echo ""
echo ${sign}"starting"${sign}
echo ""
#Èç¹ûÓû§ÒÑ´æÔÚ£¬ÔòÏÈɾ³ý
userdel -r ${ftpuser}
#¿ªÊ¼´´½¨ftpÓû§
useradd -s /sbin/nologin -g ftp -d ${baseftppath}${ftppath} ${ftpuser}
#echo ${sign}"useradd: "${ftpuser}" is OK"${sign}
#ÉèÖÃftpÓû§ÃÜÂë
passwd ${ftpuser}
#echo ${sign}"passwd: "${ftpuser}" is OK"${sign}
#ÔÚftppathĿ¼ÏÂн¨Èý¸ö×ÓĿ¼
cd ${baseftppath}${ftppath}
mkdir 1
mkdir 2
mkdir 3
#echo ${sign}"mdir: 1,2,3 is OK"${sign}
#¸øÎļþ ......
²é¿´ËùÓл·¾³±äÁ¿ printenv
ÉèÖãºexport ±äÁ¿Ãû=±äÁ¿Öµ
ɾ³ý£ºunset ±äÁ¿Ãû
Èç¹ûÄãÏë²é¿´Ä³Ò»¸öÃû³ÆµÄ»·¾³±äÁ¿£¬ÃüÁîÊÇ£ºecho $»·¾³±äÁ¿Ãû£¬±ÈÈ磺
echo $ORACLE_HOME
cat ²é¿´ÃüÁî
source ÉúЧ
vi±à¼Æ÷
ÏȰ´esc£¬È»ºóÊäÈë :q! £¬´æÅÌÍ˳öÊäÈë :wq
2¡¢X·½Ê½:
¡¡¡¡(1). vi /etc/services # È·±£xdmcp¶Ë¿Ú´ò¿ª
¡¡¡¡xdmcp 177/tcp # X Display Mgr. Control Proto
¡¡¡¡xdmcp 177/udp
¡¡¡¡(2). vi /etc/X11/gdm/gdm.conf # ÆôÓÃxdmcp·þÎñ
¡¡¡¡[xdmcp]
¡¡¡¡½«Enable=false»òEnable=0
¡¡¡¡Enable=true»òEnable=1
/etc/sysconfig/iptables ·À»ðǽÎļþ ......
scull×Ö·ûÇý¶¯Ñ§Ï°±Ê¼Ç
Ŀ¼
1 scullÇý¶¯¼ò½é
2 Ö÷´Î±àºÅ
3 scullÔ´Âë·ÖÎö
-------------------------
| 1 scullÇý¶¯¼ò½é |
-------------------------
scullÊÇÒ»¸ö×Ö·ûÇý¶¯£¬ÎÒÃDzÙ×÷Ò»¿éÄÚ´æÇøºÃÏñËüÊÇÒ»¸öÉ豸¡£scullÊÇÓ²¼þÉ豸¹ØÁª²»´ó£¬ ËùÒÔËüÊÇͨÓÿÉÒÆÖ²µÄ¡£
-----------------------
| 2 Ö÷´Î±àºÅ |
----------------------
2.1
Ëæ±ãÌáÌáÖ÷´Î±àºÅ°É£¡
×Ö·ûÉ豸ͨ¹ýÎļþϵͳÖеÄÃû×ÖÀ´´æÈ¡£¬Ò²¾ÍÊdz£ËµµÄÉ豸Îļþ¡£ÎÒÃDz鿴/devĿ¼ÏµÄÎļþ£¬»á²é¿´µ½ÏµÍ³ÏÂËùÓÐÉ豸Îļþ¡£
Ö÷±àºÅ±êʶÉ豸ÏàÁ¬µÄÇý¶¯¡£´Î±àºÅÓÃÀ´¾ö¶¨ÒýÓÃÄĸöÉ豸£¬ÒÀ¾ÝÄãµÄÇý¶¯ÊÇÈçºÎ±àдµÄ£¬ Äã¿ÉÒÔ´ÓÄں˵õ½Ò»¸öÄãµÄÉ豸µÄÖ±½ÓÖ¸Õë¡£ÄÚºËÔÊÐí¶à¸öÇý¶¯¹²ÏíÖ÷±àºÅ¡£
2.2
һЩÖ÷É豸±àºÅÊǾ²Ì¬·Ö¸ø×îÆÕͨµÄÉ豸µÄ£¬¶ÔÓÚÐÂÇý¶¯£¬´ó¶àÊýÇé¿öÏÂʹÓö¯Ì¬·ÖÅäÀ´»ñÈ¡ÄãµÄÖ÷É豸ºÅ¡£
¶¯Ì¬·ÖÅäÖ÷É豸ºÅº¯Êý
alloc_chrdev_region
  ......
scull µÄMakefile
Makefile½Å±¾ÈçÏÂËùʾ¡£
--------------------------------------------------------------------------------
KERNEL_MAKE := -C /home/zhoumin/hi3511/Hi3511_VSSDK_V1.1.2.1/pub/kbuild-LESS_REL
PWD := $(shell pwd)
obj-m := scull.o
default:
make $(KERNEL_MAKE) M=$(PWD) modules
clean:
make $(KERNEL_MAKE) M=$(PWD) clean
---------------------------------------------------------------------------------
¶¨ÒåÄÚºËĿ¼ /home/zhoumin/hi3511/Hi3511_VSSDK_V1.1.2.1/pub/kbuild-LESS_RELΪÎÒÃÇ¿ª·¢»·¾³µÄÄÚºËËã
Ô´ÂëĿ¼¡£
KERNEL_MAKE := -C /home/zhoumin/hi3511/Hi3511_VSSDK_V1.1.2.1/pub/kbuild-LESS_REL
Éú³ÉµÄÇý¶¯Ä£¿éÎļþÒÀÀµÎļþ¡£
obj-m := scull.o
Èç¹ûÄãÓÐÒ»¸öÄ£¿éÃûΪmodule.ko ÊÇÀ´×ÔÓÚÁ½¸öÔ´Îļþ£¨file1.c file2.c£©
obj-m := module.o
module-objs:=file1.o file2.o ......