Ana sayfa→Yazılım & İşletim Sistemleri
Yazılım & İşletim Sistemleri

Linux’ta ‘her şey bir dosyadır’ fikri 50 yaşında ve işletim sisteminin bu kadar farklı hissetmesinin sebebi hâlâ buna dayanıyor.

Eğer bir Windows kullanıcısından dizge satırından dizüstü bilgisayarının pil seviyesini kontrol etmesini isterseniz, muhtemelen bir PowerShell cmdlet'i...

User Avatar
Alper DemirEditör
4 dk okuma

Eğer bir Windows kullanıcısından dizge satırından dizüstü bilgisayarının pil seviyesini kontrol etmesini isterseniz, muhtemelen bir PowerShell cmdlet’i veya pil raporu kullanır. Bir Linux kullanıcısına aynı şeyi yapmasını isterseniz, büyük ihtimalle değeri doğrudan bir dosyadan okur. Aslında Linux’taki neredeyse her şey bir dosyadır ve bu, 50 yıldan fazla önce Bell Labs’ta alınan bir tasarım kararından gelir. Linux bunu Unix’ten miras almıştır ve Windows’tan ayıran belirleyici özelliklerden biridir.

Ekle

XDA

SayarBilgi sitesini Google’da tercih edilen kaynak olarak seç

Google‘da

Hyprland Arch Linux on Framework laptop

Tercihli Kaynak Olarak Ekle

Google Discover’da Takip Et

Linux’ta her şey bir dosyadır

Bu tam olarak ne anlama gelir?

Unix, 1969’dan itibaren Bell Labs’ta şekillenmeye başladı ve dosya sistemi tasarımın başından itibaren merkezinde yer aldı. Dennis Ritchie, aygıt dosyaları fikrinden kendisini sorumlu tutar ve Unix’in en erken sürümü bile donanımı temsil eden özel dosyalar içeriyordu; bu da bugün Linux’un kullandığı şeye benzer. Ritchie ve Ken Thompson sistemi 1974’teki makalelerinde açıkladıklarında, üç tür dosya sıraladılar: sıradan dosyalar, dizinler ve G/Ç aygıtları için özel dosyalar.

Bu onlara tek, küçük bir arayüz sağladı ve bu da işleri o dönemde mevcut olan diğer şeylere göre belirgin şekilde kolaylaştırdı. Bir program bir şeyi açabilir, ondan okuyabilir, ona yazabilir ve kapatabilir; bunun bir belge, uçbirim, disk ya da başka bir program olup olduğuna bakmaz. Unix ayrıca dosya içeriğine bir yapı zorlamaz. Bir dosya, baytlardan oluşan bir diz olarak kabul edilir ve o baytları okuyan programın ne olduğu ona karar verir.

proxmox linux commands

Windows’a kıyasla bu, bir dosya sistemine yaklaşmanın oldukça farklı bir yoludur. Windows NT, Nesne Yöneticisi tarafından izlenen çekirdek nesneleri etrafında inşa edilmiştir; bu da kendi hiyerarşik ad alanını, \Device\HarddiskVolume1 gibi yollar içeren bir ad alanını tutar. Programlar bu nesnelere tutamaçlar aracılığıyla ulaşır, tıpkı Unix programlarının dosya tanımlayıcılarını kullanması gibi; ancak fark görünürlüktür. Bu ad alanı dosya sisteminin dışında yer alırken, Unix’te dizin ağacının içinde yer alır.

Linux donanımı /dev içinde yaşar

Donanım bir dosya gibi işlenir ve bu zekice

/dev , modern Linux’ta donanımın bir dosya gibi işlenmesinin en somut örneğidir. Bir SATA diski /dev/sda gibi bir şey olarak görünür, bir NVMe diski /dev/nvme0n1 olarak görünür ve bölümler kendi kayıtlarını yanlarına alır. Bazı kayıtların arkasında hiç donanım yoktur: /dev/null içine yazılan her şeyi yok eder, /dev/zero sonsuz sıfır üretir ve /dev/urandom rastgele baytlar üretir; bunların çeşitli durumlarda faydası olabilir.

Ve bir disk sıradan bir dosya gibi işlendiği için, sıradan araçlar onun üzerinde aynı şekilde çalışır. dd bunun harika bir örneğidir, çünkü genel amaçlı bir kopyalama aracıdır. Ona giriş olarak bir ISO ve çıkış olarak /dev/sdX verirseniz, önyükleme yapabilen bir USB bellek hazırlamışsınızdır. Yanlış diski yazarsanız, tebrikler, o diski ISO içeriğiyle ezmişsinizdir. Bu, bu kadar düzgün bir arayüzün dezavantajıdır ve özel araçların var olmasının nedeni de budur. Windows’ta bunun yerine Rufus gibi bir şey kullanırdınız.

Çekirdek /proc ve /sys üzerinden geri konuşur

Çekirdek durumu Linux’ta dosyalar olarak sunulur

