Forum: Diğer Konular RSS
Çekirdek Kaynak Kodlar Nasıl Yazılıyor?
İbrahim #1
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Çekirdek Kaynak Kodlar Nasıl Yazılıyor?
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!
erdem (Moderatör) #2
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
İ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.
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
İbrahim on 2016-03-02, 17:12:
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.

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

Programlama dilleriyle.

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.)

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.

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
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-21, 19:33:49 (UTC -08:00)