S. Bir derleme programının işletim sistemini kilitlemesini ne engeller?
A. Hiçbir şey.
Bununla birlikte, bir çok zeki programcı yıllar geçtikçe daha zor hale getirmek için çok uğraştı. Ne yazık ki, her zeki programcı için, aralarında daha yaratıcı, daha hırslı ve bazen de zeki olanlardan daha şanslı olan birçok, çok daha fazlası var. Akıllı bir programcı, kimsenin bir şey yapmaması, yapmaması ya da yapamayacağını her söylediğinde, birileri bunu yapmanın bir yolunu bulacaktır. Microsoft Windows (örnek olarak) neredeyse 35 yıldır var ve hala işletim sistemini çökerten talimatlar olan BSoD (Ölümün Mavi Ekranları) var.
Küçük bir terminoloji ile başlayalım. Bir bilgisayarda çalışan her şey makine kodunda bunu yapar. Tuş vuruşlarını veya fare işaretçisinin hareketini okuyan bit, ekrandaki bir pikselin rengini değiştiren veya bir dosyadan bir bayt okuyan bit ve merminizin kötü adama mı yoksa karar veren bite mi çarptığını hesaplayan bit Kredi kartı başvurunuz kabul edilecekse, hepsi bir dizi makine kodu talimatı olarak uygulanır. Bazı işler o kadar yaygındır ve o kadar sık yapılır ki, bunları yapmak için gereken talimatları bir araya getirmek ve herkesin bu montajı kullanmasını sağlamak mantıklıdır. Başkalarının bilgisayarı kullanmasına izin veren veya yardımcı olan bu işlerin bir kısmı işletim sistemi olarak adlandırılır, ancak bunlar ve diğer programlar arasında doğal olarak farklı bir şey yoktur. Hepsi sadece makine kodu talimatlarının dizisidir.
İşletim sistemlerini daha karmaşık (ve dolayısıyla çökmeye eğilimli) yapan şey, normalde düşünmeniz gerekmeyen şeyleri hesaba katmaları gerektiğidir. Örnek olarak en basit işleri ele alalım. Bir dosyanın sonuna mesaj yazmak istiyorum. Üst düzey bir dilde şöyle yazabilirsiniz:
with open("myFile.txt", "w+") as f:
# do some really clever things
f.write("Goodbye cruel world!")
Fiziksel durumlara nasıl erişildiği ve değiştirildiği veya bit ve bayt olarak nasıl yorumlandığı ya da bu baytların bellek ve CPU'ya nasıl aktarıldığına dair tüm ayrıntıları göz ardı edelim ve işletim sisteminin sağladığı programların işlediği her şeye güvenelim kamera ARKASI. Bir dosyanın sonuna nasıl eklediğinizi düşünelim. 1) Dosyanın sonunun nerede olduğunu öğrenin, 2) bu konuma bir şeyler yazın. Ne yanlış gidebilir ki? Aslında, oldukça fazla. Akıllıca şeyler yaparken bilgisayarda başka neler olduğunu düşünün. Başka herhangi bir şey (işletim sisteminin kendisi dahil) üzerinde çalıştığınız dosyayı herhangi bir şekilde değiştirirse, bu gerçekten basit iş aniden çok daha karmaşık hale gelir. Dosya daha uzun, dosya daha kısa. Dosya artık orada değil. Disk dolu,