Windows kernel-ის გაუმჯობესება. Hardcore ინსტალაცია Linice-ით: vchimosya pratsyuvati კონსოლის ბირთვში. HEVD მოდულის მოკლე აღწერა

როგორ დავიწყოთ ბირთვის მენეჯერი?

ოსტატის განცხადება:

პროგრამული უზრუნველყოფის შემუშავების პროცესში ერთ-ერთი ყველაზე მნიშვნელოვანი ფაქტორია ღირებულება. აპლიკაციის პროგრამებთან დაკავშირებით, ისინი მუშაობენ კლიენტის რეჟიმში და ხშირად დაინსტალირებულია IDE-ში. იმისათვის, რომ შეძლოთ, მაგალითად, დრაივერების გაუმჯობესება, თქვენ უნდა გაუშვათ ბირთვის მენეჯერი.

თქვენ უნდა გაუშვათ cmd ბრძანების პროცესორი. გახსენით Start მენიუ Start პანელზე. ფანჯარაში დააწკაპუნეთ პუნქტზე "Viconaty...". გამოჩნდება "პროგრამების გაშვების" ფანჯარა. ტექსტის ველში შეიყვანეთ cmd და დააჭირეთ ღილაკს "OK".

ახლა შექმენით სარეზერვო ასლი boot.ini ფაილი. დაუყოვნებლივ გაეცანით მიმდინარე ტენდენციებს Windows-ის ასლები, სწრაფად გამოყენებით ბრძანება: echo %SystemRoot%

შემდეგ გადადით დისკზე დაინსტალირებული ოპერაციული სისტემით, შეიყვანეთ მოწყობილობის ასოები და მათ შემდეგ ჩადეთ ორმაგი ჩამრთველი. cd ბრძანების გამოსაყენებლად გადადით root დირექტორიაში. ახლა, attrib ბრძანების გამოყენებით, ამოიღეთ boot.ini ფაილიდან "წვდომის", "მხოლოდ წაკითხვის" და "სისტემის" ატრიბუტები. გამოიყენეთ კოპირების ბრძანება სარეზერვო ასლის შესაქმნელად და საიტზე ატრიბუტების დასაყენებლად.

პარამეტრების დეტალური სიის საჩვენებლად, გაუშვით bootcfg /query ბრძანება. შეხედეთ სიას, რათა დაადგინოთ ელემენტი, რომლის საფუძველზეც შეიქმნება ახალი პარამეტრები ბირთვის რეჟიმში კორექტირების შესაძლებლობით. ჩანაწერის მფლობელის იდენტიფიკატორი ინახება მეხსიერების კვალში.

სარეზერვო ასლის შესაქმნელად გამოიყენეთ bootcfg/copy ბრძანება. ჩანაწერის ID-ის დასაზუსტებლად, რომელსაც კოპირებთ, გამოიყენეთ /id პარამეტრი. Vikorist / d, მიუთითეთ ჩანაწერი, რომელიც გამოჩნდება. ახლა თქვენ უნდა დაბრუნდეთ პარამეტრების სიაში, გამოიყენოთ bootcfg/query ბრძანება და ნახოთ მოცემული ჩანაწერის იდენტიფიკატორი.

ახლა თქვენ უნდა ჩართოთ წინა ვერსიაში ბირთვის მენეჯერის გაშვების პარამეტრები გასაოცარი პოსტი. თუ თქვენ აპირებთ გამართვას იმავე აპარატზე, თქვენ უბრალოდ უნდა დაამატოთ /debug ვარიანტი.

Სად გინდა წასვლა? შორს კეთილდღეობაროდესაც სამიზნე კომპიუტერს აკავშირებთ com პორტის საშუალებით მასპინძელ მანქანასთან, გამოიყენეთ /port და /baud პარამეტრები პორტის ნომრის და გაცვლის სიჩქარის დასაზუსტებლად.

Yakshcho Vi თქვენ იქნებით ჯანმრთელობის მსგავსი viddalenu iv aznodenn, Firewire კაბელის მეშვეობით (izhterphais IEEE 1394), შემდეგ, ამისთვის, uvimknuti არის vicoristovy, vicoristovy oppsis /dbg1394, ამისთვის, OPCI /Ch-ის ნომერი. .

თქვენი პარამეტრების შესაცვლელად, გაუშვით bootcfg ბრძანება /query პარამეტრით. გასვლის ბრძანების გაცემის შემდეგ დახურეთ ბრძანების პროცესორის ფანჯარა.

როდესაც თქვენ გჭირდებათ თქვენი პრეფერენციების შეცვლა ოპერაციული სისტემა. გახსენით Windows პანელი "დაწყების" მენიუდან და შემდეგ გახსენით "სისტემის" ელემენტი. "სისტემის ავტორიტეტის" ფანჯარაში აირჩიეთ "Addatkovo" ჩანართი. ამ ჩანართიდან აირჩიეთ "ინსპირაცია და განახლება" განყოფილება და დააჭირეთ ღილაკს "ოფციები". "Vantures and Updates" ფანჯარაში თქვენ უნდა გაააქტიუროთ "ოპერაციული სისტემების სიის ჩვენება". დახურეთ შეურაცხმყოფელი დიალოგური ფანჯრები "OK" ღილაკით.

აღადგინეთ თქვენი კომპიუტერი. აირჩიე შენი მეგობრის მოზიდვა. შედით სისტემაში და დაიწყეთ მუშაობა იმავე აპარატზე ან გაუმჯობესდით. დააჩქარეთ ისეთი გზებით, როგორიცაა WinDbg და KD.

chPF OELPFPTSCHE KHLBBOYS RP TBVPFE U PFMBDLPK SDTB U BCHBTYKOSCHNY DBNRBNIY RBNSFY. lBL RTBCHYMP, CHBN OHTsOP VKDEF ЪBDBFSH PDOP YЪ KHUFTPKUFCH RPDLBYULY, RETEYUUMEOOCHI CH ZHBKME /etc/fstab . UVTPU PVTBBPCH RBNSFY PRO KHUFTPKUFCHB, OE SCHMSAEYYUS KHUFTPKUFCHBNY RPDLBYULY, OBRTYNE, MEOFSHCH, CH DBOOSHK NPNEOF OE RPDDETSYCHBAFUS.

Შენიშვნა: YURPMSHHKFE LPNBODH დემპონი (8) DMS KHLBBOYS SDTH NEUFB, TUD OHTsOP UPITBOSFSH BCHBTYKOSCHE DBNRSCH. RPUME OBUFTPKLY RP LPNBODE გაცვლა (8) TBDEMB RPDLBYULY DPMTSOB VSHFSH CHSHCHBOB RTPZTBNNNB dumpon. pVSHYUOP LFP CHSHRPMOSEPHUS ЪBDBOYEN RETENOOOPK dumpdev CH ZHBKME rc.conf (5). eUMY 'BDBOB LFB RETENEOOBS, FP RPUME UVPS RTY RETCHPK savecore (8). pob UPITBOIF BCHBTYKOSHCHK DBNR SDTB CH LBFBMPZ, ЪBDBOOSCHK CH RETENEOOOPK dumpdir ZHBKMB rc.conf . rP KHNPMYUBOYA LBFBMPZPN DMS BCHBTYKOSCHI DBNRPCH SCHMSEFUS /var/crash .

mYVP ChSCH NPTSEFE ЪBDBFSH KHUFTPKUFCHP DMS UVTPUB PVTTBUB RBNSFY SCHOP YUETE RBTBNEFT ნაგავსაყრელი CH UFTPLE კონფიგურაცია LPOZHYZHTBGYPOOPZP ZHBKMB ChBEZP SDFUSPECHBSH Y DPMTSEO YURPMSHЪPCHBFSHUS, FPMSHLP EUMY CHSH IPFYFE RPMKHYUBFSH BCHBTYKOSHCH RBNSFY SDTB, LPFPTPPE BCHBTYKOP ЪBCHETYBEF UCHPA TBVPFH RTY ЪBTH.

