Tüm dosya uzantılarını çalıştırabilen işletim sistemi yazılabilir mi?


Kaynak kodu yoksa nereye derleyecek adam?
Ornegin Microsoft DX icin toolkit veriyor yalnizca: microsoft/DirectXTK
Buna bagimli calisan bir program senin isletim sisteminde nasil calisacak?
DX "gibi davranan" ama aslinda DX olmayan bir compatibility layer yazacaksin, ki Wine kismen boyle calisiyor, ama o da hic kolay bir is degil.
Mesele derlemek degil, Windows icin derlenen programi calistirabilmek.
C++ koduna#include <windows.h> yazilmis programi X isletim sisteminde nasil derleyeceksin?
 
Microsoft desteğinin gerekli olduğunu iki kez belirttim .
 
UNIX ve benzeri sistemlerde ikili yürütülebilir dosyaların uzantısı olmak zorunda değil. Örneğin Windows işletim sisteminde ikili yürütülebilir dosyaların uzantısı “.exe” olmak zorundadır. Eğer uzantıyı silersen program düzgün açılmayacaktır.

Oysa GNU/Linux işletim sisteminde .exe´nin karşılığı ELF´dir ve bu Windows işletim sisteminin aksine uzantı olarak dosyanın adında değil, dosyanın bizzat içinde bulunur. Her ikili yürütülebilir dosyanın içinde ve en başında bu ELF ifadesi bulunur. Örnek bir dosyanın ilk satırı:

Kod:
0000000 del   E   L   F stx soh soh nul nul nul nul nul nul nul nul nul

GNU/Linux´ta bu dosyanın uzantısını istersen .exe yap. Sistem oraya bakmaz. Dosyanın içinde ve başında ELF ifadesi geçiyorsa yürütür. Değilse yürütülebilir bir dosya değil demektir der ve yürütmez.

Benzer şekilde Windows işletim sisteminde Notepad ile bir şeyler yazmak istiyorsan kaydedeceğin dosyanın uzantısı .txt olmak zorundadır. UNIX ve GNU/Linux´ta olmak zorunda değildir. İster uzantı koyarsın, istemezsen koymazsın. Emacs, VIM ya da nano gibi editörler için sorun değil bu.

Buna rağmen kendin istersen uzantıya dikkat eden bir programı GNU/Linux´ta yazabilirsin. Örneğin Python ya da Java gibi ama bu sadece senin programını bağlar. Sistem genelini bağlamaz.

Kısacası işletim sistemlerinin dosya uzantılarına olan bakış açıları farklıdır.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…