/proc - Linux İşlem ve Donanım Bilgilerini Alın


Bugün, işlevlerini daha iyi anlayabilmek için /proc dizininin içeriğini inceleyeceğiz. /proc dizininin, tarzına veya mimarisine bakılmaksızın tüm Linux dağıtımlarında ortak bir özellik olduğunu unutmamak önemlidir.

Hemen açıklığa kavuşturmamız gereken bir yanlış anlama, /proc dizininin, terimin geleneksel anlamında geleneksel bir dosya sistemi OLMADIĞIDIR.

procfs içindeki işlemler ve sistemle ilgili diğer veriler hakkında bilgi içeren sanal bir dosya sistemidir. Bu dosya sistemi /proc dizini ile eşlenir ve sistemin önyükleme işlemi sırasında bağlanır.

Linux'ta /proc nedir?

/proc dosya sistemi, çekirdek veri yapılarına ve çalışma zamanı bilgilerine yönelik bir arayüz görevi görür; bu, hem kullanıcılara hem de uygulamalara, işlemler, sistem yapılandırması, donanım ve daha fazlası hakkında ayrıntılı bilgilere erişmeleri için bir yol sağlar. bu veriler bir sanal dosyalar hiyerarşisi aracılığıyla.

/proc dosya sistemindeki dosya ve dizinlerin tam listesini görüntülemek için gösterildiği gibi ls komutunu kullanabilirsiniz.

ls /proc

Linux'ta /proc'ta gezinme

/proc dizinine gittiğinizde, tanıdık gelen bazı dosyaların ve ardından her biri sistemde çalışan bir işleme karşılık gelen bir dizi numaralı dizinin bulunduğunu fark edeceksiniz.

cd /proc
ls

