Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÓÃNasmÇÉ»ã±à

Ëæ×ÅLinuxµÄÆÕ¼°£¬ÈçºÎÔÚLinuxƽ̨ϽøÐбà³Ì£¬ÓÈÆäÊÇ»ã±à³ÉΪ´ó¼Ò¹Ø×¢µÄÒ»¸öÎÊÌ⣬µ«ÊÇÕâ·½Ãæ×ÊÁÏÈ´ºÜÉÙ¡£ÔÚ±é·ÃÍøÕ¾ºÍÂÛ̳ºó£¬ÎÒ°ÑÊÕ¼¯µ½µÄ×ÊÁϽáºÏ±¾ÈË×ܽáµÄһЩ¾­Ñé¸ú´ó¼Ò·ÖÏíһϡ£
Nasm½éÉÜ
LinuxϵĻã±à±àÒëÆ÷ÓжàÖÖ£¬Óï·¨Ò²²»¾¡Ïàͬ£¬ÆäÖÐGASÊDZȽϻù±¾µÄ»ã±à¹¤¾ß¡£µ«ÊÇGAS²ÉÓõIJ»ÊÇÎÒÃÇͨ³£ÔÚDOSÌåϵÏÂʹÓõĻã±àÓï·¨£¬Ëü²ÉÓõÄÊÇAT&TµÄÓï·¨¸ñʽ£¬ÕâÊǼ̳ÐUnixµÄÌØµã£¬ÓëIntelÓï·¨¸ñʽÓкܴóµÄ²»Í¬¡£
×÷Ϊһ¸ö´ÓDOSתÐ͵½LinuxµÄ»ã±à°®ºÃÕߣ¬AT&TµÄ¸ñʽ²»Ì«ÈÝÒ×½ÓÊÜ£¬Ñ§Ï°ÆðÀ´Ò²·Ç³£À§ÄÑ¡£ÎÒÒª½éÉܵÄÊÇÁíÒ»ÖÖ»ã±à¹¤¾ßNasm£¬Õâ¸úDOSÏÂÓõÄIntel x86»ã±à·ç¸ñµÄMasmÀàËÆ£¬ÊÇLinuxÖÐÓï·¨ÓëDOS×îΪÏàÏñµÄÒ»ÖÖ»ã±à¹¤¾ß¡£
ÏÂÃæ¾ÍÒÔhello.asmÕâ¸öС³ÌÐòΪÀý£¬½éÉÜÈçºÎÓÃNasmÔÚLinuxϽøÐлã±à¡£
hello.asm
hello world for Linux
section .text
extern puts
global main
main:
push dword msge ;
call puts ;
add esp, byte 4 ;
ret ;
msge:
db “Hello World!”,0
Nasm±àÒëÃüÁîÈçÏ£º
Nasm -f elf hello.asm
gcc -o hello hello.o
“Nasm -f elf hello.asm”Êǽ«°Ñhello.asm»ã±à³Éelf objectÎļþ¡£“gcc -o hello hello.o”»á°Ñhello.asm»ã±à³É¶þ½øÖÆ¿ÉÖ´ÐÐÎļþhello.com ¡£
Nasm -fÃüÁîµÄ²ÎÊýÖ÷ÒªÓÐaoutºÍelfÁ½ÖÖ£¬Èç¹û²»ÄÜÈ·¶¨LinuxϵͳӦ¸ÃÓÃaout»¹ÊÇelf£¬¿ÉÒÔÔÚNasmĿ¼ÖÐÊäÈëÃüÁîfile Nasm£¬Èç¹ûÊä³ö“Nasm: ELF 32-bit LSB executable i386(386 and up) Version 1”Ó¦¸ÃʹÓÃelf£»Èç¹ûÊä³ö“Nasm: Linux/i386 demand-paged executable(QMAGIC) ”Ó¦¸ÃʹÓÃaout¡£ÓÃÃüÁîNasm -h¿ÉÒÔÈ¡µÃNasmÃüÁîÐеÄÍêÕû˵Ã÷¡£
³ÌÐò˵Ã÷
hello.asmÊǵ÷ÓÃÁËLinuxϵͳµÄputsº¯Êý£¬Ô­ÀíÓëµ÷ÓÃDOSÏÂCÓïÑԵĺ¯ÊýÏàͬ£¬ÏÈÓÃexternÉùÃ÷putsÊÇÍⲿº¯Êý£¬ÔٰѲÎÊý£¨¼´msgµÄµØÖ·£©Ñ¹Èë¶ÑÕ»£¬×îºócallº¯ÊýʵÏÖÊä³ö¡£ ÔÙÀ´¿´Ò»¸ö³ÌÐò£º
section .text
global main
main:
mov eax,4 ; 4ºÅµ÷ÓÃ
mov ebx,1 ; ebxËÍ1±íʾÊä³ö
mov ecx,msge ; ×Ö·û´®µÄÊ×µØÖ·ËÍÈëecx
mov edx,14 ; ×Ö·û´®µÄ³¤¶ÈËÍÈëedx
int 80h ; Êä³ö×Ö´®
mov eax,1 ; 1ºÅµ÷ÓÃ
int 80h ; ½áÊø
msge:
db “Hello World!”,0ah,0dh
Õâ¸ö³ÌÐòÓëDOS³ÌÐòÊ®·ÖÏàËÆ£¬¶øÇÒ½á¹ûͬhello.asmÒ»Ñù£¬ËüÓõÄÊÇLinuxÖеÄ80hÖжϣ¬Ï൱ÓÚDOSϵÄ21hÖжϣ¬Ö»ÊÇÒòΪLinuxÊÇ32λ²Ù×


