macOS Dosya Sistemi Mimarisi: APFS, Dizin Yapısı

macOS, UNIX tabanlı bir işletim sistemi (Darwin) olduğu için dosya sistemi yapısı hem tanıdık hem de Apple'a özgü bazı derinliklere sahiptir. Modern macOS sürümleri, APFS (Apple File System) adı verilen, yüksek performanslı ve güvenli bir dosya sistemi mimarisi üzerine kuruludur.



1. Temel Mimari: APFS (Apple File System)

macOS 10.13 (High Sierra) ile hayatımıza giren APFS, SSD'ler için optimize edilmiştir. En önemli özellikleri şunlardır:

  • Anlık Görüntüler (Snapshots): Sistemin belirli bir andaki durumunu kaydeder. Hata durumunda geri dönmeyi sağlar.

  • Paylaşılan Alan (Space Sharing): Aynı fiziksel diskteki farklı bölümlerin (Volume) boş alanı ortak kullanmasına izin verir.

  • Klonlama: Bir dosyanın kopyasını oluştururken diskte ek yer kaplamaz; sadece değişiklik yapıldığında yeni veri yazılır.


2. Kök Dizin Yapısı (/)

macOS'te terminali açıp ls / komutunu verdiğinizde göreceğiniz ana dizinler, sistemin iskeletini oluşturur.

Sistem Dizinleri

  • /System (Sistem): macOS'in kalbidir. Sadece Apple tarafından yazılabilir (SIP korumalıdır). İşletim sisteminin çalışması için gereken kritik dosyalar burada bulunur.

  • /Library (Kitaplık): Tüm kullanıcılar için geçerli olan sistem çapındaki kaynaklardır. Yazı tipleri, ekran koruyucular ve uygulama destek dosyaları buradadır.

  • /Applications (Uygulamalar): Yüklediğiniz tüm .app paketlerinin bulunduğu ana dizindir.

Kullanıcı Verileri

  • /Users (Kullanıcılar): Bilgisayardaki her kullanıcının kendine ait klasörü burada tutulur. Masaüstü, Belgeler ve İndirilenler gibi kişisel veriler bu dizinin altındadır.

Görünmez/Gizli Dizinler

  • /Volumes: Bağlı olan harici diskler, USB bellekler ve ağ sürücüleri bu dizin altında "mount" edilir.

  • /bin ve /sbin: Sistemin çalışması için gereken temel terminal komutlarını içerir.

  • /etc: Sistem yapılandırma dosyalarının bulunduğu yerdir (Aslında /private/etc dizinine bir yönlendirmedir).


3. Katmanlı Kitaplık (Library) Yapısı

macOS'te üç farklı "Library" (Kitaplık) klasörü bulunur. Bunların farkını bilmek, sorun giderme için kritiktir:

  1. Sistem Kitaplığı (/System/Library): Apple'a aittir. Dokunulmamalıdır.

  2. Yerel Kitaplık (/Library): Tüm kullanıcıları etkileyen ayarlar (Örn: Tüm kullanıcılar için yüklü bir yazıcı sürücüsü).

  3. Kullanıcı Kitaplığı (~/Library): Sadece aktif kullanıcıya özel ayarlardır. (Örn: Web tarayıcı geçmişiniz, uygulama tercihleriniz). Bu klasör varsayılan olarak gizlidir.


4. Uygulama Paketleri (.app)

Windows'taki C:\Program Files klasörünün aksine, macOS uygulamaları aslında birer klasördür. Bir .app dosyasına sağ tıklayıp "Paket İçeriğini Göster" (Show Package Contents) derseniz, uygulamanın iç yapısını görebilirsiniz:

  • Contents/MacOS: Uygulamanın çalıştırılabilir kod dosyası.

  • Contents/Resources: Görseller, ikonlar ve dil dosyaları.


5. Güvenlik: Salt Okunur Sistem Bölümü

macOS Catalina (10.15) ve sonrasında Apple, güvenlik için diski ikiye ayırmıştır:

  1. Macintosh HD: İşletim sisteminin bulunduğu, kullanıcı tarafından asla değiştirilemeyen salt okunur (read-only) bölümdür.

  2. Macintosh HD - Data: Sizin dosyalarınızın, uygulamalarınızın ve ayarlarınızın bulunduğu bölümdür.

Sistem, "Firmlinks" adı verilen bir teknoloji ile bu iki ayrı bölümü kullanıcıya tek bir diskmiş gibi gösterir.


