Aracılığıyla paylaş


[Bülten Arşivi ^] [< Birim 1, Sayı 5] [Birim 2, Sayı 2 >]

The Systems Internals Newsletter Volume 2, Number 1

http://www.sysinternals.com

Telif Hakkı © 2000 Mark Russinovich


6 Ocak 2000 - Bu sorunda:

  1. SISTEM IÇLERINDEKI YENILIKLER

    • PsKill v1.0
    • PsList v1.1
    • WinObj v2.1
    • Contig v1.3
    • NTFSCHK v1.0
    • HandleEx v2.1
    • Ctrl2cap v2.0
    • Filemon v4.26
    • Mavi ekran v2.1
    • Fundelete v2.01
    • Openlist v1.11
    • Aralık NT internals
  2. İÇ HABERLER

    • Win2K DDK Yayınlandı
    • Tuş Vuruşu ile Win2K'nin Kilitlenmesi
    • Yazma korumalı Sistem Bellek Güncelleştirmesi
    • Win2K API'sinde Patlama
    • David Solomon Seminerleri
  3. YAKLAŞANLAR

    • Microsoft NT ile İlgili Patentler

SPONSOR: WINTERNALS SOFTWARE

Systems Internals Newsletter, Winternals Software sponsorluğunda, web'de http://www.winternals.com. Winternals Software, Windows NT/2K için gelişmiş sistem araçlarının önde gelen geliştiricisi ve sağlayıcısıdır. Winternals Software ürünleri Windows NT 4.0 için FAT32, ERD Commander Professional Edition (Windows NT için gelişmiş önyükleme diski özelliği) ve Uzaktan Kurtarma'yı içerir.

Winternals Software'in NTFSDOS Professional ve Win98 için NTFS, DOS, Windows 95 ve Windows 98'den NTFS sürücülerinize tam okuma ve yazma erişimi sağlar. NTFSDOS Pro, Windows NT/2K'ye tek disketli "önyükleme diski" özelliği getirir. NTFSDOS Pro ile bir DOS önyükleme disketinden buggy sürücülerini silebilir, dosyaları yenileyebilir ve NTFS sürücülerinde genel dosya sistemi bakımı gerçekleştirebilirsiniz. Win98 için NTFS, Windows 95 ve Windows 98'den NTFS sürücülerine saydam erişim sağlar. Çift önyükleme ortamınızdaki NTFS sürücülerinde NT ve Win9x arasında uygulamaları ve dosyaları kolayca paylaşın. Her iki yardımcı program da yerleşik NTFS Chkdsk özelliğine sahiptir. ADRESINDE NTFSDOS Pro'nun ücretsiz salt okunur sürümü ve http://www.sysinternals.com/ntfspro.htm Win98 için NTFS'nin ücretsiz salt okunur sürümü http://www.sysinternals.com/ntfs98.htm.

Herkese merhaba,

Systems Internals bültenine hoş geldiniz. Bültenin şu anda 14.000 abonesi var.

Sizin de bildiğiniz gibi Win2K disk çoğaltıcıda. Win2K'nin Release-to-Manufacturing (RTM) sürümü derleme 2195 olarak sona erdi. RC3 2128'ydi ve önceki bir bültende de belirttiğim gibi Microsoft, geçerli kaynak ağacı derlerken derleme numarasını her gece (hafta sonları ve tatiller dahil) artırır.

Kasım ayında Microsoft'taydım (orada olmamın nedeni için daha sonra bültende Dosyamon güncelleştirmesine bakın) ve çekirdek ekibinin bir üyesi beni Microsoft'un yerleşkesindeki Bina 26 turuna götürdü. Bina 26, Windows NT/2K temel çekirdek ekibinin barındırıldığı yerdir ve Windows NT/2K derleme ve test laboratuvarlarının bulunduğu yerdir. Derleme ve test laboratuvarları kabaca eşit boyuttadır (belki 30'a 60'), ancak test laboratuvarı bilgisayar raflarıyla doluyken derleme laboratuvarında masa alanı ve oluşturucular için koltuklar bulunur. Oluşturucular her gece kaynak ağacı birkaç dört işlemcili sistemlere ayıklar ve bir derleme çalıştırır. Bir kişinin kod iade etme işlemi (Tanrı korusun) derlemeyi bozarsa, sorunu çözmek için kıçını almak için saat kaç olursa olsun bu kişi çağrılır. Kasım ayı ortasında Win2K, izin verilen tek değişikliklerin komiteler tarafından onaylanması ve "show-stopper" hata düzeltmelerine yönlendirilmesi gereken bir kod donması altındaydı.