Შენიშვნა: dBMEE FETNYO gdb P'EBYUF PFMBDYUIL gdb , ЪBRHEOOOSCHK CH ``TETSINE PFMBDLY SDTB "". RETEIPD CH LFPF TETSYN DPUFYZBEFUS ЪBRHULPN gdb U RBTBNEFTPN -k. h TETSYNE PFMBDLY SDTB gdb YЪNEOSEF UCHP RTYZMBYE OYE PRO (კგდბ) .

რჩევა: eUMY CHSH YURPMSHJHEFE FreeBSD CHETUYY 3 YMY VPMEE TBOOAA, CHCH DPMTSOSCH CHSHRPMOYFSH HUEYOOEE PFMBDPUOPZP SDTB LPNBODPZP STRIP, B OE KHUFBPBPVPVPPVPVPVPVPVPVPVPV PBPVPBPBPVPBPVPVPBPVPVPDPSHPBPVPVPDSHPBPBPVPVPSPBPVPBPBPBPBP VPVPBPVPVPVPVPVPVPVPVPVPVPVPVPVPVPVPVPVP PVPPDDV

# cp kernel kernel.debug # strip -g kernel

LFPF VIBZ OE FBL HC Y OEPVIPDYN, OP TELPNEODHEN. (PH FreeBSD მე-4 VPMEE TEMYYBI LFPF YBZ CHSHRPMOSEFUS BCHFPNBFYUEULY CH LPOGE RTPGEUUB RPUFTPEOOYS SDTB მწარმოებელი .) lPZDB SDTP HUEYEOP, BCHFPNBFYUPTECHNY HUFBOPCHYFSH EZP PVSHCHYUOSCHN PVTBBPN, OVTTBCH დააინსტალირეთ.

'BNEFSHFE, YUFP CH UFBTSHCHI CHETUISІ FreeBSD (DP 3.1, OE CHLMAYUBS LFPF TEMY), YURPMSH'HEFUS SDTB CH ZHTNBFPMPPDMPBMPBMPBMPBMPBMPBMPBRPBRBPBRPBR. y VPMSHIPK FBVMYGEK UYNCHPMPCH CH OE HUEOOOOPN PFMBDPUOPN SDTE LFP YЪMYYOSS FTBFB. RPUMEDOYE TEMYYSH FreeBSD YURPMSHJHAF SDTB CH ZHTNBFE ELF, აქ LFP OE SCHMSEFUS RTPVMENPK.

eUMY CHCH FEUFYTHEFE OPCHPE SDTP, ULBTSEN, OBVYTBS YNS OPCHPZP SDTB CH RTYZMBYYEOYY BZTHYUYLB, OP CHBN OHTSOP ЪBZTHTSBFSH Y TBVPFBFSHPTHNTH BMSHOPNH ZHOLGYPOYTPCHBOYA, ЪBZTHTSBKFE EZP FPMSHLP CH PDOPRPMSHЪPCHBFEMSHULPN TETSYNE RTY RPNPEY ZHMBZB -s , KHLBSCCHBENPZP RTY ЪBZTH Ъ B ЪBFEN CHSHCHRPMOYFE FBLYЄ VIBZY:

# fsck -p # mount -a -t ufs # ასე რომ, თქვენი ფაილური სისტემა /var/crash-ისთვის დაიწერება # savecore -N /kernel.panicked /var/crash # გასვლა # ...მრავალ მომხმარებლისთვის

LFB RPUMEDPCHBFEMSHOPUFSH KHLBSCCHBEF RTPZTBNNE savecore (8) YURPMSHЪPCHBOYE DTHZPZP SDTB DMS YICHMEYUEOYS UYNCHPMYUEULYI YNEO-ს შესახებ. YOBYU POB VKhDEF YURPMSHЪPCHBFSH SDTP, TBVPFBAEECH DBOOSCHK NPNEOF Y, ULPTEI CHUEZP, OYUEZP OE UDEMBEF, RPFPNH YuFP PVPV.

b FERETSH, RPUME UVTPUB BCHBTYKOPZP DBNRB, RETEKDYFE CH LBFBMPZ /sys/compile/WHATEVER Y ЪBRKHUFYFE LPNBODH gdb-k. yЪ RTPZTBNNSH gdb UDEMBKFE PVF SFP:

Symbol-file kernel.debug exec-file /var/crash/kernel.0 core-file /var/crash/vmcore.0 th EDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFEDFDTPBTTH.

ChPF TsKHTOBM LPNBOD UEBOUB TBVPFSH gdb, YMMAUFTYTHAEIK UFH RTPPGEDHTH. dMYOOSCH UFTPLY VSHMY TBPTCHBOSH DMS KHMHYUYEOYS YUYFBVEMSHOPUFY Y DMS KHDPVUFCHB UFTPLY VSHCHMY RTPOKHNETPCHBOSHCH. CHUE PUFBMSHOPE SCHMSEFUS FTBUUYTPCHLPK PIYVLY, TEBMSHOP CHP'YLOKHCHIEK PP CHTENS TBVPFSCH OBD DTBKCHETPN LPOUPMY pcvt.

1:სკრიპტი დაიწყო პარასკევი 30 დეკემბერი 23:15:22 1994 2: # cd /sys/compile/URIAH 3: # gdb -k ბირთვი /var/crash/vmcore.1 4:სიმბოლო მონაცემების წაკითხვა /usr/src/-დან sys/compile/URIAH/kernel ... შესრულებულია. 5:IdlePTD 1f3000 6:პანიკა: იმიტომ რომ თქვი! 7: მიმდინარე PCB 1e3f70-ზე 8: წაკითხვა სიმბოლოებით ../../i386/i386/machdep.c... შესრულებულია. 9: (კგდბ) სადაც 10:#0 ჩატვირთვა (arghowto=256) (../../i386/i386/machdep.c ხაზი 767) 11:#1 0xf0115159 პანიკაში 12:#2 ) (../. ./i386/i386/machdep.c სტრიქონი 698) 13:#3 0xf010185e db_fncall () 14:#4 0xf0101586 db_command db_command_loop () 16:010185 in db_fncall () 16:0#10d xf01 92976 kdb_trap-ში (12 , 0, -272630436, -266743723) 18:#8 0xf0 ...) 20:#10 0xf019cb2f ხაფანგში (...) 21:#11 0xf01932a1 გამონაკლისში:calltrap () 250x#1 in. ). /. /ხაფანგი.გ...შესრულებულია. 29: #10 0xf019cb2f ხაფანგში (ჩარჩო = (tf_es = -260440048, tf_ds = 16, tf_\30: edi = 3072, tf_esi = -266445372, tf_eb3 = 3 = 27,6 x 8 = 3 = 27,6 x 2, 6 = 2,6 x 8 7884, ტფ \ 32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ 33: 6672343, tf_cs = -266469368, tf_eflags = 3, 6, 2 = 3, 6, 2, 6, 2 = 3, 6, 2, 2, 2, 6 = 6, 2, 2, 2, 2, 2, 2, 6 = 6, 2, 2, 2, 2, 2, 2, 2, 6 = 6, 2, 2 , 2, 2, 2, 1, 6 = 6 -266427884)) (. ./../i386/i386/trap.c ხაზი 283) 35:283 (void) trap_pfault(&frame, FALSE); 36: (kgdb) ჩარჩო ჩარჩო->tf_ebp ჩარჩო->tf_eip 37: წაკითხვა სიმბოლოებში ../../i386/isa/pcvt/pcvt_drv.c... შესრულებულია. 38:#0 0xf01ae729 pcopen-ში (dev=3072, flag=3, mode=8192, p=(struct p\ 39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drvc. 403) 40:403 დაბრუნება ((*linesw.l_open)(dev, tp)); 41: (კგდბ) სია 42:398 43:399 tp->t_მდგომარეობა |= TS_CARR_ON; 44:400 tp->t_cflag |= CLOCAL; /* არ შეიძლება იყოს მოდემი (:-) */ 45:401 46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) 47:403 დაბრუნება ((*linesw.l_open)(dev, tp)); 48:404 #else 49:405 დაბრუნება ((*linesw.l_open)(dev, tp, flag)); 50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ 51:407 ) 52: (კგდბ) ბეჭდვა tp 53: წაკითხვა სიმბოლოებში ../../i386/i386/cons.c... შესრულებულია. 54:$1 = (struct tty *) 0x1bae 55: (kgdb) ბეჭდვა tp->t_line 56:$2 = 1767990816 57: (kgdb) up 58:#1 0xf0191503 cnopen-ში (dev=0x0,0,0st 59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c ხაზი 126) 60: დაბრუნება ((*cdevsw.d_open)(dev, flag, mode, p) ); 61: (kgdb) 62:#2 0xf0132c34 spec_open () 63: (kgdb) 64:#3 0xf012d014 vn_open () 65: (kgdb) 66:#4 0xf012a183 მდე (0xf012a183) tf_es = 39, tf_ds = 39, tf_edi = 69: 2158592, tf_esi = 0, tf_ebp = -272638422, tf = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582; /../i386/i386/trap.c ხაზი 673) 73:673 შეცდომა = (*callp->sy_call)(p, args, rval); 74: (კგდბ) ზევით 75: შერჩეული საწყისი ჩარჩო; ვერ წახვალ. 76: (კგდბ) გამორთვა 77: # გასვლა 78: გამოსვლა 79: 80: სკრიპტი შესრულებულია პარასკევი დეკ 30 23:18:04 1994 წ.

