spot_img
Friday, April 19, 2024
spot_img
HomeTechBilgi TeknolojisiLinux'ta “Her Şey Bir Dosya” Ne Anlama Geliyor?

Linux'ta “Her Şey Bir Dosya” Ne Anlama Geliyor?

-

 resim

Linux ve diğer UNIX benzeri işletim sistemlerinin tanımlayıcı özelliklerinden biri “her şeyin bir dosya” olduğudur. Bu aşırı basit bir işlemdir, ancak bunun ne anlama geldiğini anlamak Linux'un nasıl çalıştığını anlamanıza yardımcı olacaktır.

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

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

/ proc

Örneğin, CPU'nuz hakkında bilgi bulmak istediğinizi varsayalım. / Proc dizini, bu bilgileri içeren özel bir dosya – / proc / cpuinfo – içerir.

 resmi

Size CPU bilgilerinizi söyleyen özel bir komuta ihtiyacınız yoktur – bu dosyanın içeriğini düz metin dosyalarıyla çalışan herhangi bir standart komutu kullanarak okuyabilirsiniz. Örneğin, şu komutu kullanabilirsiniz: kedi / proc / cpuinfo Bu dosyanın içeriğini terminale yazdırmak için – CPU bilgilerinizi terminale yazdırmak. İçeriğini görüntülemek için bir metin düzenleyicide / proc / cpuinfo bile açabilirsiniz.

Unutmayın, / proc / cpuinfo aslında bu bilgileri içeren bir metin dosyası değildir – Linux çekirdeği ve proc dosya sistemi bu bilgileri bize bir dosya olarak açığa çıkarır. Bu, bilgileri görüntülemek ve üzerinde çalışmak için tanıdık araçlar kullanmamıza olanak tanır.

 resmi

/ Proc dizini de benzer dosyaları içerir, örneğin:

  • / proc / uptime – Linux çekirdeğinizin çalışma süresini gösterir – başka bir deyişle, sisteminizin kapanmadan ne kadar süre açık kaldığını.
  • / proc / version – Linux çekirdeğinizin sürümünü gösterir.

/ dev

/ Dev dizininde, 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ü gösterirken / dev / sda1 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 diskinizi bölümlemek mi istiyorsunuz? Bir disk bölümleme yardımcı programı çalıştırın ve düzenlemek istediğiniz sabit disk olarak / dev / sda öğesini belirtin. İlk bölümü ilk sabit sürücünüzde biçimlendirmek mi istiyorsunuz? Bir formatlama komutu çalıştırın ve / dev / sda1 formatlamasını söyleyin.

 resim

Gördüğünüz gibi, bu aygıtları dosya sisteminin bir parçası olarak göstermenin avantajları vardır. Dosya sistemi, tüm uygulamaların aygıtlara yönelik ve bunlara erişmek için kullanabileceği tutarlı bir “ad alanı” sağlar.

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

/ Dev dosya sistemi yalnızca fiziksel aygıtları temsil eden dosyalar içermez. İşte içerdiği en önemli üç özel cihaz:

  • / dev / null – Üzerine yazılan tüm verileri atar – bunu bir çöp tenekesi veya kara delik olarak düşün. / Dev / null adresine şikayette bulunmanızı söyleyen bir yorum görürseniz – bu, “onları çöp kutusuna atın” demenin acayip bir yoludur.
  • / dev / random – Çevresel gürültüyü kullanarak rasgelelik üretir. Bu, dokunabileceğiniz rastgele bir sayı üretecidir.
  • / dev / zero – Sıfırlar üretir – sabit bir sıfır akışı.

Bu üçünü dosya olarak düşünüyorsanız, bunlar için bir kullanım görmezsiniz. Bunun yerine, bunları bir araç olarak düşünün.

Örneğin, varsayılan olarak, Linux komutları standart çıktıya, normalde terminale yazdırdı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 konumuna yönlendirebilirsiniz. Bir komutun çıktısını / dev / null'a yönlendirmek onu hemen atar. Her komutun kendi “sessiz modunu” uygulaması yerine, bu yöntemi herhangi bir komutla kullanabilirsiniz.

komut> / dev / null

 resmi

Rastgele bir kaynak istiyorsanız – örneğin, bir şifreleme anahtarı oluşturmak için, kendi rastgele sayı üretecinizi yazmanız gerekmez – / dev / random kullanabilirsiniz.

Bir sabit sürücünün içeriğini 0 yazarak silmek için, sürücüyü sıfırlamaya adanmış özel bir yardımcı programa ihtiyacınız yoktur – standart yardımcı programları ve / dev / zero kullanabilirsiniz. Örneğin, gg komutu bir konumdan okur ve başka bir konuma yazar. Aşağıdaki komut sıfırları / dev / zero'dan okur ve bunları 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ümünüzdeki tüm verileri siler. Bu komutu yalnızca verileri silmek istiyorsanız çalıştırın.)

gg = / dev / s = = dev / sda1 ise

Burada dd'yi özel dosyalarla (/ dev / zero ve / dev / sda1) kullanıyoruz, ancak dd'yi gerçek dosyalardan okumak ve bunlara yazmak için de kullanabiliriz. Aynı komut, hem cihazları doğrudan değiştirmek hem de dosyalarla çalışmak için çalışır.

açıklama

Pratikte, “her şeyin bir bayt akışı olduğunu” söylemek, “her şeyin bir dosyadır” ifadesinden daha doğrudur. / Dev / random bir dosya değildir, ama kesinlikle bir bayt akışıdır. Ve bunlar teknik olarak dosyalar olmasa da, dosya sisteminde erişilebilirler – dosya sistemi her şeyin erişilebilir olduğu evrensel bir “ad alanı” dır. Rasgele bir sayı üretecine erişmek mi yoksa doğrudan bir cihazdan mı okumak istiyorsunuz? Her ikisini de dosya sisteminde bulacaksınız; başka bir adreslemeye gerek yok.

Tabii ki, bazı şeyler aslında dosya değildir – sisteminizde çalışan işlemler dosya sisteminin bir parçası değildir. “Her şey bir dosyadır” yanlıştır, ancak birçok şey dosya gibi davranır.

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
spot_img

Latest posts