H. Y.
← Yazılar

Bir işletim sistemi kendi uygulamalarını kendisi yapsaydı ne olurdu?

Yalnızca en gerekli olanla gelen bir işletim sistemi düşün. Çalışması için bir temel ve bir grafik arayüz. Önceden yüklenmiş uygulama yok, üç yıl önce bir kez kullandığın programlarla dolu bir klasör yok.

Bu yazı Almanca aslından yapay zekâ ile çevrildi. Almanca orijinalini oku

Son zamanlarda UI bileşenleri, landing page’ler ve benzeri şeyler ürettirmek için birkaç yapay zekâ aracını denedim. Açıkçası sonuçlar ürkütücü derecede iyi.

Aynı zamanda yapay zekâ ajanlarıyla, özellikle de kodlama ajanlarıyla çok çalışıyorum. Ve dikkatimi bir şey çekti: Bu ajanlar tamamen sıradan komut satırı araçlarını kullanıyor. Onlarla dosya arıyor, yeni dosyalar oluşturuyor, logları okuyorlar. Bir sorun için uygun bir araç yoksa, kendilerine bir script yazıyorlar, çalıştırıyorlar ve sonra çöpe atıyorlar.

Bunu çok ilginç buldum. Ajan, belki bir gün lazım olur diye önceden on araç kurmuyor. Tam o anda neye ihtiyacı varsa onu yapıyor ve sonra ortalığı topluyor.

Sonra aklıma şu soru geldi: Bunu neden sadece ajanlar için yapıyoruz? Neden insanlar için de değil?

Fikir

Yalnızca en gerekli olanla gelen bir işletim sistemi düşün. Çalışması için bir temel ve bir grafik arayüz. Önceden yüklenmiş uygulama yok, üç yıl önce bir kez kullandığın programlarla dolu bir klasör yok.

Bunun yerine sisteme o an ne yapmak istediğini söylüyorsun, o da sana bunun için uygun uygulamayı yapıyor. İşin bittiğinde uygulama yeniden kayboluyor.

Bununla sürücüleri ve donanımı yeniden icat eden bir işletim sistemini kastetmiyorum. Altta gayet sıradan bir Linux çalışabilir. Benim derdim, kullanıcının çalıştığı katman: Bir işletim sistemi gibi hissettiriyor, ama beraberinde uygulama getirmiyor, onları ihtiyaç anında yapıyor.

Bir örnek

Sistemimi başlatıyorum ve şunu yazıyorum: “Şu alışveriş listesini kaydet: yumurta, süt, ekmek, meyve ve sebze.”

Sistem bana tam olarak bu listeyi içeren küçük bir uygulama oluşturuyor. Girdileri değiştirebilir ya da yenilerini ekleyebilirim. O an için daha fazlasına gerek yok.

Ertesi gün peynirin de eksik olduğunu hatırlıyorum. “Alışveriş listesine peynir ekle” diyorum ve sistem yeni bir uygulama yapmıyor; mevcut listeyi alıp ona ekleme yapıyor. Alışveriş bittiğinde artık bu uygulamaya ihtiyacım yok. Gidebilir.

Benim için işin özü tam olarak bu: Uygulamalar ihtiyaç duyulduğunda ortaya çıkıyor. İşe yaradıkları sürece yeniden kullanılıyor ya da genişletiliyorlar. Ve görev tamamlandığında kayboluyorlar.

Bütün bunları kim yönetiyor?

Bunu sonuna kadar düşündüğünde, böyle bir sistemin arka planda her şeyi bir arada tutan bir şeye ihtiyacı var. Klasik bir işletim sisteminde bu çekirdektir, yani kernel. Hangi programın ne zaman çalışacağına, ne kadar bellek alacağına ve nelere erişebileceğine o karar verir.

Benim hayalimde burada da böyle bir şey var, sadece yapay zekâ için. Buna şimdilik bir yapay zekâ çekirdeği diyelim. Alttaki Linux çekirdeği olduğu gibi kalıyor. Yapay zekâ çekirdeği bir üst katmanda duruyor ve üretilen uygulamalar için, klasik çekirdeğin normal programlar için üstlendiği rolü üstleniyor. Kullanıcının ne istediğini anlıyor ve bunun için hangi modelin ve hangi araçların gerektiğine karar veriyor. Bir uygulamanın neye izni olup neye olmadığını denetliyor. Ve uygulamaların yeniden kullanılmasını ya da temizlenmesini sağlıyor.

İlk ben değilim

Dürüst olmak gerekirse: Bu fikre sahip olan tek kişi ben değilim ve onu ben icat etmedim. Benzer bir yöne giden projeler zaten var. Benim ilginç bulduğum, konuya ne kadar farklı yaklaştıkları.