lPNNEOFBTYY L CHISCHERTYCHEDEOOPNH TSHTOBMH:

UFTPLB 6:

LFP DBNR, CHSFSHCHK RTY RPNPEY DDB (UNPFTY OYCE), RPPFPNH LPNNEOFBTYK L BCHBTYKOPNH PUFBOPCHH YNEEF YNEOOOP CHYDB'UB'YUBLUBBUB PDOBLOPYBHOBSH MB BCHBTYKOBS PUFBOPCHLB RTY PP'YLOPCHEOYA PIYLL UFTBOYGSCH RBNSFY.

UFTPLB 20:

LFP NEUFPOBIPTSDEOOYE ZHKHOLGYY trap() CH FTBUUYTPCHLE UFELB.

UFTPLB 36:

rTYOKHDIFEMSHOPE YURPMSHЪPCHBOIE OPChPK ZTBOYGSCH UFELB; FERTSH LFP OE OHTSOP. rTEDRPMBZBEFUS, YuFP ZTBOYGSCH UFELB KHLBSCCHBAF RTBCHYMSHOP TBURPMPTSEOYE-ს შესახებ, DBCE CH UMHYUBE BCHBTYKOPZP PUFBOPCHB. ZMSDS PRO UFTPLH YUIPDOPZP LPDB 403, NVTSOP ULBUBFSH, YuFP CHEUSHNB CHETPSFOP, YuFP MYVP CHYOPCHBF DPUFHR RP KHLBBFEMA ``tp'', MYVP ZBSP ZBSPHUBPVP

UFTPLB 52:

rPIPTSE, YuFP CHYOPCHBF KHLBBFEMSH, VP ON SCHMSEFUS DPRKHUFYNSCHN BDTEUPN.

UFTPLB 56:

PDOBLP, PYUECHYDOP, UFP KHLBSCCHBEF-ზე NHUPT-ის შესახებ, FBL UFP NSCH OBIM ორივე PІYVLH! (DMS FEI, LFP OE OBLPN U LFPC YUBUFSHHA LPDB: tp->t_line UMHTSYF DMS ITBOEOYS TETSYNB LBOBMSB LPOUPSHOPZP HUFTPKUFCHB, Y LFP DPMTSOP VShchFPEMPESHOPPUFUF)

მენეჯერი არის კომპილატორის მეგობარი, რომელიც აუცილებელია პროგრამების შესაქმნელად. თუმცა, ბევრმა მათგანმა, ვინც წერს კომპიუტერულ პროგრამებს და მოქმედებს როგორც ადმინისტრატორი, არ იცის მათი მუშაობის პრინციპები და მექანიზმები.


მნიშვნელოვანია იყოთ ზედამხედველი.

იმ ფონზე, რომ პროგრამები ვიკორისტებს მენეჯერს დღედაღამ, განსაკუთრებით თუ გადადიხართ ღრმა სიმშვიდის რეჟიმში, კარგია იმის თქმა, რომ თუ მენეჯერი არ არის პროგრამა, არამედ გაყინული, ის ადვილად გადახურდება და ფუჭდება. იმის გამო, რომ იმდენ სამუშაოს, რამდენიც მანქანას შეუძლია, შემდგენელის ინფორმირება შეუძლებელია.

რა თქმა უნდა, არსებობს სხვადასხვა ტიპის პროგრამირების ფრაგმენტები და მათ აქვთ საკუთარი კონტროლერები თითოეული მათგანისთვის. და, ბუნებრივია, ამ ენების გარკვეული კატეგორიისთვის მნიშვნელოვანია რედაქტორების მუშაობაში: მაგალითად, პროგრამების რედაქტორი ინტერპრეტირებული Ruby-ში გამოიყენება განსხვავებულად, მაგრამ არა ენისთვის, რომელიც შედგენილია Java bytecode-ში და ladchik-ში. ჯავასთვის, საკუთარი ხარჯებით, დიდი მნიშვნელობა ექნება Visual C++ დეველოპერს.

მე გეტყვით Windows პლატფორმის დაყენების შესახებ. მას შემდეგ რაც გაიგეთ ადმინისტრატორების მუშაობის პრინციპები, შესაძლებელი იქნება მუშაობა როგორც დეველოპერებთან POSIX სისტემებით, ასევე ადმინისტრატორებთან, რომლებიც მუშაობენ არა იმავე ოპერაციულ სისტემაზე, არამედ იმავე დონეზე, როგორც ვირტუალური თარჯიმანი.


დრაივერები Windows-ისთვის: ორი ტიპი

Windows-ისთვის ადმინისტრატორების ორი განსხვავებული ტიპი არსებობს. მე ვფიქრობ, რომ ყველამ პირველები გააჩერა, თუ ისინი დელფში დაპროგრამებულან (ახალში არ დაპროგრამებულან? არ მჯერა. რატომ დაპროგრამებდით სკოლაში და უმცროს კურსებზე?). ესენი არიან კორისტუვაცკის პროგრამების მფლობელები. ბევრი იყო და სუნი იდგა, ასევე (განსაკუთრებით, საუბრის წინ, ხშირად) დანამატების განვითარების ინტეგრირებული ცენტრების საწყობში. რედაქტორებს შორის, რომლებიც ფართოვდება პროგრამული პროდუქტების მიღმა, ტრადიციულად OllyDbg-ია და მის შესახებ დავწერე Computer News-ში.