Yeni bir derleme üretildikten sonra test ediciler bunu alır ve laboratuvarlarındaki tüm makinelere aynı anda yükler. Test laboratuvarının sistem rafları, küçük elle tutulan bilgisayarlardan her önemli bilgisayar satıcısının bulaşık makinesi boyutunda çok işlemcili sunucularına kadar her şeyle doludur. Win2K yüklemesi tamamlandıktan sonra sistemler kapsamlı stres testi betikleri çalıştırır. Geliştirmesinin sonraki bölümünde Win2K, stres testlerini yüzde doksandan daha yüksek oranlarda geçti. Bu oran, geliştiricilerin kendi testleri sırasında sorunları yakalamasına yardımcı olan Sürücü Doğrulayıcı gibi çeşitli Win2K güvenilirlik geliştirmelerinin kullanıma sunulmasından önce çok daha düşük oldu.

Derlemenin tüm testleri geçirip geçirmediğinden bağımsız olarak, microsoft çalışanlarının indirip yükleyebileceği Microsoft'un iç dağıtım sunucusuna yüklenir. Bir geliştirici önemli bir sorun ortaya çıkardıysa, birkaç yüz çalışandan gelen ve sonraki hafta bu sorunla karşılaşan e-postaları dört gözle bekler. Yalnızca ciddi bir sorun olduğunda, test ekibinin şirket genelinde şirket genelinde e-posta uyarısı gönderdiği kullanıcıların büyük bir yüzdesine isabet ettiğinden emin olun (25.000'den fazla kişiye e-posta yayınlamak hafife alınmayacak bir şeydir).

Oradayken, Windows NT'nin baş mimarı Dave Cutler ile de tanıştım. Bu günlerde ne yapıyor? Kasım ayında çekirdek ekibi Win2K'nin ardılı (dahili olarak NT 6 veya Neptune olarak bilinir) üzerinde sıkı bir şekilde çalışıyordu ve Dave de Win2K'nin 64 bit sürümü için yüklemenin üzerine dokunma üzerinde çalışıyordu. Dave 64 bit geliştirme çalışmalarına liderlik etti ve 64 bit Win2K tamamlanma yolunda. Kasım ayından itibaren çekirdek ekibi Alfalar üzerinde 64 bit çalışma yapmaya devam ediyor çünkü Intel, merced işlemci örnekleri üretmeye yeni başlamıştı ve kampüste yalnızca bir tane vardı.

Her zamanki gibi, lütfen bülteni ilginizi çekebileceğini düşündüğünüz arkadaşlarınıza iletin.

Teşekkürler!

-İşaret

SISTEM IÇLERINDEKI YENILIKLER

PSKILL V1.0

Windows NT ve Win2K Kaynak Setleri, yalnızca Windows NT ve Win2K'de eksik olduğu için bir komut satırı "sonlandırma" yardımcı programıyla birlikte gelir. Yerel işlemleri Resource Kit "sonlandırma" ile sonlandırabilirsiniz ancak uzak işlemleri sonlandıramazsınız. Bu nedenle, PsList'im gibi uzak bir özelliğe sahip olan serbestçe kullanılabilir bir "sonlandırma" yazmaya karar verdim. PsKill bir işlem kimliği veya adı ve isteğe bağlı bir bilgisayar adı alır ve yerel sistemde veya belirttiğiniz uzak sistemde eşleşen işlemleri sonlandırır. Uzak bilgisayara bir istemci bileşeni yüklemeniz bile gerekmez. Çalıştırdığınız hesabın uzak bilgisayarda yönetici ayrıcalığı yoksa, PsKill komut satırına bir hesap adı ve parola ekleyerek sonlandırma işlemini gerçekleştirmek için uzak sistemde oturum açabilirsiniz.

PsKill v1.0 sürümünü şu konumdan indirin: http://www.sysinternals.com/pskill.htm.

PSLIST V1.1

