Əməliyyat Sistemləri necə debug edilir?

Salam.

Çox qısa müddətdir əməliyyat sistemlərinin necə hazırlanması ilə maraqlanıram. Təbii ki, buna səbəb ağlımda əməliyyat sistemi ilə bağlı çoxlu sualların yaranmağıdı. Bu, adi bir proqramist üçün bəlkə də maraqlı deyil, ona hazır tool-ları və öz IDE-sini işlətməyi bilmək kifayət edir. Ancaq mənim üçün maraqlıdır. Elə ilk ağlıma gələn suallardan biri bu oldu: “Görəsən, əməliyyat sistemləri (əsasən kernel) necə debug edilir?”


Yadda saxlama
Kateqoriya: Sual . , , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (2 cavab var)

(15:55, 10/03/2017 ) #67789

Əməliyyatlar sistemi debug edilir deyəndə – Ə.S. çox müxtəlif proqram paketlərindən ibarətdir. Kernelin ayrı yeri var əlbəttə. Ə.S. -ə daxildir hər cür istifadəçi proqramları, İDE -lər, kitabxanalar (itifadəçi), server proqramları, əmrlər, Grafik mühitlər (oboloçka) v.s. Kernel + drayverlər Ə.S. -in əsas komponentidi. Debug eləməyə gələndə Windowsda bu məsələlər qapalıdı. Linuxda ama istədiyiniz kimi kerneli debug eliyə bilərsiz. Bir neçə qaydası belədi: Ən sadəsi printk -lar. Nüvə kodunun istənilən yerinə printk yerləşdirirsiz və sistem yüklənən vaxtı, ya yükləndikdən sonra onları (dmesg əmri ilə) oxuyursuz. Linux virtual /proc fayllar sistemi yaradıb sırf bu debug məqsədilə hansısa məlumatı virtual fayl sisteminə yazmaq üçün. Kerneldən disk faylına yazmaq Linuxda məqbul hesab olunmur.
İkinci debug üsulu GDB -dən istifadə etməkdir. GRUB bootloader confiqurasiya faylında nüvənin yüklənmə sətrində GDB-yə attach əmri parametrləri yerləşdidirsən misal üçün hansı serial portdan v.s. nüvə yüklənən zaman müəyyən təyin olunmuş nöqtədə gözləyir ki GDB ilə ona attach olunsun. Daha sonra idarəetmə GDB ilə aparılır. Amma burda çoxlu buglar mövcuddur.
Üçüncü üsul Linux built in debuggerdən istifadə etməkdir. Sistem yüklənəndən sonra xüsusi əmrlərin köməyi ilə debugger kansola daxil olursan. Amma bu da mükəmməl üsul deyil.
Dördüncü üsul modullardan istifadə etməkdir. Modulları sistem yükləndikdən sonra xüsusi əmrlərlə (insmod) nüvəyə yükləyib orada icra eləmək, nüvəyə aid məlumatları oxumaq mümkündür. Bu daha münasib üsuldur.
Beşinci üsul kernel dump-dır – Kdump. Burada mexanizm belədir. Yenə GRUB konf faylda nüvənin yüklənmə sətrində crash_kernel barədə parametrlər verilir. Sistemdə crash olanda (süni olaraq bunu panic() funksiyasını çağırmaqla eləmək olar) yaddaş – RAM dump olur – yəni bir fayla yazılır, sistem özü isə crash kernelə boot eliyir. Krash kernelin təkcə vəzifəsi yaddaşın dump faylını köçürməyə kömək etməkdir. Daha sonra GDB ilə offline həmin bu dump faylını debug eləmək olar.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(16:43, 10/03/2017 ) #67790

Çox sağolun. Aydın oldu.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (2 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (2 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (9 gün əvvəl)

Software Developer cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (9 gün əvvəl)

Triste cavab verdi - Google Adsense vergi (9 gün əvvəl)

E. Hacı cavab verdi - Xif mn kodu (17 gün əvvəl)

Khagrov cavab verdi - Axtardığım mahnını tapa bilmirəm kömək edin (35 gün əvvəl)

E. Hacı cavab verdi - Dünəndən Kompüterlə Twitter/X və Pinterest -ə girə bilmirəm. (43 gün əvvəl)

orkhanrza cavab verdi - AZ9095də bağlama qalıb (48 gün əvvəl)

Ismayil1997 cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (56 gün əvvəl)

revan orucov cavab verdi - Bakıda evə 100mbps+ internet verən provayder var? (60 gün əvvəl)

E. Hacı cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (62 gün əvvəl)

Jurnalist cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (62 gün əvvəl)

asssa1 cavab verdi - Riyazi proqramlar üçün proqram (64 gün əvvəl)

Aleks cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (70 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23289 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024