ინსექტიციდის კიდევ ერთი სახეობაა ოპერაციული სისტემის ბირთვის მენეჯერი. სუნები უფრო ადრე იკვეთება და ვიკორისტი, ხოლო მათი მოწყობილობის უკან საგრძნობლად იჭრება კორისტუვაჩის საღეჭი დანამატების გამო. ყველაზე პოპულარული და, ამავდროულად, ყველაზე მოკლე ბირთვის მენეჯერი არის SoftIce. შესაძლოა, თქვენ უბრალოდ არ გსმენიათ მის შესახებ, არამედ უბრალოდ დასცინეთ მას.

ორი ტიპის სამკურნალო საშუალების კანის ფრაგმენტებს აქვს თავისი სპეციფიკა, შემდეგ მათ კანზე მოგიყვებით მოხსენებაში.


Nalagojuvach vlasnih პროგრამები

სისტემის პროგრამული დანამატების მფლობელი უფრო მარტივია, რადგან საუკეთესო და მოწინავე სამუშაოს ახორციელებს ოპერაციული სისტემა. Windows-ს აქვს სპეციალური პროგრამის ინტერფეისები, რომლებიც შექმნილია მომხმარებლის გამოცდილების გასაუმჯობესებლად - სახელწოდებით Windows Debugging API. ყველაზე სასარგებლო API-ებს იყენებს ყველა ის ინსტრუმენტი, რომელიც შედის Windows-ის პოპულარულ განვითარების შუაპროგრამებში.

იმისათვის, რომ გაუმჯობესება დაიწყოს, მენეჯერმა უნდა დაიწყოს პროცესი, რომელიც იხვეწება სპეციალურად – რათა სისტემამ იცოდეს, რომ ეს პროცესი მიმდინარეობს. ამის შემდეგ იწყება განვითარების ციკლი: პროგრამა სრულდება ფინალურ ეტაპამდე, რომელსაც ეწოდება განვითარების ეტაპი, ან გამართვის ღონისძიება. ამ შემთხვევაში განვითარების ციკლი იწყება ნელი სიჩქარით, რათა თავიდან აიცილოს კონტროლერის გაყინვა.

ალე ცე ლიშჩე კობ. რადგან ის, რაც საჭიროა დამმუშავებლის მუშაობაში, იწყება დატვირთვის დაწყებისთანავე. და, არსებითად, ვის ეკუთვნის ხელმძღვანელის სამუშაო? დაეხმარონ პროგრამისტს შეცდომის ლოკალიზაციაში სიზუსტით კონკრეტულ ფუნქციაზე, კონკრეტულ ოპერაციაზე, კონკრეტულ ცვლილებაზე. ოპერაციული სისტემა ასევე დაგეხმარებათ ამ რთულ ამოცანაში.

ისე, ეს წარსულს ჩაბარდა და ახლა საჭიროა აღიარება, როგორც ეს, რადგან ეს დაკავშირებულია პროგრამის ტექსტთან. არ არის გამორიცხული, რომ პროგრამა თავად შეიცავს სპეციალურ საგადასახადო ინფორმაციას - საგადასახადო სიმბოლოების ცხრილს. თქვენ შეგიძლიათ განათავსოთ საკომუნიკაციო ინფორმაცია მისამართებსა და ფუნქციების სახელებს, მონაცემთა ტიპებსა და კოდის მწკრივის ნომრებს შორის. უკეთესობისკენ საუკეთესო გზაა იყოთ Windows-ის მცოდნე პროგრამისტი. სიმბოლოთა ცხრილები იცვლება სხვადასხვა ფორმატებიდა თქვენ ყოველთვის შეგიძლიათ ისარგებლოთ პროგრამით, რომელიც შედგენილია შემდგენელის მიერ ერთი გამყიდველიდან, სხვა გამყიდველის რედაქტორის დახმარებით. თუმცა, ყველაზე მოწინავე ფორმატი მაინც შეიძლება დაზუსტდეს - PDB (პროგრამის მონაცემთა ბაზის) მეშვეობით და, რა თქმა უნდა, Microsoft Corporation-ისგან.

ასევე, რადგან სიმბოლოების ცხრილი PDB ფორმატშია, შეგიძლიათ დააჩქაროთ სიმბოლოების განვითარების პროცესი Microsoft-ის სპეციალური ხელსაწყოთი. სისტემის ბირთვში შესვლისას და სახელწოდებით Imagehlp.dll, ის უკვე დიდი ხანია ჩანს ადგილობრივ ბიბლიოთეკაში. სიმბოლოების პროცესორი საშუალებას გაძლევთ იპოვოთ მოცემულ მისამართზე უახლოესი პირადი ფუნქცია ან გლობალური ცვლილება, ასევე მწკრივის ნომერი და ფაილის სახელი გამომავალი ტექსტით, რომელიც შეიცავს ამ მწკრივს. შებრუნების ოპერაციები მხარდაჭერილია, მაგალითად, მათ უკან არსებული ფუნქციის მისამართის ძიება.

ეს, რა თქმა უნდა, არ არის მთელი სამუშაო, რასაც დამატებითი დეველოპერი აკეთებს. მაგალითად, კარგად ჩამოყალიბებული მდიდარი ნაკადის დანამატებით, არსებობს მრავალი დახვეწილი მომენტი, რომელიც დაკავშირებულია ნაკადების ურთიერთქმედებასთან. ისეთი ხშირად მარტივი გამოსვლების გაუმჯობესების ისტორიას, როგორიცაა სერვისები, აქვს თავისი ნიუანსი.

ოღონდ ნიუანსებში ნუ ჩავვარდებით - მაგალითად, მოგიყვებით სტატისტიკაზე და წავიკითხავ მათ შესახებ. ახლა მოდით შევხედოთ ბირთვის მენეჯერებს.


ბირთვის დეველოპერი

ძლიერი ბირთვები არის უაღრესად რთული პროგრამები, ძირითადი კომპონენტების მცირე გამოყენებით და, პატივს გცემთ, სრულიად გასაგებია რატომაც: მათ ჰყავთ ყოველდღიური ასისტენტი ოპერაციული სისტემის სახით. ამ შემთხვევაში სწორედ მათი კლიენტი და თვით სუნიც კი არის პასუხისმგებელი ღეჭვაზე.

ბირთვის მენეჯერების უმეტესობა მუშაობს ორ კომპიუტერზე, რომლებიც დაკავშირებულია ნულოვანი მოდემის კაბელით. null მოდემი არის ორი კომპიუტერის პირდაპირ კაბელთან დაკავშირების საშუალება COM ან LTP პორტების საშუალებით. საჭიროა კიდევ ერთი კომპიუტერი, რადგან ჰოსტის ნაწილი დაჯდება პირველზე (მასზე, სადაც დაინსტალირებულია სისტემა, რომელიც მუშავდება) წვდომატექნიკის უსაფრთხოებამდე, შემდეგ კი ყველა მონაცემი გადადის null მოდემის მეშვეობით სხვა კომპიუტერზე.

Intel x86 არქიტექტურის მიმდინარე პროცესორებს აქვთ სპეციალური დამუშავების რეგისტრები (როგორც ძველ 368-ში, ასევე ყველა სახის პროცესორის ახალ მოდელებში, მათ უწოდებენ DR0-DR7). ეს რეგისტრები საშუალებას აძლევს მომხმარებელს დააყენოს საკონტროლო წერტილები კითხვისა და ჩაწერის მეხსიერებისთვის, ასევე შეყვან-გამომავალი პორტებისთვის. მთლიანობაში ყველაფერი ასე გამოიყურება და არ მიმაჩნია მართებულად დაუყონებლივ დაწერო ანგარიში იმის შესახებ, თუ რას აჩვენებს კანი სახის რეგისტრებიდან, რომლებიც წყვეტენ პუნქციის წერტილებს და სხვა მსგავს ინფორმაციას გვაწვდიან. მოდით უფრო მოკლედ ვისაუბროთ Windows-ისთვის ბირთვის კონკრეტულ მენეჯერებზე.