PsList'i bir süre önce UNIX ps stilinde bir işlem ve iş parçacığı görüntüleyicisi olarak yayımladım. Windows NT ve Win2K Kaynak Setlerindeki benzer araçlardan farklı olarak PsList, uzak sistemlerin yanı sıra yerel sistemlerdeki işlem ve iş parçacığı bilgilerini görüntülemenizi sağlar. PsList, Perfmon gibi Win NT/2K'nin Performans API'sini okuyarak çalışır. Bu PsList düzeltmesi, komut satırında bir hesap adı ve parola belirterek uzak sistemde oturum açma olanağı sağlar. Bu seçenek, PsList'i çalıştırdığınız hesabın yönetici ayrıcalığına sahip olmadığı uzak bilgisayarlara erişmenizi sağlar.

PsList v1.1'i şu konumdan indirin: http://www.sysinternals.com/pslist.htm.

WINOBJ V2.1

WinObj, Windows NT/2K için bir Nesne Yöneticisi ad alanı görüntüleyicidir. Nesne Yöneticisi ad alanı, genellikle kullanıcılar tarafından görülebilen ancak win32 (\BaseNamedObjects ve \??) adlı ve adlandırılmış çekirdek nesnelerinin bulunduğu bir ad alanıdır. Ayrıca, dosya sistemi ad alanlarına (altındaki \??sürücü harfi sembolik bağlantıları aracılığıyla) ve Kayıt Defteri ad alanına (anahtar nesnesi \Keyaracılığıyla) giriş noktası olarak da hizmet eder.

WinObj, Win32 Yazılım Geliştirme Seti'ndeki (SDK) aynı ada sahip bir aracına benzer, ancak WinObj'ımız Microsoft sürümünden çok daha fazlasını yapar. Örneğin, WinObj'umuzda bir nesnenin özelliklerini görüntülediğinizde rastgele sayılar yerine başvuru ve işleme sayıları görürsünüz (SDK WinObj'de bazı önemli hatalar vardır). WinObj'ımız size eşitleme nesnelerinin durumunu ve nesne güvenlik bilgilerini de gösterir.

Bu en son WinObj güncelleştirmesi, Win2K'nin ad alanında bulunan uzun sembolik bağlantı değerlerinden bazılarının düzgün görüntülenmesini engelleyen bir hatayı düzeltir. Ayrıca, Win2K üzerinde çalıştırdığınızda yeni daha kolay Win2K güvenlik düzenleyicisi iletişim kutularını kullanır (NT 4'te ACLEDIT.DLL tarafından sağlanan belgelenmemiş güvenlik düzenleyicisi arabirimlerini kullanır). Kullanıcı arabirimi geliştirmeleri, winobj'yi bir sonraki başlatışınızda bu dizinin seçilmesini ve dizin içeriği liste görünümü penceresini sıralamanızı sağlamak için çıktığınızda hangi dizini görüntülediğinize ilişkin geri çağırmayı içerir.

WinObj v2.1 sürümünü şu konumdan indirin: http://www.sysinternals.com/winobj.htm.

CONTIG V1.3

Microsoft, NT 4'i yayımladıklarında yerleşik bir dosya birleştirme API'leri ekledi. API'leri belgeliyorum ve şu konumdaKI API'yi kullanan örnek kodu sağlıyorum: http://www.sysinternals.com/defrag.htm. Tek tek dosyaları veya dizinleri birleştirmek için kullanabileceğiniz bir komut satırı birleştiricisi olan Contig'i uyguladığım API'leri kullanarak. Contig'in ilk sürümünden bu yana parçalanma analizi seçeneği eklemek için birçok istek aldım ve sonunda bunu uygulamaya geldim. Contig v1.3, daha pahalı bir birleştirme işlemi gerçekleştirmeniz gerekip gerekmediğini belirleyebilmeniz için belirttiğiniz dosyaların nasıl parçalandığını görmenizi sağlar.