Her şeyi bir dosya gibi işlemenin ilginç yönlerinden biri, kendisinin belirli yönlerini Linux’ta dosyalar olarak sunan çekirdekten gelir. Bunu, disk üzerinde mevcut olmayan sanal dosya sistemleri aracılığıyla yapar ve yalnızca onları okuduğunuzda üretilirler.

/proc bunun ilk örneğidir: Tom Killian bunu Unix için inşa etti ve 1984 tarihli “Processes as Files” (Süreçler Dosyalar Olarak) adlı makaleinde sundu. Linux ardından 1992’de kendi /proc’unu ekledi ve kısa süre içinde onu süreçlerin ötesine genişletti; bu yüzden cat /proc/cpuinfo ve cat /proc/meminfo, donanım ve bellek ayrıntılarını kontrol etmenin yaygın yollarıdır.

/sys, Linux 2.6 ile biraz daha sonra geldi ve çekirdeğin aygıt modelini küçük dosyalar ağacı olarak ortaya koydu. Örneğin, bir dizüstü bilgisayarın pilinin şarj düzeyi, düz bir yüzde olarak /sys/class/power_supply/BAT0/capacity gibi bir dosyada yer alır. Aynı zamanda termal sensörleri de /sys/class/thermal/thermal_zone0/temp dosyaları üzerinden milidegree Celsius cinsinden kontrol edebilirsiniz; böylece 45000 değeri 45 derece anlamına gelir. Bu dosyaların çoğu yazılabilir ve çekirdeğin nasıl davrandığını değiştirebilir.

Bu Linux’u bu kadar benzersiz kılıyor

Bugün gerçekten kıyaslanabilecek bir şey yok

          Donanım ve çekirdek durumu bir bayt akışına dönüştüğünde, üstüne inşa edilen araçlar tamamen farklı şekilde çalışabilir ve bu iyi bir şeydir. Linux üzerindeki her program üç standart dosya tanımlayıcısıyla başlar: giriş, çıkış ve hata ve bunlar komut satırını nasıl kullanacağınızı anlamak için oldukça kritiktir. 1973’in başlarında borular (pipes) sonunda Unix’in Üçüncü Sürümüne eklendi ve bu büyük bir gelişmeydi.

          Borular bir programın çıkışının doğrudan başka bir programın girişine akmasını sağlar; Linux kullanıcıları da küçük araçları grep, sort ve awk gibi birbiri ardına bağlayabilir; bu da tek bir büyük uygulama açmak yerine çok sayıda farklı komut satırı iş akışı açar. Bir programdan gelen hata çıktısını grep ile süzüp tek satırda bir günlük dosyasına aktarmak, sorun giderme gerektiğinde benim ve diğer birçok Linux kullanıcısının neredeyse her kullandığı bir şeydir.

          Windows üzerindeki PowerShell, metin yerine komutlar arasında yapılandırılmış .NET nesneleri geçirerek bilinçli olarak farklı bir yol izler. İkisi de yanlış değildir, ancak çok farklı alışkanlıklar oluştururlar. Komut satırı alışkanlıkları Linux’ta iyice yerleşmiş biri olarak PowerShell’i anlamaya çalışmak gerçekten zor.

          Her şeyi değiştiren bir fikir

          “Her şey bir dosyadır” kavramı, ona güvenen insanların çoğundan daha eskidir ve kendisi Linux’tan bile daha eskidir. Linux gibi bir işletim sisteminin bu kadar benzersiz olmasını sağlayan şeylerin çoğu o erken Unix günlerinden gelir; D-bus ve netlink gibi dosya olmayan arayüzler de Linux’ta kesinlikle mevcut olsa da, dosya katmanı her şeyin altında tiênedir. Windows’tan geliyorsanız ve Linux’ta bir şey tam olarak mantıklı gelmiyorsa, sıklıkla o ‘şey’in bir dosya tarafından kontrol edildiğini görürsünüz.

          İlginizi Çekebilir: Home Assistant’dan Mini Bilgisayarlar İçin Kolay Kurulum Sağlayan Yeni USB Kurulumcusu →
          Kaynak: XDA Developers ↗Kaynak yazarı: Ty Sherback
          💬 SayarBilgi Topluluğu

          Bu Gelişmeyi Toplulukta Değerlendirin

          Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.

          Topluluk Canlı Akışı →
          💬 Topluluk Masası & Tartışma

          Bu gelişme hakkında düşüncelerinizi, donanım deneyimlerinizi veya sorularınızı Topluluk Forumumuzda paylaşın.

          Foruma Katıl & Yanıtla ➔
          Forumda sor / tartış
          TOPLULUĞUN SESİ

          Söz sizde.

          1 yorum

          Deneyiminizi, sorularınızı ve katkılarınızı paylaşın. E-posta adresiniz yayımlanmaz.

          Sohbete katıl

          E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

          Yorumunuz yayımlanmadan önce onay bekleyebilir.

          BİR SONRAKİ OKUMA

          Merak etmeye devam

          Tümünü gör ↗

          Neyi merak ediyorsun?

          En az 3 karakter yazın.

          Keşfet