LLM OS benim hayalime en yakın olanı. Önceden yüklenmiş tek bir uygulama olmadan açılan, açık kaynaklı bir işletim sistemi. Her uygulama bir prompt’tan üretiliyor. Yapay zekâ bunun için kod yazıyor ve bu kodun zarar verememesi için her uygulama bir sandbox içinde yalıtılmış olarak çalışıyor ve yalnızca önceden izin verilen şeyleri yapabiliyor.

vibeOS farklı bir yol izliyor. Kendini, donanımdan arayüze kadar bilgisayarı Claude Code’un yönettiği, yapay zekâya özgü bir işletim sistemi olarak tanımlıyor. Yani burada bir kodlama ajanı çok fazla kontrol alıyor ve ekranda beliren uygulamalar bu ajanın yazdığı kodlar. Bunu doğrudan kendi bilgisayarında çalıştırmak istemeyenler bir Docker sürümünü kullanabiliyor.

Google da bunun üzerinde çalışıyor, ama bir işletim sistemi olarak değil: Gemini’deki “Dynamic View” ile bir istek için uygun bir arayüz tasarlanıp kodlanıyor.

Bu yaklaşımlar ne kadar farklı olsa da ortak bir noktaları var: Sonunda kodu yapay zekâ yazıyor. Bu kodun ne kadar iyi güvence altına alındığı da asıl büyük soru oluyor.

Bir de ters yol var: Yapay zekâ kod yazmak yerine bir arayüzü yalnızca tarif ediyor. Google bunun için örneğin A2UI adında açık bir format yayımladı. Ama bu, bütün bir sistemin temeli olarak değil, mevcut uygulamaların içindeki arayüzler için düşünülmüş.

Benim fikrim de tam burada devreye giriyor: Ya bütün bir sistem böyle çalışsaydı? Ya yapay zekânın kod yazmasına hiç izin verilmeseydi, yalnızca tarif etmesine izin verilseydi?

Beni en çok düşündüren soru

Baştaki yapay zekâ araçları kod üretiyor. Bu, başında bir geliştirici oturup sonuca baktığı sürece iyi işliyor. Kodlama ajanlarında da durum aynı: Ajanın hangi script’i yazdığını görüyorum ve bir şey tuhaf görünürse müdahale edebiliyorum.

Peki ya sadece bir alışveriş listesi isteyen biri? O, üretilen kodu denetleyemez. Denetlemek zorunda da olmamalı.

Bu yüzden böyle bir sistemin rastgele kod üretip çalıştırmaması gerektiğine inanıyorum. Benim yaklaşımım farklı: Yapay zekâ kod yazmıyor, uygulamayı sabit bir formatta tarif ediyor. Hangi alanlar var, hangi butonlar, hangi aksiyonlar? Bu tarif denetleniyor ve ancak ondan sonra sistem onu gerçek bir arayüze dönüştürüyor.

Bunu yeni, boş bir ev gibi hayal ediyorum. Evde yalnızca belirli aletler ve bir usta var. Ustaya şöyle diyorum: Akşam yemeğim için bana bir yemek masası yap. Yemekten sonra masa kaldırılabilir ya da onu saklarım. Ustanın yapamadığı tek şey kendine yeni aletler yapmak: Her şey evde zaten olanlarla yapılıyor.

Peki kodu kim yazıyor?

Yine insanlar; sadece bir kez, her uygulama için yeniden değil. Üstelik çoğu zaman sıfırdan başlamak bile gerekmiyor: Örneğin arayüz web teknolojisiyle çalışıyorsa, sistem shadcn’inkiler gibi hazır bileşenlerden yararlanabilir.

İzin verilen tüm yapı taşları bir tür katalogda, bir registry’de duruyor ve yapay zekâ yalnızca buradan seçim yapabiliyor. Bir yapı taşı eksikse, bir geliştirici onu bir kez yazıyor, kataloğa ekliyor ve o andan itibaren yapay zekâ onu kullanabiliyor.

Bu, serbest koddan daha az esnek, ama kontrolün bedeli tam olarak bu.

Şu an neredeyim

Bütün bunlar şu an için daha çok bir vizyon. Hazır bir işletim sistemi yok ve açıkçası sonunda bundan bir tane çıkıp çıkmayacağını da bilmiyorum.

Ama şu anda bunun bir parçası üzerinde çalışıyorum: Bir yapay zekânın kod yazmadan arayüzleri nasıl tarif edebileceği sorusu üzerinde. Bir sonraki yazıda bunu daha ayrıntılı anlatacağım.