Açık Kaynak İşletim Sistemi

1 - Açık Kaynak Felsefesine Giriş

Emre Can Yılmaz

Ondokuz Mayıs Üniversitesi

2025

Dersin Amacı

Açık kaynak kodlu işletim sisteminin kullanımı ile ilgili yeterliklerin kazandırılması amaçlanmaktadır.

Öğrenecekleri kavramlar:

  • Açık kaynak işletim sistemi kurabilme
  • Açık kaynak işletim sisteminde terminal ile işlemler gerçekleştirebilme
  • Açık kaynak işletim sisteminde yedekleme ve ağ ayarlarını yapabilme
  • Kabuk programlayabilme

Konular

  1. Açık Kaynak Kodlu İşletim Sistemi Kavramları
  2. GNU/Linux İşletim Sistemlerinin İncelenmesi
  3. Açık Kaynak Kodlu İşletim Sistemi Kurulumu ve Sanallaştırma
  4. Açık Kaynak İşletim Sistemi Temel Araçları ve Uygulamaları
  5. Dosya Sistemi
  6. GNU/Linux Komut Satırı ve Komutları
  7. Temel Ağ Ayarları ve Ağ Komutları
  8. Terminal Metin Editörleri
  9. Zamanlanmış görevler
  10. Uzaktan Bağlantı ve Terminal Ekranları

Değerlendirme

  • Vize: %40, Final: %60.
  • Bütünleme var.
  • Bağıl değerlendirme var.
  • Finalden en az 50 alınmalı.

Kaynaklar

Giriş

  • Günümüzde yazılımlar hayatımızın her alanında!
  • Bilgisayarlar, telefonlar, sunucular, otomobiller…
  • Peki bu yazılımlar nasıl geliştiriliyor?
  • Kimler tarafından kontrol ediliyor?
  • İşte bu noktada açık kaynak kavramı devreye giriyor.

Bu Bölümde Neler Öğreneceğiz?

  • Açık kaynak ve özgür yazılım kavramları
  • Açık kaynağın tarihçesi
  • Açık kaynağın avantajları ve dezavantajları
  • Açık kaynak lisansları
  • Açık kaynak toplulukları ve iş modelleri

Açık Kaynak ve Özgür Yazılım Nedir?

Açık Kaynak Yazılım (OSS)

  • Kaynak kodu herkese açık
  • İncelenebilir, değiştirilebilir, dağıtılabilir
  • Şeffaf ve işbirliğine açık

Özgür Yazılım

  • Kullanıcılara dört temel özgürlük sunar:
    1. Çalıştırma özgürlüğü
    2. İnceleme özgürlüğü
    3. Değiştirme özgürlüğü
    4. Dağıtma özgürlüğü

Önemli Not!

  • “Özgür” ≠ “Ücretsiz”
  • Özgür yazılımlar genellikle ücretsizdir, ama
  • …ticari olarak da satılabilirler!
  • Önemli olan, dört özgürlüğün sunulması.

Açık Kaynak ve Özgür Yazılım Arasındaki Fark

  • Pratikte: Genellikle aynı yazılımlar
  • Felsefi Fark:
    • Özgür yazılım hareketi: Etik ve sosyal gereklilik
    • Açık kaynak hareketi: Pratik ve verimli geliştirme modeli

Açık Kaynağın Tarihçesi

  • 1950’ler-1960’lar: Üniversitelerde kod paylaşımı
  • 1970’ler-1980’ler: Yazılımların “kapanması”
  • 1983: Richard Stallman ve GNU Projesi
  • 1985: Özgür Yazılım Vakfı (FSF)
  • 1991: Linus Torvalds ve Linux çekirdeği
  • 1990’lar: “Açık kaynak” teriminin yaygınlaşması
    • Netscape Mozilla’nın açık kaynak yayınlanması

Richard Stallman ve GNU Projesi

  • Amaç: Tamamen özgür bir işletim sistemi
  • Stallman, Özgür Yazılım Vakfı (FSF)’nı kurdu
  • Özgür yazılım hareketinin temellerini attı

GNU Nedir?

  • “GNU’s Not Unix” ifadesinin kısaltmasıdır
  • Özgür yazılım felsefesine dayalı işletim sistemidir
  • GNU paketleri ve özgür yazılımlardan oluşur
  • Özgür yazılım kullanarak bilgisayar kullanımını mümkün kılar

