İlişkili özgür yazılım

Vitrin OS

Ajan öncelikli görüntü sunucusu

Sahibi
Muhammed Taha Ayan
Aşama
Faz 2 sürüyor
Lisans
MPL-2.0 (çekirdek), Apache-2.0 (protokol), CC BY 4.0 (belgeler)
Son kontrol

Vitrin OS, açık kaynak ve ajan öncelikli bir görüntü sunucusudur (display server). Küçük ve denetlenebilir bir güvenilir çekirdek, yetki temelli yeni bir protokol konuşur. Eski X11 ve Wayland uygulamalarının her biri, kendine ait ve hiçbir ek yetkisi olmayan bir ara sunucuda çalışır.

Amaç, insanların ve yapay zekâ ajanlarının aynı grafik arayüzleri aynı anda, ayrıntılı ve geri alınabilir yetkilerle kullanabilmesidir. Her kişinin bir kimliği vardır, her işlem bir yetkiye dayanır ve kayda geçer.

Bir örnek: bir ajan, tek bir Firefox penceresindeki tek bir formu beş dakika boyunca doldurabilir. Yanında açık duran şifre yöneticisini göremez. Fareye dokunduğunuz anda kontrol size geçer; Escape'e bir saniye basılı tutarsanız ajanın bütün yetkisi o an düşer.

Neden?

X11'de her uygulama diğerlerinin ekranını okuyabilir ve onların yerine tuşa basabilir. Wayland bu kapıyı kapattı, ama aynı oturumda bir insanla bir ajanın birlikte çalışacağı bir yapı kurmadı.

Bugün ajanlar bilgisayarı ekran görüntüsü alıp piksel koordinatına tıklayarak kullanıyor. Bu yöntem yavaş ve pahalı; istem enjeksiyonu (prompt injection) içeren tek bir sayfa bütün oturumu tehlikeye atabiliyor.

Bulut tarafındaki çözümler sanal makine düzeyinde kaba ve kapalı kaynak. Açık, pencere düzeyinde ve yetki temelli bir karşılığı yok.

Neler sunuyor?

  • Yetki satırları

    Çalışıyor

    Kim, neye, hangi işlemle ve hangi koşulla: her işlem çekirdekte bir yetki satırına karşı kontrol edilir. Süre sınırı yetkinin kendisinin parçasıdır.

  • Uygulama başına alan

    Çalışıyor

    Her uygulama kendine ait bir alanda, kendi ara sunucusuyla çalışır. Diğer pencereler ondan gizlenmiş değildir; onun dünyasında hiç yoktur.

  • Fiziksel girdi önceliği

    Çalışıyor

    Fareye ya da klavyeye dokunduğunuz an kontrol size geçer. Bu bir ayar değil, çekirdeğin yapısıdır.

  • Ölü adam anahtarı

    Çalışıyor

    Escape'e basılı tutunca çekirdek bütün canlı yetkileri geri alır; ajanın bir sonraki çağrısı reddedilir.

  • Dosya erişimi

    Ekleniyor

    Bir dosya uygulamaya yalnızca sizin seçtiğiniz dosya olarak ulaşır. Fidye yazılımı kendi alanının dışına yazamaz.

  • Ağ erişimi

    Ekleniyor

    Bir alanın ağı varsayılan olarak kapalıdır; yalnızca verilen izinle, verilen adrese açılır.

  • Anlamsal erişim

    Planlı

    Ajan arayüzü ekran görüntüsüyle değil, uygulamanın anlamsal ağacıyla okur ve kullanır.

Proje nerede?

Faz 1 (MVP) tamam: Firefox ayrı bir alanda çalışıyor ve bir yapay zekâ ajanı ona yalnızca verilen süreli izinle bakıp dokunabiliyor. Faz 2'nin ilk basamağında uygulamaların dosyalara ve ağa izinsiz erişememesi kuruluyor: dosya tarafı büyük ölçüde bitti, ağ tarafı sürüyor.

  1. Faz 0: Spesifikasyon ve plan

    Tamamlandı

    PRD, yürütme planı ve protokol nesne modelinin ilk taslağı.

  2. Faz 1: MVP

    Tamamlandı

    Firefox kendi alanında; ajan, çekirdeğin çizdiği tek bir onayla ekrana bakar ve kapsamı sınırlı girdi gönderir. İç içe ve ekransız (headless) çalışır.

  3. Faz 2 · M2a: İzinsiz erişimi olmayan alan

    Sürüyor

    Dosyalar uygulamaya yalnızca seçilerek, ağ yalnızca izinle ulaşır. Dosya tarafı büyük ölçüde bitti; fidye yazılımı ve ssh localhost gösterimleri bu basamağın kanıtı olacak.

  4. Faz 2 · M2b: Anlamsal alan

    Sırada

    Ajan Firefox'u anlamsal ağaç üzerinden kullanır; ilk ölçüm sonuçları yayımlanır. Faz 2 burada biter.

  5. Faz 3: Ağ, X11 ve filo

    Planlandı

    Tek makinede 50 ekransız alan, uzaktan ajan bağlantısı, X11 uygulamaları, kayıtları tekrar oynatma, kimlik cüzdanı ve ilk kontrol kabuğu.

  6. Faz 4: Ufuk

    Planlandı

    Yalnızca ilk üç fazın benimsenme ölçütleri yeterli olursa açılacak.

Kaynak: Vitrin OS yol haritası

Nasıl katkı verilir?

Vitrin OS'in kodu GitHub'da açık. Proje Rust ve C ile yazılıyor ve Linux'un izolasyon mekanizmaları (ad alanları, Landlock, seccomp) üzerine kurulu.

Katkı vermek isterseniz GitHub'daki issue'lara bakın ya da katılım formundan yazın.