Dosya birleştirmeden bahsetmişken, Symantec en gelişmiş birleştirici olan Speedisk 5.0'ı yayınladı. Rekabette en üst düzeye geçmek için birleştirme API'sini atlar ve diskin çevresinde blokları el ile taşır, böylece sistem çalışırken dizinleri ve hatta MFT'yi birleştirebilir. Executive Software'in 'de http://www.execsoft.com/diskeeper/infosheet.asp#Q9belirttiğinin aksine, Diskeeper ürünleri (hem sürüm 4.0 hem de sürüm 5.0) özellikle önyükleme zamanı dizin birleştirmesi yaparken birleştirme API'sini atlar (ancak birleştiricisi Norton'lar kadar gelişmiş değildir). Yöneticinin pazarlaması, okuduğunuz her şeye inanmamanıza neden olan başka bir derstir.

Contig v1.3 sürümünü şu konumdan indirin: http://www.sysinternals.com/contig.htm.

Bir Kayıt Defteri ve disk belleği dosyası birleştiricisi olan PageDefrag'ı şu konumdan indirin: http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK V1.0

NT 4 ile birlikte bilgisayarlarına Win2K yükleyen güçlü kullanıcıların yaygın bir şikayeti, Win2K'nin ntfs v5'e tüm NTFS sürücülerini otomatik olarak yükseltmesinin NT 4 Chkdsk'nin bu sürücüleri denetleyememesidir. NT 4 Chkdsk, NTFS v5 sürücülerini taramak ve hataları düzeltmek yerine, NTFS'nin daha yeni sürümleriyle oluşturulan sürücülerde çalıştırılamadığını duyurur ve çıkış yapar. Bu, en azından şimdiye kadar bu sürücüleri denetlemek istediğinizde Win2K'ye önyüklemenizi gerektirir.

NTFSCHK ile NT 4'ten Chkdsk'nin Win2K sürümünü çalıştırabilirsiniz. Nasıl? NTFSCHK, NT'nin yerel Chkdsk'sini DOS ve Windows 9x'ten NTFSDOS Professional ve NtfsDOS for Win98'in bir parçası olarak yürütmek için geliştirdiğimiz teknolojinin aynısını kullanarak Win2K Chkdsk'yi Win2K'ye benzer bir ortamda sarmalar.

NTFSCHK v1.0 sürümünü şu konumdan indirin: http://www.sysinternals.com/ntfschk.htm.

HANDLEEX V2.1

HandleEx, Windows NT/2K için hangi DLL işlemlerinin yüklendiğini ve hangi nesneleri açtığını (tanıtıcıları) gösteren çok yönlü bir tanılama yardımcı programıdır. HandleEx, DLL sürüm oluşturma sorunlarını izlemek, sızıntıları işlemek ve belirli bir dosyaya, dizine veya Kayıt Defteri anahtarına erişen uygulamayı belirlemek için kullanışlıdır.

HandleEx sürüm 2.1, başvuru sayıları ve eşitleme nesnelerinin durumu dahil olmak üzere işlemlerin açtığı nesnelerin özelliklerini görüntülemenizi sağlar. Ayrıca NT'nin güvenlik düzenleyicilerini kullanarak nesne güvenlik özniteliklerini görüntüleyebilir ve değiştirebilirsiniz.

HandleEx v2.1 sürümünü şu adreste indirin: http://www.sysinternals.com/handleex.htm.

CTRL2CAP V2.0

UNIX arka planından geldiyseniz bilgisayar klavyesindeki denetim tuşunun yanlış yerde olduğunu kabul edersiniz: caps-lock tuşunun olduğu yerde olmalıdır. Peki caps-lock tuşunu kim kullanıyor? Ctrl2cap, caps-lock'ı sol denetime dönüştüren ve yan efekt olarak caps-lock'ı kaldıran bir klavye filtresi sürücüsüdür (Yarım Yaşam'ı oynarken standart sol denetimi yangın tuşu olarak kullanıyorum).

Ctrl2cap v1.0, Win2K üzerinde çalışsa da, bunu kullanmak Win2K'nin güç yönetimi özelliklerini dizüstü bilgisayarlarda biraz rahatsız edici bir özellik devre dışı bırakır. Bu nedenle Ctrl2cap'i güç yönetimi dostu olmayı da içeren Windows Sürücü Modeli'ne (WDM) uyacak şekilde güncelleştirdim. Tam kaynak kodu ve aynı kaynak dosyaları hem NT 4 hem de Win2K sürümlerini oluşturuyorum.

Kaynak koduyla birlikte Ctrl2cap v2.0 sürümünü indirin: http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V4.26

Kasım ayında Microsoft'ta olmamın nedeni, Microsoft'un bir "Dosya Sistemi Filtresi Plugfest" (dahili olarak "Irp-olooza" olarak adlandırılıyordu) gerçekleştirmesiydi. Plugfest, Windows NT/2K dosya sistemi filtre sürücülerini temel alan tüm önemli ürünleri bir araya getirdi, hepsini bir kez deneme olarak eşleştirdi ve farklı eşleştirmelere karşı stres testleri çalıştırdı. Temsil edilen ürünler dokuz farklı virüs tarayıcısı, bir dizi dosya şifreleme aracı ve bir disk kota yöneticisi içerir. Fest'in amacı, farklı filtre kombinasyonlarıyla ilişkili birlikte çalışabilirlik sorunlarını belirlemek, ana filtre ürünlerinde hataları bulup tanımlamaya yardımcı olmak ve hatta Win2K'de bir hata bulmaktı. Filemon dünyanın en yaygın kullanılan filtrelerinden biri olduğundan ve Microsoft'un gruplarının çoğu geliştirme ve sorun giderme çalışmaları için buna güvendiğinden, plugfest düzenleyicileri beni etkinliğe gelmeye ve temsil etmeye davet etti.

Filemon, biri dışında tüm stres testlerini olay olmadan geçti. Filemon dinamik olarak yüklenmiş bir filtre sürücüsü olduğundan, etkinlikte bulunan ürünlerden biri dışında katmanlanır. Filemon'un üzerine katmanlanan ürün, aynı zamanda dinamik olarak yükleyen bir virüs tarayıcısıdır, aslında Filemon tabanlı bir üründür. Virüs tarayıcısı dinamik olarak yüklendiğinden her iki katmanlama permütasyonunu da denedik ve Filemon'un altta olduğu yerde virüs tarayıcısının kilitlenmesine neden oldu. Filemon'ın GUI'sinde çıkış yapıldığında sürücüsü filtre cihazı nesnelerini silerdi. G/Ç Yöneticisi'nden bunu yapmanızı söyleyen bir komut almadığı sürece (FastIoDetach dosya sistemi filtrelerinde ve IRP_MJ_PNWDM'de P ile IRP_MN_REMOVE_DEVICE ) filtre sürücüsünün filtre cihazı nesnesini silmesi gerçekten geçersizdir. Şaşırtıcı olmayan bir şekilde, Filemon'un cihaz nesnelerinin beklenmedik şekilde kaybolması, virüs tarayıcısının serbest bırakılmış belleğe erişmesine ve kilitlenmesine neden oldu.

Neyse ki, Filemon'un kilitlenmesi plugfest'in son oturumunda meydana geldi, bu yüzden minimum utanç yaşadım ve testte her üründe en az bir ciddi hata veya birlikte çalışabilirlik sorunu bulunduğundan yalnız değilim. Filemon v4.26, plugfest'te bulunan hatayı düzelten sürümdür.

Plugfest'e katılmadan önce bile Filemon'da NT cihazı ve dosya sistemi sürücüsü geliştiricilerinin ilgisini çekebilecek bir hata buldum. Kısa süre önce DosyaMon'da kötü belgelenmiş Yönetici Kaynağı (E-Kaynak) eşitleme mekanizmasını kullanacak şekilde değiştirdim. Microsoft'un dosya sistemi sürücüleri E-Kaynakları yoğun olarak kullanır, bu nedenle bunların Filemon'un kaynak koduna kullanılmasının eğitim amaçlı olacağını düşündüm. E-Kaynaklar, APC'ler (Zaman Uyumsuz Yordam Çağrıları) devre dışı bırakılmış iş parçacıkları tarafından alınmalıdır. Bunu "bilmeniz" gerekir çünkü DDK belgeleri size söylemez. Ne yazık ki, uygulama süresinde, Filemon'un E-Kaynak alımları etrafında API'leri devre dışı bırakmaya ve yeniden etkinleştirmeye yönelik işlevlere yönelik gerekli çağrıları atladım. Bu hata yalnızca çok nadir durumlarda sorunlara neden oluyor, bu yüzden Win2K'nin Sürücü Doğrulayıcı'sı bunu benim için yakalayana kadar algılamadım. Sorunu çözmek için E-Kaynak edinmeden önce KeEnterCriticalSection'a bir çağrı ekledim ve bir E-Kaynağı serbest bıraktıktan sonra KeLeaveCriticalSection.

Filemon v4.26 sürümünü şu konumdan indirin: http://www.sysinternals.com/filemon.htm.

BLUESCREEN V2.1

Mavi Ekran Ekran Koruyucu, korkunç Windows NT Blue Screen of Death (BSOD) simülasyonunu gösteren, yazdığım bir ekran koruyucudur. Win2K sürümleri kullanıma sunulmadan önce özgün sürümü yazdım, bu nedenle NT 4 BSOD ve yeniden başlatma simülasyonunu yaptım ve Chkdsk disk hatalarını algılıyor. Kullanılabilir iki sürüm yaptım: biri ek gerçekçilik için disk G/Ç'sini gerçekleştirmiş, diğeri ise gerçekleştirmemiş. Win2K Beta 3 çıktıktan sonra Yeni Win2K BSOD ve sistem yeniden başlatma simülasyonu yapmak için Mavi Ekranı güncelleştirdim. RC3'te yeniden başlatma ekranı değişti, bu yüzden Bluescreen'i yeniden güncelleştirmem gerekti. Aynı zamanda disk G/Ç oluşturma işlemini iki sürüme sahip olmak yerine Bluescreen'in ekran koruyucu özellikleriyle yapılandırılabilir bir seçenek haline getirdim.

Bluescreen v2.1 sürümünü şu konumdan indirin: http://www.sysinternals.com/bluescrn.htm.

FUNDELETE V2.01

Uzun ve uzun bir bekleyiş sonrasında Windows NT için Undelete hizmetimiz, Windows NT için Fundelete olarak geri döner. Fundelete, Windows NT/2K Geri Dönüşüm Kutusu'nu, programlardan ve komut satırından silinen dosyaların yanı sıra Gezgin'den silinen dosyaları yakalamak için geliştiren bir yardımcı programdır. Ad neden değişiyor? Bryce ve ben Windows NT için Undelete'i yayımladıktan birkaç ay sonra, Executive Software benzer bir yardımcı program olan Network Undelete'i yayınladı. Bir yıl sonra yardımcı programımızın adını kendilerinden daha çok sevdiklerine karar verdiler, bu nedenle windows NT için undelete olarak değiştirdiler. Aynı zamanda avukatları bize 1987'den beri yaptıkları "geri alınmamış" kelimesinde kayıtlı ticari markayı ihlal ettiğimizi belirten bir mektup gönderdiler. Savaşmak yerine yardımcı programımızın adını değiştirdik.

Geliştiriciler kaynak kodunu Fundelete'in cihaz sürücüsünün çekirdeğine indirebilir. Bu, bir sürücüden kullanıcı SID'si alma, bir dizinin içeriğini bir sürücüden listeleme ve yeni IP'ler oluşturma gibi bazı güçlü sürücü tekniklerini gösterir.

Windows NT v2.01 için Fundelete'i adresinden indirin http://www.sysinternals.com/fundelete.htm.

OPENLIST V1.11

Openlist, sistemde açılan tüm dosyaları gösteren bir Windows 9x yardımcı programıdır. Sürüm 1.11, DLL'ler için sürüm bilgileri de dahil olmak üzere dosyalar hakkındaki ayrıntılı bilgileri görüntülemenizi sağlar.

Openlist v1.11'i şu konumdan indirin: http://www.sysinternals.com/openlist.htm.

ARALıK "NT INTERNALS"

Windows NT Magazine'in Aralık sayısında yer alan "NT Internals" sütunum "Inside Win2K Scalability Enhancements, Part 2". İki bölümden oluşan serinin bu ikinci bölümünde, Microsoft'un İş nesnesi, yeni kuantum denetimleri, yeni zamanlama sınıfları ve kullanıcı modu iş parçacığı havuzları gibi çok işlemcili ölçeklenebilirlik için Win2K'de yaptığı geliştirmeler açıklanmaktadır.

Geçen Ağustos'ta Windows NT Magazine, yalnızca abonelerin erişimine izin verilmesi için çevrimiçi makale gözatma ilkesini değiştirdi. Geçen ay politikayı Ağustos'un öncesine kadar gevşettiler. Artık abone olmayanlar, dörtten fazla eski sorun olan makaleleri serbestçe görüntüleyebilir.

Şu konumdaki yayınlarımızın tam listesine bakın: http://www.sysinternals.com/publ.htm.

İÇ HABERLER

WIN2K DDK YAYINDA

Microsoft'un Win2K Cihaz Sürücüsü Geliştirme Seti'nin (DDK) son sürümüne şu konumdan ulaşabilirsiniz: http://www.microsoft.com/ddk. Seti ücretsiz indirebilir veya belgelere on-line göz atabilirsiniz.

TUŞ VURUŞUYLA WIN2K'I ÇÖKME

Hayır, bu bir hata değil. "Inside Windows NT 2nd Edition" yazarı David Solomon bana bu harika ipucunu verdi. Registry değerini HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrolleklerseniz DWORD değerini "1" olarak ayarlar ve yeniden başlatırsanız, klavyeyi kullanarak Win2K'yi kilitleyebilirsiniz. Sağ denetim tuşunu basılı tutarken, kaydırma tuşuna ardı ardına iki kez basın. Kaydırma tuşuna ikinci kez basılırken sistem mavi ekrana "Son kullanıcı crashdump'u el ile oluşturdu" iletisiyle gösterilir.

Çekirdek veya cihaz sürücüsünün kilitlenmesi ve bilgisayarın artık yanıt vermemeye başladığı durumlarda sistemlerin el ile kilitlenme özelliğine sahip olmak yararlıdır. Kilitlenme mevcutken oluşturulan kilitlenme dökümü, geliştiricilere kilitlenmenin nedenini gösteren bilgiler sağlayabilir. Bu seçenek o kadar sessiz bir şekilde tanıtıldı ki, ben plugfest'teyken yanından geçene kadar Win2K'nin çekirdek geliştiricileri bile farkında değildi.

YAZMA KORUMALı SISTEM BELLEK GÜNCELLEŞTIRMESI

Önceki bir bültende Win2K'de yeni bir güvenilirlik özelliği olarak yazma korumalı sistem belleği hakkında konuştum. Sonuç olarak, birçok yapılandırmada tam yazma koruması varsayılan olarak mevcut değildir. Bir bilgisayarda en az 128 MB fiziksel bellek varsa Win2K, çekirdek belleği eşlemek için 4 MB "büyük sayfalar" kullanır. 4 KB sayfa yerine 4 MB kullanılması sayfa çevirisi düzeyinde tasarruf sağlar ve bu nedenle performansı artırır. Hem salt okunur kod hem de okuma/yazma verileri aynı 4 MB'lık sayfada bulunabileceğinden, kullanıcı Sürücü Doğrulayıcı kullanarak yazma koruması istemediği sürece bu sistemlerde yazma koruması devre dışı bırakılır. Sürücü Doğrulayıcı yazma koruması uygularsa Win2K, çekirdek belleğini eşlemek için daha yavaş 4 KB sayfalar kullanır. Farklı bellek bölgeleri sayfaya hizalanır ve bu da tek tek kod sayfalarını salt okunur olarak işaretlemenin uygun olduğu anlamına gelir.

Bu nedenle, yazma koruması yalnızca 128 MB'tan az belleğe sahip sistemlerde ve Sürücü Doğrulayıcı'nın etkinleştirdiği sistemlerde etkindir. Yazma korumasının etkin olmadığı sistemler için Microsoft, sistem belleğini denetleyen ve ardından sağlama toplamına göre belleği düzenli aralıklarla doğrulayan bir watchdog tesisinin Win2K hizmet paketine dahil edilmesini düşünmektedir. Doğrulama işlemi, donanım destekli yazma koruması kadar hassas olmasa da, salt okunur olması gereken alanlara hatalı yazma işlemleri algılar.

WIN2K API'SINDE PATLAMA

Win2K' nin nt 4'ten önemli ölçüde daha büyük olduğu kesindir. Win2K'nin boyutunun (Active Directory, MMC, COM+ vb.) bir parçası olarak sayılan birçok yeni hizmet ve tümleşik özellik vardır ancak çekirdek işletim sistemi bile büyüdü. İşletim sisteminin boyutunun artmasının bir nedeni, uygulamalar için dışarı aktardığı API'lerin sayısının artmasıdır. Win2K çekirdek işletim sistemi DLL'leri KERNEL32.DLL, GDI32.DLL, USER32.DLL ve ADVAPI32.DLL içerir (NTDLL.DLL aynı zamanda çekirdek işletim sistemi DLL'leridir, ancak KERNEL32 Win32 API'leri için NTDLL'ye dayanır). Şimdi her birinde API patlamasına hızlıca göz atalım. Ham sayılar şunlardır:

