29Jul

Linux'ta "Her Şey Bir Dosya Nedir?" Nedir?

click fraud protection

Linux'un ve diğer UNIX benzeri işletim sistemlerinin belirleyici özelliklerinden biri "her şey bir dosyadır". Bu çok basit bir tanımlamadır, ancak bunun anlamını anlamak, Linux'un nasıl çalıştığını anlamanıza yardımcı olacaktır.

Linux'taki birçok şey dosya sisteminizde görünür ancak bunlar aslında bir dosya değildir. Bunlar, donanım aygıtlarını, sistem bilgilerini ve rasgele sayı üreteci de dahil olmak üzere diğer şeyleri temsil eden özel dosyalardır.

Bu özel dosyalar, aygıtları temsil eden özel dosyaları içeren / dev ve / proc gibi sistem ve işlem bilgilerini temsil eden özel dosyalar içeren sözde veya sanal dosya sistemlerinde olabilir.

/ proc

Örneğin, CPU'su hakkında bilgi bulmak istediğinizi varsayalım./ Proc dizini, bu bilgiyi içeren özel bir dosya( /proc/ cpuinfo) içeriyor.

CPU bilgilerinizi söyleyen özel bir komuta ihtiyacınız yok - salt metin dosyalarıyla çalışan standart bir komutla bu dosyanın içeriğini okuyabilirsiniz.Örneğin, bu dosyanın içeriğini terminale yazdırmak için

instagram viewer
kedi /proc/ cpuinfo komutunu kullanabilirsiniz - CPU bilgisini terminale yazdırma.İçeriğini görüntülemek için /proc/ cpuinfo dosyasını bir metin düzenleyicide açabilirsiniz.

Unutmayın, /proc/ cpuinfo aslında bu bilgiyi içeren bir metin dosyası değildir - Linux çekirdeği ve proc dosya sistemi bu bilgileri bize bir dosya olarak sunar. Bu, bilgiyi görüntülemek ve bunlarla çalışmak için tanıdık araçlar kullanmamızı sağlar.

/ proc dizini diğer benzer dosyaları da içerir, örneğin:

  • /proc/ çalışma süresi - Linux çekirdeğinizin çalışma süresini ortaya çıkarır - başka bir deyişle, sisteminiz kapatılamadan ne kadar süredir açık kalmıştır.
  • /proc/ sürümü - Linux çekirdeğinizin sürümünü gösterir.

/ dev

/ dev dizinde, aygıtları temsil eden dosyaları ve diğer özel şeyleri temsil eden dosyalar bulacaksınız.Örneğin, /dev/ cdrom CD-ROM sürücünüzdür. /dev/ sda ilk sabit sürücünüzü, /dev/ sda1 ise ilk sabit sürücünüzdeki ilk bölümü temsil eder.

CD-ROM'unuzu takmak ister misiniz? Mount komutunu çalıştırın ve bağlamak istediğiniz aygıt olarak /dev/ cdrom belirtin.İlk sabit sürücünüzü bölmek ister misiniz? Bir disk bölümleme yardımcı programını çalıştırın ve düzenlemek istediğiniz sabit disk olarak /dev/ sda'yı belirtin.İlk bölümü ilk sabit sürücünüzde biçimlendirmek mi istiyorsunuz? Bir biçimlendirme komutu çalıştırın ve /dev/ sda1 biçimlendirmesini söyleyin.

Gördüğünüz gibi, bu aygıtları dosya sisteminin bir parçası olarak gösterme avantajlara sahiptir. Dosya sistemi, tüm uygulamalar tarafından adreslenip aygıtlara erişilebilecek tutarlı bir "ad alanı" sağlar.

/dev/ null, /dev/ rasgele ve /dev/ sıfır

/ dev dosya sistemi sadece fiziksel aygıtları temsil eden dosyaları içermez.İçerdiği en önemli özel cihazlardan üç tanesi:

  • /dev/ null - Üzerine yazılan tüm verileri yok eder - bir çöp kutusu veya kara delik olarak düşünün. /dev/'ye şikayet göndermenizi söyleyen bir açıklama hiç görmediyseniz - bu "çöp kutusuna atın" diyerek alçak bir yoldur.
  • /dev/ rasgele - Çevresel gürültüyü kullanarak rastgelelik üretir. Girebileceğiniz rasgele sayı üreteci.
  • /dev/ sıfır - Sıfır üretir - sabit bir sıfır akışı.

Bu üçünü dosyalar olarak görüyorsanız, onlar için bir kullanım göremezsiniz. Bunun yerine, onları araç olarak düşünün.

Örneğin, varsayılan olarak, Linux komutları, standart çıktıya, normalde terminale yazdıkları hata iletileri ve diğer çıktılar üretir. Bir komutu çalıştırmak ve çıktısını önemsemiyorsanız, bu çıktıyı /dev/ null değerine yönlendirebilirsiniz. Bir komut çıktısını /dev/ null'ye yeniden yönlendirme derhal yok sayar. Her komutun kendi "sessiz modunu" uygulamak yerine, bu yöntemi herhangi bir komutla kullanabilirsiniz.

komutu & gt;/dev/ null

Bir rastgelelik kaynağı isteseniz - bir şifreleme anahtarı üretmek için, kendi rasgele sayı üreticinizi yazmanız gerekmez - /dev/ rasgele kullanabilirsiniz.

Bir sabit sürücünün içeriğini 0 olarak yazarak silmek için, bir sürücüyü sıfırlamak için özel bir yardımcı programa ihtiyacınız yoktur - standart yardımcı programlar ve /dev/ sıfır kullanabilirsiniz.Örneğin, dd komutu bir konumdan okur ve başka bir yere yazar. Aşağıdaki komut sıfırları /dev/ sıfırdan okur ve onları doğrudan sisteminizdeki ilk sabit disk bölümüne yazar ve içeriğini tamamen siler.

( Uyarı : Bu komut, çalıştırırsanız ilk bölümdeki tüm verileri silecektir. Bu işlemi yalnızca verileri yok etmek istiyorsanız bu komutu çalıştırın.)

dd if = /dev/ sıfır = /dev/ sda1

Burada dd'yi kullanıyoruzözel dosyalarla( /dev/ sıfır ve /dev/ sda1), ancak gerçek dosyaları okumak ve yazmak için dd'yi de kullanabilirsiniz. Aynı komut hem cihazları doğrudan manipüle etmek hem de dosyalarla çalışmak için çalışır.

Açıklamaları

Uygulamada "her şey bir dosyadır" yerine "her şey bir bayt akışı" demek daha doğrudur. /dev/ rasgele bir dosya değildir, ancak kesinlikle bir bayt akışıdır. Ve her ne kadar bu şeyler teknik olarak dosyalar değilse de, dosya sisteminde erişilebilir durumdadır - dosya sistemi her şeyin erişilebilir olduğu evrensel bir "ad alanı" dır. Rastgele sayı üreticisine erişmek veya doğrudan bir cihazdan okumak ister misiniz? Her ikisini de dosya sisteminde bulacaksınız;Başka hiçbir adres belirtme yöntemi gerekli değildir.

Elbette bazı şeyler gerçekte dosya değildir - sisteminizde çalışan süreçler dosya sisteminin bir parçası değildir."Her şey bir dosyadır" hatalı, ancak birçok şey dosyalar gibi davranıyor.