Ïà¹ØÎĵµ£º

Linuxϲ鿴ÎļþºÍÎļþ¼Ð´óСµÄdfºÍduÃüÁî

ת×Ô£ºhttp://www.yayu.org/look.php?id=162
µ±´ÅÅÌ´óС³¬¹ý±ê׼ʱ»áÓб¨¾¯Ìáʾ£¬ÕâʱÈç¹ûÕÆÎÕdfºÍduÃüÁîÊǷdz£Ã÷ÖǵÄÑ¡Ôñ¡£
    df¿ÉÒԲ鿴һ¼¶Îļþ¼Ð´óС¡¢Ê¹ÓñÈÀý¡¢µµ°¸ÏµÍ³¼°Æä¹ÒÈëµã£¬µ«¶ÔÎļþÈ´ÎÞÄÜΪÁ¦¡£
    du¿ÉÒԲ鿴Îļþ¼°Îļþ¼ÐµÄ´óС¡£
    Á½ÕßÅäºÏʹÓã ......

linuxµÄÎļþºÍĿ¼

chmod £»ÐÞ¸ÄĿ¼ȨÏÞ
eg£ºchmod o-t /tmp
touch:´´½¨ÐÂÎļþ
rm -rf:ɾ³ýÎļþ
set gid ¶ÔĿ¼µÄ×÷ÓÃ
1£ºÄ¬ÈÏÇé¿öÏ£¬Óû§½¨Á¢µÄÎļþÊôÓÚÓû§µ±Ç°ËùÔÚµÄ×é
2£ºÄ¿Â¼ÉÏÉèÖÃÁËsetgid£¬±íʾÔÚ´ËĿ¼ÖУ¬ÈκÎÈ˽¨Á¢µÄÎļþ£¬¶¼»áÊôÓÚĿ¼ËùÊôµÄ×é¡£
rm -rf test  //ɾ³ý֮ǰµÄtestĿ¼
mkdir test // ÔÚµ±Ç°Ä¿Â¼´´½¨Ò ......

±àÒëÒ»¸ölinuxÄÚºËÄ£¿é

¿´Ô´´úÂë¡£
#include <linux/kernel.h>
#include <linux/module.h>
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include <linux/modversions.h>
#endif
int init_module()
{
printk("Hello, I'm kernel\n");
return 0;
}
void cleanup_module()
{
printk("I'm kernel, bye\n");
} ......

linuxÉèÖÃÆô¶¯ÔØÈ붯̬Á´½Ó¿âĿ¼


Linuxϰ²×°ÍêºóOracle¿Í»§¶Ëºóµ÷ÓÃOCI£¬±àÒëûÓÐÎÊÌ⣬ÔËÐÐʱ·¢ÏÖ
cannot open shared object file libclntsh.so.10.1: No such file or directory
¾­¹ý²éÕÒ·¢ÏÖÊÇoracleµÄ·¾¶Ã»ÓÐÉèÖÃ
ÊäÈë:
locate libclntsh.so.10.1
»ñÈ¡¶ÔÓÚ·¾¶
/app/oracle/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
±à¼­/etc/ld. ......

¿ØÖÆÎļþµÄ±¸·Ý¼°»Ö¸´£¨linuxϺÍXPϲ½ÖèÊÇÒ»ÑùµÄ£©

±¸·Ý¿ØÖÆÎļþ°üÀ¨ÈýÖÖ·½·¨£º
(1)ͨ¹ý²Ù×÷ϵͳÃüÁîÔÚÊý¾Ý¿â¹Ø±Õʱ¶Ô¿ØÖÆÎļþ½øÐÐCOPY£»
(2)ÀûÓÃALTER DATABASE BACKUP CONTROLFILE TOÃüÁ¿ØÖÆÎļþ±¸·Ýµ½¶þ½øÖÆÎļþ£»
SQL> alter database backup controlfile to 'E:\oracle\product\10.2.0\orcl\controlfile01.bak';
Êý¾Ý¿âÒѸü¸Ä¡£
(3)ÀûÓÃALTER DATABASE BACKU ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