Bölüm 1 / 33
Bilgisayar ve İşletim Sistemi Temelleri
Bir yazılımcının uygulamanın çalıştığı makineyi, dosya sistemini ve süreçleri anlaması için gereken temel kavramlar.
3 canlı örnek — seçerek incele
İlgili kavramlar: Terminal, Shell, CLI, Exit Code
Terminal / CLI
$ node -v v22.14.0 $ npm run build ✓ Compiled successfully $ echo $? 0
Bilgisayarın işlemci, bellek, disk, ağ kartı ve çevre birimleri gibi fiziksel parçalarının bütünü.
- CPUT
Komutları işleyen merkezi işlem birimi; çekirdek sayısı ve saat hızı işlem kapasitesini etkiler.
CPU içinde bağımsız komut işleyebilen fiziksel veya mantıksal işlem birimi.
Bir süreç içinde çalıştırılabilen en küçük yürütme akışı.
- RAMT
Çalışan programların geçici verilerini tuttuğu hızlı ancak kalıcı olmayan bellek.
- DiskT
Dosyaların kalıcı olarak saklandığı HDD, SSD veya NVMe depolama birimi.
- SSDT
Hareketli parçası olmayan, HDD'ye göre daha hızlı kalıcı depolama aygıtı.
- NVMeO
PCIe üzerinden çalışan yüksek hızlı SSD iletişim standardı.
Dosyaların diskte nasıl adlandırıldığını, saklandığını ve erişildiğini belirleyen yapı.
İsimlendirilmiş veri birimi; metin, görsel, program veya başka bir içerik olabilir.
Dosyaları ve alt dizinleri hiyerarşik biçimde gruplandıran yapı.
Dosyanın türünü belirten .js, .php, .json, .jpg gibi son ek.
Bir dosya veya klasörün sistem içindeki adresi.
Kök dizinden başlayan tam dosya yolu.
Çalışılan dizine göre hesaplanan göreceli dosya yolu.
Dosya sistemi hiyerarşisinin en üst dizini.
Bir kullanıcıya ait varsayılan kişisel çalışma dizini.
Uygulama yapılandırması ve gizli bilgiler için süreç ortamında tutulan anahtar-değer bilgisi.
Çalıştırılabilir programların aranacağı klasörleri belirleyen ortam değişkeni.
İşletim sistemi tarafından çalıştırılan program örneği.
- PIDT
Çalışan sürece işletim sistemi tarafından verilen benzersiz kimlik.
Arka planda sürekli veya olay bekleyerek çalışan sistem süreci.
Terminali meşgul ederek ön planda çalışan süreç.
Terminalden bağımsız veya arka planda çalışan süreç.
- PortT
Ağ üzerinden belirli bir uygulama veya servise erişimi ayıran sayısal uç nokta.
Bir programa giren varsayılan veri akışı; genellikle klavye veya pipe.
Programın normal çıktı akışı.
Programın hata ve teşhis mesajları için ayrı çıktı akışı.
Bir sürecin başarılı veya hatalı sonlandığını belirten sayısal sonuç.
Dosya veya kaynağı okuma, yazma ve çalıştırma yetkileri.
Dosya veya sürecin bağlı olduğu kullanıcı ve kullanıcı grubu.
Dosya izinlerinin okuma, değiştirme ve çalıştırma yetkileri.
Sistem üzerinde en yüksek yetkiye sahip kullanıcı.
İşletim sistemiyle komutlar üzerinden iletişim kurmayı sağlayan ortam.
Shell komutlarının yazıldığı ve çıktının görüntülendiği arayüz.
- CLIT
Grafik arayüz yerine komutlarla kullanılan uygulama arayüzü.
- GUIT
Pencere, buton ve menülerle kullanılan grafik kullanıcı arayüzü.
- BashT
Linux ve Unix sistemlerinde yaygın kullanılan komut kabuğu.
Windows odaklı komut kabuğu ve otomasyon dili.
Yazılım paketlerini kuran, güncelleyen ve kaldıran araç.
- aptT
Debian ve Ubuntu tabanlı Linux dağıtımlarında paket yöneticisi.
RHEL, AlmaLinux ve CloudLinux ailesinde paket yönetim araçları.
Bir programın çalışmak için ihtiyaç duyduğu başka paket veya bileşen.
Donanım, bellek, süreç ve aygıt yönetimini yapan işletim sistemi çekirdeği.
Uygulamaların kernel dışında çalıştığı kullanıcı alanı.
RAM yetersizliğinde disk alanını bellek gibi kullanan mekanizma.
- SwapO
Sanal bellek için diskte ayrılan alan.
Açık dosya, socket veya pipe gibi kaynağı temsil eden sayısal tanımlayıcı.
Bir sürece durma, yeniden yükleme veya sonlanma gibi olay bildiren işletim sistemi mesajı.
- CronO
Belirli zamanlarda komut veya script çalıştıran zamanlayıcı.
Linux servislerini, açılış süreçlerini ve loglarını yöneten init sistemi.
Systemd içinde bir servisin nasıl başlatılacağını tanımlayan birim dosyası.
Uygulama veya sistem olaylarının kaydedildiği dosya.
Birden fazla dosyayı tek pakette toplayan zip veya tar benzeri dosya.
Veri boyutunu azaltma işlemi.
Karakter veya verinin byte dizisine dönüştürülme biçimi.
Türkçe dâhil çok sayıda karakteri destekleyen yaygın metin kodlaması.
Satır sonunun LF veya CRLF ile gösterilmesi.
Başka bir dosya veya dizine işaret eden sembolik bağlantı.
Bir disk veya uzak depolama alanını dosya sistemindeki bir dizine bağlama işlemi.
Fiziksel diskin mantıksal bölümlere ayrılması.
Veri kaybına karşı alınan yedek kopya.
Yedekten veriyi veya sistemi geri yükleme işlemi.
Bir disk, dosya sistemi veya sanal makinenin belirli andaki hızlı görüntüsü.
| Kavram | Seviye | Kısa açıklama |
|---|---|---|
| Donanım | T | Bilgisayarın işlemci, bellek, disk, ağ kartı ve çevre birimleri gibi fiziksel parçalarının bütünü. |
| CPU | T | Komutları işleyen merkezi işlem birimi; çekirdek sayısı ve saat hızı işlem kapasitesini etkiler. |
| Core / Çekirdek | T | CPU içinde bağımsız komut işleyebilen fiziksel veya mantıksal işlem birimi. |
| Thread / İş Parçacığı | O | Bir süreç içinde çalıştırılabilen en küçük yürütme akışı. |
| RAM | T | Çalışan programların geçici verilerini tuttuğu hızlı ancak kalıcı olmayan bellek. |
| Disk | T | Dosyaların kalıcı olarak saklandığı HDD, SSD veya NVMe depolama birimi. |
| SSD | T | Hareketli parçası olmayan, HDD'ye göre daha hızlı kalıcı depolama aygıtı. |
| NVMe | O | PCIe üzerinden çalışan yüksek hızlı SSD iletişim standardı. |
| Dosya Sistemi | T | Dosyaların diskte nasıl adlandırıldığını, saklandığını ve erişildiğini belirleyen yapı. |
| Dosya | T | İsimlendirilmiş veri birimi; metin, görsel, program veya başka bir içerik olabilir. |
| Klasör / Dizin | T | Dosyaları ve alt dizinleri hiyerarşik biçimde gruplandıran yapı. |
| Dosya Uzantısı | T | Dosyanın türünü belirten .js, .php, .json, .jpg gibi son ek. |
| Path / Dosya Yolu | T | Bir dosya veya klasörün sistem içindeki adresi. |
| Absolute Path | T | Kök dizinden başlayan tam dosya yolu. |
| Relative Path | T | Çalışılan dizine göre hesaplanan göreceli dosya yolu. |
| Root Directory | T | Dosya sistemi hiyerarşisinin en üst dizini. |
| Home Directory | T | Bir kullanıcıya ait varsayılan kişisel çalışma dizini. |
| Environment Variable | O | Uygulama yapılandırması ve gizli bilgiler için süreç ortamında tutulan anahtar-değer bilgisi. |
| PATH Variable | O | Çalıştırılabilir programların aranacağı klasörleri belirleyen ortam değişkeni. |
| Process / Süreç | T | İşletim sistemi tarafından çalıştırılan program örneği. |
| PID | T | Çalışan sürece işletim sistemi tarafından verilen benzersiz kimlik. |
| Daemon / Service | O | Arka planda sürekli veya olay bekleyerek çalışan sistem süreci. |
| Foreground Process | T | Terminali meşgul ederek ön planda çalışan süreç. |
| Background Process | T | Terminalden bağımsız veya arka planda çalışan süreç. |
| Port | T | Ağ üzerinden belirli bir uygulama veya servise erişimi ayıran sayısal uç nokta. |
| Standard Input | T | Bir programa giren varsayılan veri akışı; genellikle klavye veya pipe. |
| Standard Output | T | Programın normal çıktı akışı. |
| Standard Error | T | Programın hata ve teşhis mesajları için ayrı çıktı akışı. |
| Exit Code | O | Bir sürecin başarılı veya hatalı sonlandığını belirten sayısal sonuç. |
| Permission | T | Dosya veya kaynağı okuma, yazma ve çalıştırma yetkileri. |
| Owner / Group | T | Dosya veya sürecin bağlı olduğu kullanıcı ve kullanıcı grubu. |
| Read / Write / Execute | T | Dosya izinlerinin okuma, değiştirme ve çalıştırma yetkileri. |
| Administrator / Root | T | Sistem üzerinde en yüksek yetkiye sahip kullanıcı. |
| Shell | T | İşletim sistemiyle komutlar üzerinden iletişim kurmayı sağlayan ortam. |
| Terminal | T | Shell komutlarının yazıldığı ve çıktının görüntülendiği arayüz. |
| CLI | T | Grafik arayüz yerine komutlarla kullanılan uygulama arayüzü. |
| GUI | T | Pencere, buton ve menülerle kullanılan grafik kullanıcı arayüzü. |
| Bash | T | Linux ve Unix sistemlerinde yaygın kullanılan komut kabuğu. |
| PowerShell | T | Windows odaklı komut kabuğu ve otomasyon dili. |
| Package Manager | T | Yazılım paketlerini kuran, güncelleyen ve kaldıran araç. |
| apt | T | Debian ve Ubuntu tabanlı Linux dağıtımlarında paket yöneticisi. |
| dnf / yum | T | RHEL, AlmaLinux ve CloudLinux ailesinde paket yönetim araçları. |
| Dependency | T | Bir programın çalışmak için ihtiyaç duyduğu başka paket veya bileşen. |
| Kernel | O | Donanım, bellek, süreç ve aygıt yönetimini yapan işletim sistemi çekirdeği. |
| User Space | O | Uygulamaların kernel dışında çalıştığı kullanıcı alanı. |
| Virtual Memory | O | RAM yetersizliğinde disk alanını bellek gibi kullanan mekanizma. |
| Swap | O | Sanal bellek için diskte ayrılan alan. |
| File Descriptor | O | Açık dosya, socket veya pipe gibi kaynağı temsil eden sayısal tanımlayıcı. |
| Signal | O | Bir sürece durma, yeniden yükleme veya sonlanma gibi olay bildiren işletim sistemi mesajı. |
| Cron | O | Belirli zamanlarda komut veya script çalıştıran zamanlayıcı. |
| Systemd | O | Linux servislerini, açılış süreçlerini ve loglarını yöneten init sistemi. |
| Service Unit | O | Systemd içinde bir servisin nasıl başlatılacağını tanımlayan birim dosyası. |
| Log File | T | Uygulama veya sistem olaylarının kaydedildiği dosya. |
| Archive | T | Birden fazla dosyayı tek pakette toplayan zip veya tar benzeri dosya. |
| Compression | T | Veri boyutunu azaltma işlemi. |
| Encoding | O | Karakter veya verinin byte dizisine dönüştürülme biçimi. |
| UTF-8 | T | Türkçe dâhil çok sayıda karakteri destekleyen yaygın metin kodlaması. |
| Line Ending | O | Satır sonunun LF veya CRLF ile gösterilmesi. |
| Symlink | O | Başka bir dosya veya dizine işaret eden sembolik bağlantı. |
| Mount | O | Bir disk veya uzak depolama alanını dosya sistemindeki bir dizine bağlama işlemi. |
| Partition | O | Fiziksel diskin mantıksal bölümlere ayrılması. |
| Backup | T | Veri kaybına karşı alınan yedek kopya. |
| Restore | T | Yedekten veriyi veya sistemi geri yükleme işlemi. |
| Snapshot | O | Bir disk, dosya sistemi veya sanal makinenin belirli andaki hızlı görüntüsü. |
Bölüm uygulamaları
Bu bölümü bitirmeden önce şunları deneyin veya açıklayın.
- Terminalden çalışan süreçleri, portları, disk kullanımını ve RAM kullanımını gösteren komutları bulun ve açıklayın.
- Bir uygulamanın `.env` dosyasını hazırlayın; gizli bilgilerin Git'e girmemesini sağlayın.
- Bir systemd servis dosyasını okuyup hangi kullanıcıyla ve hangi komutla çalıştığını açıklayın.