LIBRARY NT 4 SP5 WIN2K BÜYÜME
KERNEL32 681 823 %21
GDI32 Kategori 401 553 %38
KULLANICI32 629 695 %10
ADVAPI32 Kategori 401 557 39%

Bazı API'ler hem ANSI hem de geniş dize biçimlerinde geldiğinden ve bu nedenle yukarıdaki sayılarda iki kez sayıldığından, bazı durumlarda büyümenin yapay olarak %30'a varan oranda şişirildiğini unutmayın.

KERNEL32 işlem, bellek, dosya G/Ç ve yerel ayar yönetimi API'leri gibi "temel işletim sistemi" işlevi olarak adlandırılan işlevleri dışarı aktaran DLL'dir. Win2K'ye yeni eklenen API'ler yeni dil işlevleri (ör. EnumUILanguages), İş Nesnesi işlevleri (ör. AssignProcessToJobObject), bellek yönetimi işlevleri (örn. AllocateUserPhysicalPages), dosya işlevleri (örn. FindFirstVolume) ve ToolHelp32 API'leri (örn. Process32First) içerir.

GDI32, çizim ve bit eşlem ile ilgili yordamlar sağlar. Büyümesi, çoğunlukla yeni yazı tipi yönetimi API'leri (ör. CreateFontIndirectEx), alfa karıştırma ve yol-nesne işlevlerini içeren çeşitli yeni işlevlerin ortaya çıkmasından kaynaklanır.