კარგად, პირველ რიგში, ეს არის თავად ოპერაციული სისტემის ბირთვი. ეს ეხება ყველა NT ხაზის ოპერაციულ სისტემას, დაწყებული Windows 2000-დან. მთელი ფაილი არის NTOSKRNL.EXE და მისი გახსნა შეგიძლიათ ოპერაციული სისტემისთვის "/Debug" ოფციის დაყენებით BOOT.INI-ში. ამ მენეჯერს დასჭირდება ნულ მოდემის კავშირი სხვა კომპიუტერთან იგივე OS-ით.

Microsoft-ის ბირთვის კიდევ ერთი დეველოპერი არის WinDBG. მკაცრად რომ ვთქვათ, ეს არ არის ბირთვის რეგულირება, არამედ ჰიბრიდული რეგულირება, რომელიც შეიძლება გამოყენებულ იქნას ბირთვის პროგრამების შესაქმნელად. ისე, როგორც ბირთვში ჩაშენებული რედაქტორის შემცვლელი, არის გრაფიკული გარსი, ასე რომ უფრო ადვილია მისი გამოყენება. ეს მენეჯერი ასევე მხარს უჭერს სპეციალურ გაფართოებებს, რომლებიც შეიძლება გამოგადგებათ მაღალი დონის ტექნიკური სამუშაოების დროს. ბირთვის განვითარებისთვის Ale და vin დასჭირდება ორი კომპიუტერი.

თუმცა, არსებობს ბირთვის ტიუნერი, რომელსაც შეუძლია იმუშაოს ერთ კომპიუტერზე. Tse SoftIce. ამ შემთხვევაში, SoftIce-ს შეუძლია განავითაროს აპლიკაციის პროგრამები. პროგრამისტისათვის ამ კონტროლერის გამოყენება მართალია, მაგალითად, რეალურ დროში სისტემების შემთხვევაში, რომლებიც დაკავშირებულია სისტემის ტაიმერთან. თუ დაეყრდნობით პირველადი ხელმძღვანელის დახმარებას, შედეგი შეიძლება არასწორი აღმოჩნდეს, თუ პროგრამა სწორად მუშაობს და SoftIce-მა შეიძლება შეცვალოს როგორც პროგრამა, ასევე ტაიმერი. ეს სასარგებლოა მდიდარი ნაკადის პროგრამების გაშვებისას. გარდა ამისა, SoftIce-ს აქვს ძალიან, ძალიან კარგი საშუალება სისტემის ყველა ნაკადის შესახებ ინფორმაციის ჩვენების შესახებ, ნაკადების სინქრონიზაციის შესახებ, ასევე სახელურის შესახებ, რომელიც ყველაზე ეფექტურია.


ვისაც მოსწონს

ამავდროულად, Windows-ის დამატებების რედაქტორების შესახებ დისკუსია არ არის ისეთი აქტუალური, როგორც ეს იყო ათი წლის წინ. მთელი მსოფლიო ინტერნეტში ჩაერთო და SoftIce-ის მთავარი მოვაჭრეები გახდნენ კრეკერები, დაუღალავი მუშები მეკობრეობის სფეროში. ტიმი არ არის ნაკლები, არც ისე ცუდია. SoftIce-თან თამაში, რა თქმა უნდა, ავითარებს ადამიანს ცოდნას კომპიუტერის შესახებ, განსაკუთრებით, თუ ისინი მუშაობენ მხოლოდ კონტროლერებთან და არ მუშაობენ რეალურ ადამიანებთან, რასაც შეიძლება ჰქონდეს გვერდითი მოვლენები.

აპლიკაციები პროგრამული უზრუნველყოფის ერთ-ერთი ყველაზე მოწინავე სახეობაა, მაგრამ განვითარების თვალსაზრისით, კორისტუვაჩის იგივე დონის აპლიკაციური პროგრამები რთული გამოსაყენებელია. კარგი, რადგან თქვენ გაქვთ ბევრი დრო ენერგიის მენეჯერის შესაქმნელად, თქვენი ცოდნა ოპერაციული სისტემებისა და პროგრამირების შესახებ მნიშვნელოვნად გაიზრდება და, შესაბამისად, გაიზრდება თქვენი კარგი ანაზღაურებადი სამუშაოს მიღების შანსი.

ასე რომ, თუ გსურთ შექმნათ ძლიერი კურთხევა, მაშინ დაუყოვნებლივ გაეცანით მასალებს ამ თემაზე. ჩემი აზრით, დამწყებთათვის საუკეთესო წიგნი იქნება ჯონ რობინსის წიგნი „Windows Add-ons-ის გაუმჯობესება“. ის უკვე ძველია, დათარიღებულია 2001 წლით, მაგრამ მასში შემავალი ინფორმაცია აქტუალურია და მაშინვე, თითქოს ბუნდოვანია, ფუნდამენტური ხასიათისაა. ამ წიგნს აქვს პროგრამა Windows-ისთვის რედაქტორების დასაწერად და ის ასევე გამოგადგებათ, თუ პროგრამირებთ C++-ზე და გსურთ უკეთ გაუმკლავდეთ წერის პრობლემებს. ვლასნა, სწორედ ამ წიგნიდან მოვიპოვე ინფორმაცია მმართველების შესახებ, რაც სტატისტიკაშია გამოქვეყნებული. თუ ამ წიგნს ვერ იპოვით (ბოლოს და ბოლოს, ის ძალიან ძველია), აი, მისამართი, რომელიც შეიძლება თქვენთვის სასარგებლო იყოს. პირველი არის ღერძი: www.xakep.ru/post/19158/default.asp. ჟურნალ "ჰაკერის" ეს სტატია უფრო მეტს საუბრობს ბირთვის მენეჯერებზე, უმუშევრად და ამასთანავე, შეიცავს უმარტივესი რედაქტორის კოდს. ხოლო მისამართზე kalashnikoff.ru/Assembler/issues/016.htm შეგიძლიათ ისწავლოთ DOS რედაქტორის დაწერა. თუმცა, უმჯობესია წაიკითხოთ MSDN და სასარგებლოა იცოდეთ რომელ რედაქტორს აქვს საიდუმლო გამომავალი ტექსტები, რათა დაუკავშირდეთ მას. კარგი, რა თქმა უნდა, რადგან რედაქტორის წერა დაიწყეთ, წარმატებებს გისურვებთ თქვენს რთულ ამოცანაში!

ბირთვის რეჟიმის კონტროლერები განისაზღვრება CPU და ოპერაციული სისტემის მიერ. ეს ნიშნავს, რომ თუ თქვენ შეანელებთ ბირთვის რეჟიმს, ოპერაციული სისტემაც შენელდება. არ აქვს მნიშვნელობა, რომ ოპერაციული სისტემა გადადის მკვეთრ გაჩერებაზე, თუ მუშაობთ ტაიმერთან და სინქრონიზაციის პრობლემებთან. მიუხედავად ამისა, ერთი მენეჯერის შეცდომის გამო, რომელიც ქვემოთ იქნება განხილული (ამ განყოფილების „SoftlCE Manager“ განყოფილებაში), შეუძლებელია კოდის შეცვლა ბირთვის რეჟიმის უკან არსებულ ძირითად რეჟიმში.

ბირთვის რეჟიმში ამდენი დეველოპერი არ არის. მათი ღერძი: Windows 80386 Debugger (WDEB386), Kernel Debugger (1386KD), WinDBG და SoftlCE. თითოეული ეს მარეგულირებელი მოკლედ აღწერს შემდეგ განყოფილებებს.

ოპერატორი WDEB386