Linus Torvalds ve Linux

  • 1991: Linus Torvalds, Helsinki Üniversitesi
  • Hobi olarak işletim sistemi çekirdeği (kernel)
  • Minix’ten ilham aldı
  • GNU GPL lisansı ile yayınladı (açık kaynak!)
  • GNU/Linux işletim sisteminin doğuşu

Linux’un Başarısının Sırrı

  • Açık kaynak felsefesine bağlılık
  • İşbirlikçi geliştirme modeli
  • “Erken yayınla, sık yayınla”
  • Toplulukla iletişim ve fikir birliği

Açık Kaynağın Avantajları

  • Şeffaflık: Kod incelenebilir, hatalar kolay bulunur
  • Güvenlik: Daha fazla göz, daha az açık
  • Esneklik: İhtiyaca göre değiştirilebilir
  • Maliyet: Çoğu zaman ücretsiz
  • İşbirliği: Dünya çapında geliştiriciler
  • Topluluk: Destek ve bilgi paylaşımı
  • Bağımsızlık: Tek bir şirkete bağlı kalmama

Açık Kaynağın Dezavantajları

  • Destek: Ticari destek bulmak bazen zor
  • Kullanım Kolaylığı: Yeni başlayanlar için zor olabilir
  • Uyumluluk: Bazı donanım/yazılımlarla sorunlar
  • Parçalanma: Çok sayıda farklı ve uyumsuz proje (forklanma)

Açık Kaynak Lisansları

  • Yazılımın kullanım, değiştirme ve dağıtım koşullarını belirler
  • İki ana kategori:
    1. Copyleft (Telif Feragatlı): Değiştirilen sürümler de aynı lisansla yayınlanmalı (ör: GNU GPL)
    2. Permissive (İzin Verici): Daha esnek, farklı lisanslara izin verebilir (ör: MIT, Apache, BSD)

Açık Kaynak Lisansları Karşılaştırması (Özet)

Lisans Kategori Temel Özellikler
GNU GPL Copyleft En katı, türevleri de GPL olmalı
GNU LGPL Copyleft Kütüphaneler için daha esnek
MIT Permissive Çok basit, neredeyse her şeye izin verir
Apache 2.0 Permissive Patent hakları konusunda daha kapsamlı
BSD Permissive MIT’ye benzer, bazı ek kısıtlamalar olabilir
MPL 2.0 Zayıf Copyleft Hibrit, dosya bazında copyleft uygular.

Açık Kaynak Toplulukları

  • Genellikle gönüllü yazılımcılardan oluşur
  • Forumlar, e-posta listeleri, sohbet odaları…
  • İletişim, işbirliği, bilgi paylaşımı

Açık Kaynak İş Modelleri

  • Destek ve Bakım: Ücretli hizmetler
  • Özelleştirme ve Danışmanlık: İhtiyaca özel çözümler
  • Çift Lisanslama: Hem açık hem ticari lisans
  • Bağışlar: Topluluk desteği
  • Bulut Hizmetleri: Yazılımı hizmet olarak sunma
  • Eğitim ve Sertifikasyon: Açık kaynak kodlu yazılımlar hakkında eğitimler düzenleme.

Sonuç

  • Açık kaynak: İşbirliği, şeffaflık, özgürlük
  • Daha iyi, güvenli, erişilebilir yazılımlar
  • Linux: Açık kaynak modelinin başarısı
  • Lisanslar: Projenin hedeflerine uygun seçim
  • Topluluklar: Bilgi, işbirliği, yenilikçilik

Tartışma Soruları

  1. Açık ve kapalı kaynak yazılım avantaj/dezavantajları? Kendi deneyimleriniz?
  2. Açık kaynak felsefesi başka alanlarda (eğitim, bilim, sanat) uygulanabilir mi? Nasıl?
  3. Hangi lisans, hangi tür projeler için daha uygun? Neden?
  4. Açık kaynak topluluklarına katılmak yazılımcıya ne gibi faydalar sağlar?
  5. Açık kaynak yazılımların gelecekteki rolü?

Ek Okuma Önerileri

Proje Önerisi

  • İlginizi çeken bir açık kaynak projesi seçin.
  • Web sitesini, belgelerini, kaynak kodunu inceleyin.
  • Tarihçe, amaç, lisans, topluluk, iş modelini araştırın.
  • Nasıl çalıştığını anlamaya çalışın (derleyin, çalıştırın).
  • Nasıl katkıda bulunabileceğinizi düşünün.
  • Rapor/sunum hazırlayın.