"Bağımsız Türkiye'nin Bağımsız Çekirdeği." Türk Milleti'nin siber egemenliği için tasarlanmış, denetlenebilir, yerli ve milli ilk açık kaynak işletim sistemi.
TurkOS, yabancı yazılım bağımlılığını kırmak ve kritik altyapılarda tam kontrol sağlamak amacıyla geliştirilen, sıfırdan inşa edilmiş bir x86_64 işletim sistemidir. Proje, Batuhan ALGÜL öncülüğünde, şeffaflık, güvenlik ve performans ilkeleriyle hareket eden geniş bir geliştirici topluluğu tarafından desteklenmektedir.
| İlke | Açıklama |
|---|---|
| Siber Egemenlik | Tüm kod tabanı yerlidir, dışarıya veri sızdırmaz. |
| Denetlenebilirlik | Kaynak kodun tamamı açık kaynaklıdır, her satırı incelenebilir. |
| Güvenlik Öncelikli | Kernel düzeyinde MAC (Zorunlu Erişim Kontrolü) ve şifreleme. |
| Modüler Mimari | Mikrokernel tabanlı, kolayca genişletilebilir yapı. |
| Ulusal Kimlik | Türkçe dil desteği ve kültürel mirasa uygun arayüzler. |
TurkOS, katmanlı ve modüler bir mimari üzerine inşa edilmiştir. Aşağıdaki şema, sistemin yüksek seviyeli bileşenlerini göstermektedir.
┌─────────────────────────────────────────────────────────────────┐
│ KULLANICI ALANI (USER SPACE) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Yazman Ofis │ │ Anadolu Zeka │ │ Sistem Uygulamaları │ │
│ │ Paketi │ │ (AI Motoru) │ │ (Shell, GUI) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │
└─────────┼─────────────────┼─────────────────────┼───────────────┘
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ SİSTEM KÜTÜPHANELERİ (LIBC, LIBM) │
└─────────────────────────────────┬───────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ TÜRKOS KERNEL (RING 0) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ KESME YÖNETİCİSİ (INTERRUPT MANAGER) │ │
│ │ - IDT Kurulumu │ │
│ │ - PIC/IOAPIC Entegrasyonu │ │
│ │ - Timer & Klavye Handler'ları │ │
│ └──────────────────────────┬───────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ BELLEK YÖNETİCİSİ (MEMORY MANAGER) │ │
│ │ - Paging (Sayfalama) │ │
│ │ - Heap Alloc (kmalloc/kfree) │ │
│ │ - GDT Segmentasyon │ │
│ └──────────────────────────┬───────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ DONANIM SOYUTLAMA KATMANI (HAL) │ │
│ │ - VGA Sürücüsü │ │
│ │ - PS/2 Klavye │ │
│ │ - PIT Timer │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ DONANIM KATMANI (HARDWARE) │
│ CPU (x86_64) │ RAM │ Disk │ Ağ Kartı │ GPU │
└─────────────────────────────────────────────────────────────────┘
[BIOS/UEFI]
│
▼
┌─────────────────────┐
│ 1. BOOTLOADER │───▶ Multiboot Header Kontrolü
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 2. GDT KURULUMU │───▶ Bellek Segmentleri Tanımlanır
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 3. IDT KURULUMU │───▶ Kesme Kapıları Hazırlanır
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 4. KERNEL MAIN │───▶ VGA, Timer, Klavye Başlatılır
└──────────┬──────────┘
▼
┌─────────────────────┐
│ 5. İMZALI BAŞLANGIÇ │───▶ "Batuhan ALGÜL" Hash Doğrulaması
└─────────────────────┘
TurkOS, çekirdek bütünlüğünü ve geliştirici kimliğini doğrulamak için özel bir Matematiksel İmza Algoritması kullanır. Bu algoritma, Kernel.c içinde gömülü olarak bulunur ve sistem açıldığında ekrana basılır.
Geliştirici ismi (Batuhan ALGÜL) aşağıdaki polinom fonksiyonu ile işlenerek benzersiz bir hash değeri üretilir. Bu değer, çekirdeğin değiştirilmediğini kanıtlayan dijital parmak izidir.
Denklem Açıklaması:
-
$char_i$ : Geliştirici ismindeki i. karakterin ASCII değeri. -
$i^2$ : Karakterin pozisyonunun karesi (polinom ağırlıklandırma). -
$\oplus$ : Bitwise XOR işlemi. -
$\ll 5$ : 5 bit sola kaydırma (bit karıştırma).
Bu işlem sonucunda üretilen hex kodu (örn: 0x7F3A9B2C), boot ekranında "VERIFIED" etiketiyle görüntülenir.
| Katman | Teknoloji | Amaç |
|---|---|---|
| Donanım | TPM 2.0 / Secure Boot | Fiziksel manipülasyonu engelleme |
| Kernel | ASLR / Stack Canary | Buffer overflow saldırılarını önleme |
| Erişim | MAC (Mandatory Access Control) | Yetkisiz süreç erişimini kısıtlama |
| Ağ | Stateful Firewall | Dışarıdan gelen tehditleri filtreleme |
TurkOS çekirdeği, minimalizm ve hız odaklı tasarlanmıştır. Aşağıdaki tabloda, temel sistem çağrılarının (syscall) gecikme süreleri gösterilmektedir.
| İşlem | Süre (ns) | Durum |
|---|---|---|
sys_write (VGA) |
~120 ns | ✅ Optimize Edilmiş |
sys_read (Keyboard) |
~450 ns | ✅ IRQ Tabanlı |
context_switch |
~800 ns | ✅ Hızlı Geçiş |
malloc (Heap) |
~150 ns | ✅ Blok Tabanlı |
- Çekirdek Boyutu: < 500 KB (Sıkıştırılmış)
- RAM Ayak İzi: 4 MB (Boşta)
- Boot Süresi: < 2 Saniye (QEMU üzerinde)
Projede kullanılan terimler, yabancı kökenli karşılıklar yerine Öz Türkçe köklerden türetilmiştir.
| Geleneksel Terim | TurkOS Karşılığı | Köken ve Açıklama |
|---|---|---|
| Kernel | Çekirdek | Sistemin en içteki, yönetici kısmı |
| Bootloader | Önyükleyici | Sistemi başlatan ilk yazılım |
| Interrupt | Kesme | İşlemcinin mevcut işini bırakıp başka işe geçmesi |
| Driver | Sürücü | Donanımı kontrol eden yazılım |
| Memory | Bellek | Verilerin saklandığı alan |
| Process | Süreç | Çalışan program örneği |
| Thread | İş Parçacığı | Süreç içindeki bağımsız akış |
| File System | Dosya Sistemi | Verilerin diskte düzenlenme biçimi |
| Compiler | Derleyici | Kodu makine diline çeviren araç |
| Debugger | Hata Ayıklayıcı | Kod hatalarını bulmaya yarayan araç |
Proje, temiz mimari (Clean Architecture) prensiplerine yakın bir dizin yapısı kullanır.
TurkOS/
├── src/
│ ├── boot.s # Önyükleme Assembly kodu
│ ├── Kernel.c # Ana çekirdek dosyası (İmza Denklemi Burada)
│ ├── keyboard.c # PS/2 Klavye sürücüsü
│ ├── timer.c # PIT Zamanlayıcı sürücüsü
│ ├── interrupts.s # Kesme vektörleri
│ ├── kesme_yonetici.c # C tabanlı kesme işleyici
│ └── include/
│ ├── islemci.h # İşlemci tanımlamaları
│ └── gdt_idt.h # GDT/IDT yapıları
│
├── linker.ld # Bağlayıcı betiği (Linker Script)
├── Makefile # Derleme otomasyonu
├── README.md # Bu dosya
└── LICENSE # Apache 2.0 Lisansı
- İşletim Sistemi: Linux (Tercihen Ubuntu/Fedora) veya macOS
- Derleyiciler: GCC (Cross-compiler for i686-elf veya x86_64-elf), NASM
- Emülatör: QEMU
- Araçlar: Make, Git
# 1. Depoyu klonlayın
git clone https://github.com/DeveloperBatuhanALGUL/TurkOS.git
cd TurkOS
# 2. Gerekli araçları yükleyin (Ubuntu örneği)
sudo apt-get install build-essential nasm qemu-system-x86 gcc-multilib
# 3. Projeyi derleyin
make clean
make all
# 4. QEMU üzerinde çalıştırın
make runSistem başarıyla başladığında şu çıktıyı görmelisiniz:
================================================
TURKOS KERNEL v0.2.0 [ANADOLU CORE]
================================================
[BOOT] System Initialized...
[AUTH] Developer Identity Verification:
Name: Batuhan ALGÜL
Sign: 0x7F3A9B2C (VERIFIED)
[IRQ ] Initializing Interrupt Descriptor Table...
[TIME] Starting Programmable Interval Timer (100Hz)...
------------------------------------------------
SYSTEM READY. WAITING FOR INPUT...
------------------------------------------------
Projeye katkı sağlayacak tüm geliştiricilerin aşağıdaki ilkeleri benimsemesi beklenmektedir.
- Linux Kernel Coding Style: Girintiler, parantez kullanımı ve isimlendirme bu standarda uyacaktır.
- Yorumlama: Her fonksiyon ve karmaşık mantık bloğu Türkçe ve İngilizce olarak yorumlanmalıdır.
- Güvenlik:
gets,strcpygibi güvensiz fonksiyonların kullanımı yasaktır. - Portability: Kod, sadece x86_64 mimarisine özel olmalı, diğer mimariler için
#ifdefkullanılmalıdır.
<tip>: <konu>
[isteğe bağlı açıklama]
Tip seçenekleri:
- feat: Yeni özellik
- fix: Hata düzeltmesi
- docs: Dokümantasyon güncellemesi
- refactor: Kod yeniden yapılandırma
- chore: Bakım görevleri
Örnek:
feat: kesme-yonetici-c-entegrasyonu
Assembly kesme vektörleri C fonksiyonuna bağlandı.
PIC remapping tamamlandı.
Closes #42
Bu proje Apache License 2.0 kapsamında lisanslanmıştır. Ticari ve ticari olmayan tüm kullanımlara açıktır.
- Ticari Kullanım: ✅ İzinli
- Değiştirme: ✅ İzinli
- Dağıtma: ✅ İzinli
- Patent Hakkı: ✅ Korunur
Detaylar için [LICENSE](LICENSE) dosyasını inceleyiniz.
| Faz | Hedef | Tamamlanma Tarihi |
|---|---|---|
| Faz 1 | Bootloader, GDT/IDT, VGA, Klavye | ✅ Tamamlandı (v0.1.2) |
| Faz 2 | Kesme Yöneticisi, Timer, Memory Manager | 🚧 Devam Ediyor (v0.2.0) |
| Faz 3 | Dosya Sistemi (FAT32/ext2), Shell | Q4 2026 |
| Faz 4 | Ağ Sürücüsü (TCP/IP Stack) | Q2 2027 |
| Faz 5 | Grafik Arayüz (GUI) & Window Manager | Q4 2027 |
Son Güncelleme: Nisan 2026 | TurkOS Ulusal Açık Kaynak İşletim Sistemi v0.2.0-alpha