WDEB386 არის პროგრამა Windows 98 ბირთვის რეჟიმისთვის, რომელიც ხელმისაწვდომია პლატფორმის SDK-ში. ეს რედაქტორი არის ყავისფერი მხოლოდ მათთვის, ვინც წერს ვირტუალურ დრაივერებს. Windows მოწყობილობები 98 (VxD). Windows ოპერაციული სისტემებისთვის ბირთვის რეჟიმის მენეჯერების უმეტესობის მსგავსად, WDEB386 დრაივერი მხარს უჭერს ორ მანქანას და ნულ მოდემის კაბელს. საჭიროა ორი მანქანა, რათა კონტროლერის ნაწილი, რომელიც დამონტაჟებულია მთელ მანქანაზე, მისცეს მის აპარატურაზე წვდომის საშუალებას, რათა მან შეძლოს მისი ბრძანებების გაცემა და ბრძანებების მიღება სხვა აპარატიდან.

WDEB386 კონტროლერს დიდი ხნის ისტორია აქვს. იგი დაიწყო, როგორც შიდა ფონის ინსტრუმენტი Microsoft-ისთვის Windows 3.0-ში. მნიშვნელოვანი იყო გამარჯვება და ეს არ აძლევდა საკმარის სტიმულს კეთილდღეობისთვის გასასვლელი კოდიდა სხვა მიღებული ავტორიტეტები, რომლებთანაც დაგვირეკეს Visual C++-ისა და Visual Basic-ის დეველოპერებმა.

"Dot" (DOT) ბრძანებები WDEB386-ის ყველაზე მნიშვნელოვანი ფუნქციაა. INT 41-ის შეცვლით შეგიძლიათ გააფართოვოთ WDEB386 ბრძანებების დასამატებლად. ეს გაფართოება საშუალებას აძლევს VxD დრაივერების ავტორებს შექმნან მორგებული ბრძანებები, რაც მათ უფასო წვდომას აძლევს მათში არსებულ ინფორმაციას. ვირტუალური მოწყობილობები. ნალაგოჯუვალნა ვინდოუსის ვერსია 98 მხარს უჭერს DOT ბრძანებების არარსებობას, რაც საშუალებას გაძლევთ შეინარჩუნოთ ოპერაციული სისტემის ზუსტი მდგომარეობა განვითარების პროცესის ნებისმიერ ეტაპზე.

ოპერატორი I386KD

Windows 2000 ვითარდება Windows 98-დან იმით, რომ ბირთვის რეჟიმის მენეჯერის რეალური ნაწილი არის NTOSKRNL ნაწილი. EXE - ოპერაციული სისტემის ძირითადი ბირთვის ფაილი ვინდოუსის სისტემები 2000. ეს ინსტრუმენტი ხელმისაწვდომია როგორც სტანდარტული (გამოშვების) ასევე განახლებული ოპერაციული სისტემის კონფიგურაციით. ბირთვის რეჟიმში მუშაობის გასაუმჯობესებლად, დააყენეთ ჩატვირთვის ვარიანტი /DEBUG BOOT-ზე. INI და გარდა ამისა, ოფცია /DEBUGPORT, თუ საჭიროა მენეჯერის საკომუნიკაციო პორტის მნიშვნელობის დაყენება ბირთვის განახლებაზე (COM1). I386KD არის დაყენებული მის ელექტრო მანქანაზე და ინფორმირებულია ვინდოუსის მანქანა 2000 ნულ მოდემის კაბელის საშუალებით.

Nalagojuvach ბირთვის რეჟიმი NTOSKRNL. EXE აწარმოებს მხოლოდ მათ, რაც საკმარისია CPU-ს გასაშვებად, რათა ოპერაციული სისტემა გამარტივდეს. დამუშავების სამუშაოების უმეტესი ნაწილი - სიმბოლოების დამუშავება, შეფერხების წერტილის გაფართოება და დაშლა - დამონტაჟებულია 1386KD მხარეს. მარტო Windows საათი NT 4 Device Driver Kit (DDK) ნულოვანი მოდემის კაბელის პროტოკოლის დოკუმენტირება. მაიკროსოფტი აღარაფერს ადასტურებს.

1386KD-ის სირთულე აშკარაა, როდესაც გაითვალისწინებთ ყველა იმ ბრძანებას, რომელიც გჭირდებათ Windows 2000-ის შიდა სისტემაში წვდომისთვის. Windows 2000-ში მოწყობილობის დრაივერების მექანიზმის ცოდნა დაეხმარება პროგრამისტს დაიცვას სიმდიდრის x გუნდები. არ ინერვიულოთ ყველაფერზე, i386KD საერთოდ არ ჩერდება, რადგან ეს არის კონსოლის პროგრამა, რადგან უკვე ძალიან რთულია ინსტრუმენტების გამოყენება გამომავალი დონის გასაუმჯობესებლად.

  • ავტორები:

    ბარინოვი ს.ს., შევჩენკო ო.გ.

  • რიკი:
  • ძერელო:

    ინფორმატიკა და კომპიუტერული ტექნოლოგიები/ სტუდენტების, ასპირანტების და ახალგაზრდა მეცნიერთა VI საერთაშორისო სამეცნიერო და ტექნიკური კონფერენციის მასალები – 2010 წლის 23-25 ​​ნოემბერი, დონეცკი, DonNTU. – 2010. – 448გვ.

Აბსტრაქტული

ჩატარდა მთელი ოპერაციული სისტემის კომპიუტერული რეჟიმისა და ბირთვის რეჟიმის გაუმჯობესების საფუძვლიანი ანალიზი Microsoft Windows, დანარჩენების გაუმჯობესების ორგანიზების მნიშვნელობა და პრობლემა მიღებული შედეგების საფუძველზე ჩამოყალიბებულია ძირითადი შესაძლებლობები საგანგებო და ინტერაქტიული გაუმჯობესების შემთხვევაში ბირთვის რეჟიმის წახალისებისთვის. ჩატარებული ანალიზი არსებითი გადაწყვეტილებებიიმისათვის, რომ შეესაბამებოდეს სარგებელს. განსაკუთრებული პატივისცემა ემსახურება Microsoft Windows Debugger-ს.

Მთავარი ნაწილი

Nalagodzhennya არის შეწყალების მიზეზების დადგენის პროცესი უსაფრთხოების პროგრამული უზრუნველყოფა. ზოგიერთ პროექტში განვითარებას მთლიანი განვითარების დროის 50%-მდე სჭირდება. გაუმჯობესება შეიძლება გამარტივდეს სპეციალიზებული ხელსაწყოების გამოყენებით, რომლებიც მუდმივად განახლდება. მთავარი ასეთი ინსტრუმენტი არის მარეგულირებელი, რომელიც საშუალებას გაძლევთ აკონტროლოთ პროგრამული უზრუნველყოფის შესრულება, აკონტროლოთ მისი გადაჭარბება და ჩაერთოთ ახალში. მნიშვნელოვანია, რომ ბირთვი შემუშავდეს მძღოლის მოვაჭრეების მიერ.

აპლიკაციის პროგრამული უზრუნველყოფის განვითარების ინსტრუმენტები პროგრამისტს აძლევს შესაძლებლობების ფართო სპექტრს. არის თუ არა განვითარების ბირთვი ინტეგრირებული, მოიცავს განვითარების შესაძლებლობას მესამე მხარის კომუნალური საშუალებების საჭიროების გარეშე. თუ ვსაუბრობთ სისტემურ პროგრამულ უზრუნველყოფაზე და zocrema დრაივერების შემუშავებაზე, მაშინ მისი სპეციფიკიდან გამომდინარე, განვითარების პროცესი უკიდურესად რთულია და მცირე ავტომატიზაციაა. განვითარების ყველა ფაზა, მათ შორის კეთილდღეობა, დახურულია. მათი კანისთვის საჭიროა სპეციალური გონება: პროგრამული კოდის წერა სამუდამოდ დასრულდება კომპიუტერული სისტემა, გაუმჯობესება - კვების სისტემაზე, ტესტირება - პირობებში და ა.შ. თავად ბირთვის რეჟიმი უფრო რთულია ათვისებულში და, როგორც ჩანს, ნაკლებად მეგობრული.

