İnternet, filtreler, sansür ve yasaklar…

Son zamanlarda çok fazla tartışılan TİB tarafından getirilen filtrelemeyle ilgili bir şeyler yazmak istedim.

İnternetteki haber sitelerinde, televizyonlarda gazetelerde bu konu çokça tartışıldı çokça yazılıp çizildi. Tartışılması çok güzel  ama bana göre bu konudaki genel problem insanların meseleyi tam anlamıyla anlamayarak eleştirmesi yada savunmaya çalışması ve meseleyi bütün olarak görmekten çok kendilerini ilgilendiren parçalarına bakmaları. Kimi insanlar youtubeun yasaklanıp yasaklanmayacağının derdinde. Kimileri acaba bir gün facebooku da kapatabilirler mi diye korkuyor. Kimisi internetten pornografik içerikleri takip edemeyeceğinin derdine düşmüş. Bazı insanlar blogların yasaklanıp yasaklanmayacağıyla ilgileniyor. Aslında ilgilerin dolayısıyla korkuların farklı olması gayet doğal. Herkesin kendi istediği şeyi savunması da öyle. Ama her zaman için meseleyi bir bütün olarak görmekte fayda olduğunu düşünüyorum. Böylece bizi ve ülkemizi ne şekilde etkileyeceğini daha net görmüş oluruz.

Başlangıç noktası olarak sanırım en uygun şey bu kararın kendisini okumak olur. Buradan ulaşabilirsiniz. Fakat kararın tamamını doğru şekilde anlayıp yorumlayabilmek için hem teknik olarak yeterli seviyede bilgiye hem de ne dediğini düzgün anlayıp ne şekilde kullanılabileceğini kavrayabilmek için belirli miktarda hukuk bilgisine ihtiyaç duyuluyor. İkisinin kesişimi pek de büyük bir insan topluluğunu kapsamadığından tek başına kararı okumak yeterli olmayabiliyor. Benim görüşüm açıkçası okuduğum yorumlarla şekillendi. Zaten bu konuda en güzel içeriği de sosyal medyada gördüm şimdiye kadar.

Ön bilgi olarak DNS ile uygulanan yasaklar hakkında kısaca bir bilgi verip nasıl çalıştığını ve DNS değiştirerek bu yasakalrı nasıl aştığımızı açıklamaya çalışayım (Bu konuda zaten bilgi sahibi olanlar aşağıdaki paragrafı atlayabilirler):

DNS(Domain Name System) Türkçe’ye “alan adı sistemi” olarak çevrilebilir. Tarayıcılarınızda sitelere girmek için kullandığınız (genellikle sonu com,net,org gibi olan) adres çubuğuna yazdığınız metinler aslında internet üzerindeki bir verinin adresini temsil eder. Fakat ulaşmak istediğiniz sunucu bu isimle doğrudan anlamlı değildir. (bilgisayarcı insanlar sayıları metinlerden daha anlamlı bulmuşlardır hep) İnternette bilgisayarları birbirinden ayıran ve bağlantı kurulmasını sağlayan IP sistemidir. İnternete bağlı bilgisayarların bir IP adresi vardır. Sizin ulaşmak istediğiniz siteler de bir IP adresine sahip sunuculardır. Sizin DNS olarak girdiğiniz numara da aslında bir IP adresidir. Yaptığı iş ise sizin verdiğiniz isimdeki siteye hangi ip adresinden erişilebileceğini söylemektir.

Peki DNS kullanarak bir site nasıl yasaklanır? Aslında basit… Siz yasak olan bir siteye erişmeye çalıştığınızda sizi o siteninki yerine başka bir adrese yönlendirir. Standart olarak size sağlanan DNS sunucuyu kullandığınızda genellikle bu yüzden yasakla karşılaşırsınız. DNS sunucusunu değiştirmek yada host dosyasını değiştirmek gibi yöntemler sizi doğru adrese yönlendirerek bunu etkisiz kılar.

