Developing a minimal kernel with testing environment Starting Point Goals Development Results Hüseyin Uslu.

Slides:



Advertisements
Benzer bir sunumlar
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
Advertisements

Ahmet DERVİŞ Ahmet DERVİŞ LKD Seminerleri Linux Kullanıcıları Derneği
Anakartlar Sistemin merkezi bileşenidir.
TEMEL DONANIM (HARDWARE)
BİLİŞİM TEKNOLOJİLERİ
Bilgisayar – I Arş. Gör. Arif Solmaz (Oda: C36 Tel: 1249) E-posta: ? ?
Bilgisayar Programlama I
8259A Programlanabilir Kesme Denetleyicisi (PIC)
BİLİŞİM TEKNOLOJİLERİ
8 İKİNCİL DEPOLAMA CHAPTER
Windows işletim sistemi ve sürümlerinin incelenmesi
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Bilgisayar Yapısı-Genel
ENF 101 TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI
Bölüm 1: Introductions (Tanıtım,Tanım)
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
Windows Server 2012 R2 Hyper-V Yenilikler – Bölüm 1
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
Bilgisayara Giriş Doç. Dr. Mehmet S. İlkay.
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
BİLGİSAYAR VE BİLİŞİM SİSTEMLERİ
GİRİŞ/ÇIKIŞ SİSTEMLERİ
Akademik Bilişim 2002 Linux Çekirdeği Berk Demir.
Bilgisayara Giriş Uzm. Murat YAZICI.
BİLGİSAYAR MİMARİSİ (BİL 311)
DONANIM BİRİMLERİ.
Ders 2 Donanım Birimleri.
BİLGİSAYAR SİSTEMLERİ
JAVA’DA DİZİLER Dr.Galip AYDIN.
BİLGİSAYAR SİSTEMLERİ
Buildroot Kullanarak Etkin Gömülü Sistem Tasarımı
DEPOLAMA.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (2. Hafta)
TEMEL BİLGİ TEKNOLOJİLERİ KUL.
CACHE MEMORY Ersin ERSOY
İşletim Sistemleri Operation Systems Fon müziği.
TÜBİTAK Ufuk 2020 Enerji Verimli Binalar ve Sürdürülebilir İşlem Endüstrileri Konu Başlıkları Merve AKKUŞ Bilimsel Programlar Uzmanı Nanoteknoloji,
Bölüm 13: I/O Sistemleri Giriş/Çıkış Donanımı
Bilgisayar Sistemlerine Giriş
Bilgisayar Mühendisliği Bölümü
Hafta2 Bilgisayar Donanımı Dersi
BIL MOBiL PROGRAMLAMA TEKNiKLERi
ARM TABANLI İŞLEMCİLER
BELLEK YÖNETİMİ Memory Management
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
Bilgisayar Donanımı Dersi
DaVinci TM Platformunda Video Kodlama. Neden DaVinci TM ? ? ? DaVinci TM platformu özellikle sayısal video kodlama ve çözme gibi ağır hesapsal yüklerin.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
Kendi İşletim Sisteminizi Oluşturun. Neden Kendimiz Linux Dağıtım Oluşturuyoruz? ● Şirketin standart Linux ihtiyacı olabilir. ● Linux'u fazla bilmeyen.
Sıfırdan Linux İşletim Sistemi Oluşturma. Şimdiki Linux Dağıtımları. ● Genel amaçlar için tasarlanmıştır. ● En düşük donanım için derlenmiştir. ● Tüm.
İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü
Windows Server 2016 Lisanslama
Bilgisayar Donanımı Dersi
Celtic-Plus Proposers Day 22 September 2016, Istanbul
Celtic-Plus Proposers Day 23 November 2016, Leuven
BIOS Nedir? BIOS (Basic Input Output System), giriş ve çıkış aygıtlarını kontrol ederek sistemin açılmasını sağlar. BIOS, kalıcı bir yazılım olup ROM bellekte.
Mikroişlemcili Sistem Tasarımı
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
taşınabilir Akilli Tahta Kullanım kılavuzu
Açılış yoklama İşletim Sistemleri. Bilgisayarlarda işletim sistemi, donanımın doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama.
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
İşletim Sistemleri (Operating Systems)
LABORATUVARINDA İNCE İSTEMCİ MİMARİSİ İLE PARALEL KÜME OLUŞTURULMASI
Araştırma Deneyimini Geliştirme: ProQuest Ara Yuz Geliştirmeleri
Bilgisayar Donanımı Dersi Bilgisayarın Mimarı Yapısı ve Çalışma Mantığı.
Sunum transkripti:

Developing a minimal kernel with testing environment Starting Point Goals Development Results Hüseyin Uslu

Starting point ► Fast developing technology ► Many alternatives ► Users always expecting more and more performance

Goals Hardware Performance Tests ► CPU  Floating Point  Processing Capacity ► Memory  Access Time  Corrupt Memory Banks ► Disc ► etc.

Need for a kernel ► Effect of a operating system on performance tests  Services  Drivers  Processes ► Ensure equal conditions for similar configured computers ► Enabling direct access of performance analyse codes to hardware  Ring0  Getting rid of operating system limitations

Test Environment ► Kernel, base platform for performance analysis code ► No installation, (live cd, USB sticks) ► Parameter based tests ► While a performance test, only vital kernel code runs ► While a performance test, user input is blocked

Geliştirme Ortamı ► Eşzamanlı kod geliştirme: Subversion ► Derleyiciler: GCC, NASM ► Derleme yöneticisi: MAKE ► Hata ayıklama: GDB ► Emülatör: bochs, qemu, vmware ► Önyükleyici: GRUB

Önyükleyici GNU GRUB  Kararlı  Yaygın kullanımda  Birçok sistem açılış türü desteği ► CD ► Disket sürücü ► USB disk

Önyükleyici ► boot.S (GRUB Multiboot Specification ) ► kernel.c - main(), giriş noktası

GDT Global Tanımlayıcı Tablo (gtd.c)  Hafıza segmentleri  Erişim yetkileri (ring0) gdt_flush.asm  kernel.c -> install_gdt() -> gdt_flush() [lgdt]

IDT Kesme Tanımlayıcı Tablo  Kesmeler  İstisnalar idt.c  ISR tanımları (ISR0 – ISR31)  IRQ tanımları (IRQ0, IRQ1…) kernel.c-> install_idt()  ISR ve IRQ’ların yeniden konumlandırılması  ISR ve IRQ’ların işleyici(handler) fonksiyonlarının ayarlanması  load_idt() [lidt]

Programlanabilir Kesme Yöneticisinin Yeniden Programlanması ► İşlemci İstisnaları  > kesme tablosu ► PIC (Programlanabilir kesme yöneticisi)  Master (IRQ0 – IRQ7) -> kesme tablosu  Slave (IRQ8 – IRQ15) -> kesme tablosu ► Kesme Tablosu Konum 8  Double Fault Exception  IRQ0, zamanlayıcı kesmesi (timer interrupt) ► Yeniden programlama [pic.c – remap_pics()]  0 Division By Zero Exception  1 Debug Exception  …  7 No Coprocessor Exception  8 Double Fault Exception  9 Coprocessor Segment Overrun Exception  10 Bad TSS Exception ..  31 Reserved Exception  32 IRQ0 Timer  33 IRQ1 Keyboard  …  39 IRQ7 Parallel Port  …  47 IRQ15 Secondary IDE channel

Kesme İşleyicileri (Interrupt Handler) ► IDT tablosunun işaret ettiği işleyici fonksiyonlar (irq_handler.c)  Zamanlayıcı [timer_handler()]  Klavye [keyboard_handler()] ► PIC kontrolü

İstisna İşleyicisi ► exception.c  İstisna durumunda devreye girer ► Oluşan istisna ► Hata kodu ► Sistem durumu ► Yazmaç durumu ► Code Segment: Instruction Point (CS:IP)

İşlemci Tanımlama (CPUID) ► cpuid.asm, cpu_info.asm  İşlemci modeli  İşlemci üreticisi  İşlemci özellikleri

Konsol Sürücüsü ► Kullanıcı G/Ç (console.c, keyboard.c)  Kullanıcı girişi  Test sonuçları

Zamanlayıcı ► Programlanabilir kesme zamanlayıcısı - PIT [irq_handler.c, timer_handler()] ► Gerçek zamanlı saat (RTC)  CMOS’dan saat bilgisinin okunması

Hafıza Yöneticisi ► Basit hafıza yöneticisi  Çekirdeğin iç kullanımı için alan  First Fit  Test kodları çekirdek için ayrılan hafıza dışında, tam erişim yapabilmekte

Make hedefleri ► Make  Kodun derlenmesi ve bağlanması ► Make image  GRUB’ın dahil olduğu disk imajı ► Make iso  ISO disk imajı

Dokümantasyon ► Subversion deposunda /doc klasörü  PIC, PIT, RTC…  Derleme, geliştirme ortamı  Kod hakkında detaylar  Teknik konular

Sonuç ► Sistemi açılışı ► Hayati çekirdek fonksiyonları ► Performans analiz kodları için altyapı