თქვენ შეგიძლიათ ისაუბროთ ხარჯების ქორწინებაზე და ბირთვის განვითარებაზე. თუ ასეთი რამ გინდა, ხშირად ვერ ილაპარაკებ ალტერნატივებზე. მაგალითად, Microsoft Windows Debugger-ს აქვს მაღალი შესვლის ბარიერი. უამრავი პროგრამისტია, ვინც მის გაცნობისას ისაუბრებს პირველ უარყოფით მტკიცებულებებზე და მისი შესაძლებლობების უმეტესობა დაკარგულია.

ვირტუალური მისამართების სივრცის სტრუქტურიდან გამომდინარე, თუ დამატებით ნებადართულია კომპილაცია, რის შემდეგაც პროგრამა ინახავს მონაცემთა ჩანაწერს მეხსიერების საკმარის სივრცეში, მაშინ პროგრამა დაარღვევს ხელმისაწვდომ მეხსიერებას და არ ჩაერევა სხვა ოპერაციების მუშაობაში. პროგრამების სისტემა. თოდი იაკ პროგრამის კოდიბირთვის რეჟიმმა შეიძლება დააზიანოს ოპერაციული სისტემის მნიშვნელოვანი მონაცემთა სტრუქტურები, რაც აუცილებლად გამოიწვევს ავარიას. დრაივერის არაეფექტურმა ჩაწერამ შეიძლება გამოიწვიოს მთელი ოპერაციული სისტემის სერიოზული დეგრადაცია.

    ყოველდღიური სასმელი უზრუნველყოფს თქვენს ფეხებს ძირითადი ფუნქციები:
  • გამომავალი კოდის იგივე დონის გაუმჯობესება;
  • keruvannya vikonannyam;
  • მზერა და მეხსიერების შეცვლა;
  • გადახედვა და შეცვლა პროცესორის რეგისტრების ნაცვლად;
  • მონეტების დასტას მიმოხილვა.

დაშლილი კოდით საქმეების გასაადვილებლად გამოიყენეთ ე.წ. კვების სიმბოლოები. კომპოზიტორის მუშაობის დროს, გარდა შედგენილი ფაილის გამოსახულების გარდა, ასევე შესაძლებელია მონაცემთა ფაილის შექმნა, რომელიც შეიცავს ინფორმაციას, რომელიც არ არის საჭირო კომპილირებული პროგრამებისთვის, მაგრამ ძალიან სასარგებლოა მათთვის: ფუნქციების სახელები, მათგან. , სტრუქტურების აღწერა. ლამაზი სიმბოლოები ყველასთვის ხელმისაწვდომია დაკავშირებული ფაილები Windows ოპერაციული სისტემა.

მწარმოებლის გადასაწყვეტია პროგრამის კოდის შეწყვეტა და განახლება პროგრამის კოდში მითითებული ბრძანების მისაღწევად. თუ პროგრამის კოდი შედგენილია ნაბიჯ-ნაბიჯ რეჟიმში - შეფერხება ხდება პროგრამირების კანის ნიშნების გამო ან ქვეპროგრამებიდან გასვლისას. ძლიერი ვიკონური შეფერხების შემთხვევაში, ვიკონიკა ჩნდება კოდის დაგეგმილი ნაკვეთების უკანა მხარეს - იმ ადგილებში, სადაც დამონტაჟებულია ხტომის წერტილები.

როდესაც კოდი წყდება ბირთვის რეჟიმში, პრობლემები წარმოიქმნება. ადმინისტრატორი ურთიერთქმედებს პროგრამისტთან koristuvach-ის vikoryst ინტერფეისის გამოყენებით. ტობტო. რედაქტორის ხილული ნაწილი მაინც კონფიგურირებულია ბირთვის რეჟიმში და ამ მიზნით მას ბუნებრივად უჭერს მხარს აპლიკაციის პროგრამირების ინტერფეისი (Windows API), რომელიც თავის მხრივ დაფუძნებულია ბირთვის რეჟიმის მოდულზე. ამრიგად, ბირთვის კოდის რეჟიმის ჩახშობამ შეიძლება გამოიწვიოს ურთიერთდაბლოკვა: სისტემა შეწყვეტს პასუხს მომხმარებლის მოთხოვნებზე.

ბირთვის მეხსიერებაზე წვდომისთვის, მეხსიერების მენეჯერმა ასევე უნდა შევიდეს ბირთვის რეჟიმში. ეს იწვევს ორ პრობლემას, რაც მეხსიერების ორგანიზების აშკარა შედეგებია პროცესორის დაცულ რეჟიმში.

პირველი პრობლემა არის ვირტუალური მეხსიერების მისამართების თარგმნა. დრაივერები მუდმივად ურთიერთობენ პროგრამებთან კომპიუტერის რეჟიმში, დამთავრებული მეხსიერებით. Windows ოპერაციული სისტემა თარგმნის ვირტუალურ მისამართებს ფიზიკურიდან, რაც დამოკიდებულია ნაკადის კონტექსტზე. თემის კონტექსტი არის სტრუქტურა, რომელიც წარმოადგენს ძაფის მდგომარეობას და მოიცავს, მოკლედ, რეგისტრებისა და სხვა ინფორმაციის ერთობლიობას. თუ ინფორმაცია გადაეცემა სხვა თემას, ხდება კონტექსტის შეცვლა, რომელიც ინახავს ინფორმაციას ერთი თემის შესახებ და განაახლებს ინფორმაციას მეორეს შესახებ. როდესაც თემის კონტექსტი ხელახლა აისახება სხვა პროცესის ძაფზე, გვერდების დირექტორიაში, vikoristov ასევე ხელახლა აისახება ვირტუალური მისამართის ფიზიკური მისამართიდან გადასათარგმნად.

თავისებურება მდგომარეობს იმაში, რომ სისტემის დაწკაპუნების გაგზავნისას, Windows ოპერაციული სისტემა არ აჯამებს კონტექსტს. ამ შემთხვევაში, ბირთვის რეჟიმის კოდს შეუძლია გამოიყენოს ვირტუალური მისამართები და ძირითადი რეჟიმი.

წინააღმდეგ შემთხვევაში, გაგზავნისას, შეწყვიტეთ ან მოკალით სისტემის ძაფები. Pererirvannya შეიძლება იყოს ასე, ამიტომ შეუძლებელია გადმოგცეთ რა კონტექსტი არსებობს ვიკორების ნაკადისთვის. სისტემის ძაფები არ მიეკუთვნება არცერთ პროცესს და ვერ თარგმნის ვირტუალურ მისამართებს სერვერის რეჟიმში. აშკარაა, რომ ამ სიტუაციებში კორისტუვაჩის რეჟიმის გახსენებაზე დაბრუნება შეუძლებელია.

კიდევ ერთი პრობლემა არის მეხსიერების შენახვა, რომელიც გადატანილია. მეხსიერებაში არსებული ინფორმაციის უმეტესი ნაწილი გადატანილია და ნებისმიერ დროს შესაძლებელია მისი გადატანა ფიზიკური მეხსიერება on მყარი დისკიფაილის გვერდით. როდესაც თქვენ შედიხართ გვერდზე, რომელიც ფიზიკურ მეხსიერებაშია, ნორმალურ სიტუაციაში პროცესორი წარმოქმნის Page Fault-ს, რომელსაც ამუშავებს მეხსიერების მენეჯერი და შედეგად გვერდი წაიკითხება გვერდის ფაილიდან და ინახება ფიზიკური მეხსიერება მნიშვნელოვანია.

