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λ²Ù×
Ïà¹ØÎĵµ£º
½«ÁªÍø·½Ê½ÉèÖÃΪNAT
µÚÒ»²½£º
cdµ½/etc/sysconfig/network-scriptsϵµÄifcfg-eth0
µÚ¶þ²½£º
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
#BOOTPROTO=static
BOOTPROTO=none
BROADCAST=192.168.174.255
HWADDR=00:0C:29:F2:BB:A9
IPADDR=192.168.174.11
......
Ò»¡¢ÏÂÔØubuntu²Ù×÷ϵͳ
http://www.ubuntu.com.cn/
ÎÒÔÚÕâ¸öÍøÕ¾ÏÂÔØubuntu 10.04 LTS°æ±¾µÄ£¬²¢Ð´³É¹âÅ̸ñʽ¡£
¶þ¡¢°²×°ubuntu linux
£¨1£©ÉèÖÃbios´Ó¹âÅÌÒýµ¼
£¨2£©Æô¶¯¼ÆËã»úÖ®ºó»á³öÏÖÒ»¸öinstall´°¿Ú£¬²¢ÏÔʾÁË»¶ÓÐÅÏ¢£¬Ñ¡ÔñÓïÑÔ£ºÖÐÎÄ£¨¼òÌ壩£¬ËûÌṩÁËÊÔÓúͰ²×°Á½¸öÑ¡ÏÎÒÑ¡ÔñÁË“ÊÔÓÃUbuntu 10.04 ......
¿´Ô´´úÂë¡£
#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");
} ......
1 Ê×ÏÈORACLE_SIDÎÊÌâ
[oracle@paopao ~]$ echo $ORACLE_SID
orcl
ÒòΪҪ´´½¨µÄÊý¾Ý¿âÃûΪorcl1£¬ËùÒÔ¸ü¸ÄORACLE_SIDÈçÏ£º
[oracle@paopao ~]$ export ORACLE_SID=orcl1
2 ×¼±¸³õʼ»¯²ÎÊýÎļþ
##########################################################################
####
# Copyright (c) 19 ......