Windows çekirdeğinin iyileştirilmesi. Linice ile zorlu kurulum: konsol çekirdeğinde vchimosya pratsyuvati. HEVD modülünün kısa açıklaması

Çekirdek yöneticisi nasıl başlatılır?

Usta'nın açıklaması:

Yazılım geliştirme sürecinde en önemli faktörlerden biri maliyettir. Uygulama programlarıyla ilgili olarak, istemci modunda çalışan ve genellikle IDE'ye yüklenen şekillerde çalışırlar. Örneğin sürücüleri iyileştirebilmek için çekirdek yöneticisini çalıştırmanız gerekir.

Cmd komut işlemcisini başlatmanız gerekir. Başlat panelinde Başlat menüsünü açın. Pencerede “Viconaty...” öğesine tıklayın. “Programları başlat” penceresi görünecektir. Metin alanına cmd girin ve “Tamam” düğmesine tıklayın.

Şimdi oluştur yedek kopya boot.ini dosyası. Güncel trendleri hemen öğrenin Windows kopyaları, hızlı bir şekilde şu komutu kullanarak: echo %SystemRoot%

Ardından işletim sisteminin yüklü olduğu diske gidin, aygıt harflerini girin ve bunların ardından çift onay kutusu koyun. cd komutunu kullanmak için kök dizine gidin. Şimdi attrib komutunu kullanarak boot.ini dosyasından “erişim”, “salt okunur” ve “sistem” niteliklerini kaldırın. Yedek kopya oluşturmak ve özellikleri siteye yüklemek için copy komutunu kullanın.

Ayrıntılı seçenekler listesini görüntülemek için bootcfg /query komutunu çalıştırın. Çekirdek modunda ayarlama olanağı ile yeni ayarların oluşturulacağı öğeyi belirlemek için listeye bakın. Kaydın sahibinin kimliği, hafıza izi.

Yedek kopya oluşturmak için bootcfg/copy komutunu kullanın. Kopyaladığınız kaydın kimliğini belirtmek için /id parametresini kullanın. Vikorist /d, görüntülenecek girişi belirtin. Şimdi seçenekler listesine geri dönmeniz, bootcfg/query komutunu kullanmanız ve eklediğiniz girişin kimliğini görmeniz gerekiyor.

Artık çekirdek yöneticisini önceki sürümde başlatmak için seçenekleri etkinleştirmeniz gerekiyor harika gönderi. Aynı makinede hata ayıklama yapacaksanız, /debug seçeneğini eklemeniz yeterlidir.

Nereye gitmek istersin? refah çok uzak Hedef bilgisayarı bir com port aracılığıyla ana makineye bağlarken, port numarasını ve değişim hızını belirlemek için /port ve /baud seçeneklerini kullanın.

FireWire kablosu (IEEE 1394 arayüzü) aracılığıyla bağlantı konusunda rahatsanız, uzak modu açmak için /dbg1394 seçeneğini ve kanal numarasını belirtmek için /ch seçeneğini kullanın.

Ayarlarınızı değiştirmek için bootcfg komutunu /query parametresiyle çalıştırın. Çıkış komutunu verdikten sonra komut işlemcisi penceresini kapatın.

Tercihlerinizi değiştirmeniz gerektiğinde işletim sistemi. Windows panelini “Başlat” menüsünden açın ve ardından “Sistem” öğesini açın. “Sistemin Yetkisi” penceresinde “Addatkovo” sekmesini seçin. Bu sekmeden “İlham ve Güncelleme” bölümünü seçin ve “Seçenekler” düğmesine tıklayın. “Vantures ve Güncellemeler” penceresinde “İşletim sistemlerinin listesini görüntüle” seçeneğini etkinleştirmeniz gerekir. Rahatsız edici iletişim kutularını “Tamam” düğmesiyle kapatın.

Bilgisayarınızı geri yükleyin. Arkadaşınızın ilgisini çekmeyi seçin. Sisteme giriş yapın ve aynı makine üzerinde çalışmaya başlayın veya daha iyi olun. WinDbg ve KD gibi yollarla hızlanın.

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.

