Linux'ta en azından sistem çağrı mekanizması, bazı kayıtlara veya önceden tanımlanmış bellek adreslerine özel olarak biçimlendirilmiş veriler (genellikle bir tür c yapı) yerleştirerek çoğu mimaride çalışır.
Ancak sorun aslında CPU'yu çekirdek alanına geçiş yapmaya zorlayarak çağrıya hizmet vermek için ayrıcalıklı çekirdek kodunu çalıştırabiliyor. Bu, bir tür bir hatayı zorlamak suretiyle yapılır (bir hata 0'a bölünmek, tanımlanmamış bir taşma veya segfault, vb.), Çekirdeği hatayı işlemek için yürütmeyi devralmaya zorlar.
Normalde çekirdek, hataya neden olan işlemi öldürerek veya kullanıcı tarafından sağlanan bir işleyiciyi çalıştırarak hataları işler. Bununla birlikte, bir sistem çağrısı durumunda, bunun yerine önceden tanımlanmış kayıtları ve bellek konumlarını kontrol eder ve bir sistem çağrısı talebi içeriyorsa, bellek içi yapıdaki kullanıcı işlemi tarafından sağlanan verileri kullanarak bunu çalıştırır. Bu genellikle bazı özel hazırlanmış el yapımı montaj ile yapılmalıdır ve kullanıcı için sistem çağrısının kullanımını kolaylaştırmak için sistemin C kütüphanesinin bir işlev olarak sarması gerekir. Daha alt düzey bir arayüz için, sistem çağrılarının nasıl çalıştığı ve C sarıcı olmadan nasıl arayabileceğiniz hakkında bilgi için lütfen http://man7.org/linux/man-pages/man2/syscall.2.html adresine bakın .
Bu aşırı basitleştirildi, tüm mimarilerde (mips'in özel bir sistem çağrısı talimatı var) doğru değil ve tüm işletim sistemlerinde aynı şekilde çalışması gerekmez. Yine de, herhangi bir yorumunuz veya sorunuz varsa lütfen sorun.
Değiştirildi: / dev / içindeki şeyler hakkındaki yorumunuzla ilgili olarak, aslında çekirdeğe göre daha üst düzey bir arayüz, daha düşük bir arayüz değil. Bu cihazlar aslında altında (yaklaşık) 4 sistem çağrısı kullanır. Onlara yazmak bir yazma sistemiyle aynıdır, bir okuma sistemini okumak, onları açık ve kapalı sistem çağrılarına eşdeğer olarak açmak / kapatmak ve bir ioctl çalıştırmak, kendi içinde sistemin birçok ioctlinden birine erişmek için bir arayüz olan özel bir ioctl sistem çağrısına neden olur. (özel, genellikle cihaza özel bir arama yazmak için çok dar kullanıma sahip cihaza özel çağrılar).