აღწერილი ქცევა იშლება, როდესაც შეცდომების დამმუშავებლის პროგრამული კოდი დაზიანებულია მაღალი რევანდიშეწყვეტის მოთხოვნის დონეები (IRQL). თავიდან აცილებული IRQL, მეხსიერების მენეჯერის IRQL შეიძლება გადავიდეს დანარჩენზე, რადგან ოპერაციული სისტემა იბლოკება გვერდის შეფერხებისას. ეს გამოიწვევს ოპერაციული სისტემის კოლაფსს.

ოპერაციები ჩვეულებრივ იყოფა ინტერაქტიულ და სასწრაფოდ. ინტერაქტიული ლოკალური გაუმჯობესებით, განახლებადი დამონტაჟებულია იმავე სისტემაში, როგორც განახლების ობიექტი. ინტერაქტიული დისტანციური განვითარების საათის ფარგლებში, აღჭურვილობა დამონტაჟდება სხვადასხვა სისტემაში. კარგად განვითარებული ბირთვის კოდით, სისტემა უნდა კონტროლდებოდეს, მისი განხორციელების პირველი ეტაპებიდან დაწყებული, თუ სისტემა ჯერ კიდევ არ ფუნქციონირებს, სისტემების დასაკავშირებლად გამოიყენება შემდეგი მარტივი ინტერფეისები, როგორიცაა COM, FireWire, USB. . იმავდროულად, აბსტრაქციის სხვადასხვა დონეზე პროგრამული უზრუნველყოფის ვირტუალიზაციის განვითარების ტენდენციების გამო, ის სულ უფრო ხშირად ხდება. ვირტუალური მანქანები. სტუმარი OS მოქმედებს როგორც მასპინძელი OS, მასპინძელი OS მოიცავს ჰოსტის ინტერფეისს.

ამრიგად, გადაუდებელი მუშაობისთვის არ არის საჭირო სატესტო კომპიუტერზე ინსტალაციის მეთოდის დაყენება. Windows ოპერაციული სისტემის განაწილება მოიცავს საგანგებო სიტუაციებზე რეაგირების მექანიზმებს. ოპერაციული სისტემის გადატვირთვამდე შეგიძლიათ შეინახოთ ინფორმაცია სისტემის შესახებ, რათა დეველოპერმა გააანალიზოს და დაადგინოს მიზეზი. ფაილში შენახულ ამ ინფორმაციას მეხსიერების ნაგავსაყრელი ეწოდება.

ბირთვის რეჟიმის ოპტიმიზაციის ძირითადი ფუნქციები მოცემულია თავად Windows ოპერაციული სისტემის მიერ, როგორც "Debugging Tools for Windows" პაკეტის ნაწილი, რომელიც ფართოდ არის ხელმისაწვდომი. მათ შორისაა გრაფიკული და კონსოლის რედაქტორები WinDbg და KD (ასევე ცნობილია როგორც Windows Debugger). ამ ადმინისტრატორების მუშაობა მოძრაობს ოპერაციული სისტემის მიერ მოწოდებული და მის ბირთვში ჩაშენებული მექანიზმების გარშემო.

Windows Debugger-ის მთავარი რეჟიმი არის ბრძანების თარჯიმნის რეჟიმი. პროდუქტებს აქვთ მოდულარული სტრუქტურა, რამდენიმე პაკეტი, რომელიც მიეწოდება. Windows ბრძანებები Debugger მხარს უჭერს მესამე მხარის მოდულები, ე.წ. გაფართოებული. სინამდვილეში, განხორციელებული ბრძანებების უმეტესობა შექმნილია გაფართოების სახით.

Windows Debugger ფოკუსირებულია დისტანციურ ინტერაქტიულ და გადაუდებელ მხარდაჭერაზე, რომელიც არჩევისას ავლენს მის ყველა შესაძლებლობებს. ამავდროულად, სრულმასშტაბიანი ადგილობრივი ინტერაქტიული განვითარება არ არის მხარდაჭერილი: რედაქტორი საშუალებას გაძლევთ გადახედოთ მხოლოდ ბირთვის სტრუქტურის ნაწილებს.

არსებობს Windows Debugger-ის გაფართოების მოდული სახელწოდებით LiveKD, შექმნილი მარკ რუსინოვიჩის მიერ, რომელიც ახორციელებს ადგილობრივ ინტერაქტიულ გაფართოებას მომღერლისთვის. LiveKD ქმნის სამუშაო სისტემის მეხსიერების ნაგავსაყრელს მოძრაობისას და იყენებს მას გაუმჯობესებისთვის.

"გამართვის ინსტრუმენტები Windows-ისთვის" ინსტრუმენტების პაკეტი რეგულარულად განახლდება და მხარს უჭერს ყველა მიმდინარე Windows ოპერაციულ სისტემას.

SoftICE ბირთვის ავტორი, რომელიც გამოუშვა Compuware-ის მიერ DriverStudio პროგრამულ პაკეტში, რომელიც ტრადიციულად ემსახურება Windows-ის გამართვის ინსტრუმენტების ალტერნატივას. SoftICE-ის მთავარი მიზანი იყო ადგილობრივი ინტერაქტიული ფუნქციების დანერგვა მხარდაჭერილ აპარატურაზე. მფლობელს აქვს პრაქტიკულად სრული კონტროლი ოპერაციული სისტემის მუშაობაზე.

2006 წლის მე-3 კვარტლიდან დაიწყო "DriverStudio" ოჯახის პროდუქციის გაყიდვები "ტექნიკური და ბიზნეს პრობლემების არარსებობის, ასევე ბაზარზე შეღწევის ნაკლებობის გამო". დარჩენილი ვერსიაოპერაციული სისტემა, რომლის მხარდაჭერაც განხორციელდა, ანუ Windows XP Service Pack 2. როგორც წესი, სერვისის განახლების პაკეტები არ ცვლის ოპერაციული სისტემის აპლიკაციის ინტერფეისს, გარდა სისტემური დაწკაპუნებისა და სხვა დაუსაბუთებელი ინფორმაციისა, რომლის შეცვლაც შეგიძლიათ. SoftICE მენეჯერი დამალულია მყარი კოდირებულ მისამართებზე შიდა სტრუქტურებიხარკი შედეგად, Service Pack 3-ის გამოშვებით ეს ქაოსი განადგურდა. ცხადია, Windows ოპერაციული სისტემის შემდგომი ვერსიები ასევე არ არის მხარდაჭერილი.

Syser Kernel Debugger შეიქმნა მცირე ჩინური კომპანიის Sysersoft-ის მიერ, როგორც SoftICE ბრაუზერის შემცვლელი. პერშა ბოლო ვერსია Bula გამოვიდა 2007 წელს. SoftICE-ის მსგავსად, Syser Kernel Debugger შექმნილია იმისათვის, რომ ჩართოთ თქვენი ოპერაციული სისტემის ინტერაქტიული განვითარება. Windows-ის მიმდინარე ვერსიების მხოლოდ 32-ბიტიანი გამოცემები მხარდაჭერილია.

on ნარაზი Windows Debugger არის მთავარი ინსტრუმენტი ბირთვის მოდულების აღმოსაჩენად. ეს არის ასევე გუნდი, რომელიც ეძღვნება Windows ოპერაციული სისტემის ბირთვის განვითარებას.