22 Ağustosta yürürlüğe sokulması planlanan uygulama internet servis sağlayıcılarına (Telekom, Superonline, vs…) bir merkezi denetim getiriyor. Yasak olan siteler merkezi bir veri tabanında belirli durumda olacak ve insanların kullandığı pakete göre bu sitelere erişilmesi sınırlandırılacak. Fakat DNS yasağından farklı olarak yanlış adrese yönlendirmeye gerek kalmadan o IP adresiyle olan iletişimi tamamen engellediği için DNS değiştirme yöntemi işe yaramayacak. O siteye doğrudan erişmek mümkün olmayacak. Fakat hiçbir şekilde erişilemeyeceği konusu doğru değil. “Avcı nice al (hile) bilirse ayı onca yol bilir.” demişler =) Fakat problemimiz zaten bu değil.

Bu konuda söylenen temel şey standart paketin şu anki durumdan farksız olduğu ve abartıldığı yönünde. Ama bence bu savdaki temel yanlış, şu anki durumda mahkeme kararıyla engellenmiş sitelere erişmediğimiz varsayımı üzerine kurulmuş olması. Yani paketiniz standart paket olsa dahi bir sitenin erişime kapatılmasında bir engel yok. Karardaki orjinal ifade “mevcut mevzuata uygun” şeklinde. Fakat mevcut mevzuat kavramı kararnamedeki bir çok ifade gibi biraz muğlak. Yani herhangi bir sitenin bir sebepten dolayı mevcut mevzuata uygun olmadığı düşünülürse yasaklanmış olacak.

Diğer bir mesele de bu yasakları bir şekilde aşmanın cezalandırılmasına zemin hazırlaması. Aslına bakılırsa doğrudan kararnamede bu konuya değinilmemiş. Fakat internet servis sağlayıcılarla yaptığımız sözleşmelerde bunun sözleşmeye dahil edilmesi ve bu konuda yaptırım uygulanması söz konusu. Fakat mahkeme kararıyla engellenen bir siteye erişildiğinde bunun hukuki anlamda suç kabul edilip edilmeyeceği konusunu bilmiyorum. Hukuk onusunda bilgili bir arkadaş bizi aydınlatırsa da iyi olur. Benim açımdan hala muğlak olan mevzulardan birisi.

Bir de yasak kelimeler listesi mevzusu var. Alan adı isimlerinde belli kelimelerin kullanılmasını yasaklayan bir uygulama var. İlk bakışta çok saçma görünmese de listenin içerisinde “haydar, Yasak, hayvan, baldız, girl, hikaye,sıcak, nefes, şişman, teen, yerli” gibi sözcüklerin olması bu listeyi hazırlayanların nasıl bir ruh hali içinde olduğu konusunda beni düşündürdü. Bu kelimelerin sadece düşündükleri anlamda kullanılabileceğini düşünüyorlarsa en masum ifadeyle “akılları fesat”.

Özetlemek gerekirse kullanıcıların güvenliğini sağlamak için bir hizmet olarak ortaya atılıyor bu filtre uygulaması. Ama asıl mesele böyle bir hizmeti istemeyenlerin de mecburi olarak bazı sitelere erişim derdinden kurtarılarak zorunlu olarak bir hizmet verilmesinde ve erişimlere merkezi bir denetleme getirilmesinde. İnternet erişimlerini çeşitli şekillerde sınırlandırmak için bir çok uygulama mevcut. Bu hizmeti isteyen kişiler zaten kullanıyorlar. Bunu genelleştirmek ve standart pakette bile belirlenen belli sitelere erişmeyi engellemek en genel tabiriyle yanlış bir uygulama.

İnterneti kitap ve dergilerle aynı mantığı kullanarak denetlemek gibi bir durum söz konusu. Daha önce youtube,blogger, wordpress yasaklarında gördüğümüz gibi bir kişinin kendisi zararlı bulmadığı halde belli yerlere erişmekten “korunduğu” bir sistem ve mantık var maalesef. Bir şekilde bir gerekçe bulunarak erişilmesi istenmeyen yerlere erişimi engellemek de kaygı duyulan noktalardan biri. İnsanlar doğal olarak yaptığı yazdığı çizdiği şeylerin yada okumak görmek istediği şeylerin başkalarının görüşüne göre “uygunsuz” olduğu için yasaklanacağı fikrinden rahatsız.

