• ikinci sürümünde ful linux uyumluluğu ve performans sorunlarını çözmeyi vaadediyor:

    https://devblogs.microsoft.com/…e/announcing-wsl-2/
  • beta'dan çıkmış herkese açılmıştır:

    https://devblogs.microsoft.com/…-windows-10-and-11/
  • microsoft'un windows sistemler için geliştirmekte olduğu, linux sistemlerdeki çalıştırılabilir* dosyaların herhangi bir emülasyon yoluna gidilmeden, sistem çağrıları* düzeyinde handle edilerek, windows sistemlerde de çalıştırılmasına olanak sağlayan teknoloji. bir nevi microsoft'un "hello unix world!" ya da "hello free software world! ;) kıps" güzelliği mi desem, dönekliği mi desem bilemedim.

    temelde yaptığı atraksiyon, gerçek zamanlı* olarak linux sistem çağrılarına* karşılık gelen windows sistem çağrılarını çalıştırmaktır. linux sistemlerdeki wine'ın windows karşılığı gibi düşünülebilir. lakin wine, bu işlemi arkaplanda bir daemon çalıştırarak yapar. bu daemon'ın da asli görevi, windows'un kernel düzeyinde sunduğu bazı hizmetleri sunmasıdır. sistem çağrıları tablosunda* muadili bulunmayan bir fonksiyon ile karşılaşıldığında nasıl saçmalayacak merak ediyorum mesela... 30-40 tane sık ve ortak kullanılan fonksiyona kadar handle et, gerisinde exception ver gibi mi düşündüler, ne kadarı implement edilmiş/edilecek, merak konusu... tabii burada microsoft'tan bahsediyoruz, proje elbetteki open source değil.

    yalnız, microsoft bu hamlesi ile iyiden iyiye kendini aştı. .net foundation, windows 10 iot core, ubuntu on windows falan derken richard stallman'a da yarın gel başla demeseler bari... ilahi microsoft. *

    edit: (bkz: winception)
  • hakkın şöyle bir yazı kaleme aldığım, windows ile beraber linux çalıştırmanıza imkan sağlayan teknoloji.

    https://medium.com/…3d3df7dc945a4bec469cff9d69597e0
  • wsl 2 ile beraber önemli değişiklikler geliyor.

    wsl 1'den farklı olarak kendi linux çekirdeği arka planda çalışacak. böylece full sistem çağrıları yapılabilir duruma gelecek. wsl 1'de özellikle düşük seviyeli (bkz: low level) işlemler desteklenmiyordu çünkü linux çağrıları windows nt çağrılarına çevriliyordu ve bu tarz çok düşük seviyeli işlemler (zor da oldukları için) implement edilmemişti.

    wsl 2'de ise bu muhabbete girmeden komple linux çekirdeğinin kendisini çalıştırmışlar. böylece tam bir sistem erişimi yapabiliyor. wsl 2'de işte ağ arayüzlerinin üzerinde değişiklik (ip adresi vs değiştirme) ya da ipsec tunneling yapabilecek miyiz göreceğiz.

    wsl 2'de bu implementasyon getirilince docker implementasyonu mümkün olmuş. bu şu anlama geliyor: windows ortamında çalışan visual studio'nuz ile derlediğiniz kod doğrudan wsl içerisinde çalışan docker üzerinde ayağa kalkıyor ve yine windows ortamındaki visual studio ile debug edilebiliyor. eskiden bu hyper-v üzerinde çalışan bir vm üzerinden yapılıyordu ve o'nun dosya sistemine vb. erişimimiz yoktu. wsl durumunda ise doğrudan aynı dosya sistemi üzerinde çalıştığınız için ister windows ister linux dosya yapısına tam erişim sağlayabilirsiniz.

    örneğin bizim projemizde linux üzerinde çalışan iot edge cihazlarında ip adresi, subnet mask gibi bilgileri güncellemenin yanı sıra backup/restore/system update için linux dosya sistemine dosyalar yazıp okumamız gerekiyordu. windows üzerinde çalışan visual studio'yu terketmeden tüm linux erişimini wsl üzerinden yapıp %100 gerçekçi bir linux ortamında docker uygulamasını ayağa kaldırma şansı bulduk. hyper-v'de çalışan docker ortamında dosya sistemine erişemiyorduk.

    özetlersek wsl 2:
    - linux kernel'ine wrapper yapmak yerine kendisini çalıştırıyor
    - dosya sistemi olarak mevcut disklerinize de ulaşabiliyor ancak kendisi için bir vhd oluşturuyor. dilerseniz dosyalarınızı doğrudan bu vhd'ye yazabiliyorsunuz.
    - genel sistem performansında büyük ilerlemeler mevcut.

    sonuç olarak linux üzerinde docker ile çalışacak uygulamaları windows üzerinde visual studio ile geliştirmek için mükemmel ilerlemeler sunuyor wsl 2 ve şimdiden hastası oldum.
  • beni dual boot olayından kurtaran, windows 7'den windows 10'a geçmeme sebep olan sistem. hastasıyız.
  • select syscall yapıldığında vmmem processi coşuyor select başına %20 civarı bir cpu tüketiyor lanet olası.

    https://github.com/…ues/6982#issuecomment-952622825

    işin boktan kısmı bazen syscall yapan process kapandıktan sonra da bu cpu kullanımı devam ediyor. bu durumda yapılması gereken: wsl --shutdown ile wsl'yi kapatmak ve tekrar açmak.
  • bugune kadar 2. surumunu kullandigimi dusundugum ancak 1. surumunu kullandigimi ogrendigim sey. asagidaki komutu girince sisteme yuklu wsl os'larin hangi wsl surumunda oldugunu gosteriyor (evet farkli os lar farkli wsl surumu kullanabiliyor):

    wsl -l -v

    2. surum icin 20 kat daha hizli deniyor bu yuzden akli basinda bir coder olarak surum yukseltmeye karar verdim, ahanda resmi dokuman:

    https://docs.microsoft.com/…tep-2---update-to-wsl-2

    sonuc beni oldukca tatmin etti, baya hizlandi.
  • linux-native yazılımları gui olarak kullanabilmek için gereken wslg'nin geleceğiyle ilgili geçtiğimiz ay şöyle bir detay düşülmüş.

    https://github.com/…sues/347#issuecomment-971126353

    bunu paylaşıyorum, çünkü windows 11 olmadan wslg'ye ulaşmak şu an mümkün değil. aranızda wsl kullanan ve windows 10'dan 11'e geçmeyen veya geçemeyen varsa, bilginiz olsun, microsoft store'a taşınması halinde wslg'nin windows 10'da bir geleceği var.

    işlerim gereği windows bulunduruyorum ben de, ancak windows 11 pek de ideal sayılmaz. bu yüzden dört gözle bu gelişmelerin hayata geçmelerini bekliyorum.

    ayrıca cbl-mariner'ı wsl üzerinde denemeyi düşünüyorum önümüzdeki haftalarda. ancak yakın zamanda fedora rootfs'i wsl'e atıp kullanabildiğim için, çok da gerekli mi diye bir kuşkuya düşmedim değil.

    şuraya bakabilirsiniz
  • https://blogs.msdn.microsoft.com/…r-linux-overview/

    2000'li yillarda interix tarafindan gelistirilen ve terk edilen windows'taki subsystem for unix based applications (sua)'in yerine getirilen birim.

    cok daha duzgun implement edilmistir. wsl'in sua'dan daha iyi olmasinin nedeni nt'ye shoehorning yapilmadan dogrudan linux syscall'larin sifirdan implement edildigi driver'lar (lxss.sys & lxcore.sys) yazilmis olmasidir.

    boylece ayni dosyalari hem linux hem nt subsystem'inden kullanamiyorsunuz belki ama kafaniz rahat sekilde linux elf executable'larini windows'tan patir patir calistirabiliyorsunuz. bence dogru cozum budur, ben tatmin oldum.

    ayrica (bkz: picoprocess)
hesabın var mı? giriş yap