Windows Neyle Kodlanmış
-
sandman hoca seni anlamaları için yazılımla ilgilenenlerin onun donanım bağlantılarını nasıl sagladıklarını ogrenmeleri gerekir.
Mesela ben bu işletim sistemini kavramanın yolunun pic ile acılıp mikroişlemciler ile baya kavranabilinecegini düşünüyorum.
Sonucta kodlar hangi dille yazılırsa yazılsın frketmez sonucta onu assembler edip hex halini kullanıyor.Gerçi benim kafa mikroişlemci vs .. ye göre yorum yapıyor ama..
-
arkinfes bunu yazdı:
-----------------------------
evet ya asp microsftun olduguna gore microsoft bayağa iyi kodlama biliyo bence makina dilinde yapılmış olabiir diye düşünüyorum.
-----------------------------
zuhahahhaahahaha :))) tarzim degildir normalindede, bu yoruma gülmeden gecemedim :D demek microsoft bayaga iyi kodlama biliyor ha :) -
hocalar adam meraklı merak uyutmaz adamı kirmayın şefkini (((: arkinfes sen böyle devam et bence olcak olcak..
sandman kernel kodu iistiyozzz (((:
-
Çok iyi hatırlıyorum birkaç sene önce W2000 in kaynak kodları forumlarda dağıtılmıştı. Bence asm kesinlikle gerekli işletim sistemine . O fare imlecinin ekranda görünmesi bile bir ton asm kodu. Bir işletim sisteminin sıfırdan C++ / C gibi dillerle yazılması imkansızdır çünkü bu dillerle sadece uygulamalar vs. yazılabilir. Şu an ekrana baktığınızda cpp nin bir çok uygulamasını görebilirsiniz ama sonuçta bu uygulamaları görebilmenizi sağlayan asm vb. dillerdir.
-
RedMILITAN bunu yazdı:
-----------------------------
arkinfes bunu yazdı:
-----------------------------
evet ya asp microsftun olduguna gore microsoft bayağa iyi kodlama biliyo bence makina dilinde yapılmış olabiir diye düşünüyorum.
-----------------------------
zuhahahhaahahaha :))) tarzim degildir normalindede, bu yoruma gülmeden gecemedim :D demek microsoft bayaga iyi kodlama biliyor ha :)
-----------------------------yanlış tam cunleyi toparlayamadım microsoft aspyi yapdıgını gore makina dili biliyo diye dusunuyorum diye yorum yapmısım ama bi arkadas ncikini hatırlamıyorum 1 ve 0 ları makinaya anlatmak kolay değil demiş olmaz demis.
-
Unix'in ilk versiyonu PDP-7 assembly dili ile yazılmış, daha sonra PDP-7 için TMG adında bir dil geliştirilmiş, daha sonra bu TMG'yi kullanrak FORTRAN için derleyici yazmaya çalışırken daha yüksek seviyeli bir dil için derleyici yazmışlar. Bu dile B demişler. PDP-11 makinalar çıktıktan sonra hepimizin bildiği Dennis Ritchie abimiz B'nin üzerini döşeyerek C dilini yazmış. Daha sonra Unix'in birleşenleri birer birer C ile yeniden yazılmaya başlanmış en sonunda 1970 küsür yılında kernel da C ile tekrar yazılmış. Tabi hala bazı donanımsal işlemler için asm kodları kullanılıyor, ama çok küçük oranda. Diye biliyorum ben.
-
Abi ben derdimi kimseye anlatamıyorum sanırım bak unix'i hazırlarken bile önce çalışma plartformunu hazırlamış üstüne geliştirmişler sonra öbür dillerle yazmışlar...Bu gün Windowsu yeniden yazanlar sıfırdan kerneli yazmıyorlar yada Linux kernelini yazanlar....Ama siz yeni bir Os yazıcaksanız önce bir çalışma ve işleme plartformu yazmanız gerekir bunu yapmadan nasıl orta yada yüksek seviyeli bir dil kullanmanızı bekliyorsunuz....Neden aynı C kodu Linuxta ayrı Windowsta ayrı çalışıyor çünkü her işletim sistemi donanımı kendine göre yorumlar ve işletir.Siz C ile yazarsanız(varsayalım) üstünde ilk derlediginiz sistemin özelliklerini ister istemez taşır yani yeni birşey yapmamış olursunuz
-
c# ta yazılmıştır :P
-
Assembly temel olarak 1 ve 0 ların karmaşıklığından ve bunu basitleştirme çabalarından doğmuştur. Assembly geliştirildikten sonra kabloların yerlerini değiştirmek vasıtasıyla mikroişlemciye işlem yaptırıldığını biliyorum. Daha sonra kabloların sokulduğu paneldeki soketler ve hafızadaki bitler arasındaki ilişkiyi keşfedip, kodlarını hafızadan çekmek vazıtası ile çalıştırabileceklerini bulmuşlar. Ve işlemcilere "instruction decoder" denen bir yığın devreden oluşan uniteyi eklemişler. Bunun sayesinde kablolarla uğraşmaya gerek kalmamış. Yani makina dili ile program yazmak mümkün, 1 ve 0 lardan oluşan programı işlemciye yolladığında anlayıp çalıştırabilir. Günümüzde devreye sinyal vermek gibi bir işlemi birinci elden programcının yapma zorunluluğu yok. Ama assembly dururken ve işlemcilerde assembly komutları çözen unite varken 1 ve 0 larla uğraşmaya ne gerek var?
-
sandman bunu yazdı:
-----------------------------
Abi ben derdimi kimseye anlatamıyorum sanırım bak unix'i hazırlarken bile önce çalışma plartformunu hazırlamış üstüne geliştirmişler sonra öbür dillerle yazmışlar...Bu gün Windowsu yeniden yazanlar sıfırdan kerneli yazmıyorlar yada Linux kernelini yazanlar....Ama siz yeni bir Os yazıcaksanız önce bir çalışma ve işleme plartformu yazmanız gerekir bunu yapmadan nasıl orta yada yüksek seviyeli bir dil kullanmanızı bekliyorsunuz....Neden aynı C kodu Linuxta ayrı Windowsta ayrı çalışıyor çünkü her işletim sistemi donanımı kendine göre yorumlar ve işletir.Siz C ile yazarsanız(varsayalım) üstünde ilk derlediginiz sistemin özelliklerini ister istemez taşır yani yeni birşey yapmamış olursunuz
-----------------------------Ben senin dediğini gayet iyi anlıyorum dostum, C ile işletim sistemi yazmak için yapılması gereken ilk olarak C'den makinanın anlyacağı assemblye bir derleyici yazmak. Windows ve Linux arasında C komutlarının farklı işletilmesinin sebebi derleyicideki fark. Aslında en temelde exe ve elf vs. binary dosyaları arasındaki farklar. C ile yazılmış bile olsa işletim sisteminin bileşenler C kaynak kodu şeklinde durmuyor. Yani en basitinden günümüzde Linux kernel'i direk kopyala yapıştır ile çalıştırmıyorsunuz önce derlemeniz lazım. (İlgilenenler için kernel derlemek üzerine nette pek çok kaynak var)