Bu konuda rahatsızlık duyanları bir şekilde kendi sitelerinde, kullandığı sosyal ağlarda tepkisini dile getirmeye ve internet özgürlüğünü savunan uygulamaları desteklemeye davet ediyorum. 15 Mayıs’ta da yurdun bir çok yerinde bir yürüyüş olacak.

En geniş kapsamıyla bu hareketi sadece istediğimiz sitelere girmek için değil aynı zamanda çevrimiçi ortamdaki özgürlüklerimizi korumak ve geliştirmek için desteklemeliyiz.

Yararlı bir kaç bağlantı aşağıda:

Eklemek yada düzeltmek istediğiniz noktaları lütfen iletin.

Apple, Adobe ve Web Standartları

Bildiğiniz gibi Apple’ın iPad’lerde Flash’ı desteklemeyeceğini(izin vermeyecekleri) açıklaması büyük tartışmalar yaratmıştı. Yakın zamanda Apple’ın kurucusu ve CEOsu Steve Jobs, Flash hakkındaki düşüncelerini bir açık mektupla duyurdu. Mektupta genel olarak

  • Tamamen Adobe’un malı olduğu için Açok (Open) Web standartlarına uymadığı
  • Webdeki videoların çoğu Flash arayüzlü olsa da çeşitli uygulamalarla onlara erişilebileceği
  • Flash’ın yeterince güvenli bir sistem olmadığı
  • Güç tüketiminin fazla olduğu
  • Dokunma ile sağlanan etkileşimin verimli kullanılamaması
  • Flash ile uygulama geliştirilmesinin geliştiricileri kısıtlaması, yarı standart uygulamalar üretmesi ve platformun özellikleri etkili kullanamaması

konularına değinmiş. Atrıca Flash’ın HTML5 gibi standartların gelişmesiyle pek de gerekli olmayan bir teknoloji olacağını düşünüyor.

Apple tarafından bakınca haklı oldukları noktalar olduğunu söylemek gerek. Fakat burada dikkat çekilmesi gereken daha önemli noktalar var. Flash konusunda söylediklerinde haklı olması Steve Job’un tutumunu haklı çıkartmıyor. Özellikle sattığı cihazların kullanımı konusunda kendi kullanıcılarını ne kadar kısıtladığını ve iPhone ve iPadlere uygulama geliştirmek için sadece Mac kullanabildiğimizi, Apple Store dışında yazılım yükleyemediğimizi göz önüne alırsak, Apple’ın özgürlük, açık standartlar gibi kavramlar üzerinden Adobe’u eleştirmesini biraz garip karşıladım.

Apple’ın kullanıcının kullandığı yazılımları ve platformları bu kadar kısıtlaması işin garip bir tarafı. Standart olarak flasın gelmemesi, tavsiye edilmesi fakat yine de bunun kullanıcının tercihine bırakılması çok daha etkili bir çözüm olurdu.

Özetle Adobe’ın belli konularda haksız olması Apple’ı bu konuda haklı yapmıyor bence.

Bu düşüncelerimin üzerine FSF’dan (Free Software Foundation) John Sullivan’ın yaptığı bir açıklama konuyu bence daha net bir biçimde ele alıyor.

Steve Jobs’un açık standartların ve özgür webin önemine dikkat çektikten sonra ortaya koyduğu çözümün saçma olduğunu savunuyor ve insanların Adobe’un tescilli yazılımlarıyle Apple’ın duvarlarla çevrilmiş bahçesi arasında bir seçim yapmaya zorlandığını özgürlüğün ikisiyle de alakasız olduğunu anlatmış.

Hele şükür birisi duygularımıza tercüman olmuş…

Google Chrome OS

Google’ın işletim sistemi çıkartacağına dair dedikodular çok önceden İnternet’te duyulmaya başlamıştı. Hatta söylendiğine göre daha Google buna karar vermeden böyle şeyler söyleyenler vardı. Bu söylentiler Google’a ilham kaynağı oldu. Öncelikle bir çeşit Linux dağıtımı olacağını duyduk daha sonra bir Ubuntu türevi olacağını duyduk.Herkesin kendine göre bir beklentisi gelişti. Ben de bu yazıyı Google Chrome OS’un ne olduğunu var olanlardan ne farkı olduğunu anlatmak için yazıyorum.