Özet Tablo

DizinAmaçErişim İzni
/ApplicationsUygulamalarKullanıcı / Yönetici
/SystemmacOS Çekirdek DosyalarıSalt Okunur (Apple)
/Users/kullanıcıadiKişisel VerilerKullanıcıya Özel
/LibraryOrtak Sistem KaynaklarıYönetici
/VolumesHarici DisklerDeğişken


6. Terminal ile Dosya Sistemi Gezintisi

macOS'te Terminal varsayılan olarak Zsh (Z Shell) kullanır. Dosya sistemi hiyerarşisinde yolunuzu bulmak için şu temel komutlar hayati önem taşır:

  • pwd (Print Working Directory): O an hangi klasörde olduğunuzu gösterir.

  • ls -la: Gizli dosyalar (nokta ile başlayanlar, örneğin .zshrc) dahil tüm dosyaları listeler.

  • cd /: En kök dizine iner.

  • cd ~: Aktif kullanıcının ana dizinine (Home) gider.


7. macOS'e Özgü Önemli Terminal Komutları

macOS, standart UNIX komutlarının üzerine kendi sistem mimarisini yönetmek için özel araçlar eklemiştir:

open Komutu

Terminalden bir dosyayı veya klasörü Finder'da açmanızı sağlar.

  • open . : Mevcut klasörü Finder penceresi olarak açar.

  • open -a "Safari" https://apple.com : Belirli bir uygulamayı parametre ile çalıştırır.

diskutil (Disk Utility)

Disk bölümlerini, APFS konteynerlarını ve bağlı sürücüleri terminalden yönetmek için kullanılır.

  • diskutil list : Bilgisayardaki tüm fiziksel ve mantıksal disk yapısını (APFS bölümleri dahil) dökümler.

defaults Komutu

macOS uygulama ve sistem tercihlerini (plist dosyalarını) terminalden okumak ve değiştirmek için kullanılır. Örneğin, gizli dosyaları Finder'da görünür yapmak için:

Bash:
defaults write com.apple.finder AppleShowAllFiles YES; killall Finder

8. İzinler ve Güvenlik: SIP ve Gatekeeper

macOS dosya sistemini Windows'tan ayıran en keskin çizgi güvenlik katmanlarıdır.

  • SIP (System Integrity Protection): /System, /bin, /sbin ve /usr gibi dizinlerin "root" kullanıcısı tarafından bile değiştirilmesini engeller. Bu, sistemin zararlı yazılımlar tarafından bozulmasını önler.

  • Gatekeeper: İnternetten indirilen uygulamaların /Applications dizinine taşınırken dijital imzasını kontrol eder ve karantinaya (com.apple.quarantine) alır.


9. Pratik Bilgi: Gizli Kullanıcı Kitaplığına (~/Library) Erişim

Eğitim içeriğinde bahsettiğimiz, kullanıcıya özel ayarların tutulduğu bu klasöre ulaşmanın en hızlı yolu şudur:

  1. Finder'ı açın.

  2. Üst menüden Git (Go) menüsüne tıklayın.

  3. Klavyeden Option (⌥) tuşuna basılı tutun; Kitaplık (Library) seçeneği belirecektir.


Özet: 

  1. Her Şey Bir Dosyadır: Uygulamalar bile aslında klasördür.

  2. Kullanıcı ve Sistem Ayrımı: Kullanıcı kendi ev dizininde (~) özgürdür, ancak sistem dizinleri (/) Apple tarafından kilitlenmiştir.

  3. APFS Esnekliği: Disk kapasitesi dolmasa bile "Space Sharing" sayesinde bölümler dinamik olarak büyüyüp küçülebilir.


10. Uygulama: macOS Sistem Davranışını Özelleştirme

macOS'te varsayılan olarak ekran görüntüleri masaüstüne kaydedilir. Dosya sistemi hiyerarşisini kullanarak bunu değiştirelim.

Adım 1: Yeni Bir Dizin Oluşturma

Önce kullanıcı dizininde (~/) özel bir klasör oluşturalım:

Bash:
mkdir -p ~/Documents/Ekran_Goruntuleri

Adım 2: defaults Komutu ile Sistem Yolunu Değiştirme

macOS'e, ekran görüntülerini masaüstü yerine yeni oluşturduğumuz bu klasöre kaydetmesini söyleyelim:

Bash:
defaults write com.apple.screencapture location ~/Documents/Ekran_Goruntuleri

