Linux Komutları

Linux'ta Strace Nasıl Kullanılır

Linux'ta Strace Nasıl Kullanılır
Linux sistemleriyle çalışırken, genellikle süreçler tarafından gerçekleştirilen eylemleri ve bunların yürütülmesiyle gerçekleştirilen sistem çağrılarını incelemeniz ve anlamanız gerekir.

Bu tür görevlerin yerine getirilmesi söz konusu olduğunda, Linux çekirdeği aşağıdaki gibi özellikler sağlar: ptrace süreçlerin hatalarını ayıklamak ve teşhis etmek için.

Bu makalede, Çekirdek ile etkileşime giren süreçleri izlemek, izlemek ve hata ayıklamak için izleme aracının nasıl kullanılacağı anlatılmaktadır.

Sistem Çağrıları Nelerdir??

Strace'nin nasıl kullanılacağını tartışmadan önce, ne aradığımızı ve nasıl çalıştıklarını anlamanız gerekir. Bu, Linux Sistem çağrılarının temellerini gözden geçirmemiz gerektiği anlamına geliyor.

Bir sistem çağrısı bir programın sistemin Çekirdeğinden bir hizmet talep edebileceği programlı bir yöntem. Kullanıcı süreçleri ve Linux çekirdeği arasındaki eylemleri incelemek için kullanacağımız süreç budur.

Kullanıcı herhangi bir zamanda okuma, yazma, öldürme, çıkma, bağlama vb. işlemleri yapan bir programı çalıştırır., istek, bir sistem çağrısı yapıyorlar. Ağ oluşturma, dosyalara okuma ve yazma, işlemleri başlatma ve sonlandırma ve çok daha fazlası gibi çeşitli görevleri gerçekleştirmek için programlar tarafından kullanılan çok çeşitli sistem çağrıları vardır.

Sistem çağrılarını işlevler olarak düşünün - benzer şekilde davranırlar çünkü argümanları kabul edebilir ve değerler döndürebilirler. Sistem çağrıları ile normal çalışma arasındaki temel fark, sistem çağrılarının doğrudan Çekirdek ile etkileşime girebilmesidir. Sistem çağrıları bir tuzak mekanizması kullanıcı alanı ve Çekirdek arasında gezinmek için.

Linux sisteminde bu mekanizma, Glibc gibi kütüphaneler tarafından kullanıcılardan çok iyi gizlenmiştir.

NOT: Bu eğitimde tartıştığımızdan çok sistem çağrıları ve çekirdek etkileşimleri var. Daha fazla bilgi için lütfen kılavuz sayfalarına bakın.

https://linkfy./ sistem çağrılarına

https://linkfy.için/trapmanual

Linux'ta strace nasıl kurulur

Strace araçları büyük Linux dağıtımlarında varsayılan olarak önceden yüklenmiş olarak gelmese de, bu dağıtımların çoğu resmi deposunda mevcuttur; varsayılan paket yöneticilerini kullanarak kolayca yükleyebilirsiniz.

NOT: strace'in tüm sistemlere nasıl kurulacağını anlatmayacak olsak da, bunun nasıl yapılacağını apt, dnf, pacman ve yum gibi büyük paket yöneticileriyle tartışacağız

1: Debian (uygun) Kurulumu

Komutu kullanarak strace yükleyin:

apt-get install strace -y

2: RedHat Ailesi (dnf ve yum)

yum paket yöneticisini kullanarak strace yüklemek için şu komutu girin:

yum yükleme strace

dnf paket yöneticisi için şu komutu girin:

dnf yükleme strace

3: Arch Linux (pacman)

Arch Linux kullanıcıları için strace'i şu komutla yükleyebilirsiniz:

pacman -S dizisi

Artık strace'i yüklediğinize ve çalıştırdığınıza göre, devam edebilir ve nasıl kullanılacağını öğrenebiliriz

Temel Strace Kullanımı: Nasıl Yapılır Kılavuzu

Temel strace kullanımını tartışalım ve komutun temel çıktısını ve onu nasıl kullanabileceğimizi anlayalım.

NOT: Sistem çağrıları adları, karşılık gelen argümanlar ve dönüş değerleri gibi Strace çıktısı, aşağıdakiler tarafından işlenir: standart hata dosyası tanımlayıcısı (stderr).

strace kullanmanın temel yolu, davranışını anlamak istediğimiz programın adının ardından strace yardımcı programını aramaktır.

İşte ls komutunu kullanarak buna bir örnek:

vay! Bu, ls gibi basit bir komut için çok fazla çıktı demektir.

strace komutunun tüm çıktısını tartışamasak da anlamını damıtıp anlayabiliriz.

Yukarıdaki çıktıdaki ilk satırı göz önünde bulundurursanız, aşağıdaki özellikleri fark edeceksiniz.

Bu nedenle, ilk satırda, sistem çağrısı execve (belirtilen argüman dizisini kullanarak programı yürütün), sistem çağrısının argümanları (“/bin/ls”, [“ls”, “/”], 0x7fffc4b277a8 / * 13 değişken */) ve 0 dönüş değeri.

