[Bülten Arşivi ^] [< Birim 3, Sayı 2] [Birim 4, Sayı 2 >]
The Systems Internals Newsletter Volume 4, Number 1
http://www.sysinternals.com
Telif Hakkı (C) 2002 Mark Russinovich
7 Ocak 2002 - Bu sorunda:
EDİTORYAL
SYSINTERNALS'DEKI YENILIKLER
- Eşitleme v2.1
- DiskExt v1.0
- NTFSDOS v3.02
- PsSuspend v1.2
- PsLogList v2.2
- PsInfo v1.2
- PsExec v1.3
- BgInfo v2.0
- İşlem Gezgini v5.2
- Win64/Itanium için Filemon v4.34
- Linux için Filemon v1.1
- Microsoft'ta Sysinternals
İç BİlGİLER
- Windows 2000'in içinde, Etkileşimli DVD
- Windows 2000/XP içinde: Seminer
- Windows XP Bildirim Dosyaları
- X-Box'ta ne var?
- Rastgele Windows XP İstatistikleri
- Yeni Geliştirilmiş Windbg
YAKLAŞANLAR
- Windows XP önyükleme işleminin profilini yapmak için BootVis kullanma
SPONSOR: WINTERNALS SOFTWARE
Sysinternals Bülteni, Winternals Software sponsorluğunda, web'de şu konumdadır: http://www.winternals.com. Winternals Software, Windows NT/2K/XP için gelişmiş sistem araçlarının önde gelen geliştiricisi ve sağlayıcısıdır. Ürünleri arasında ödüllü Administrator's Pak, ERD Commander 2000 ve NTFSDOS Professional Edition bulunmaktadır.
Winternals, kullanılabilir en hızlı, en kapsamlı kurumsal birleştirici olan Defrag Commander sürüm 1.32'yi duyurmaktan gurur duyar. Artık NT veya Windows 2000 sistemlerinize herhangi bir istemci yazılımı yüklemenize gerek kalmadan tüm Windows kuruluşunuzdaki birleştirme zamanlamalarını basit bir MMC ek bileşeninden yönetebilirsiniz. Yalnızca 169 ABD doları karşılığında çevrimiçi satın alma için 10 sistem lisansı ve agresif miktar indirimleri mevcuttur. Daha fazla bilgi için veya 30 gün boyunca ücretsiz indirip kullanmak için ziyaret edin http://www.winternals.com/39 .
Herkese merhaba,
Sysinternals bültenine hoş geldiniz. Bültenin şu anda 34.000 abonesi var. Lütfen bülteni içeriğiyle ilgilenebileceğini düşündüğünüz arkadaşlarınıza iletin.
Microsoft'un amiral gemisi işletim sistemi Windows XP, Ağustos ayının sonlarında "altın" oldu. Windows XP, 1993'te Windows NT 3.1 ile başlayan Windows NT hattının en son sürümüdür ve son sekiz yılın teknolojik evrimlerini ve yeniliklerini temel alır. İşletim sistemi kesinlikle işlevselliği ve özellikleri açısından son teknoloji temsil eder, David Solomon ve ben araştırma ve Aralık MSDN Dergisi makalesinde hakkında yazdık "Windows XP: Çekirdek Geliştirmeleri Daha Sağlam, Güçlü ve Ölçeklenebilir İşletim Sistemi Oluşturma" ( http://www.msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/XPKernel.asp ).
Milyonlarca yüklü Windows NT ve Windows 2000 sistemi ve yüz binlerce veya milyonlarca beta test cihazıyla Microsoft'un Windows XP'yi neredeyse kusursuz bir şekilde çalışacak şekilde ayarlamasını, ayarlamasını ve düzeltmesini beklersiniz. Sonuçta, reklamları XP'yi "neredeyse kilitlenme kanıtı" olarak tanıtıyor. Kesinlikle problemle karşılaşacak bir şey beklemiyordum ama yanılmışım.
WINDOWS 2000 Professional'ı XP beta ve sürüm aday döngüsü boyunca birincil sistemimde işletim sistemi olarak tuttum. Windows 2000 geliştirme döngüsünden, son bitlere yükselttikten sonra adayların bile hata ayıklama cruft'unu geride bıraktıklarından haberim vardı. Beta programından son sürüm olan 2600 derlemesini aldığımda hareket etme zamanı geldi. XP uyumluluk sihirbazı, Windows 2000 sistemimde yalnızca küçük sorunlar buldu (örneğin, yüklediğim Bölüm Büyüsü sürümü XP NTFS'yi anlamamıştı) bu yüzden yükseltme yoluna devam ettim.
Metin modunda çalıştırdıktan ve kurulum dosyalarını sabit diskime yükledikten sonra, yükseltmeyi grafik modunda tamamlamak için XP Kurulumu kısmen yükseltilen Windows XP yüklememde yeniden başlatıldı. Bu modda yerel ayar ve saat dilimi ayarlarını belirtirsiniz, Kurulum cihaz algılama gerçekleştirir ve ağınızı yapılandırabilirsiniz. "Cihazları Yükleme" aşamasına kadar işler sorunsuz gitti. İlerleme çubuğu yaklaşık 3/2'ye geldiğinde ve Kurulum kalan sürenin 34 dakika olduğunu bildirdiğinde, Kurulum üretken olmayı durdurdu. "XP şimdiye kadar size dokunan en iyi şey" başlıkları alternatif olarak devam etti ve sağ alttaki küçük yanıp sönen düğmeler dönmeye devam etti, ancak iki saat sonra bile 34 dakikam kaldı.
İşte o zaman endişelenmeye başladım. Kurulumun yeniden denemesine izin vermek için yeniden başlatma, BIOS'u güncelleştirme, MS Bilgi Bankası'nı denetleme (hiçbir şey) dahil olmak üzere, sorunu aşmak için her şeyi denemek için birkaç çılgın saat sonuç vermemiş. Sonunda pes ettim, yarım Windows 2000-yarım Windows XP yüklemesini kazıdım ve yeni bir XP yüklemesi gerçekleştirdim, günün daha iyi bir kısmını kullandığım birkaç düzine uygulamayı yeniden yükleyerek geçirdim.
Yeni XP yüklememle ilgili şeyler iyiydi. Açıklanamayan kilitlenmeler, GUI flakiness ve başka garip sistem davranışları ile hayal kırıklığına uğramadım demek değil, ama en azından üretken olabilirim. Beta program CD'sinin bir deneme CD'si olduğunu ve MSDN aracılığıyla aldığımda tam sürüme yükseltmem gerektiğini biliyordum, ancak bunun sorun olmamasını bekliyordum.
Durdurulan yükseltmemden tam olarak 120 gün sonra (deneme sürümünün zaman aşımı, tesadüfi değil) inanılmaz bir déjà vu hissi yaşadım. Denemeden tama yükseltme aslında tam yükseltme işlevi görür ve (tahmin ettiğiniz gibi) 34 dakika kaldı ve "Cihazları Yükleme" Kurulumu ilerlemeyi durdurdu. Bir kez daha sistemim, diğer dünyanın ortasındaydı, tamamen kullanılamaz durumdaydı. 120 gün önce denediğim tüm şeyleri denedikten sonra, kendimi başka bir tam yeniden yüklemeye istifa ettim.
Sonra başka bir sorunla karşılaştım: MSDN XP CD'sinin önyüklenebilir olmaması, hem Home hem de Professional alt dizinlerine sahip olmasıdır. Tek bir işletim sistemi yüklemem (Kurulum tarafından bozulan) olduğundan, KURULUMUn Win32 sürümünü MSDN CD'sinden çalıştıramadım ve sistemim yalnızca NTFS olduğundan DOS Kurulumunu çalıştıramadım. CD, Kurulum önyükleme flopları yapmak için bir yol sağlamaz. MSDN Abone İndirmeleri'nin Windows XP Professional'ın ISO görüntüsü olduğunu hatırladım, bu nedenle önyüklenebilir bir CD yazmak için bunu (başka bir sistem kullanarak) almaya gittim, ancak bu saldırı hattı "Dosya Aktarım Yöneticisi başlatılırken hata oluştu. Daha sonra yeniden deneyin." hata iletisiyle karşılaşırsınız.
Bu karmaşadan nasıl kurtulacağım? Durdurulan yükseltmenin Registry kovanlarını birkaç hafta önce yaptığım yedeklerle değiştirdim. Windows Ürün Etkinleştirmesi lisansımı doğrulayamadığından yeniden başlatmadan sonra sistemde oturum açamasam da güvenli modda önyükleme yapıp MSDN CD kurulumunu oradan çalıştırabilirim. Uygulamalarımı yeniden yüklemeyi bitirmek üzereyim ve yeniden üretken olabilirim.
Bana ne olduğu konusunda tamamen şaşırtıcı bulduğum şey (iki kez), Windows XP Kurulumu'nun Windows 95'ten bu yana Windows 9x Kurulumlarında mevcut olan temel güvenlik mekanizmalarına sahip olmamasıdır. Windows 95, 98 veya Ben Kurulumu çalıştırdıkça ilerleme noktalarını diske kaydeder. Kurulum beklenmedik bir şekilde kesintiye uğrarsa kaldığı yerden yeniden başlatılır ve "Cihazları Yükleme" aşamasındaysa kesintiye uğramadan önce çalıştırdığı son sürücüyü atlar. Bu şekilde, Kurulum yanıt vermemeye başlarsa sistemi yeniden başlatabilirsiniz ve Kurulum kilit noktası dışında ilerleme kaydeder.
Windows 2000 ve XP, Windows 9x satırından Güvenli Mod ve Sistem Geri Yükleme gibi bir dizi güzel özelliği ödünç almıştır. Keşke Windows 9x Kurulumu'ndan bazı şeyleri ödünç almış olsalardı.
XP'ye yükseltmeden bahsetmişken, mizah köşe yazarı Dave Barry atlamayı düşünüyor: http://www.miami.com/herald/special/features/barry/2002/docs/jan06.htm .
Teşekkürler!
-İşaret
SYSINTERNALS'DEKI YENILIKLER
EŞITLEME V2.1
Önbelleğe alınan verileri diske geri boşaltan bir uygulama olan "Sync", Unix sistemlerinde temel bir sistem yardımcı programıdır ve birkaç yıl önce Windows NT/2000/XP için Eşitleme'yi yazdım. Medyayı çıkarmadan önce değişikliklerin okuma/yazma çıkarılabilir medyaya yansıtıldığından emin olmak, Eşitleme'nin yapmanızı sağladığı bir şeydir. Ayrıca, geliştirmekte olduğunuz bir sürücüyü çalıştırmadan önce çalıştırdığınızda sistemi kilitleyebilecek disk bozulmasını en aza indirmek için de yararlıdır. Birisi yakın zamanda Eşitleme'nin temizleme sonrasında medyayı çıkarma seçeneği varsa bunun iyi olacağını önerdi, bu nedenle v2.1'de kullanıma sunulmuştur.
Eşitleme v2.1'i şu konumdan indirin:
http://www.sysinternals.com/ntw2k/source/misc.shtml
DISKEXT V1.0
Bu bültende ele alınan diskle ilgili başka bir araç da diskin sürücü harfini, birimi oluşturan bölümlerin konumlarını size bildiren bir komut satırı uygulaması olan DiskExt'tir; çok bölümlü birimlere yayılmış, yansıtılmış ve şeritli birimler dahildir. DiskExt ayrıca, içerdiği kesimler açısından listeledikleri bölümlerin konumunu da bildirir.
Tam kaynak kodu ile DiskExt v1.0'ı indirin:
http://www.sysinternals.com/ntw2k/source/misc.shtml#diskext
NTFSDOS V3.02
Sysinternals'ı (NTFSDOS'un yayınlandığı sırada "Ntinternals") yüz binlerce kullanıcının bilgisayarına başlatan yardımcı program NTFSDOS, DOS'un NTFS sürücülerini okumasına izin verir. Windows XP NTFS disk içi yapısında küçük bir değişiklik, XP uyumluluğu için NTFSDOS'ta bir değişiklik yapılması gerekiyordu.
NTFSDOS v3.02 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml
PSSUSPEND V1.2
Başka bir şey çalıştırabilmek için hiç ağ indirmeyi, disk aramasını veya yoğun kaynak kullanan başka bir uygulamayı geçici olarak askıya almak istediniz mi? Askıya alma, Windows NT/2000/XP'deki yönetim araçlarından büyük ölçüde eksik olan bir işlem yönetimi özelliğidir. PsTools araç kümesine en yeni ekleme, işlemleri askıya alan ve sürdüren bir yardımcı program olan PsSuspend'dir. PsTools paketindeki diğer tüm araçlar gibi, PsSuspend de yerel sisteme veya uzak bir sisteme yönlendirebileceğiniz bir komut satırı aracıdır.
Windows NT/2000/XP'de askıya alma işlemi özelliği olmadığından (XP'de vardır, ancak Win32 API'siyle kullanıma sunulmaz), PsSuspend Win32 SuspendThread ve ResumeThread API'leriyle hedef işlemde çalışan iş parçacıklarını askıya alır ve sürdürür.
PsSuspend v1.2 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/pssuspend.shtml
PsTools paketinin tamamını şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSLOGLIST V2.2
PsTools paketini oluşturan araçlar, kullanıcı geri bildirimlerine göre sürekli olarak gelişir ve PsLoglist diğer yardımcı programlardan daha fazla özellik isteği oluşturmştur. Bu son sürüm, kaydedilen olay günlüğü dosyalarındaki kayıtların dökümünü alma, tek satır biçimli sınırlayıcıyı virgülden başka bir şeye değiştirme (olay günlüğü metninin virgül içerdiği durumlar için), belirtilen tarih aralıklarındaki kayıtları döküm etme ve olay türüne göre filtre uygulama (hata, uyarı veya bilgi) gibi çeşitli geliştirmeler sunar. PsLoglist daha önce olduğu gibi yerel veya uzak sistem olay günlüklerini döküm edebilir ve işlemini denetlemek için birçok farklı seçeneğe sahiptir.
PsLoglist v2.2 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml
PsTools paketinin tamamını şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSINFO V1.2
Kullanımdan kaldırılmış bir PsTools yardımcı programı, yerel veya uzak bir sistemin çalışma süresini bildiren bir uygulama olan PsUptime'dır. Bu bilgilerin kullanışlı olmamasından değil, ancak PsTools, PsInfo'ya göre yeni gelen tarafından görüntülenmesi daha uygundur. Bu nedenle, PsInfo v1.2 artık işletim sistemi sürümü, işlemci hızı, bellek boyutu, düzeltme yüklemeleri, işletim sisteminin deneme sürümü olup olmadığı ve süresinin ne zaman dolacağı ve Windows XP'de Windows Ürün Etkinleştirmesi durumu gibi diğer bilgilerle birlikte sistem çalışma süresini bildirir.
PsInfo v1.2 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
PsTools paketinin tamamını şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSEXEC V1.3
PsExec, o sisteme herhangi bir yazılım yüklemeden uzak bir sistemde program çalıştırmanıza olanak tanıyan bir komut satırı yardımcı programıdır. Çalıştırdığınız programın bir komut satırı arabirimi varsa, PsExec bunu sizin için proxy'ler ve programı yerel olarak yürütüyor gibi etkileşimli olarak çalıştırmanıza olanak sağlar. Bu özellikler PsExec'i kullanışlı bir hafif uzak kabuk türü yardımcı programı haline getirir ve ipconfig gibi komut satırı programlarını uzaktan etkinleştirmeyi kolaylaştırır.
PsExec'in 1.3 sürümü, etkileşimli masaüstünde görünmeleri için uzak bir sistemde Windows uygulamalarını (komut satırı olanların aksine) başlatmanıza olanak tanır. Bunun nerede yararlı olabileceğine emin değilim, ancak bu işlev için birkaç istek aldım.
PsExec v1.3 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml
PsTools paketinin tamamını şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
BGINFO V2.0
Birden fazla sistemi yönetiyorsanız "sistem karışıklığı" hakkında bilgi edinirsiniz, bir makineye gittiğiniz (veya KVM'nizde buna geçiş yaptığınız) ve bilgisayarın adını, işletim sistemi sürümünü, yüklü hizmet paketini veya IP adresini unuttuğunuz bu zihin durumu. Tüm bu bilgilere çeşitli yönetim arabirimleri aracılığıyla erişilebilir olsa da, bu bilgilere erişmek zaman alabilir. Bryce Cogswell'in BgInfo'sunun devreye alındığı yer burasıdır: en önemli bulduğunuz sistem bilgilerini masaüstü arka planında görüntüler, böylece ihtiyacınız olan tüm bilgilere anında sahip olursunuz.
BgInfo'ya yönelik bu son güncelleştirme, bunu her zamankinden daha yapılandırılabilir hale getirir. Kayıt defteri anahtarında özel metin tanımlayabilir, masaüstü arka plan rengini veya bit eşlemini belirtebilir, arka planda metni bulabilir ve daha fazlasını yapabilirsiniz. Ancak büyük kuruluşlar için en kullanışlı özellik, BgInfo'nun ayarları kaydedip yükleyebilmesi ve hatta bunları bir veritabanına dışarı aktarabilmesidir. Bu özelliklerden birini kullanarak ayarları bir kez tanımlayıp yönettiğiniz tüm sistemlerde kullanabilirsiniz.
BgInfo v2.0 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml
İŞLEM GEZGINI V5.2
İşlem Gezgini, Görev Yöneticisi'nin bıraktığı yerden devam eden bir işlem görüntüleyicisi ve denetim yardımcı programıdır. İşlem Gezgini, kapsamlı özellik listesi arasında işlem oluşturma ağacını gösterir, işlemlerin açık olduğu tanıtıcıları görüntüler, işlemlerin yüklendiği DLL'leri listeler ve belirli bir dosyanın açık olduğu işlem veya işlemleri aramanızı sağlar.
İşlem Gezgini'nin önceki sürümleri hem Windows 9x hem de NT/2K/XP sistemlerinde çalışmıştır, ancak yalnızca 5.2 sürümünde İşlem Gezgini, Windows 9x sistemleri için işlem CPU kullanım bilgilerini gösterir. v5.2 için başka bir geliştirme, bir işlemin işlem özellikleri iletişim kutusunda açtığı GDI ve KULLANICI tanıtıcılarının (Win32 GUI kaynaklarının tanıtıcıları) sayısını bildirerek Windows XP ve 2000 sistemlerinde sızıntıları izlemeye yardımcı olur. Yaygın inanışın aksine, Windows 2000 ve XP'de bile bu tür kaynakların sayısı sınırlıdır: sistem genelinde 65.536 kullanıcı kolu sınırı ve işlem başına 16.384 GDI tutamaç sınırı vardır.
İşlem Gezgini v5.2 sürümünü şu konumdan indirin:
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
WIN64/ITANIUM IÇIN FILEMON V4.34
Microsoft, en popüler Sysinternals uygulamalarını Win64/Itanium'a taşımaya başlayabilmem için Intel'den erken bir Itanium kutusu ödünç verdi. Kutu etkileyici: 2 733 MHz işlemci ve 8 GB belleğe sahiptir. Filemon'a ilk bağlantı noktası uygulaması olarak karar verdim. Filemon bir Win32 (şimdi Win32/64) GUI ve bir cihaz sürücüsünden oluşur, bu nedenle iki farklı taşıma çalışması gerekiyordu. Bir derleyiciler arası kullanarak Windows NT, 2000 veya XP çalıştıran bir 32 bit sistemde hem Win64 uygulamaları hem de 64 bit sürücüler oluşturmanız biraz beklenmediktir.
Platform SDK'sının en son sürümleri (Microsoft'tan ücretsiz olarak indirilebilir: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) 64 bit Itanium derleyicisi ve bağlayıcısını, Win64 üst bilgi dosyalarını ve Win64 kitaplıklarını içeren alt dizinleri içerir. Ortamımı Win64 yürütülebilir dosyaları oluşturacak şekilde ayarlamak için şu basit toplu iş dosyasını yaptım:
@echo off
set PATH=D:\Mssdk\Bin\win64;%PATH%
set INCLUDE=D:\Mssdk\include\win64;D:\Mssdk\include\win64\crt
set LIB=D:\Mssdk\lib\ia64
echo 64-bit environment set.
Visual Studio'dan Win64 uygulamaları oluşturamayacağınızı, bunun yerine bunu komut satırından yapmanız gerekdiğini unutmayın.
Derleme sırasında karşılaştığım tek sorun birkaç küçük atama sorunu oldu. Sonra, sürücüyü ben yaptım. DDK'nin en son sürümleri (artık ücretsiz indirme olarak kullanılamaz), IA64 sürücü derleme ortamının yapılandırıldığı komut istemlerinin kısayollarını içerir. Sürücüyü 32 bit sürücü gibi 64 bit hedef ortamda oluşturmanız yeterlidir.
Derleyici bana bazı atamalar hakkında daha açık bir şekilde bilgi vermem gerektiğini bildirdi. Örneğin, Filemon'un işlemlere atadığı sıra numaraları s'tir ULONG
ve derleyici G/Ç Yöneticisi işlevine PVOID
IoSetCompletionRoutine
bağlam parametresi olarak geçirmek için 'a atamama izin vermez. Bunun yerine, önce ULONG_PTR
ve sonra PVOID
. Her durumda, birkaç dakika içinde sürücü hatasız olarak derlenmiş.
Ardından, 64 bit uygulamayı ve sürücüyü Itanium sistemine kopyalayıp çalıştırdım. Filemon GUI ortaya çıktı ve sonra kayboldu. Bu, neyin yanlış olduğunu bulmak için Win64 hata ayıklayıcısını kullanmam gerektiği anlamına geliyordu. Win64 hata ayıklayıcısı platform SDK'sında da gelir ve bunu 32 bit veya 64 bit makineden çalıştırabilirsiniz. Kaldırılmış bir Visual Studio hata ayıklayıcısı gibi görünür ve yalnızca uygulamayı çalıştırdığınız hedef bilgisayara bir hata ayıklama istemci parçası yüklediğiniz uzak modda çalışır.
Filemon'un kodunda yarım saat kadar adımladıktan sonra sonunda Windows yordamlarımın lparam parametrelerini şöyle LPARAM
bildirmesi gerektiğini fark ettim: 1996'da Filemon'un ilk sürümünü yazdığımızda SDK'dan kopyalanan bazı kodlar nedeniyle LONG oldu. İlginçtir ki, derleyici bundan şikayetçi değildi, ancak bir lparam olarak geçirilen tüm işaretçilerin kesildiği anlamına geliyordu. Bu, Filemon'un lparam parametresini yapı işaretçisi olarak yorumlayan WM_MEASUREITEM işleyicisinde ortaya çıktı. Filemon bu kodda hataya neden oldu.
Şaşırtıcı bir şekilde, Filemon'ın Itanium'da kusursuz bir şekilde çalıştırdığını düzelttiğim zaman. Bağlantı noktası için toplam süre: 1 saat.
Şimdi Regmon'ı taşıma üzerinde çalışıyorum ve debugview'ı bağlantı noktasına bağlayacak. Her ikisi de zorlayıcı olmalıdır, özellikle de oldukça alışılmışın dışında bir sürücüsü olan DebugView.
Filemon'ı tam kaynakla indirin: http://www.sysinternals.com/ntw2k/source/filemon.shtml
LINUX IÇIN FILEMON V1.1
Son birkaç ay içinde Sysinternals'ı ziyaret ettiyseniz, muhtemelen menü çubuğunda yeni bir giriş gördüğünüz için şoka girdiniz: Linux Yardımcı Programları. Doğru, Filemon'un Linux'ta çalışmasının oldukça düzgün olacağına karar verdim. Windows'da Borland'ın Delphi Hızlı Uygulama Geliştirme (RAD) ortamını zaten kullanmıştım, bu yüzden Kylix piyasaya çıktığında (temel olarak, Linux için Delphi) GUI'nin oldukça basit olacağını fark ettim.
Geriye kalan soru, dosya sistemi etkinliğinin nasıl kesildiğiydi.
Linux dahil olmak üzere Unix'in çoğu sürümü, bir işlemin hedef işlem tarafından yapılan tüm sistem çağrılarını kesmesini sağlayan adlı ptrace()
bir sistem çağrısı uygular. Dosya sistemi etkinliğini izlemek için kullanmayı ptrace()
dikkate aldım ve gelecekte Filemon'ı netleşecek ama buna karşı karar verecek nedenlerle kullanacak şekilde değiştirebilirim.
Kullanmanın ptrace()
dezavantajları, Filemon'un çalışan tüm işlemleri listelemesi ve her birinde bir ptrace()
yürütmesi gerekeceğidir. Ayrıca, yeni oluşturulan işlemlere de eklenmesi gerekir ve ptrace()
işlevsellik, yeni işlem tarafından yürütülen ilk sistem çağrılarının kaçırılmaması için bir yol sağlamaz. İzlenen bir işlem bir sistem çağrısı yürütürse işletim sistemi bunu engeller, izleme işlemine bir sinyal gönderir ve işlemin devam etmesine izin vermek için izleme işlemini bekler. Tüm dosya sistemi etkinliğini görmek istiyorsanız bu durum ciddi bir performans düşüşüne neden olabilir. Son olarak en büyük dezavantajı, izlenen işlemlerin davranışını değiştirmesidir ptrace()
. bunlar izlenirken, izleyici üst işlemdir, yani izlenen bir işlemin gerçek üst öğesi, alt işlemleri neden olduğunda normalde görecekleri bildirimleri görmez.
Windows NT/2000/XP'de G/Ç Yöneticisi'nin desteklediği gibi bir dosya sistemi filtre sürücüsü (Linux terminolojisinde yığılabilir sürücü) yazabilseydim, ancak geçerli Linux dosya sistemi mimarisi yığılabilir dosya sistemi sürücülerini desteklemiyor olsaydı iyi olurdu. Bunu desteklemek için uygulayabileceğiniz FiST adlı bir yama vardır (http://www.cs.columbia.edu/~ezk/research/fist/)ve Linux için bir izleme araç seti de (http://www.opersys.com/LTT/index.html) vardır, ancak her ikisi de son kullanıcıların çekirdeklerini yeniden derlemesini gerektirir, bu da kaçınmak istediğim bir şey. Regmon'un Windows'da çalıştığı gibi bir sistem çağrı kancası sürücüsü kullanarak izlemeyi uygulamaya karar verdim.
Projeyi Windows'da aynı şeyi yapmaktan daha zor hale getiren iki endişe vardır. Birincisi, Linux'un babası ve Linux çekirdek geliştirme direktörü Linus Torvalds'ın çekirdek hata ayıklayıcılarının kullanımına inanmamasıdır. Bunun nedenleri oldukça saçmadır (bkz http://www.lib.uaa.alaska.edu/linux-kernel/archive/2000-Week-36/0575.htm . Linus'un kendi açıklamasını okumak için) ve Linux çekirdeğinin Windows'a ayak uydurmada zorlanması birkaç nedenden biridir. Birkaç resmi olmayan çekirdek hata ayıklayıcısı vardır, ancak bunlar, çekirdeği düzeltme eki uygulamanızı ve kullanmak için biraz çaba harcamanızı gerektirir. İkinci endişe, Linus'un yeni çekirdekler sürümü olarak cihaz sürücüleriyle geriye dönük uyumluluğu garanti etmemesidir. Bunun sonucu, dışarı aktarılan herhangi bir çekirdek API'sinin aniden değişerek API'yi kullanan ve yeni çekirdekler için yeniden derlenmelerini gerektiren mevcut sürücüleri bozabilmesidir.
Yerleşik çekirdek hata ayıklayıcısının olmaması, hata ayıklama yazdırma deyimleri aracılığıyla hata ayıkladığım anlamına geliyordu (bir çekirdek hata ayıklayıcısını yükleyip öğrenmek gibi 's - çekirdek modu yazdırmaları aracılığıyla printk
hata ayıklamaya kadar zaman harcadığımı düşündüm) ve değişen çekirdek API'leri ve veri yapıları Linux için Filemon'un çekirdek bağımlı olduğu anlamına gelir. Daraltılmış Red Hat 7.1 ve 7.2 ve SuSE Linux 7.1 ve 7.2 ve muhtemelen diğer ticari dağıtımlarda çalışır, ancak sürücüyü rastgele çekirdek değişikliklerinden yalıtmak için henüz bir yol bulamadım (sürücünün erken bir sürümünü bozan, çekirdek işlevinin çağrı kuralının standarttan hızlı çağrıya değiştirilmesiydi).
Linux için Filemon, Windows'un karşılığıyla tam olarak aynı arabirime sahiptir ve oldukça benzer görünür (Linux için Filemon sayfasındaki ekran görüntüsüne bakın). Linux için genel çekirdek dışı bağımlı bir dosya sistemi filtresi geliştirmenin kolaylığı hakkındaki sonuçlarım net olmalıdır: imkansız değilse zordur. Buna karşılık, her sürücü etki alanındaki (ağ, dosya sistemleri, depolama, giriş vb.) yığılabilir (filtre) sürücüler en başından beri Windows NT G/Ç mimarisi tarafından destekleniyordu.
Linux için Filemon'ı şu konumdan indirin: http://www.sysinternals.com/linux/utilities/filemon.shtml
WWW.MICROSOFT.COM'DA SYSINTERNALS
Bir kez daha, son bültenden bu yana yayımlanan Microsoft Bilgi Bankası (KB) makalelerinde Sysinternals başvurularının en son yüklemesini bulabilirsiniz. Başlığında Filemon bile bulunanı not edin. Bu, Sysinternals için toplam KB başvurusu sayısını 31'e getirir. Tam döküme şu konumdan ulaşabilirsiniz: http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml
Kurulum Sırasında Önemli Özel Durum Hata İletisi Oluşuyor http://support.microsoft.com/support/kb/articles/Q273/9/18.ASP
FP2000: Veritabanı Sürücüleri için Tür Listesi Dosyaları Boş http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308935
NASIL YAPILIR: 1928 "COM+ Uygulamasını Kaydederken Hata Oluştu" http://support.microsoft.com/default.aspx?scid=kbhatasını giderme; EN-US; Q308940
PRB: ADO ile #import Kullanırken EOF ile Çakışma http://support.microsoft.com/support/kb/articles/Q166/1/12.ASP
PRB: CoFreeUnusedLibraries Çağrıldıktan Sonra DLL'ler Kaldırılmıyor http://support.microsoft.com/support/kb/articles/Q301/3/57.ASP
PRB: "Microsoft Jet Veritabanı Altyapısı '(Bilinmiyor)' Dosyasını Açamıyor" hatası 80004005 http://support.microsoft.com/support/kb/articles/Q306/2/69.ASP
PRB: FileMon DAO360.dll MSJet49.dll, MSJet48.dll ve Diğer MSJetxx.dll Dosyalarını Yükleyemediği Gösteriyor http://support.microsoft.com/support/kb/articles/Q306/3/86.ASP
SMS: Yazılım Envanteri Aracısı Geçersiz Sayfa Hatası Hata İletisi Oluşturuyor http://support.microsoft.com/support/kb/articles/Q302/6/51.ASP
İç BİlGİLER
WINDOWS 2000'IN IÇINDE, ETKILEŞIMLI DVD
Windows 2000'in windows 2000 dahili sürümleriyle ilgili etkileşimli DVD öğreticisi inside Windows 2000'in özel yayın öncesi fiyatlandırmasını kaçırdıysanız, iyi haberlerimiz var! Normal tek kullanıcı fiyatından %25'ten fazla kapalı olan 950 ABD doları giriş fiyatı hala kullanılabilir. ŞİmDİ SİPARİş VERİn veya David Solomon ve Mark Russinovich'in bu heyecan verici yeni ürünü hakkında daha fazla bilgi için şuraya gidin: http://www.solsem.com/dvd.html. İntranet akışı için bir ağ dağıtım biçiminde de kullanılabilir!
TARIHLERI IŞARETLEYIN: RUSSINOVICH & SOLOMON SEATTLE VE BOSTON'DA TEKRAR BIRLIKTE DERS VERIYOR
Geçen ay Austin'deki 3 günlük Windows 2000/XP dahili sınıfımız satışta başarılı oldu, bu nedenle iki teklif daha zamanlıyoruz: Seattle yakınlarında 17-19 Nisan ve Boston'da 12-14 Haziran (kayıt yakında açık olacak). sınıfı "Inside Windows 2000, 3rd Edition" tabanlıdır ve ortam alt sistemlerini, sistem çağrısı göndermeyi, sistem iş parçacıklarını, başlatma ve kapatmayı, kayıt defteri iç bileşenlerini, işlemleri ve iş parçacığı zamanlamasını, bellek yönetimini, güvenliği, G/Ç sistemini, depolamayı, NTFS'yi ve önbellek yöneticisini kapsar. Windows XP ve 2000'in iç çalışmalarını anlayarak platformdan daha etkili ve daha etkili bir şekilde hata ayıklama ve sorunları giderme avantajlarından yararlanabilirsiniz. Ayrıntılar için bkz. http://www.sysinternals.com/seminar.shtml
WINDOWS XP BILDIRIM DOSYALARı
Windows XP'deki en görünür değişikliklerden biri, Luna masaüstü tarafından sağlanan yeni görünüm ve histir. Luna aslında bir "tema"dır ve tema tanımayan bir uygulama çalıştırırsanız (Windows XP temalarından yararlanmak için özel olarak yazılmayan herhangi bir uygulama), uygulama eski Windows 2000 stilinde bir görünüme ve görünüme sahiptir. Bununla birlikte, kaynak kodunuz olmasa bile eski uygulamaların bile yeni görünüme çok kolay bir şekilde sahip olmasını sağlayabilirsiniz. Uygulama için, Windows XP yükleyicisine uygulamanın içinde tema tanımayan %SystemRoot%\System32
sürüm yerine Ortak Denetim sürüm 6 DLL'sini (içindeki comctl32.dll%SystemRoot%\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1 df_6.0.0.0_x-ww_1382d70a
) kullanmak istediğini bildiren bir XML bildirim dosyası oluşturmanız yeterlidir. İşlem Gezgini v5.2 temasının farkında olmasını sağlayan bildirim dosyası aşağıda verilmiştir:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Process Explorer"
processorArchitecture="x86"
version="5.1.0.0"
type="win32"/>
<description>Process handle and DLL viewer</description> <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Temaya duyarlı hale getirmek istediğiniz uygulamanın uygulama adını, sürümünü ve açıklamasını değiştirin ve ardından dosyayı, uygulamanın yürütülebilir dosyasıyla aynı ada sahip olacak şekilde kaydedin; örneğin procexp.exe.manifest ekli ".manifest" hariç. Uygulamanın geliştiricisiyseniz, işlem gezgininde yaptığım gibi bildirim dosyasını uygulamanın kaynaklarına ekleyebilirsiniz. Bunun nasıl yapıldığını gösteren bir örnek için DosyaMon'un kaynak koduna bakın.
X KUTUSUNDA NE VAR?
Konsol oyun dünyasını yakın zamanda takip ettiyseniz, Microsoft'un yeni X-Box konsolunun Windows 2000'in değiştirilmiş bir sürümünü çalıştırdığını neredeyse kesinlikle biliyorsunuzdur. Kitabımızın 4. sürümü için yakın zamanda Microsoft'ta windows XP araştırma gezisi yaparken, Dave Solomon ve ben Windows 2000/XP geliştirme ekibinden X-Box grubunun sürücü desteği için Windows 2000'e karar verdik. Karar verildikten sonra, X-Box geliştiricileri Windows 2000 kaynak ağacının bir kopyasını aldı ve Windows 2000/XP ekibi tarafından bir daha haber alınamayacak şekilde gitti.
X-Box, Windows 2000'in yalnızca 512 KB belleğe sığan yüksek oranda değiştirilmiş, kaldırılmış bir sürümüne sahiptir. İlgili olmayan tüm alt sistemleri kaldırmıştır (başlangıçta yalnızca sürücü yüklemesinin bağımlı olduğunu fark ettikten sonra geri eklemek için Tak ve Kullan alt sistemini çıkarmıştır), yalnızca bir işlem çalıştırır ve Win32 alt sistemi yoktur (yalnızca X-Box API'si). X-Box yalnızca 64 MB fiziksel belleğe ve sanal bellek desteğine sahip olmadığından, Windows 2000 Bellek ve Önbellek Yöneticileri kaldırılan iki alt sistemdir. Bu tür büyük değişikliklerle, bunu Windows 2000 değil yeni bir işletim sistemi olarak düşünmeniz gerekir.
X-Box, GameCube ve PS2 dahilileri hakkında daha fazla bilgi için bkz http://www.e-insite.net/ednmag/index.asp?layout=article&. ; articleid=CA185947&pubdate=12-20-01
RASTGELE WINDOWS XP İSTATISTIKLERI
Aşağıdaki istatistikler Microsoft tarafından OEM System Builder'ın web sitesinde (adresinden http://oem.microsoft.com ücretsiz kaydolabilirsiniz) yayımlandı ve bazılarını ilginç ve/veya eğlenceli bulabileceğinizi düşündüm.
Bu arada, Windows XP'nin son sürümünün derleme sayısı 2600'e denk gelmedi – biraz azaltıldı (derleme numarası, işletim sistemi derleme laboratuvarında her derlendiğinde (genellikle her iş gününde bir kez) artırılır). İç kaynaklar, bu sayının 2600 topluluğuna, gevşek örülen bir bilgisayar korsanı grubuna (http://www.2600.com/)XP ekibinin XP güvenliğine olan güvenini gösteren bir mesaj olarak) hedeflendiğini söylüyor.
- Windows XP'yi geliştirmek için geçen gün sayısı: 600 (20/12/99 – 24/8/01)
- Odaklanmış ekip üyesi sayısı: 5.736
- Geliştirici başına test edici sayısı: 1.4
- Proje sırasında doğan bebek sayısı: 452
- stajyer sayısı: 504
- 40 "Windows Bilgi Toplantıları" sırasında tüketilen makarna miktarı: 6.000 lbs
- Frappuccino'nun® hizmet sayısı: 86.400
- Seattle Ronald McDonald House (yerel yardım kuruluşu) için alınan dolar: 2 milyon DOLAR
- Sistem geri yükleme özelliği için test çalışması sayısı: 1,6 milyon
- Windows XP RC1'den bu yana çalıştırılan Direct3D grafik testi çalışması sayısı: 43.114.143
- Uyumluluk için test edilen uygulama sayısı: 5.500
- Kullanıma sunulan desteklenen cihaz sayısı: 12.000
- Windows XP ile uyumlu olacak son üç yılda dağıtılan en popüler bilgisayar uygulamalarının yüzdesi: %90
- En büyük Dijital Medya Kitaplığı test çalışması içindeki parça sayısı: 31.000
- Windows Movie Maker tarafından yakalanan en uzun tek dosyanın saat cinsinden uzunluğu: 114
- Yerelleştirdiğimiz dil sayısı: 24 tamamen & kısmen 9
- 25/10/25 tarihinde lansmana katılan ülke sayısı: 50'den fazla
- Dünya çapında lansman etkinliklerine katılan kişi sayısı: 580.000'den fazla koltuk ... artı çevrimiçi kitleler 5.120 dünya çapında sistem oluşturucuları
YENİ GELİşTİrİlMİş WINDBG
Windbg, Windows NT/2000/XP çekirdeğinde yerleşik olarak bulunan çekirdek hata ayıklama desteğinin grafik ön ucudur. Windbg, son birkaç yıla kadar flakey ve hantal olduğu için haklı olarak ün kazandı, ancak Microsoft bunu geliştirmeye odaklandığından beri bu durum değişti. 'den http://www.microsoft.com/ddk/Debugging/ücretsiz indirme olarak sunulan Windbg'nin en son sürümü, eski sürümlere göre büyük ölçüde geliştirilmiştir ve kullanımı daha kolaydır. Windbg kullanıcılarının bile farkında olmayabileceği bazı yeni özellikler ve sistem kilitlenmelerini tanılamaya çalışan sistem yöneticileri için yararlı olan iki komut vardır.
En son Windbg'nin kullanımını çok kolaylaştıran bir özellik, Microsoft'un sembol sunucusuna yönelik desteğidir. Windbg ile kilitlenme dökümlerine veya hata ayıklama uygulamalarına bakmayla ilgili bir sorun, yüklemeniz için doğru hata ayıklama simgesi dosyalarını yüklemiş olmanız gerektiğidir. Hizmet paketleri, düzeltmeler ve büyük olasılıkla farklı işletim sistemlerinden (örneğin, Windows NT ve Windows XP) kilitleniyorsa, bu tek yönlü olabilir. Sembol sunucusu desteğiyle, Windbg sembol yolu iletişim kutusuna Microsoft sembol sunucusunun URL'sini girmeniz yeterlidir ve Windbg isteğe bağlı olarak sunucudan sembolleri indirir ve bunları belirttiğiniz dizinde depolar. Sembol sunucusunda Windows .NET Server Beta 3, Windows XP ve XP sürüm adayları, Windows 2000 ve hizmet paketleri ile sık erişimli düzeltmeler, Windows NT 4, MDAC 2.1-2.7, IIS ve ISA için simgeler bulunur.
Kilitlenme dökümlerinde hata ayıklamak için yararlı olan iki komut:!analyze ve .dump. Bir kilitlenmenin -v
buluşsal özelliklerine göre otomatik analiz almak için !analyze (anahtarı belirtin) komutunu çalıştırın. Bu komut zaten oldukça güçlüdür ve Microsoft gerçek kilitlenmelerden daha fazla geçmiş veri içerdiğinden daha da doğru hale gelecektir.
.dump
komutu hem kullanıcı modu hata ayıklaması hem de çekirdek modu kilitlenme bilgi dökümü analizi için kullanışlıdır. Bazı sunucu ortamlarında, özellikle web sunucularında bir bellek sızıntısı veya başka bir sorun tanımlayabilirsiniz, ancak neden yalıtılana kadar sunucuyu durdurmak ve yeniden başlatmak istemeyebilirsiniz. Windows XP ve .NET Server'da Windbg kullanarak sunucu işlemine ekleyebilir, .dump komutunu çalıştırarak kullanıcı belleği kilitlenme bilgi dökümü dosyası oluşturabilir ve ardından sunucuyu yalnızca kısa bir süre duraklatarak ayırabilirsiniz (komutuyla .detach
). Ardından bir geliştirici oluşturulan döküm dosyasını alıp çevrimdışı olarak analiz edebilir.
Varsayılan olarak, Windows sunucu sistemleri bir sistemdeki fiziksel bellek miktarı kadar büyük olan ve bu nedenle çok büyük olabilecek bir tam bellek dökümü oluşturur. Ancak dökümü Windbg'ye yükleyebilir ve komutunu kullanarak tam dökümden daha küçük bir çekirdek belleği veya minidump oluşturabilirsiniz .dump
. Daha küçük dosyaların değişimi daha kolaydır ve genellikle kilitlenmenin nedenini yalıtmak için gerekenler bunlardır.
adresinden Windbg'nin http://www.microsoft.com/ddk/Debugging/en son sürümünü indirin ve adresinden Windbg'yi sembolleri alacak şekilde yapılandırma yönergelerini bulun http://www.microsoft.com/ddk/debugging/symbols.asp
YAKLAŞANLAR
WINDOWS XP ÖNYÜKLEME IŞLEMININ PROFILINI YAPMAK IÇIN BOOTVIS KULLANMA
Windows XP önyükleme işlemini ayarlamalarına yardımcı olmak için, Windows XP performans ekibi işletim sistemindeki önemli noktaları izlemiş ve önyükleme izlemelerini görüntülemek için BootVis adlı bir araç geliştirmiş. Şaşırtıcı bir hareketle aracı serbestçe kullanılabilir hale getirdiler. Kullanımı çok kolaydır ve sürücülerin ne zaman başlatıldığı, disk G/Ç'sinin ne zaman ve nerede oluştuğu ve hizmetlerin ve uygulamaların ne zaman başladığı hakkında bilgiler de dahil olmak üzere inanılmaz miktarda ayrıntı görüntüler. Bir dahaki sefere size nereden alabileceğinizi ve nasıl kullanacağınızı göstereceğim.
Sysinternals Bülteni'ni okuduğun için teşekkür ederiz.
Yayın tarihi: Pazartesi, Ocak 07, 2002 19:01 ottoh