USER32 pencereleme işlevlerini uygular ve büyümenin önemli bir kısmı yeni çoklu monitör API'leridir. Diğer yeni USER32 API'leri bir dizi bilgilendirici işlev içerir (örn. GetWindowInfo, GetTitleBarInfo).

Son olarak, ADVAPI32 gelişmiş Win32 API'leri sağlayan DLL'dir. Büyümesine katkıda bulunan birkaç yeni API grubu vardır: EFS (örn. DecryptFile), CryptoAPI (örn. CryptEnumProviders), güvenlik (örn. CheckTokenMembership), olay izleme (örn. StartTrace) ve Windows Yönetim Arabirimi ( WmiOpenBlockWMI) yeni işlevlerin büyük bir kısmını oluşturur.

DAVID SOLOMON SEMINERLERI

David Solomon Uzman Seminerleri 21-25 Şubat'ta San Diego'ya geliyor. Microsoft'ta öğretmenlik yapan kişiler tarafından geliştirici eğitimi.

  • Win32 Programming by Jeffrey Richter
  • John Robbins Tarafından Power Debugging
  • Windows 2000 Cihaz Sürücüleri: Jamie Hanrahan
  • Doug Boling Tarafından Windows CE Cihaz Sürücüleri ve Uygulamaları

Ayrıntılar için bkz. http://www.solsem.com

YAKLAŞANLAR

Yazılım patenti, fikri mülkiyetlerinden yararlanmak isteyen şirketler için gerekli bir eğlence haline gelmiştir. Microsoft, patent oyununa yabancı değildir ve NT'nin çekirdeği, ABD Patent ve Ticari Marka Ofisi (PTO) tarafından değerli olarak kabul edilen birkaç mekanizmaya sahiptir. Microsoft'un patent aldığı çekirdek alanları G/Ç Yöneticisi ve Nesne Yöneticisi'ni içerir. Bir dahaki sefere nt çekirdeğini araştırabildiğim patentlerin listesini vereceğim.


Systems Internals Bülten'i okuduğun için teşekkür ederiz.

Yayın tarihi: 06 Ocak 2000 Perşembe 19:09 ottoh

[Bülten Arşivi ^] [< Birim 1, Sayı 5] [Birim 2, Sayı 2 >]