Not: YURPMSHHKFE LPNBODH çöplük (8) DMS KHLBBOYS SDTH NEUFB, TUD OHTsOP UPITBOSFSH BCHBTYKOSHCHE DBNRSCH. RPUME OBUFTPKLY RP LPNBODE takas (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 RETCPK kayıtlı puan (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 dökümü CH UFTPLE yapılandırması LPOZHYZHTBGYPOOPZP ZHBKMB ChBEZP SD fBLPK URPUPV YURPMSH'PCHBFSH OE T ELPNEODHEFUS Y PO DPMTSEO YURPMSHЪPCH BFSHUS, FPMSHLP EUMY CHSCH IPFYFE RPMKHYUBFSH BCHBTYKOSHCH PVTBSCH RBNSFY SDTB, LPFPTPPE BCHBTYKOP ЪBCHETYBEF UCHPA TBVPFH RTY ЪBZT HYLE.

Not: dBMEE FETNYO gdb P'EBYUF PFMBDYUIL gdb , ЪBRHEOOOSCHK CH ``TETSINE PFMBDLY SDTB "". ALINAN CH LFPF TETSYN DPUFYZBEFUS ЪBRHULPN gdb U RBTBNEFTPN -k. h TETSYNE PFMBDLY SDTB gdb YЪNEOSEF UCHPЈ RTYZMBYEOYE PRO (kgdb) .

Uç: Eumi Chechchi yurpmshhef FreeBSD Cetui 3 ymi tbooaa, Cheshchiki chshrpmeifsh huyuyeoee PFMBDPZP SDTB LPNBODPZP PIPP, b.VPBPVPBPBPVPBPBPPBPPDPPDPDPPDPPDPPBPPPPPPPPPPunPPBPBPPPunPPPPunPPPPunies

# cp kernel kernel.debug # strip -g kernel

LFPF VIBZ OE FBL HC Y OEPVIPDYN, OP TELPNEODHEN. (PhP FreeBSD 4th VPMEE RPJDOYI TEMYBI LFPF YBZ CHSHRPMOSEFUS BCHFPNBFYUEULY CH LPOGE RTPGEUUB RPUFTPEOOYS SDTB make .) lPZDB SDTP HUEYEOP, BCHFPNBFYUEULY YMY RTY RPNPEY LPNBOD CHCHYE, CHCH NPTSEFE KHUFBOPCHYFSH EZP PVSHYUOSCH N PVTBBPN, OVTTBCH kurulumu yapar.

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

eUMY CHCH FEUFYTHEFE OPCHPE SDTP, ULBTSEN, OBVYTBS YNS OPChPZP SDTB CH RTYZMBYYEOYY ЪBZTHYUYLB, OP CHBN OHTSOP ЪBZТХЦБФШ И TBVPФБФШ У ДТХЗИН SDTPN, YuFPV Sh UOPCHB CHETOHFSHUS L OPTNBMSHOPNH ZHKHOLGYPOYTPCHBOYA, ЪBZTHTSBKFE EZP FPMSHLP CH PDOPRPMSHЪPCHBFEMSHULPN TETSYNE RTY RPNPEY ZHMBZB -s , KHLBSCCHBENPZP RTY ЪBZTH LE , B ЪBFEN CHSHCHRPMOYFE FBLYЄ VIBZY:

# fsck -p # mount -a -t ufs # böylece /var/crash için dosya sisteminiz yazılabilir # savecore -N /kernel.panicked /var/crash # çıkış # ...çoklu kullanıcıya

LFB RPUMEDPCHBFEMSHOPUFSH KHLBSCCHBEF RTPZTBNNE kayıtlı puan (8) YURPMSHЪPCHBOYE DTHZPZP SDTB DMS YICHMEYUEOYS UYNCHPMYUEULYI YNEO HAKKINDA. YOBYU POB VKhDEF YURPMSHЪPCHBFSH SDTP, TBVPFBAEECH DBOOSCHK NPNEOF Y, ULPTEY CHUEZP, OYUEZP OE UDEMBEF, RPFPNH YuFP BCBTYPVHPVHPVHPVHPVHPVHPVHPVHPVHP ERW.

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

Sembol dosyası kernel.debug exec dosyası /var/crash/kernel.0 çekirdek dosyası /var/crash/vmcore.0 РПМШЪХС ЙУІПДОФ ФЕДБЕФФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕДФЕД FRANSIZLIK ДТХЗПК РТПЗТБННПК.

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

1: Komut dosyası 30 Aralık Cuma'da başladı 23:15:22 1994 2: # cd /sys/compile/URIAH 3: # gdb -k kernel /var/crash/vmcore.1 4: /usr/src/ dosyasından sembol verileri okunuyor sys/compile/URIAH/kernel ...tamamlandı. 5:IdlePTD 1f3000 6:panik: çünkü öyle demiştin! 7:1e3f70'deki mevcut pcb 8:../../i386/i386/machdep.c... için sembollerin okunması tamamlandı. 9: (kgdb) burada 10:#0 önyükleme (arghowto=256) (../../i386/i386/machdep.c satır 767) 11:#1 0xf0115159 panik içinde 12:#2 ) (../. ./i386/i386/machdep.c satır 698) 13:#3 0xf010185e db_fncall () içinde 14:#4 0xf0101586 db_command db_command_loop () içinde 16:#6 0xf01040a0 db_trap () içinde 17:#7 0xf019 kdb_trap'te 2976 (12 , 0, -272630436, -266743723) 18:#8 0xf0 ...) 20:#10 0xf019cb2f trap'te (...) 21:#11 0xf01932a1 istisnada:calltrap () 22:#12 0xf0191503 cnopen'de (. . .) 23:#13 0xf0132c4 #14 0xf012d014 vn_open'da () 25:#15 0xf012a183 açıkta () 26:#16 0xf019d4eb sistem çağrısında (...) 27: (kgdb) yukarı 10 28:8 için sembolleri okuma . /. /trap.c...tamamlandı. 29: #10 0xf019cb2f trap'te (frame = (tf_es = -260440048, tf_ds = 16, tf_\30: edi = 3072, tf_esi = -266445372, tf_eb3 = 3 = 6 266427884, tf_edx = 12, tf_ec) x = -266427884, tf \ 32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ 33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\ 34:ss = -266427884)) (. ./../i386/i386/trap.c satır 283) 35:283 (void) trap_pfault(&frame, FALSE); 36: (kgdb) çerçeve çerçevesi->tf_ebp çerçeve->tf_eip 37: ../../i386/isa/pcvt/pcvt_drv.c...done için sembollerin okunması. 38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\ 39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c satırı 403) 40:403 dönüş ((*linesw.l_open)(dev, tp)); 41: (kgdb) listesi 42:398 43:399 tp->t_state |= TS_CARR_ON; 44:400 tp->t_cflag |= CLOCAL; /* modem olamaz (:-) */ 45:401 46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) 47:403 return ((*linesw.l_open)(dev, tp)); 48:404 #else 49:405 return ((*linesw.l_open)(dev, tp, flag)); 50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ 51:407 ) 52: (kgdb) print tp 53: ../../i386/i386/cons.c...done için sembollerde okuma. 54:$1 = (struct tty *) 0x1bae 55: (kgdb) print tp->t_line 56:$2 = 1767990816 57: (kgdb) yukarı 58:#1 0xf0191503 cnopen'da (dev=0x0,000 , p=(st\ 59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c satır 126) 60: return ((*cdevsw.d_open)(dev, flag, mode, p) ); 61: (kgdb) 62:#2 0xf0132c34 spec_open () 63: (kgdb) 64:#3 0xf012d014 vn_open () içinde 65: (kgdb) 66:#4 0xf012a183 up 68:#5 0xf019d4eb sistem çağrısında (frame = (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 satır 673) 73:673 hata = (*callp->sy_call)(p, args, rval); 74: (kgdb) yukarı 75:Başlangıç ​​karesi seçildi; gidemezsin. 76: (kgdb) çıkın 77: # çıkış 78:çıkış 79: 80:Komut dosyası 30 Aralık Cuma 23:18:04 1994'te tamamlandı

lPNNEOFBTYY L CHISCHERTYCHEDEOOPNH TSHTOBMH:

UFTPLB6:

LFP DBNR, CHSFSHCHK RTY RPNPEY DDB (UNPFTY OYCE), RPFPNH LPNNEOFBTYK L BCHBTYKOPNH PUFBOPCHH YNEEF YNEOOOP CHYDB'UB'YUBLUBBUB PDOBLP YЪOBYUBMSHOPK RTYYUYOPK RETEIPD B CH DDB VSHMB BCHBTYKOBS PUFBOPCHLB RTY PP'YLOPCHEOYA PIYLL UFTBOYGSCH RBNSFY.

UFTPLB20:

LFP NEUFPOBIPTSDEOOYE ZHKHOLGYY trap() CH FTBUUYTPCHLE UFELB.

UFTPLB36:

rTYOKHDIFEMSHOPE YURPMSHЪPCHBOIE OPChPK ZTBOYGSCH UFELB; FERTSH LFP OE OHTSOP. rTEDRPMBZBEFUS, YuFP ZTBOYGSCH UFELB KHLBSCCHBAF RTBCHYMSHOP TBURPMPTSEOYE HAKKINDA, 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 ZBSP ZPSB SCHUBPVP

UFTPLB52:

rPIPTSE, YuFP CHYOPCHBF KHLBBFEMSH, SCHMSEFUS DPRKHUFYNSCHN BDTEPN'DE Başkan Yardımcısı.

UFTPLB56:

PDOBLP, PYUECHYDOP, UFP KHLBSCCHBEF ÜZERİNDE NHUPT HAKKINDA, FBL UFP NSCH OBIM HER İKİ PІYVLH! (dMS FAIRY, LFP OE ЪOBLPN U LFPC YUBUFSHHA LPDB: tp->t_line UMHTSYF DMS ITBOEOYS TETSYNB LBOBMB LPOUPMSHOPZP HUFTPKUFCHB, Y LFP DPMTSOP VShchFSH DPUFBFPYuOP NBMEOSHLPE GEMPE YUYUMP. )

Yönetici, program oluşturmak için gerekli olan derleyicinin arkadaşıdır. Ancak bilgisayar programı yazan ve yöneticilik yapanların birçoğu yaptıkları işin prensip ve mekanizmalarından habersizdir.


Denetleyici olmak önemlidir.

Programların yöneticiyi gece gündüz vikorist ettiği gerçeğinin ışığında, özellikle derin sükunet moduna girerseniz, yönetici bir program değil de donmuş bir programsa, hızla aşırı ısınacağını ve bozulacağını söylemekte fayda var. Çünkü makinenin kaldırabileceği iş miktarı kadar derleyiciye bilgi verilemez.

Elbette farklı programlama türlerinin parçaları var ve bunların her biri için kendi denetleyicileri var. Ve doğal olarak, bu dillerin belirli kategorileri için editörlerin çalışmalarının önemi vardır: örneğin, yorumlanmış Ruby'deki programların editörü farklı şekilde kullanılır, ancak Java bayt kodunda derlenen dil için kullanılmaz ve Java için piliç, kendi Chergu'nuz var, mükemmellik Visual C++ geliştiricisinin annesi olacak.

Size Windows platformunun kurulumunu anlatacağım. Bunun için yöneticilerin çalışma prensiplerini anladıktan sonra, hem POSIX sistemi altındaki geliştiricilerle hem de aynı işletim sistemi üzerinde değil, sanal makine tercümanı ile aynı seviyede çalışan yöneticilerle çalışmak mümkün olacaktır.


Windows sürücüleri: iki tür

Windows için iki farklı yönetici türü vardır. Sanırım herkes Delphi'de programladıysa ilkine sadık kaldı (yenisinde programlama yapmadınız mı? Buna inanamıyorum. Neden okulda ve üçüncü sınıf kurslarında program yaptınız?). Bunlar koristuvatsk programlarının sahipleridir. Birçoğu vardı ve katkı maddelerinin geliştirilmesi için entegre merkezlerin deposunda olduğu gibi (özellikle konuşmadan önce sıklıkla) bir koku vardı. Yazılım ürünlerinin ötesine geçen editörler arasında geleneksel olarak OllyDbg yer alır ve onun hakkında Computer News'te yazdım.

Diğer bir böcek ilacı türü ise işletim sisteminin çekirdek yöneticisidir. Kokular daha çabuk keskinleşir ve vikorist, koristuvach'ın çiğneme katkı maddeleri nedeniyle cihazlarının arkasında önemli ölçüde kesilir. Çekirdek yöneticileri arasında en popüler ve aynı zamanda en kısa olanı SoftIce'tır. Muhtemelen onun hakkında bir şey duymadınız, aynı zamanda onunla dalga geçtiniz.

İki tür tıbbi ürünün deri parçalarının kendine has özellikleri vardır, o zaman size bir raporda bunların derisinden bahsedeceğim.


Nalagojuvach vlasnih programları

En iyi ve en gelişmiş çalışma işletim sistemi tarafından gerçekleştirildiğinden, sistemin yazılım eklentilerinin sahibi daha basittir. Windows, kullanıcı deneyimini geliştirmek için tasarlanmış, Windows Hata Ayıklama API'si adı verilen özel program arayüzlerine sahiptir. En kullanışlı API'ler, Windows için popüler geliştirme ara yazılım entegrasyonlarında yer alan tüm araçlar tarafından kullanılır.

İyileştirmenin başlayabilmesi için yöneticinin geliştirilmekte olan süreci özel bir şekilde başlatması gerekir; böylece sistem bu sürecin devam ettiğini bilir. Bundan sonra geliştirme döngüsü başlar: Program, geliştirme aşaması veya hata ayıklama olayı olarak adlandırılan son aşamaya kadar tamamlanır. Bu durumda kontrolörün donmasını önlemek için geliştirme döngüsü yavaş bir hızda başlar.

Ale tse lishche koçanı. Çünkü iş yükünün başlamasıyla birlikte işleyicinin çalışmasında ihtiyaç duyulan şey de başlar. Peki, özünde amirin görevi kime aittir? Programcının hatayı belirli bir işleve, belirli bir işleme, belirli bir değişikliğe hassasiyetle yerelleştirmesine yardımcı olmak. Bu zor göreve işletim sistemi de yardımcı olabilir.

Artık geçmişte kaldı ve programın metniyle bağlantılı olduğundan artık bu şekilde tanınmaya ihtiyaç var. Programın kendisinin özel vergi bilgileri (vergi simgeleri tablosu) içermesi mümkündür. Adresler ve işlev adları, veri türleri ve kod satırı numaraları arasına iletişim bilgilerini yerleştirebilirsiniz. Daha iyi olmanın en iyi yolu bilgili bir Windows programcısı olmaktır. Sembol tabloları değişiyor Farklı formatlar ve bir satıcının derleyicisi tarafından derlenen bir programdan, başka bir satıcının düzenleyicisinin yardımıyla her zaman yararlanabilirsiniz. Bununla birlikte, en gelişmiş format yine de PDB (Program Veritabanı) aracılığıyla ve elbette Microsoft Corporation'dan belirlenebilir.

Ayrıca sembol tablosu PDB formatında olduğundan Microsoft'un özel bir aracıyla sembol geliştirme sürecini hızlandırabilirsiniz. Sistem çekirdeğine girip Imagehlp.dll'yi çağırdığınızda, uzun süredir yerel kütüphanede görülüyor. Karakter işlemcisi, belirli bir adreste en yakın özel işlevi veya genel değişikliği bulmanın yanı sıra satır numarasını ve bu satırı içeren çıktı metnini içeren dosyanın adını bulmanızı sağlar. Tersine çevirme işlemleri desteklenir, örneğin arkalarındaki bir fonksiyonun adresinin aranması.

Elbette bu, ek geliştiricinin yaptığı işlerin tamamı değildir. Örneğin, köklü zengin akış katkı maddeleri ile akışların etkileşimiyle ilişkili pek çok incelikli an vardır. Hizmetler gibi genellikle basit konuşmaların iyileştirilmesine yönelik hikayenin kendi nüansları vardır.

Ancak nüanslara takılıp kalmayalım; örneğin, size istatistiklerden bahsedeceğim ve onlar hakkında okuyacağım. Şimdi çekirdek yöneticilerine bir göz atalım.


Çekirdek geliştiricisi

Güçlü çekirdekler, çekirdek bileşenlerin çok az kullanıldığı son derece karmaşık programlardır ve size saygı duyuyorum, nedeni tamamen açık: işletim sistemi biçiminde bir günlük asistanları var. Bu durumda çiğnemenin sorumlusu müşterileri ve hatta kokunun kendisidir.

Çoğu çekirdek yöneticisi, boş bir modem kablosuyla birbirine bağlanan iki bilgisayarda çalışır. Boş modem, iki bilgisayarı COM veya LTP bağlantı noktaları aracılığıyla doğrudan bir kabloyla bağlamanın bir yoludur. Başka bir bilgisayara ihtiyaç vardır çünkü ana bilgisayarın ilkinde (sistemin kurulduğu ve geliştirildiği yerde) bulunan kısmı erişim Donanım güvenliğinden önce, tüm veri çıkışı boş bir modem aracılığıyla başka bir bilgisayara aktarılır.

Intel x86 mimarisinin mevcut işlemcileri özel işlem kayıtlarına sahiptir (hem eski 368'de hem de her türden yeni işlemci modellerinde bunlara DR0-DR7 denir). Bu kayıtlar, kullanıcının okuma ve yazma belleğinin yanı sıra giriş-çıkış bağlantı noktaları için kontrol noktaları ayarlamasına olanak tanır. Genel olarak her şey bu şekilde görünüyor ve delinme noktaları tarafından kesintiye uğrayan yüz kayıtlarından cildin ne gösterdiğine dair hemen bir rapor yazıp buna benzer başka bilgiler vermenin doğru olduğunu düşünmüyorum. Windows için belirli çekirdek yöneticilerinden daha kısaca bahsedelim.

Her şeyden önce, işletim sisteminin çekirdeğidir. Bu, Windows 2000'den başlayarak tüm NT hattı işletim sistemleri için geçerlidir. Dosyanın tamamı NTOSKRNL.EXE'dir ve BOOT.INI'deki işletim sistemi için "/Debug" seçeneğini ayarlayarak dosyayı açabilirsiniz. Bu yönetici, aynı işletim sistemine sahip başka bir bilgisayara boş bir modem bağlantısı gerektirecektir.

Microsoft'un bir diğer çekirdek geliştiricisi ise WinDBG'dir. Açıkça söylemek gerekirse, bu bir çekirdek ayarlayıcı değil, çekirdek programlarının geliştirilmesi için kullanılabilecek hibrit bir ayarlayıcıdır. Çekirdeğe yerleşik düzenleyicinin yerine geçecek bir grafik kabuk var, bu yüzden onu kullanmak daha kolay. Bu yönetici aynı zamanda üst düzey bakım görevleri sırasında kullanışlı olabilecek özel uzantıları da destekler. Ale ve vin, çekirdeğin geliştirilmesi için iki bilgisayar gerektirecektir.

Ancak tek bilgisayarda çalışabilen bir çekirdek ayarlayıcı vardır. SoftIce'a bakın. Bu durumda SoftIce uygulama programları geliştirebilir. Bu denetleyicinin programcı için kullanımı, örneğin sistem zamanlayıcısına bağlı gerçek zamanlı sistemlerde doğrudur. Birincil bir süpervizörün yardımına güvenirseniz, program düzgün çalışıyorsa sonuç hatalı görünebilir ve SoftIce hem programı hem de zamanlayıcıyı değiştirebilir. Bu, zengin akış programları çalıştırırken kullanışlıdır. Buna ek olarak SoftIce, sistemdeki tüm akışlar hakkındaki bilgileri, çoklu akış uygulamaları için akışları senkronize etme ve tanıtıcı hakkındaki bilgileri görüntüleme konusunda çok ama çok iyi bir yönteme sahiptir." Bu yöneticinin tek eksisi karmaşıklığıdır. Bu uygulama programcısı içindir. .Ayrıca çekirdek yöneticilerinden fiyat en basit ve etkili olanıdır.


Bunu beğenenler için

Aynı zamanda, Windows eklentileri için editörler hakkındaki tartışma, on yıl önceki kadar güncel değil. Tüm dünya internete bağımlı hale geldi ve SoftIce'ın ana tüccarları korsanlık alanında yorulmak bilmeyen krakerler haline geldi. Tim daha az değil, o kadar da kötü değil. SoftIce ile oynamak elbette kişinin bilgisayar hakkındaki bilgisini geliştirir, özellikle de yalnızca kontrolörlere bağlı kalırlarsa ve gerçek insanlarla bağlı kalmazlarsa, bu da yan etkilere neden olabilir. .

Uygulamalar en gelişmiş yazılım türlerinden biridir ancak gelişim açısından koristuvach ile aynı seviyedeki uygulama programlarının kullanımı zordur. Bir güç yöneticisi geliştirmek için çok zamanınız olduğundan, işletim sistemleri ve programlama bilginiz önemli ölçüde artacak ve dolayısıyla iyi maaşlı bir iş bulma şansınız artacaktır.

Dolayısıyla, güçlü bir kutsama yaratmak istiyorsanız, o zaman hemen bu konuyla ilgili materyallere aşina olun. Bana göre yeni başlayanlar için en iyi kitap John Robbins'in "Windows Eklentilerinin İyileştirilmesi" kitabı olacaktır. Zaten eski, tarihi 2001 yılına kadar uzanıyor, ancak içerdiği bilgiler konuyla ilgili ve belirsiz olabilse de doğası gereği temel nitelikte. Bu kitap, Windows için düzenleyici yazma örnekleri içerir ve ayrıca C++ ile programlıyorsanız ve problem çözme sürecine daha fazla aşina olmak istiyorsanız işinize yarayacaktır. Vlasna, bu kitaptan istatistiklerde yayınlanan yöneticiler hakkında bilgi topladım. Bu kitabı bulamıyorsanız (sonuçta çok eski) işinize yarayabilecek adresi burada bulabilirsiniz. İlki eksendir: www.xakep.ru/post/19158/default.asp. "Hacker" dergisinin bu makalesi, çekirdek yöneticileri hakkında daha fazla çalışmadan bahsediyor ve ayrıca en basit editörün kodunu içeriyor. Ve kalashnikoff.ru/Assembler/issues/016.htm adresinden bir DOS düzenleyicisinin nasıl yazılacağını öğrenebilirsiniz. Ancak en iyisi MSDN'yi okumaktır ve hangi düzenleyicinin gizli çıktı metinlerine sahip olduğunu bilmek onunla iletişime geçebilmeniz açısından faydalıdır. Tabii ki, editör yazmaya başladığınıza göre, bu zor görevinizde iyi şanslar!

Çekirdek modunun denetleyicileri CPU ve işletim sistemi tarafından belirlenir. Bu, çekirdek modunu yavaşlatırsanız işletim sisteminin de yavaşlayacağı anlamına gelir. Zamanlayıcı ve senkronizasyon sorunlarıyla çalışıyorsanız, işletim sisteminin aniden durmasının bir önemi yoktur. Yine de aşağıda tartışılacak olan bir yöneticinin hatası nedeniyle (bu bölümün “SoftlCE Yöneticisi” bölümünde), çekirdek modunun arkasındaki çekirdek moddaki kodu değiştirmek mümkün değildir.

Çekirdek modunda çok fazla geliştirici yok. Bunların ekseni: Windows 80386 Hata Ayıklayıcı (WDEB386), Çekirdek Hata Ayıklayıcı (1386KD), WinDBG ve SoftlCE. Bu ayarlayıcıların her biri aşağıdaki bölümleri kısaca açıklamaktadır.

Operatör WDEB386

WDEB386, Platform SDK'sında bulunan Windows 98 çekirdek moduna yönelik bir yardımcı programdır. Bu düzenleyici yalnızca sanal sürücüler yazanlar için kahverengidir. Windows cihazları 98 (VxD). Windows işletim sistemlerindeki çoğu çekirdek modu yöneticisine benzer şekilde, WDEB386 sürücüsü iki makineyi ve bir boş modem kablosunu destekler. Makinenin tamamına takılan kontrolörün bir kısmının kendi donanımına erişim sağlaması, komutlarını verebilmesi ve diğer makineden komut alabilmesi için iki makineye ihtiyaç vardır.

WDEB386 denetleyicisinin uzun bir geçmişi vardır. Windows 3.0'da Microsoft için dahili bir arka plan aracı olarak başladı. Galip gelmek önemliydi ve refah için yeterli teşviki sağlamıyordu. çıkış kodu ve Visual C++ ve Visual Basic geliştiricileri tarafından çağrıldığımız diğer kabul edilmiş yetkililer.

"Nokta" (DOT) komutları WDEB386'nın en önemli özelliğidir. INT 41'i değiştirerek WDEB386'yı komut eklemek için genişletebilirsiniz. Bu uzantı, VxD sürücülerinin yazarlarının, içindeki bilgilere ücretsiz erişim sağlayan özelleştirilmiş komutlar oluşturmalarına olanak tanır. sanal cihazlar. Nalagojuvalna Windows sürümü 98, geliştirme sürecinin herhangi bir noktasında işletim sisteminin tam durumunu korumanıza olanak tanıyan DOT komutlarının yokluğunu destekler.

Operatör I386KD

Windows 2000, çekirdek modu yöneticisinin gerçek kısmının NTOSKRNL kısmı olması bakımından Windows 98'den geliştirilmiştir. EXE - işletim sisteminin ana çekirdeğinin dosyası Windows sistemleri 2000. Bu araç hem standart (sürüm) hem de yükseltilmiş işletim sistemi yapılandırmalarında mevcuttur. Çekirdek modunda performansı artırmak için /DEBUG önyükleme seçeneğini BOOT olarak ayarlayın. INI ve ayrıca yöneticinin iletişim bağlantı noktasının değerini yükseltilmekte olan çekirdek moduna (COM1) ayarlamak gerekiyorsa /DEBUGPORT seçeneği. I386KD, güç makinesine kurulur ve Windows makinesi 2000 boş modem kablosuyla.

Nalagojuvach çekirdek modu NTOSKRNL. EXE yalnızca CPU'yu çalıştırmaya yeterli olanları çalıştırır, böylece işletim sistemi daha verimli hale getirilebilir. İşleme işlerinin çoğu (sembol işleme, kesinti noktasının genişletilmesi ve sökme) 1386KD tarafında kurulur. Yalnız Windows saati Boş modem kablosunun protokolünü belgeleyen NT 4 Aygıt Sürücü Seti (DDK). Microsoft artık hiçbir şeyi belgelemiyor.

Windows 2000'in dahili sistemine erişim sağlamak için verilen tüm komutlara dikkat ettiğinizde 1386KD'nin gücü ortadadır. Windows 2000'deki aygıt sürücülerinin mekanizmasını bilmek, programcının bulguları takip etmesine yardımcı olacaktır. Her şey için endişelenmeyin, i386KD hiçbir şekilde durgunlaşmayacaktır çünkü bu bir konsol programıdır, çünkü çıktı seviyesini iyileştirmek için araçları kullanmak zaten çok zordur.

  • Yazarlar:

    Barinov S.S., Shevchenko O.G.

  • :
  • Dzherelo:

    Bilgisayar Bilimi bilgisayar teknolojileri/ VI. Uluslararası Öğrenciler, Lisansüstü Öğrenciler ve Genç Bilim Adamları Bilimsel ve Teknik Konferansı Materyalleri – 23-25 ​​Kasım 2010, Donetsk, DonNTU. – 2010. – 448 s.

Soyut

Bilgisayar modunun ve tüm işletim sisteminin çekirdek modunun iyileştirilmesine ilişkin kapsamlı bir analiz gerçekleştirildi Microsoft Windows Geriye kalan iyileştirmeyi organize etmenin önemi ve sorunu Elde edilen sonuçlara dayanarak, acil durumlarda çekirdek modunu ve etkileşimli iyileştirmeyi teşvik edecek ana olasılıklar formüle edilmiştir. Gerçekleştirilen analiz Temel çözümler En iyi sonuçları sağlamak için. Microsoft Windows Hata Ayıklayıcı'ya özellikle saygı duyulur.

Ana bölüm

Kuruluş, af gerekçelerinin belirlenmesi sürecidir güvenlik yazılımı. Bazı projelerde geliştirme, toplam geliştirme süresinin %50'sini alır. Sürekli olarak güncellenen özel araçların kullanılmasıyla iyileştirme basitleştirilebilir. Bu tür ana araç, yazılımın yürütülmesini kontrol etmenize, aşımlarını izlemenize ve yenisine dahil olmanıza olanak tanıyan ayarlayıcıdır. Çekirdeğin sürücü satıcıları tarafından geliştirilmesi önemlidir.

Uygulama yazılımı geliştirme araçları, programcıya çok çeşitli yetenekler sağlar. Geliştirme çekirdeğinin entegre olup olmadığı, üçüncü taraf yardımcı programlara ihtiyaç duymadan geliştirme yeteneğini içerir. Sistem yazılımı ve zocrema sürücülerinin geliştirilmesi hakkında konuşursak, özelliği nedeniyle geliştirme süreci son derece zordur ve çok az otomasyon vardır. Refah da dahil olmak üzere gelişimin tüm aşamaları kapalıdır. Bunların dış görünümü için özel beyinler gerekli: yazılım kodunun yazılması sonsuza kadar tamamlanacak bilgisayar sistemi, besleme sisteminde iyileştirme, koşullarda test etme vb. Çekirdek modunun kendisi, uzmanlaşıldığında daha karmaşıktır ve görünüşe göre daha az kullanıcı dostudur.

Maliyetlerin evliliği ve çekirdeğin gelişimi hakkında konuşabilirsiniz. Böyle şeyler istiyorsanız çoğu zaman alternatiflerden bahsedemezsiniz. Örneğin, Microsoft Windows Hata Ayıklayıcı'nın giriş engeli yüksektir. Onu tanımaya başladığımızda ilk olumsuz kanıt hakkında konuşacak çok sayıda programcı var ve fırsatlarının çoğu sahiplenmeden kayboluyor.

Sanal adres alanının yapısından gelen, eğer ek olarak derleme yapılmasına izin veriliyorsa, herhangi bir program veri kaydını yeterli hafıza alanına kaydettikten sonra program fazla hafızayı bozar ve diğer programların ve işletim sistemlerinin çalışmasına müdahale etmez. Ve. Todi yak program koduÇekirdek modu, işletim sisteminin önemli veri yapılarına zarar verebilir ve bu da kaçınılmaz olarak çökmeye yol açacaktır. Etkin olmayan sürücü yazımı, tüm işletim sisteminin ciddi şekilde bozulmasına neden olabilir.

    Günlük içecekler ayaklarınızı güçlendirecek temel fonksiyonlar:
  • çıktı koduyla aynı seviyede iyileştirme;
  • keruvannya vikonnyam;
  • hafızanın görünümü ve değişimi;
  • işlemci kayıtları yerine inceleme ve değiştirme;
  • madeni para yığınının gözden geçirilmesi.

Demonte kodla işleri kolaylaştırmak için sözde olanı kullanın. beslenme sembolleri. Bestecinin çalışması sırasında, derlenmiş dosyanın görüntüsüne ek olarak, derlenmiş programlar için gerekli olmayan ancak yapılandırıldığında son derece yararlı olan bilgileri içeren bir veri dosyası da oluşturulabilir: işlevlerin adları, genel değişiklikler , yapıların açıklaması. Güzel semboller herkesin kullanımına açıktır bağlantılı dosyalar Windows işletim sistemi.

Program kodunda belirtilen komutu elde etmek için program kodunu kesintiye uğratmak ve güncellemek üreticinin sorumluluğundadır. Program kodu adım adım modda derlenirse, programlamanın dış görünüm belirteçleri nedeniyle veya alt programlardan çıkılırken kesinti meydana gelir. Güçlü bir vicon kesintisi durumunda, viconann kodun planlanan grafiklerinin arkasında - atlama noktalarının kurulduğu yerlerde - görünür.

Çekirdek modunda kod kesintiye uğradığında sorunlar ortaya çıkar. Yönetici, koristuvach'ın vikoryst arayüzünü kullanarak programcıyla etkileşime girer. Tobto. Düzenleyicinin en azından görünür kısmı çekirdek modunda yapılandırılmıştır ve bu amaçla doğal olarak çekirdek modu modülünü temel alan uygulama programlama arayüzü (Windows API) tarafından desteklenir. Bu nedenle, çekirdek kodu modunun bastırılması karşılıklı engellemeye yol açabilir: sistem, kullanıcının isteklerine yanıt vermeyi durduracaktır.

Çekirdek belleğine erişmek için depo yöneticisinin ayrıca çekirdek moduna girmesi gerekir. Bu, işlemcinin korumalı modunda belleğin organizasyonunun bariz sonuçları olan iki soruna yol açar.

İlk sorun sanal bellek adreslerinin çevrilmesidir. Sürücüler bilgisayar modundaki programlarla sürekli olarak etkileşime girerek bellekte sona erer. Windows işletim sistemi, akışın içeriğine bağlı olarak sanal adresleri fiziksel olanlardan çevirir. Bir iş parçacığının içeriği, bir iş parçacığının durumunu temsil eden ve kısaca bir dizi kayıt ve diğer bilgileri içeren bir yapıdır. Bilgi başka bir iş parçacığına aktarılırsa, bir iş parçacığı hakkındaki bilgileri kaydeden ve bir başka iş parçacığı hakkındaki bilgileri güncelleyen bağlamın tersine çevrilmesi söz konusudur. Bir iş parçacığının içeriği başka bir işlemin iş parçacığına yeniden eşlendiğinde, sayfalar dizini, vikoristov da sanal adresi fiziksel adresten çevirmek için yeniden eşlenir.

Tuhaflık, sistem tıklamalarını gönderirken Windows işletim sisteminin bağlamı yeniden karıştırmamasıdır. Bu durumda çekirdek modu kodu sanal adresleri ve çekirdek modunu kullanabilir.

Aksi takdirde, sistem iş parçacıklarını gönderirken kesintiye uğratın veya sonlandırın. Durum Pererirvannya'da olabilir, dolayısıyla vikorların akışına ilişkin bağlamın ne olduğunu anlatmak imkansızdır. Sistem iş parçacıkları herhangi bir işleme ait değildir ve sanal adresleri sunucu moduna çeviremez. Bu durumlarda koristuvach rejimini hatırlamaya geri dönmenin mümkün olmadığı açıktır.

Diğer bir sorun ise taşınan belleğin depolanmasıdır. Bellekteki bilgilerin çoğu taşınır ve istenildiği zaman başka yerden taşınabilir. fiziksel hafıza Açık sabit disk dosyanın yanında. Fiziksel bellekte bulunan bir sayfaya eriştiğinizde, normal durumda işlemci, bellek yöneticisi tarafından işlenen bir Sayfa Hatası oluşturacaktır ve bunun sonucunda sayfa, sayfa dosyasından ve depolanan bellekten okunacaktır. karısının fiziksel hafızası var.

Hata işleyici yazılım kodu bozulduğunda açıklanan davranış bozulur yüksek ravent kesme isteği düzeyleri (IRQL). Kaçınılan bir IRQL ile bellek yöneticisinin IRQL'si geri kalanına taşınabilir çünkü Sayfa Arızası kesintiye uğradığında işletim sistemi engellenir. Bu, işletim sisteminin çökmesine yol açacaktır.

Operasyonlar genellikle etkileşimli ve acil durum olarak ikiye ayrılır. Etkileşimli yerel geliştirmeyle yükseltici, yükseltme nesnesiyle aynı sisteme kurulur. Etkileşimli uzaktan geliştirme kapsamında ekipman farklı sistemlere kurulacak. İyi geliştirilmiş bir çekirdek koduyla, sistem henüz çalışmıyorsa, uygulamanın ilk aşamalarından başlayarak sistemin kontrol edilmesi gerekir, bu nedenle sistemleri bağlamak için COM, FireWire, USB gibi basit sonraki arayüzler kullanılır. . Bu arada, yazılım sanallaştırmasının çeşitli soyutlama düzeylerinde geliştirilmesindeki eğilimler nedeniyle, giderek yaygınlaşmaktadır. Sanal makineler. Konuk işletim sistemi bir ana bilgisayar işletim sistemi görevi görür, barındırılan işletim sistemi ana bilgisayar ana bilgisayar arayüzünü içerir.

Bu nedenle, acil durum çalışması için kurulum yöntemini test bilgisayarına yüklemeye gerek yoktur. Windows işletim sisteminin dağıtımı acil müdahale mekanizmalarını içerir. İşletim sistemini yeniden başlatmadan önce, geliştiricinin nedeni analiz edip belirleyebilmesi için sistem hakkındaki bilgileri kaydedebilirsiniz. Bir dosyaya kaydedilen bu bilgilere bellek dökümü denir.

Çekirdek modunu optimize etmeye yönelik ana özellikler, yaygın olarak bulunan "Windows için Hata Ayıklama Araçları" paketinin bir parçası olarak Windows işletim sisteminin kendisi tarafından sağlanır. Bunlara grafik ve konsol düzenleyicileri WinDbg ve KD (Windows Hata Ayıklayıcı olarak da bilinir) dahildir. Bu yöneticilerin çalışmaları, işletim sistemi tarafından sağlanan ve çekirdeğine yerleştirilmiş mekanizmalar etrafında döner.

Windows Hata Ayıklayıcı'nın ana modu komut yorumlayıcı modudur. Ürünler modüler bir yapıya sahip olup, bir takım paketler halinde tedarik edilmektedir. Windows komutları Hata ayıklayıcı destekleri üçüncü taraf modüller, Genişletilmiş olarak adlandırılır. Aslında uygulanan komutların çoğu genişleme biçiminde tasarlanmıştır.

Windows Hata Ayıklayıcı, seçildiğinde tüm yeteneklerini ortaya çıkaran uzaktan etkileşimli ve acil durum desteğine odaklanır. Aynı zamanda, tam ölçekli yerel etkileşimli geliştirme desteklenmez: düzenleyici, çekirdek yapısının yalnızca bölümlerini incelemenize izin verir.

Şarkıcı için yerel etkileşimli geliştirme uygulayan, Mark Russinovich tarafından oluşturulan LiveKD adlı Windows Hata Ayıklayıcı için bir uzantı modülü var. LiveKD, hareket halindeyken çalışma sisteminin bir bellek dökümünü oluşturur ve bunu iyileştirme için kullanır.

“Windows için Hata Ayıklama Araçları” araç paketi düzenli olarak güncellenmektedir ve mevcut tüm Windows işletim sistemlerini desteklemektedir.

Compuware tarafından DriverStudio yazılım paketinde yayımlanan ve geleneksel olarak Windows için Hata Ayıklama Araçları paketine alternatif olarak hizmet veren SoftICE çekirdeğinin yazarı. SoftICE'ın ana hedefi, desteklenen donanıma yerel etkileşimli işlevsellik uygulamaktı. Sahibi, işletim sisteminin çalışması üzerinde neredeyse tam kontrole sahiptir.

2006 yılının 3. çeyreğinden itibaren "DriverStudio" ailesinden ürünlerin satışı, "teknik ve ticari sorunların olmaması ve pazara nüfuz edememe" nedeniyle başladı. Kalan sürüm Desteği uygulanan işletim sistemi Windows XP Service Pack 2'dir. Kural olarak, hizmet güncelleme paketleri işletim sisteminin uygulama arayüzünü değiştirmez, ancak sistem tıklamalarının sayısı ve diğer belgelenmemiş bilgiler değişemez. SoftICE yöneticisi sabit kodlanmış adreslerde gizlidir iç yapılar haraç Sonuç olarak Service Pack 3'ün piyasaya sürülmesiyle bu kaos ortadan kalktı. Açıkçası, Windows işletim sisteminin sonraki sürümleri de desteklenmemektedir.

Syser Kernel Debugger, küçük bir Çinli şirket Sysersoft tarafından SoftICE tarayıcısının yerini almak üzere yaratıldı. Perşa son sürüm Bula 2007'de serbest bırakıldı. SoftICE gibi Syser Kernel Debugger da işletim sisteminizde etkileşimli geliştirmeyi mümkün kılmak için tasarlanmıştır. Geçerli Windows sürümlerinin yalnızca 32 bit sürümleri desteklenir.

Açık narazi Windows Hata Ayıklayıcı, çekirdek modüllerini keşfetmeye yönelik ana araçtır. Bu aynı zamanda Windows işletim sisteminin çekirdeğini geliştirmeye adanmış bir ekiptir.