https://linkfy.yapmak/yürütmek

Execve sistem çağrıları, kullanmak istediğimiz ikili dosyayı yürütür, bu durumda (/bin/ls) içinde bulunur ve argüman dizisi, içeriği listelemek istediğimiz yoldur.

Ayrıca eğik çizgi ve yıldız işaretiyle çevrelenmiş bir notasyon göreceksiniz. Örneğimiz için:

/* 13 değişken */

Yukarıdaki çıktı, işlemin çağrılması sonucunda eklenen değişkenlerin sayısını gösterir. execv işlevinin içindeki ortama, şu şekilde tanımlanan environ harici değişkeni kullanılarak erişilir:

int main(int argc, karakter *argv[], karakter *envp[])

Son çıktı, bu durumda 0 olan dönüş değeridir.

Ayrıca, strace çıktısının çoğu satırının yukarıda tartıştığımız benzer bir modeli takip ettiğini fark edeceksiniz.

Belirli Sistem çağrıları nasıl izlenir

strace, programların sistem çağrıları hakkında birçok bilgi vermesine rağmen, çoğu örnek belirli sistem çağrılarını filtrelemek için sizi arayacaktır. Bunu yapmak için -e bayrağını strace komutuna ve ardından ihtiyacımız olan sistem çağrısının adını geçiyoruz.

ls komutu için okuma sistemi çağrılarına bakmaya ne dersiniz?. Örneğin:

strace -e ls oku

Bunun yalnızca yalnızca okunan sistem çağrılarını görüntülediğini fark edeceksiniz.

Okunan sistem çağrısı üç bağımsız değişkeni kabul eder: dosya tanımlayıcı, arabellek ve bayt sayısı. Ardından sistem çağrısı, geçirilen dosya tanıtıcı bağımsız değişkeninden arabelleğe alınan sayım baytlarını okur.

https://linkfy./readsyscall'a

Sistem Çağrılarının Özeti

Strace ayrıca bir süreç tarafından yapılan sistem çağrılarının bir özetini almamızı sağlar. -c veya -sadece özet argümanını ileterek, aşağıda gösterilen gibi bir çıktı alabiliriz:

Komut, çıktıyı normal strace çıktısından daha verimli bir şekilde filtreler ve düzenler. Hem özet hem de normal strace çıktısı almak için -C argümanını iletin.

Çalışan İşlemlerle Strace Nasıl Kullanılır

Diğer zamanlarda, devam eden bir işlemin izine ihtiyacınız olacaktır. Bu noktaya kadar sadece tek bir komut strace kullandık. Çalışan bir işlemi izlemek için, ona strace eklemek için -p argümanını ve ardından İşlem Kimliği (PID) işlemini kullanabiliriz.

Top ve grep, ps, htop, pidof veya diğer sistem izleme araçlarını kullanarak çalışan bir işlemin PID'sini alabilirsiniz.

Örneğin, apache işleminin PID'sini almak için şunları kullanabiliriz:

ps -balta | grep -i apache2

Bu size apache2 işleminin PID'sini vermelidir (bu durumda PID 3514) ve onu strace'e eklemek için kullanabiliriz.

Bu, aşağıda gösterilene benzer bir çıktı göstermelidir.

Strace, ekli işlemi sürekli olarak izleyecek ve ekli işlem sistem çağrılarını yürütürken çıktıyı gösterecektir. İzi sonlandırmak için, süreci izden ayıran CTRL + C tuşlarına basın.

Dosyalara Strace Çıktısı Nasıl Kaydedilir

Ayrıca strace çıktısını argüman olarak bir dosyaya yönlendirebiliriz. -o bayrağını ve ardından dosya yolunu argüman olarak kullanarak, strace günlüklerini kaydedebiliriz.

Örneğin:

strace -p 3514 -o ~/Desktop/apache_trace

Dosya kaydedildikten sonra daha sonra izleyebilir ve analiz edebilirsiniz.

Sonuç

Bu kılavuzda, Binbaşı Linux dağıtımlarında strace'in nasıl kurulacağını ve kullanılacağını öğrendik. Artık sistem çağrılarını ve süreçlerin nasıl çalıştığını anladığınıza göre, çalışan bir sistem sürecini izlemek ve hatalarını ayıklamak için strace kullanabilirsiniz.

Bu eğitimde öğrenilen kavramlar çok faydalıdır, çünkü öğrendiklerinizi herhangi birinin sistem süreçlerine müdahale edip etmediğini izlemek için kullanabilirsiniz.

How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Linux Oyunları Geliştirmek için Ücretsiz ve Açık Kaynaklı Oyun Motorları
Bu makale, Linux'ta 2D ve 3D oyunlar geliştirmek için kullanılabilecek ücretsiz ve açık kaynaklı oyun motorlarının bir listesini kapsayacaktır. Bu tür...