İngilizceyle aranız iyiyse şu videoyu izlemenizi tavsiye ediyorum. Google’ın Chrome OS’u tanıtmak için hazırladığı bir video.

Google Chrome OS’un ne olduğunu anlayabilmek için Chrome‘un en azından ne olduğunu bilmeniz gerekir. Chrome Google’ın hazırladığı webkit motorunu kullanan bir web tarayıcısıdır. Temel amacı kullanımı kolaylaştırmak, basit ve hızlı bir web deneyimi sağlamaktır.

Chrome OS ise bir işletim sistemidir. İsminde Chrome bulundurmasının sebebi kendi içerisinde Chrome tarayıcısını çalıştıran bir işletim sistemi olmasıdır. Başka bir işletim sisteminde de pekala tarayıcı çalıştırabilirsiniz fakat Google Chrome OS bilgisayar başında asıl yaptığı İnternet kullanmak olan kullanıcılar için ortaya atılmış bir işletim sistemidir. İnternet olmadan pek anlamlı olduğu söylenemez.

Beklentilerin aksine Google tarafından desteklenecek olan masaüstü bilgisayarlar için olan bir Linux dağıtımı değildir. Şu anda kaynak kodundan derlenerek bilgisayarınıza denemek amacıyla kurulabiliyor olsa da asıl amacı Apple mantığıyla belirli donanımlar üzerinde (ki bu çoğu zaman netbooklar) sorunsuz çalışmak üzere geliştirilmektedir. Klasik bir bilgisayar kullanıcısının bütün ihtiyaçlarını karşılamak amaçlanmamıştır. Tamamen hafif istemci (thinclient) mantığına göre yapılmıştır ve bütün uygulamaları web uygulamalarıdır. (E-posta, video izleme, müzik dinleme, oyun oynama, ofis uygulamaları,…) diğer yandan internette kullanabileceğiniz tüm web uygulamaları da aynı zamanda bir Chrome OS uygulamasıdır. Dolayısıyla yükleme gerektirmezler.

Proje basit şekilde çekirdeğin Chrome tarayıcısının değiştirilmiş bir versiyonunu çalıştırmak için özelleştirilmesi bunun yanında gerekli olmayacak bütün servislerin ve uygulamaların yok edilmesi ve duruma uygun kütüphanelerin, yazılımların geliştirilmesi olarak özetlenebilir. Google’ın açıklamasına göre “Televizyon mantığında açılıp kapatılarak kullanılabilen bir İnternet cihazı için öngörülen bir işletim sistemidir.”

İnternette dolaşan Türkçe haberlerde malesef haberciliğin kötü örneklerini gördük. Google’ın “Sabit disk ve RAM’e ihtiyaç duymayan işletim sistemi geliştirdiğine” dair haberler yayınlandı. Malesef bunlar meselenin bilgisiz kişiler sonucu haber yapılması tercümelerin ise eksik ve yanlış yapılması ile ilgili durumlar. Hiç RAM’e ihtiyaç duymadan şu andaki bilgisayar mimarilerinde bir işletim sisteminin çalışması mümkün değildir. Asıl söylenmek istenen “fazla” RAM ve disk alanına ihtiyaç duymayan bir işletim sistemi olduğu dolayısıyla son derece ucuz donanımlarla performans gösterebileceğidir. Dönen diskli bellekler yerine flash bellek gibi bellek üniteleri tercih edilecektir. Bu bellekler de önbellek olarak (cache) kullanılarak sistem performansını arttırmayı amaçlamaktadır. İşletim sisteminin kendisi ise salt okunur (read only) bir kısımda bulunarak herhangi zararlı bir yazılımın etkisinden korunmuş olacaktır.

