Thread overview
Çekirdek Kaynak Kodlar Nasıl Yazılıyor?
Mar 02, 2016
İbrahim
Mar 02, 2016
erdem
March 02, 2016

Selamün Aleyküm Arkadaşlar;
Mesela veritabanı işlemleri için yazılan kodlar, tcp/ip-udp için yazılan iletişim amaçlı kodlar vs. temelde nasıl yazılıyor?
Yani şöyle açıklayayım: Mesela Sql için SqlConnection, SqlQuery vs. sınıflar veya modüller var etrafta bunlar nasıl kodlanıyor? Yani mesela MSSQL için bağlantı kodları yapıyoruz ama bu SQL kapalı kaynak kodlu ve bu kodlarla bu SQL üzerinde işlem yapabiliyoruz, hayır açık kaynak kodlu bir veritabanı olsa (SQLITE gibi) kaynak kodlarından belki bu veritabanıyla iletişim kurulabilir ya da tcp/ip için kodlar temelde nasıl kodlanıyor? TCP/IP için temelde donanımla mı iletişim kuruluyor? Kuruluyorsa nasıl yapılıyor? Aslında kısaca şöyle sorayım: Bir kütüphane (Qt gibi) yazan kişiler içerisinde bulunan SQL ile haberleşme, tcp/ip gibi iletişim kurma kodlarını nasıl yazıyorlar? Aslında SQL için örnek verecek olursak benim aklımda şöyle birşey var: MSSQL vb. veritabanını geliştirenler zaten veritabanına erişim konusunda belli komutlar oluşturuyorlar ve kütüphane geliştiricileri de bu komutları kullanarak veritabanına erişiyorlar. Bu sadece benim bir tahminim doğru olmayabilir. Genel olarak bu işler nasıl yapılıyor? Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 02, 2016

Alıntı (İbrahim):

>

Yani mesela MSSQL için bağlantı kodları yapıyoruz ama bu SQL kapalı kaynak kodlu ve bu kodlarla bu SQL üzerinde işlem yapabiliyoruz, hayır açık kaynak kodlu bir veritabanı olsa (SQLITE gibi) kaynak kodlarından belki bu veritabanıyla iletişim kurulabilir ya da tcp/ip için kodlar temelde nasıl kodlanıyor? !

Mysql açık kaynak kodlu. Kaynak kodlarını buradan indirebilirseniz.

https://github.com/mysql

Örneğin mysql sunucu yazılımının kaynak kodlarını indirmek için:

$ git clone https://github.com/mysql/mysql-server

komutunu vermek yeterli.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 04, 2016

Alıntı (İbrahim:1456967548):

>

veritabanı işlemleri için yazılan kodlar, tcp/ip-udp için yazılan iletişim amaçlı kodlar vs. temelde nasıl yazılıyor?

C, D, vs. başka bir dille yazılıyor, derleniyor (yani, mikroişlemci komutlarına dönüştürülüyor), bir araya getirilerek kütüphane oluşturuluyor.

Daha sonra o kodlar belleğin bir yerine okunuyor ve mikroişlemciye "şu adresteki komutları yerine getir" deniyor.

Alıntı:

>

Mesela Sql için SqlConnection, SqlQuery vs. sınıflar veya modüller var etrafta bunlar nasıl kodlanıyor?

Programlama dilleriyle.

Alıntı:

>

MSSQL için bağlantı kodları yapıyoruz ama bu SQL kapalı kaynak kodlu ve bu kodlarla bu SQL üzerinde işlem yapabiliyoruz

Kapalı kodlu olsa da bize derlenmiş kütüphane veriyorlar. Derlenmiş demek mikroişlemcinin dilinde demek olduğundan, biz rahatça okuyamasak da mikroişlemci okuyup işletebilir demek.

Kendi programımızdan SqlQuery işlevini çağırdığımızda temelde şu oluyor: Kütüphane belleğe okunmuştu ya, bağlayıcının kardeşi olan yükleyici (loader), bizim kodumuz içinden SqlQuery'nin çağrılmakta olduğunu görerek o işlevin bellekte hangi noktada bulunduğuna bakıyor, ve bizim çağrımızı tam o adrese göre değiştiriyor.

Örneğin, biz 'SqlQuery("SELECT * FROM dbo.Blogs")' demişsek ve SqlQuery'nin adresi 0x1000 ise, o çağrı "'"SELECT * FROM dbo.Blogs"' dizgisini program yığıtına yaz ve 0x1000 adresindeki koda atla"ya dönüşüyor.

(SqlQuery'nin adresi her çağrıda aranmıyor; yalnızca program ilk çalıştırıldığında aranıyor.)

Alıntı:

>

TCP/IP için temelde donanımla mı iletişim kuruluyor?

Eninde sonunda öyle ama donanımla doğrudan iletişimi sürücü (driver) denen kodlar hallediyor. Kullanıcı programları çekirdekle ve dolayısıyla sürücüyle konuşuyorlar.

Alıntı:

>

MSSQL vb. veritabanını geliştirenler zaten veritabanına erişim konusunda belli komutlar oluşturuyorlar ve kütüphane geliştiricileri de bu komutları kullanarak veritabanına erişiyorlar.

Doğru. Katman katman...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]