Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 signalº¯Êý

CÓïÑÔÖеijéÏóº¯Êý¶¨ÒåÒ²¾ÍÊÇʹÓÃÁ˺¯ÊýÖ¸Õ룬ÕâÀïÓÃsignalº¯Êý½âÊÍһϳéÏóº¯Êý¶¨ÒåµÄº¬ÒåºÍ¹æÔò¡£
signalº¯Êý¶¨ÒåΪ£º
void (   * signal (int signum , void (*handler)(int)  )   )(int);
 
¿ÉÒÔÕâÑù¶¨Òå
typedef  void(* handler) (int)
handler signal(int signum,handler) ......

Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Linux£©

Ä¿µÄ£º
±¾ÎÄÊÇ¡¶Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Solaris£©¡·¶ÔÓ¦µÄLinux°æ±¾£¬µ÷ÊÔÆ÷ʹÓÃgdb¡£Ö÷Òª½éÉÜʵÀý²¿·Ö¡£ÆäËûÇë¼û¡¶Ò»ÖÖ¶¨Î»ÄÚ´æÐ¹Â¶µÄ·½·¨£¨Solaris£©¡·¡£
ʵÀý£º
Ä£Äânewʧ°ÜµÄ³ÌÐò£º
#include <stdexcept>
class ABC
{
public:
        virtual ~ABC(){}
 &nb ......

redhat enterprise linux5.4 °²×° oracle 11g R2

Ò»£¬Ó²¼þÅäÖÃ×îµÍÒªÇó£º
32루X86£©£º
¸öÈËÈÏΪÖÁÉÙ1GÄڴ棨linux ÉÏ512M ¿ÉÒÔ£¬µ«Ì«¹ýÓÚÃãÇ¿ÁË£¬ÄÇÑùÈÝÒ×ËÀ»ú»ò¿¨×¡²»¶¯£¬»áÈÃÈË×¥¿ñµÄ;
windows 512M µÄ¿Ï¶¨²»ÐУ©

10GµÄ¿ÉÓô ......

linux 1ºÅ½ø³Ì

1ºÅ½ø³Ì£¬pidΪ1µÄ½ø³Ì£¬ÓÖ³Æinit½ø³Ì¡£
¡¡¡¡linuxϵͳÆô¶¯ºó£¬µÚÒ»¸ö±»´´½¨µÄÓû§Ì¬½ø³Ì¾ÍÊÇinit½ø³Ì¡£ËüÓÐÁ½ÏîʹÃü£º
¡¡¡¡1¡¢Ö´ÐÐϵͳ³õʼ»¯½Å±¾£¬´´½¨Ò»ÏµÁеĽø³Ì(ËüÃǶ¼ÊÇinit½ø³ÌµÄ×ÓËï);
¡¡¡¡2¡¢ÔÚÒ»¸öËÀÑ­»·ÖеȴýÆä×Ó½ø³ÌµÄÍ˳öʼþ£¬²¢µ÷ÓÃwaitidϵͳµ÷ÓÃÀ´Íê³É“ÊÕʬ”¹¤×÷;
¡¡¡¡init½ø³Ì²»»á±»ÔÝ ......

linux shell ½Å±¾ÈëÃÅ


1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
µ±±à¼­ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
Ҫʹ½Å±¾¿ÉÖ´ÐУº
±àÒë chmod +x ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