Özetlemek gerekirse:

  • Google Chrome OS Chrome tarayıcısını çalıştırmak için asgari düzeyde hizmet ve yazılım koşturacak bir işletim sistemidir.
  • Verilerinizin tümü İnternet’te depolanır. Mevcut donanım üzerindeki veriler performansı arttırmak için önbelleklemede kullanılır.
  • Uygulamaların tümü web uygulamasıdır. Chrome OS ile bütün web uygulamaları da kullanılabilir. Herhangi bir uygulamanın yüklenmesi söz konusu değildir.
  • (Televizyon mantığıyla) Hızlı başlayan ve hızlı çalışan İnternet cihazları içindir.
  • Başka bir cihazda oturum açıldığında tamamen aynı arayüz ve aynı uygulamalarla karşılaşılır.
  • Kullanıcı verileri önbellekte tamamen şifrelenmiş biçimde saklanır, böylece bir başkasının veriye erişmesi engellenir.
  • Hız, basitlik ve güvenlik öğeleri üzerinde tasarlanmıştır.
  • Masaüstü (ta da dizüstü) bilgisayarınızın yanına bir internet cihazı olarak öngörülmüştür. Kullanacağınız ana işletim sistemi olarak tasarlanmamıştır.
  • Usb gibi arayüzlerden kendi bellek ünitelerinize erişmenize olanak sağlar (film izlemek, resimlere bakmak)
  • Chrome OS açık kaynak kodlu bir projedir ve açık kaynak kodlu teknolojiler kullanır.
  • Proje sonuca ulaştığında firmalarla anlaşılarak İnternet kullanımı için özelleşmiş Chrome OS cihazları çıkacaktır.

Bir arkadaşım kaynak kodundan Chrome OS’u kendi bilgisayarında derledi ve çalıştırdı. İzlenimlerini okumak isterseniz yazıya buradan ulaşa bilirsiniz.

Daya ayrıntılı bilgiye İngilizce olmak üzere şuralardan erişebilirsiniz:

  • http://en.wikipedia.org/wiki/Google_Chrome_OS
  • http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html
  • http://www.techradar.com/news/software/operating-systems/10-things-to-know-about-google-chrome-os-614370
  • http://www.youtube.com/watch?v=5JyFbF7QFlY (Open Source Announcement)

Linux ssh ve proxy

Şu anda Hacettepe Üniversitesi’nde yurtlardan hiç birinde internet bağlantısı yok. 3 şey sayesinde sanıyorum internete erişebilen bir tek benim.

İltiraf etmek gerekirse ilki şans. Tesadüfen hacettepe.edu.tr alan adı altındaki adreslere erişebildiğimi fark ettim. Dışarıya çıkışlarda bir sorun olmalı.

İkincisi bölümümüz tarafından sağlanan ssh (Secure Shell) ile hesabımıza uzaktan etişme hakkı. Bu makine de hacettepe.edu.tr altında olduğu için buna bağlanmam da pek sorun olmadı. Eriştiğim bilgisara sadece komut satırı ara yüzüyle erişsem de komut satırı tarayıcısı sayesinde internete girmeyi deneyebildim. (Lynx ya da links deneyebilirsiniz.) Gariptir ki bağlandığım makinenin internete sorunsuz erişebildiğini farkettim. Aslında teorik olarak bir şekilde internete eriştiğinizde onu istediğiniz gibi kullanıyor olmanız gerekir. Fakat bahsettiğim tarayıcılar normal ihtiyaçları pek karşılayamıyorlar malesef.

Üçüncü etmense Linux’un daha doğrusu Linux’taki ssh yazılımının sağladığı bir olanak.

#ssh -D <portNo> <adres>

Kullandığınızda <adres> ile belirttiğiniz adresteki bilgisayara bağlanır. (kullanıcı adı belirtmek için kullaiciadi@adres seçmelisiniz.) ve bilgisayarınızın <portNo> ile belirttiğimiz portundan bir vekil sunucu (proxy server) açar.

Tarayıcınızın vekil sunucu ayarlarında adres olarak 127.0.0.1 (her zaman kendi bilgisayarınızı gösterir) port olarak seçtiğiniz portu gösterip vekil sunucunun SOCKS olduğunu belirttiğinizde bağlandığınız o bilgisayar üzerinden internete erişebiliyor olmanız gerekir.

Kabul etmek gerekirse benim için işe yaraması biraz şansla alakalı fakat bu olayın daha yaygın olarak kullanıldığı yerler de yok değil.