Bu numaralı dizinler, daha çok süreç kimlikleri (PID'ler) olarak bilinen süreçleri ve bunların içinde, onları işgal eden bir komutu temsil eder. Dosyalar, bellek (meminfo), CPU bilgileri (cpuinfo) ve mevcut dosya sistemleri gibi sistem bilgilerini içerir.

Karşılaşacağınız birkaç önemli dosya ve dizin şunlardır:

  • /proc/cpuinfo – Sistemdeki CPU(lar) hakkında model, hız ve çekirdek sayısı gibi bilgileri listeler.
  • /proc/meminfo – Bellek kullanımıyla ilgili ayrıntıları ve toplam bellek miktarını, boş belleği ve her işlem tarafından kullanılan belleği içeren istatistikleri listeler.
  • /proc/filesystems – Çekirdek tarafından desteklenen tüm dosya sistemlerinin bir listesini içerir.
  • /proc/sys – Çekirdek için yapılandırma ve çalışma zamanı parametrelerini listeler.
  • /proc/loadavg – 1, 5 ve 15 dakika gibi farklı zaman aralıklarında sistem yük ortalamasını gösterir.
  • /proc/self – Sürecin kendi dizinine sembolik bir bağlantı.
  • /proc/stat – Çalışan işlemlerin sayısı, kesinti sayısı ve her CPU durumunda harcanan süre gibi sistem hakkında çeşitli istatistikler içerir.
  • /proc/uptime – Sistemin çalıştığı süreyi içerir.
  • /proc/PID – Belirli bir işlem hakkında bilgi içerir; burada PID, işlem kimliğidir.

Sistem Bilgilerini Çıkarma

/proc/meminfo, bir Linux sisteminin bellek kullanımı ve istatistikleri hakkında bilgi göstermek için kullanılır; bu, sistem performansını ve kaynak kullanımını izlemek için yararlı olabilecek, bellekle ilgili çeşitli ölçümlerin anlık görüntüsünü içerir. .

cat /proc/meminfo

Gördüğünüz gibi /proc/meminfo, sisteminizin belleği hakkında, kullanılabilir toplam miktar (kb cinsinden) ve ilk ikideki boş miktar da dahil olmak üzere bir dizi bilgi içerir. çizgiler.

/proc dosyasındaki herhangi bir dosya üzerinde cat komutunu çalıştırmak, içeriklerinin çıktısını alacaktır. Herhangi bir dosya hakkındaki bilgiye kılavuz sayfasında aşağıdakileri çalıştırarak ulaşılabilir:

man 5 /proc/<filename>

Size /proc dosyalarının kısa bir özetini vereceğim:

  • /proc/cmdline – Çekirdek komut satırı bilgileri.
  • /proc/console – tty dahil mevcut konsollar hakkında bilgiler.
  • /proc/devices – Çalışan çekirdek için halihazırda yapılandırılmış aygıt sürücüleri.
  • /proc/dma – Mevcut DMA kanalları hakkında bilgi.
  • /proc/fb – Framebuffer cihazları.
  • /proc/filesystems – Çekirdek tarafından desteklenen mevcut dosya sistemleri.
  • /proc/iomem – Cihazlar için mevcut sistem hafıza haritası.
  • /proc/ioports – Cihazla giriş-çıkış iletişimi için kayıtlı bağlantı noktası bölgeleri.
  • /proc/loadavg – Sistem yükü ortalaması.
  • /proc/locks – Şu anda çekirdek tarafından kilitlenmiş dosyalar.
  • /proc/meminfo – Sistem belleği hakkında bilgi (yukarıdaki örneğe bakın).
  • /proc/misc – Çeşitli ana cihazlar için kayıtlı çeşitli sürücüler.
  • /proc/modules – Şu anda yüklü olan çekirdek modülleri.
  • /proc/mounts – Sistem tarafından kullanılan tüm montajların listesi.
  • /proc/partitions – Sistemde kullanılabilen bölümler hakkında ayrıntılı bilgi.
  • /proc/pci – Her PCI aygıtı hakkında bilgi.
  • /proc/stat – Son yeniden başlatmadan itibaren saklanan kayıt veya çeşitli istatistikler.
  • /proc/swap – Takas alanı hakkında bilgi.
  • /proc/uptime – Çalışma süresi bilgileri (saniye cinsinden).
  • /proc/version – Çekirdek sürümü, gcc sürümü ve yüklü Linux dağıtımı.

Proses Bilgilerinin Çıkarılması

/proc'un numaralandırılmış dizinleri içinde birkaç dosya ve bağlantı bulacaksınız. Bu dizinlerin numaralarının, içlerinde çalıştırılan komutun PID'iyle ilişkili olduğunu unutmayın.

Örneğin, /proc/ dizinine gitmek aşağıdaki gibi ayrıntıları sağlar:

  • /proc//cmdline – İşlemi başlatmak için kullanılan komut satırı bağımsız değişkenleri.
  • /proc//status – Bellek kullanımı ve işlem istatistikleri dahil ayrıntılı durum bilgileri.
  • /proc//fd – İşlem tarafından açılan dosyalara sembolik bağlantılar.

/proc/12 adlı bir klasörü görüntülemek için bir örnek kullanalım.

cd /proc/12
ls

Eğer koşarsam:

cat /proc/12/status

Aşağıdakileri alıyorum:

Peki bu ne anlama geliyor? Önemli olan kısım üstte. Durum dosyasından bu işlemin rcu_tasks_rude_kthread'e ait olduğunu görebiliyoruz. Mevcut durumu boşta ve süreç kimliği de 12'dir.

Ayrıca UID ve GID 0 olduğundan bu işlemi kimin çalıştırdığını da görebiliriz; bu da bu sürecin kök'e ait olduğunu gösterir. güçlü> kullanıcı.

Herhangi bir numaralandırılmış dizinde benzer bir dosya yapısına sahip olacaksınız ve en önemlileri açıklamalarıyla birlikte aşağıdaki gibidir:

  • cmdline – sürecin komut satırı
  • çevre – çevresel değişkenler
  • fd – dosya tanımlayıcıları
  • limitler – sürecin limitleri hakkında bilgi içerir
  • bağlamalar – ilgili bilgiler

Ayrıca numaralı dizinde birkaç bağlantı göreceksiniz:

  • cwd – sürecin geçerli çalışma dizinine bağlantı
  • exe – işlemin yürütülebilir dosyasına bağlantı
  • kök – sürecin çalışma dizinine bağlantı

Bu, /proc dizinini tanımaya başlamanıza yardımcı olacaktır. Ayrıca, yalnızca birkaçını saymak gerekirse, çalışma süresi, lsof, mount ve ps gibi bir dizi komutun bilgilerini nasıl elde ettiğine dair fikir sağlamalıdır.