Yanıtlar:
Gerçekten bir "kütüphane çağrısı" diye bir şey yoktur. Paylaşılan kitaplığa bağlı bir işlevi çağırabilirsiniz. Ve bu, çağrılacak işlevin konumunu belirlemek için çalışma zamanında kütüphane yolunun aranacağı anlamına gelir.
Sistem çağrıları, çekirdek tarafından gerçekleştirilen düşük düzeyli çekirdek çağrılarıdır.
Eğer yazarsanız man man
sizin kabuğunda, manuel bölümlerin listesini göreceksiniz
2 Sistem çağrıları (çekirdek tarafından sağlanan işlevler)
3 Kütüphane çağrıları (program kütüphanelerindeki fonksiyonlar)
Örneğin, chmod
yazarken kılavuzun 2. bölümünde bulabilirsiniz man chmod
. Ve fprintf
3. bölümde.
Sistem çağrıları doğrudan çekirdek tarafından yapılır.
Kütüphane çağrıları dinamik (veya statik olarak bağlı) bir kütüphane tarafından işlenir. Kütüphane çağrısı yapan program, çağrının çalışması için önce bu kütüphaneyi içe aktarmalıdır. Kütüphane çağrılarının kendisi sistem çağrılarını kullanabilir.
Bazen çekirdek tarafından sağlanmayan ekstra işlevsellik veya kullanım kolaylığı sağlamak için kütüphaneler sistem çağrılarına "ön uç" olarak verilir.
Sistem çağrıları , işletim sisteminin uygulamaların kullanmasını sağladığı işlevlerdir. Ancak math.h, string.h, vb. Gibi işlevler, işletim sistemiyle arayüz kurmakla ilgisi olmayan işlevlerdir.
Temel olarak linux çekirdek viz'in iki modu vardır.
Herhangi bir linux çekirdeği bu iki mod arasında kendisini ileri ve geri değiştirir. Genellikle, Kütüphane çağrıları idam olsun Kullanıcı modu ve Sistem çağrıları idam olsun Çekirdek modu . İşletim sistemi terimleriyle, Çekirdek modu Atomik yapıda ve Denetleyici modundadır. Hemen hemen tüm Kütüphane çağrıları görevlerini yerine getirmek için çekirdekten yardım almalıdır. Her kütüphane çağrısı sırayla sistem çağrısının temelini oluşturur. Aşağıdaki örneği kullanarak fikri daha net hale getirelim
C programında her zaman, başlık dosyasından fopen () kullanın. Programlama ortamı çekirdekten sistem çağrısı open () öğesini çağırır ve dosya açma görevini gerçekleştirir. Yine yürüttükten sonra, akış kontrolünü kullanıcı moduna döndürün.
Bunu göstermek için aşağıdaki görevleri gerçekleştirin
man man
: burada 1-8 arası manuel bölüm bulacaksınız her birinin amacı vardır.man fopen
: FOPEN(3)
burada göreceksiniz , burada 3, c-kütüphane çağrıları bölümü olan man sayfalarının manuel bölümünü 3 göstermektedir.Yapın man open
: OPEN(2)
Burada 2'yi göreceksiniz , burada 2 sistem çağrıları bölümü olan man sayfalarının manuel bölümünü 2 göstermektedir.
Umarım kavramı anlarsın.
Sadece diğer cevaplarda bahsedilen farklılıklara ekleyerek.
Kütüphane çağrısı basitçe bir işlev çağrısı olduğundan, kullanıcı alanından çekirdek alanına geçiş olmaz. Diğer yandan, bir sistem çağrısı, sistem çağrısı çekirdek modunda çalıştığı için kullanıcı alanından çekirdek alanına geçiş yapar.