Adım 3: Değişiklikleri Uygulama

Sistem ayarlarının (UI server) yenilenmesi için ilgili servisi yeniden başlatalım:

Bash:
killall SystemUIServer

11. Dosya Sistemi İzleme: top ve df

Dosya sisteminizin doluluk oranını ve disk üzerindeki anlık yükü görmek için bu komutları kullanabilirsiniz:

  • df -h: Disklerin doluluk oranını "insan tarafından okunabilir" (GB/MB) formatta gösterir. APFS yapısındaki "Shared Space" (Paylaşılan Alan) mantığını burada net bir şekilde görebilirsiniz.

  • du -sh *: Bulunduğunuz klasördeki her bir alt klasörün ne kadar yer kapladığını özetler.


12. Kabuk (Shell) Yapılandırma Dosyaları

macOS dosya sisteminde Terminal deneyiminizi özelleştiren en önemli dosya kullanıcı dizinindeki gizli bir dosyadır: .zshrc.

Bu dosya, Terminal her açıldığında çalışan bir script'tir. Kendi kısayollarınızı (alias) buraya ekleyebilirsiniz:

  1. Dosyayı açın: nano ~/.zshrc

  2. İçine şu satırı ekleyin: alias masaustu="cd ~/Desktop"

  3. Kaydedip çıkın (Control+O, Enter, Control+X).

  4. Artık Terminale sadece masaustu yazarak masaüstü dizinine gidebilirsiniz.


Özet:

  1. Teori: APFS ve Salt Okunur Sistem bölümü.

  2. Gezinti: Finder vs Terminal (ls, cd, pwd).

  3. Güvenlik: SIP ve izinler (sudo kullanımı).

  4. Otomasyon: defaults komutu ile gizli ayarları değiştirme.

Özellikle Pardus ve Linux deneyiminizle kıyasladığınızda; macOS'teki "Library" klasörünün Linux'taki "/etc" ve "/var" dizinlerinin bir karışımı gibi görev yaptığını fark etmişsinizdir. 


13. Uygulama: macOS Sistem Bakım ve Düzenleme Scripti

Aşağıdaki script; gereksiz dosyaları temizler, dosya sistemi izinlerini zorlar ve sistem ayarlarını optimize eder.

Script Oluşturma Adımları

  1. Dosyayı Oluşturun: Terminal'i açın ve şu komutu yazın:

    nano bakim.sh

  2. Kodları Yapıştırın: Aşağıdaki kod bloğunu kopyalayıp terminale yapıştırın:

Bash:
#!/bin/zsh

echo "--- macOS Sistem Bakım Aracı Başlatılıyor ---"

# 1. Adım: Kullanıcı Kitaplığındaki Önbellekleri (Cache) Temizleme
echo "[1/4] Kullanıcı önbellekleri temizleniyor..."
rm -rf ~/Library/Caches/*

# 2. Adım: Sistem Log Dosyalarını Temizleme (Yönetici izni ister)
echo "[2/4] Sistem logları temizleniyor..."
sudo rm -rf /private/var/log/*

# 3. Adım: Masaüstü Düzenleme (Ekran görüntülerini taşıma)
echo "[3/4] Masaüstü düzenleniyor..."
mkdir -p ~/Documents/Ekran_Goruntuleri
defaults write com.apple.screencapture location ~/Documents/Ekran_Goruntuleri
killall SystemUIServer

# 4. Adım: DNS Önbelleğini Sıfırlama (İnternet hızlandırma)
echo "[4/4] DNS önbelleği sıfırlanıyor..."
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

echo "--- Bakım Tamamlandı! ---"
  1. Kaydedip Çıkın: Control+O, Enter ve Control+X.

  2. Çalıştırma İzni Verin:

    chmod +x bakim.sh

  3. Scripti Çalıştırın:

    ./bakim.sh


14. macOS vs Linux (Pardus) Dosya Sistemi Farkları


ÖzellikmacOS (APFS)Linux (EXT4/Btrfs)
Sistem BölümüSSV (Signed System Volume) - Salt OkunurGenellikle Yazılabilir (sudo ile)
Uygulama Yapısı.app (Paket/Klasör yapısı)Paketler (deb, rpm) veya /usr/bin
Kullanıcı Ayarları~/Library/Preferences (.plist)~/.config veya Gizli Dosyalar
Donanım Yönetimidiskutilfdisk, lsblk

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu