Sadece kendime sordum ve birkaç saat boyunca beynime zarar veriyordum. Hala gerçekten önemli bir şey bulamadı. Bir konuya bir şeyler yazan herkes aslında "öğretemez". Birisine öğretmek istiyorsanız, bir kişinin anladığı en temel dili kullanın, bu yüzden bir konuyu ele alırken diğer konuları önemsemesine gerek yoktur. Bu yüzden kendim için tüm bu kaosa uygun görünen bir sonuca vardım.
C programlama dilinde, her program main()
fonksiyonla başlar . Diğer diller, programın başladığı diğer işlevleri tanımlayabilir. Ama bir işlemci bilmiyor main()
. Bir işlemci kombinasyonları ile temsil edilen sadece önceden tanımlanmış komutları bilir 0
ve 1
.
Temel işlemci işletim sistemi olmayan (Microsoft Windows, Linux, MacOS, ..) mikroişlemci programlamasında, ProgramCounter
(PC) 'yi tekrarlayan ve atlayan (döngüler, işlev çağrıları) ayarlayarak işlemciye nereden başlayacağını açıkça söylemeniz gerekir . işlemci tarafından bilinen komutlar. RAM'in ne kadar büyük olduğunu bilmeniz gerekir, program yığınının konumunu (yerel değişkenler), yığının konumunu (dinamik değişkenler) ve global değişkenlerin konumunu (sanırım SSA olarak adlandırılmış) ayarlamanız gerekir. ?) RAM içinde. Tek bir işlemci aynı anda yalnızca bir program yürütebilir.
İşte işletim sistemi devreye giriyor. İşletim sisteminin kendisi işlemcide çalışan bir program. Özel kod yürütülmesine izin veren bir program. Programların yürütme kodları (RAM'e yüklenen) arasında geçiş yaparak aynı anda birden fazla program çalıştırır. Ancak işletim sistemi BİR PROGRAMDIR, her program farklı yazılmıştır. Özel programınızın kodunu RAM'e yerleştirmek çalışmaz, işletim sistemi bunu bilmez. Programınızı kaydeden işletim sistemindeki işlevleri çağırmanız, işletim sistemine programın ne kadar belleğe ihtiyaç duyduğunu, programa giriş noktasının bulunduğu yeri (main()
fonksiyonu C). Sanırım bu, Çalışma Zamanı Kitaplığı'nda bulunur ve neden her işletim sistemi için özel bir kitaplığa ihtiyacınız olduğunu açıklar, çünkü bunlar sadece programların kendisidir ve bunları yapmak için farklı işlevlere sahiptir.
Bu aynı zamanda .dll
RUNTIME Kitaplığı olarak adlandırılsa bile çalışma zamanında dosyalar neden dinamik olarak BAĞLANMADIĞINI açıklar . Çalışma zamanı kitaplığının statik olarak bağlanması gerekir, çünkü programın başlangıcında gereklidir. Çalışma Zamanı Kitaplığı, RUNTIME içinde özel programınızı başka bir programa (işletim sistemine) ekler / bağlar. Bu gerçekten bazı beyin f neden olur ...
Sonuç: RUNTIME Kütüphane adlandırmada başarısızdır. Bir olmuştur olmayabilir .dll
erken zamanlarda (zamanında bağlama) ve farkı anlamak konusunun sadece mevcut değildi. Ama bu doğru olsa bile, isim kötü seçilmiş.
Çalışma Zamanı Kitaplığı için daha iyi adlar şunlar olabilir: StartupLibrary / OSEntryLibrary / SystemConnectLibrary / OSConnectLibrary
Umarım düzeltme / genişleme için doğru anladım. şerefe.