Normalde yerel ağlarda (özellikle kablosuz ağlarda) bilgisayarınızın yolladığı veri paketlerinin okunup okunmadığını bilmenin pek bir yolu yoktur. İletişiminizin gizliğini güvence altına alamazsınız. Bu gibi durumlarda (biraz paronayakça bir düşünce olsa da) güvendiğiniz sitelere yolladığınız bilgierin bile izleniyor olma olasılığı vardır. Hem de bahsi geçen sitelerin hiçbir kabahati olmadan…

SSH ise iki bilgisayar arasında güvenli iletişim sağlayabilmek için yaratılmıştır. SSH yoluyla iletişim kuran iki bilgisayarın iletişimi dinlense bile anlamsız şifrelenmiş verilerle karşılaşacaklardır. Bağlandığınız bilgisayarın fiziksel olarak güvenli olduğunu düşünürsek verileriniz tamamen güvende olur.

64bit linuxta 32bit kod derleme

Bu tarzda ilk blog girdim. Burayı ziyaret edecek herkesi ilgilendirir mi bilemiyorum (ziyaret eden var mı onu da bilemiyorum). Ama birilerinin işine yarayabilir umuduyla yazıyorum. Teknik konuları da yazılar yazmayı düşünüyorum.

Okuldaki bir ödev için C ve Assembly kullanarak bir proje geliştirmem gerekiyordu. Derleyici olarak nasm ve gcc kullanılacaktı. Fakat bir sorun vardı ödevin 32 bitlik bir bilgisayarda geliştirilmesi öngörülüyordu ve benim kullandığım bilgisayarda 64 bit bir kubuntu sürümü vardı(8.04 Hardy). Teorik olarak 32 bit makinede çalışacak olan bir kod 64 bitlik derleyicide derlenebiliyordu ama işler teorikte olduğu kadar kolay yürümedi.

Bir assembly yordamının C kodu içerisinden çaırılması gerkiyordu.

Nasm ile assembly kodunu derlerken “nasm elf” seçeneğini kullandım. Zaten elf seçeneği elf32parametresiyle aynı anlama geliyordu. (64 bitlik bir derleme için elf64 kullanılacağını da belirteyim.) Assembly kodunun derlendiği kısımda pek bir zorlukla karşılaşmamıştım.

C kodunu doğrudan c ile derledikten sonra nasm’ın oluşturduğu ikili kod dosyasıyla bağlamak mümkün değildi. C kodunun da 32 bite göre derlenmesi gerekiyordu. bunun için gcc’nin -m32 parametresini kullanmak gerekti. Fakat stdio kütüphanesinin 32 bit için olan bir sürümü bulunamadığı için hata alıyordum.

error: gnu/stubs-32.h: No such file or directory

kubuntu için libc6-dev-i386 paketini yüklemek sorunu halletmişti

sudo apt-get install libc6-dev-i386

bu kez gcc ile dosyaları birbirine bağlamaya çalıştığımda şuna benzer bir hata alıyordum:

/usr/bin/ld: cannot find -lgcc…

Biraz araştırdıktan sonra gccnin bendeki 4.2.4 nolu sürümüyle ilgili bir sorun olduğunu öğrendim. Gccnin daha eski bir sürümünü yüklemek gerekecekti. gcc-3.4 benim işimi gördü:

sudo apt-get install gcc-3.4

daha sonra derleme işlemlerini bu gcc sürümüyle yapmak gerekiyordu. hala gcc komutu sistemde gccnin en son sürümüne karşılık geldiğinden derlemeyi

gcc-3.4 -m32 ….

şeklinde gerçekleştirdim ve elimde çalışan bir dosya oldu. 32 bitlik bir makinada denediğimde de programın sorunsuz çalıştığını gördüm.

Derleme işlemini gerçekleştirmek için makefile kullanmanız ve makefileda derlemeyi şöyle gerçekleştirmeniz işinizi kolaylaştırabilir

compiler=gcc-3.4 -m32

$(compiler) input…..

Bu tarz blog girdileri yazmak konusunda pek deneyimli sayılmam ama dilerim birilerinin işine yarar.