Truva Linux Türkiye

August 28, 2016

Linux Mint 18 üzerine Bumblebee nasıl kurulur?

Bilindiği gibi, Optimus özellikli dizüstü bilgisayarlarda genellikle bir Intel ekran kartı, ayrıca bir de Nvidia ekran kartı bulunuyor. Sisteme buna uygun biçimde gerekli sürücülerin ve Bumblebee ile Primus adlı yazılımların kurulup kullanılması gerekiyor. Hatırlanacağı gibi daha önce Ubuntu, Linux Mint 13 ile 17 ve Debian üzerine Bumblebee’nin nasıl kurulacağını ele almıştık. Ancak, Linux Mint 18 yayınlandı ve artık Bumblebee kurulumunda kimi şeyler değişmiş bulunuyor. Bu nedenle, yeni bir Bumblebee başlığı açmayı uygun bulduk. Linux Mint 18 üzerine Bumblebee ve Primus yüklemek için bu sayfadaki işlemleri yapabilirsiniz. Öncelikle dizüstü bilgisayarınızın Optimus teknolojisine göre imal edilip edilmediğini anlamak için terminalde aşağıdaki komutu döndürebilirsiniz.

lspci | egrep 'VGA|3D|Display'

Aldığınız çıktı aşağıdakine benzer bir şeyse, bu, bilgisayarınızın Optimus teknolojisine göre imal edildiğini gösterir ve Bumblebee yüklemeniz gerekir.

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 3D controller: NVIDIA Corporation GK106M [GeForce GTX 765M] (rev ff)

Bu durumda, bilgisayarınıza Nvidia kapalı kaynak kodlu sürücüsünü kesinlikle kurmamanız gerektiğini unutmayın. Terminalde aşağıdaki komutları sırasıyla çalıştırarak, sisteminize Bumblebee uygulamasını kurabilirsiniz.

sudo add-apt-repository ppa:bumblebee/testing
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install bumblebee nvidia-370 nvidia-settings bumblebee-nvidia primus virtualgl linux-headers-$(uname -r)

64 bit bir sisteme sahip olanlar, aşağıdaki komut ile Primus için 32 bit uyumluluk paketini de kurmalıdır.

sudo apt-get install primus-libs-ia32

Kurulumdan sonra, daha önce de yaptığınıza benzer biçimde bumblebee.conf dosyasında birkaç  değişiklik yapmanız gerekiyor. Bunun için metin editörüyle /etc/bumblebee/bumblebee.conf dosyasını açıyoruz. bumblebee.conf dosyasında aşağıdaki satırları bulup, belirtildiği biçimde değiştiriyoruz.

# (See also the driver-specific sections below)
Driver=

satırlarını:

# (See also the driver-specific sections below)
Driver=nvidia

şeklinde,

# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-current

satırlarını:

# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-370

şeklinde,

# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current

satırlarını:

# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-370:/usr/lib32/nvidia-370

şeklinde,

# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-current/xorg,/usr/lib/xorg/modules

satırlarını ise:

# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-370/xorg,/usr/lib/xorg/modules

şeklinde değiştiriyoruz.

Bu değişikliklerden sonra, GL sağlayıcısı için gerekli değişikliklerin yapılması gerekiyor. Bunun için terminalde aşağıdaki komutları yürütebilirsiniz.

sudo update-alternatives --set i386-linux-gnu_gl_conf /usr/lib/i386-linux-gnu/mesa/ld.so.conf

sudo update-alternatives --set x86_64-linux-gnu_egl_conf /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf

sudo update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf

Son olarak grub dosyasında küçük bir düzenleme yapılması gerekiyor.

sudo xed /etc/default/grub

Komutuyla grub dosyasını açarak, aşağıdaki satırı bulun:

GRUB_CMDLINE_LINUX=""

ve satırı aşağıdaki biçimde değiştirip dosyayı kaydedin.

GRUB_CMDLINE_LINUX="nogpumanager"

Sonra da aşağıdaki komutla grub dosyasını güncelleyin.

sudo update-grub

Artık sistemi yeniden başlatmalısınız.

sudo reboot

Sistemi yeniden başlattıktan sonra bbswitch-dkms ve nvidia-370 paketlerinin yeniden yapılandırılması gerekiyor. Bunun için aşağıdaki komutları yürütün.

bbswitch-dkms paketini yeniden yapılandırmak için:

sudo dpkg-reconfigure bbswitch-dkms

nvidia-370 sürücüsünü yeniden yapılandırmak için:

sudo dpkg-reconfigure nvidia-370

Şimdi sistemi yeniden başlatmalısınız.

sudo reboot

Sistemi yeniden başlattıktan sonra Bumblebee kullanmaya başlayabilirsiniz.

optirun glxgears

Olağan şartlarda, bu işlemin, terminale optirun komutu ve ilgili uygulamanın isminin girilmesi suretiyle gerçekleştirildiği biliniyor. Ancak, elle optirun komutu girmeden, Nvidia ekran kartını doğrudan kullanmak isteyebilirsiniz. Bu imkanı size tanıyan yazılım, Bumblebee-ui adlı bir yazılımdır. Bumblebee-ui içine eklediğiniz uygulamaları, doğrudan Bumblebee-ui içinden seçmek suretiyle doğrudan Nvidia ekran kartıyla başlatabilirsiniz. Bumblebee-ui adlı yazılımın nasıl yükleneceğini daha önce burada ele almıştık. Konuyu buraya ekleyelim. Bumblebee-ui yüklemek için terminalde sırasıyla aşağıdaki komutları döndürebilirsiniz.

sudo apt-get install python-appindicator
wget -c --no-check-certificate -O bumblebee-ui.tar.gz https://db.tt/FCISvIWi
tar -xzvf bumblebee-ui.tar.gz
cd bumblebee-ui
chmod +x ./INSTALL
sudo ./INSTALL

Kurulumdan sonra uygulamayı menüden bulup çalıştırabilirsiniz, ancak dilerseniz, başlangıç Uygulamaları arasına ekleyip orada görünmesini de sağlayabilirsiniz. Bunun için, başlangıç uygulamalarını açıp ekle butonuna basınız.

İsim : Bumblebee-ui
Komut : /usr/local/bin/bumblebee-indicator

Artık bumblebee-ui isimli uygulamacık sistem çekmesine yerleşecektir.

Bumblebee-ui

August 27, 2016

Linux 25 yaşında

25 Ağustos 1991’de Linus Benedict Torvalds’ın comp.os.minix newsgroup üzerinden o efsanevi duyurusunu yapıp da Linux’u ilan etmesinden bu yana tam 25 yıl geçti. Linux 25. yaşını kutluyor. Doğum günün kutlu olsun Linux! 25 yıl önce Torvalds; Nisan ayından bu yana devam eden geliştirme sürecinin ardından, artık hazır olduğunu ve geliştirdiği sistemle ilgili geri bildirimde bulunulmasını istediğini söylüyordu. Unix’e fikirsel ve teknik anlamda atıfta bulunarak geliştirilmiş açık kaynak kodlu, özgür ve ücretsiz bir işletim sistemi çekirdeği olan Linux; 5 Ekim 1991’de Linux 0.02 adıyla kullanıma sunuldu. Geniş bir donanım desteğine sahip olan Linux çekirdeği; sunucu bilgisayarlar, masaüstü-dizüstü bilgisayarlar, iş istasyonları, akıllı telefonlar, yeni nesil TV’ler ve tabletler gibi hemen her platformda tam bir uyum içinde çalışabilir. Günümüzde Linux çekirdeğini kullanan GNU dağıtımları, büyük bir kitle tarafından genel olarak “Linux” adıyla anılmaktadır. Ancak, Özgür Yazılım Vakfı ve çeşitli özgür yazılım toplulukları, “GNU/Linux” tanımını tercih etmektedir.


Linus Torvalds’ın 25 Ağustos 1991’de yayımladığı duyuruya buradan ulaşabilirsiniz.

Kaynak: getGNU.org

Linux 25 yaşında yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

LKD Gezegeni Planet

lkd-logoGeçtiğimiz (25-08-2016) perşembe günü ve cuma öğlen vaktine kadar. LKD.org.tr ve *.linux.org.tr  alanlarına ait ns ler yanıt vermiyordu.  Durumdan Mustafa AKGÜL hocamıza haber verip bilgilendirdim. Durum düzeltildi. Daha sonra Fortran bana http://gezegen.linux.org.tr adresinin çalışmadığını söyledi. Siteyi inceledim önce Dns nin yanlış yapılandırıldığını düşündüm. Sitede WordPress kodlarının ne işi vardı?  Çünkü http://gezegen.linux.org.tr daha önceleri yani benim  linux ile tanıştığım 2003 yılından beri http://www.planetplanet.org/ ile yayın yapıyordu.  Lakin durum farklı altyapı olarak wordpress ve feedwordpress plugin kullanılarak hazırlanmış. WordPress kullanılmasından dolayı veya eklenen Rss beslemelerinin kategorilerine dikkat edilmemiş. Acele ile hazırlanmış hissi veriyor.

Örnek olarak ÖTV Yazısı

otv

Bende aynı şekilde wordpress kullanarak örnek bir blog oluşturdum http://gunluk.esy.es

Truva Linux için 2014 yılı mayıs ayında Planet Hazırladım. 2 yılı aşkın bir zamandır problemsizce çalışıyor. http://planet-truvalinux.rhcloud.com/

Netice itibariyle Linux.org.tr Gezegeninin http://www.planetplanet.org yapısının terk edilmesini yadırgadığımı belirtmek isterim. Acaba neden planetplanet yapısı değiştirildi?

subversion kodları hala erişilebilir durumda.

https://svn.linux.org.tr/gezegen/

LKD-tasarim_02

LKD Gezegeni Planet yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

August 24, 2016

Slackware Live Edition 1.1.3 Live ISO Duyuruldu

bluepiSWEric Hameleers tarafından 22 Ağustos  2016‘da Slackware Live Edition’ın 1.1.3 sürümü duyuruldu.

Kaynak: http://alien.slackbook.org/blog/slackware-live-edition-1-1-3-based-on-slackware-current-11-aug-2016/

Download Kaynakları:

Slackware Live Edition 1.1.3 Live ISO Duyuruldu yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

Linux’te Yandex.Disk Kurulumu Nasıl Yapılır?

Bulut tabanlı depolama denilince akla gelen ilk isimlerden biri Google Drive olsa da ne yazık ki Google Drive’ın resmi bir Linux istemcisi bulunmuyor. Her ne kadar Google Drive’ı Linux’te kullanmak için resmi olmayan yazılımlar olsa da onların ne kadar güvenilir olduğu tartışılır. Google Drive’ın resmi bir yazılımının olmaması belki de en büyük eksiği. Rusya tabanlı bir şirket olan

Deus Ex: Mankind Divided Linux’e Gelebilir

Eidos Montreal tarafından geliştirilen ve RPG türünde bir oyun olan Deus Ex: Mankind Divided, Windows oyun sitelerinde şu ana kadar pozitif yorumlar aldı. Steam’deki fiyatı 148.99 TL olan oyunun SteamDB’deki sayfasına baktığımızda oyunun Linux’e gelme ihtimali var gibi görünüyor. Henüz resmi bir açıklama yok. Fakat işaretler doğruysa yakın bir zamanda Linux’te çalışan bir oyunumuz daha

August 23, 2016

Linux’te Hangi Web Tarayıcısını Kullanıyorum?

Kullanmaktan keyif aldığım tarayıcıların başında Firefox geliyordu. Uzunca bir süre de kullandım. Chrome tarayıcısı çıktıktan ve onun hızını gördükten sonra Firefox’u bırakıp Chrome’a geçmiştim. Firefox’taki bazı sorunlar yüzünden Chrome’u daha sık kullanır oldum. Fakat şunu itiraf etmem gerekiyor. Chrome sade ve hızlı bile olsa Firefox’tan aldığım o keyfi alamadım nedense. O yüzden bir

August 22, 2016

DigiKam 5.x Kurulumu Nasıl Yapılır? (Ubuntu/Linux Mint)

digiKam, özellikle KDE masaüstü ortamı için geliştirilmiş bir dijital fotoğraf yönetimi uygulamasıdır. Albümlerinizi düzenlemenize yardımcı olur. Kullanımı kolay kamera arayüzü sayesinde dijital kameralarınıza bağlanıp fotoğrafları albümlerinize kolayca indirebilmenizi sağlar. Gphoto2 kütüphanesiyle birlikte 1000’den fazla kamerayı destekliyor. İşletim sisteminiz tarafından desteklenen her

Linux’te Spotify Kurulumu Nasıl Yapılır? (Ubuntu/Linux Mint)

Spotify’ın Linux sürümü Debian paketi olarak mevcut. Spotify ekibi, amaçlarının Ubuntu’nun en son LTS sürümlerinde Spotify’ın çalışabilmesi olduğunu söylüyorlar. Fakat Ubuntu’nun diğer sürümleri ve Debian için de uğraştıklarını belirtiyorlar. Spotify for Linux Kurulumu Aşağıdaki komutları sırasıyla Terminal’de çalıştırarak kurulumu kolayca yapabilirsiniz. sudo apt-key adv --keyserver

August 20, 2016

Windows Powershell Linux'e Geldi

Microsoft'un CEO'su Satya Nadella “Microsoft Linux'u seviyor” dedi ve aynı zamanda bunu kanıtladı. Bildiğiniz gibi bir süre önce Microsoft ve Canonical iş birliğiyle Ubuntu'daki Bash, Windows 10'da çalışabilir hale gelmişti. Şimdi de Windows Powershell açık kaynak olarak Linux ve Mac OS'a geldi. Şu an için sadece CentOS, RHEL, Ubuntu ve Mac OS X destekleniyor. Windows Powershell'in ne

August 18, 2016

Nvidia 370.23 Beta Linux Sürücüsü Ubuntu'da Nasıl Kurulur?

Nvidia'nın Linux sürücüsü 370 serisine 370.23 beta sürümüyle ulaştı. Bu sürümde Titan X (Pascal) ve GTX 1060 6GB resmi olarak destekleniyor. GTX 1000 serisi ve üstü kartlarda overclock yapabilme özelliği eklendi.  Ayrıca Nvidia 370.23 ile 4K ve 8K için PixelShiftMode MetaMode seçeneği de eklendi.  Nvidia 370.23 Beta Linux Sürücü Kurulumu Graphics Driver Ekibi yeni 370 sürücü serisi

August 16, 2016

Instagram Filtreleri GIMP'e Nasıl Eklenir?

Eğer Instagram filtrelerini mobil telefonunuzda kullanmaktan hoşlanıyorsanız ve o efektlere benzer efektleri fotoğraflarınıza uygulamak istiyorsanız bunun için tek yapmanız gereken şey GIMP kullanmak. GIMP Plugin Registry'i indirerek Instagram'daki efektleri, bilgisayarınızdaki fotoğraflarınızda kullanabilirsiniz.  2013'ten beri güncellenmediği için Clarendon, Gingham, Moon gibi yeni

Debian 23 yaşında

debianbuttonBugün, Debian’ın kuruluşunun 23. yıldönümü. Resmi olarak Purdue Üniversitesi’nde lisans öğrencisi olan Ian Murdock tarafından 16 Ağustos 1993‘te kurulan Debian Projesi, 23. doğum gününü kutluyor. Açık kaynak ve GNU/Linux ruhuna uygun bir proje olarak doğan Debian GNU/Linux; Kasım 1994’ten, Kasım 1995’e kadar, bir senelik süre içinde, Richard M. Stallmantarafından başlatılan, Özgür Yazılım Vakfı (FSF)‘nın GNU projesi tarafından desteklendi ve Genel Kamu Lisansı (GPL) ile lisanslandı.. Başlangıçta sıkı kenetlenmiş küçük bir grup Özgür Yazılım hacker’ı tarafından başlatılan Debian Projesi; zamanla büyük, iyi organize edilmiş geliştirici ve kullanıcı topluluğuna dönüştü. Debian; sistemin güncellemelere karşı tutarlılığını sağlamak için, inter-paket bağımlılıklarını dikkatle inceleyen detaylı bağımlılık bilgisini sağlayan “mikro paketlenmiş” tek dağıtımdır. Yüksek kaliteyi korumak ve sürdürmek için, teslim etme ve paketleme için kapsamlı bir prosedür ve politika duruşunu esas almıştır. Bu standartlar, açık ve görünmez bir şekilde, Debian’ın anahtar kavramlarını araçlar, özdevinim ve belgelendirmeyle desteklemektedirler. Debian, farklı işletim sistemi çekirdekleriyle birlikte i386, AMD64, PowerPC, SPARC, DEC Alpha, ARM, MIPS, HPPA, S390, IA-64 gibi çok sayıda donanım platformunda da çalışabilmektedir. Desteklediği donanım ve çekirdek zenginliğinin yanı sıra Debian’ı diğer dağıtımlara nispetle özgün kılan en önemli husus, dağıtım kapsamındaki yazılımların bütünüyle özgür lisans şartlarına sahip olması, yazılım özgürlüğünü denetlemek ve sürekli kılmaya yönelik bir Debian Sosyal Sözleşmesi’nin bulunmasıdır. Debian GNU/Linux felsefesini daha iyi anlamak üzere Debian Sosyal Sözleşmesini inceleyebilirsiniz. Debian; kâr amacı gütmeyen, New-York tabanlı Software in the Public Interest, Inc., adlı bir kuruluşun doğmasına sebep olmuştur. Proje; günümüze değin pek çok farklı sürümünü kullanıma sunmuştur.

debian-banner

Debian Projesi, halen kararsız dağıtım (Oyuncak Hikayesi filminde, yan kapıda bekleyen, asla dünyaya bırakılmaması gereken, “kararsız” ve kötü oğlan sidadıyla kodlanan sürüm) Sid üzerinde çalışıyor. Sid, aynı zamanda “Halen geliştirilen” (Still In Development) kararsız sürümün kalıcı adı olarak kalmıştır. Güncellenen ya da yeni geliştirilen paketlerin çoğu bu dağıtım üzerine yüklenmiştir. Test sürümünün bir sonraki kararlı sürüme dönüşmesi planlanıyor ve şu an Stretch kod adına sahip. Şu ana değin pek çok geliştiricisini kaybeden proje, geçen yıl da kurucusu Ian Murdock‘u kaybetmiştir. “Debian” ismi, Ian Murdock’ın sevgilisi Debra’nın Deb’i ve Ian’ın isminin yan yana getirilmesiyle oluşturulmuştur. Debian’ın resmi telaffuzu “deb i yın” şeklindedir. 23 yıl boyunca katkıda bulunan herkese teşekkürler ve mutlu yıllar Debian!

Kaynak: getGNU.org

Debian 23 yaşında yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

Linux Mint 18 "Sarah" XFCE Yayınlandı

Linux Mint ekibi Linux Mint 18 "Sarah" XFCE sürümünü yayınladı. Linux Mint 18 LTS desteğine sahip olan sürüm 2021'e kadar desteklenecek. Güncellenmiş yazılımları ve yeni özellikleri içerisinde barındıran bu sürüm, kullanımınızı daha rahat hale getiriyor. Bu yeni sürümde birçok geliştirme mevcut. Bunların neler olduğunu şu adresten öğrenebilirsiniz. Linux Mint 18 "Sarah" XFCE Sistem

August 14, 2016

GIMP İçin Photoshop Tema Paketi Nasıl Kurulur?

Linux kullanmaya başladığımdan beri Photoshop alternatiflerinden biri olan Gimp'e hiç alışamadım. Photoshop'un arayüzü daha kullanışlı olduğu için ufak tefek kesme, biçme gibi işlemlerde Gimp'i kullansam da işim düştüğünde Windows'a geçip Photoshop'u kullanıyorum. Eminim bu ve buna benzer bir senaryo sizin de başınıza gelmiştir. Photoshop Tema Paketinin Kurulumu Öncelikle tema paketini ŞU

Youker Assistant Nedir? Nasıl Kurulur? (Ubuntu/Linux Mint)

Youker Assistant, Ubuntu Kylin ekibi tarafından geliştirilmiş bir Linux sistem bakım yazılımıdır. Youker Assistant'ı kullanarak sisteminizdeki gereksiz dosyaları, çerezleri ve geçmişi silebilirsiniz. Bunların dışında, sisteminiz hakkında bilgi alabileceğiniz ve sisteminizde kişiye özel değişiklikler yapabileceğiniz araçları da içinde barındırıyor. Youker Assistant'ın arayüzünü ilk

August 10, 2016

Kernel 4.6.6 Nasıl Yüklenir?

Aslında Debian, Ubuntu ve tüm türevleri ile Linux Mint sürümleri için güncel Linux çekirdeğine nasıl yükseltme yapılacağını irdeleyen bir yazı yazmış olduğumuz için bu tür özel yazılar yazmamıza gerek olmamasına karşın, kullanıcılardan gelen beklentiler nedeniyle hâlâ böyle yazılar yazıyoruz. En son gelişmiş kararlı çekirdek 4.6.6; 10 Ağustos 2016 tarihi itibariyle duyuruldu. 4.6.6 Linux çekirdeğinin duyurusu, Greg Kroah-Hartman tarafından yapıldı. Kullanıcıların yeni sürüme yükseltme yapmalarının gerektiği belirten Kroah-Hartman; herhangi bir sorunla karşılaşan kullanıcıların, geri bildirimde bulunmalarını rica etti. Serinin ilk halkası olan 4.0 Linux çekirdeğinin, normal kullanıcılar için önemli olmasa da, sunucular için önem taşıyan güncellemede yeniden başlatma zorunluluğunu ortadan kaldırdığını hatırlatalım. Bu yazıda, 4.6.6 Linux çekirdeğinin nasıl yükleneceğini ele alacağız. Bunun için, Canonical’ın kernel.ubuntu.com deposu aracılığıyla kullanıma sunduğu .deb paketlerini kullanacağız. Söz konusu işlemleri yaparken; temel olarak Ubuntu ile Linux Mint, Elementary OS, Pinguy OS, Deepin, Peppermint, LXLE, Linux Lite, Voyager gibi Ubuntu türevlerini hesaba kattığımızı hatırlatalım.

32 bit sistemler için:

4.6.6 Linux çekirdeği 32 bit sistemlere aşağıdaki gibi yüklenir. İlkin gerekli paketleri indiriyoruz:

cd /tmp

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-headers-4.6.6-040606_4.6.6-040606.201608100733_all.deb

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-headers-4.6.6-040606-generic_4.6.6-040606.201608100733_i386.deb

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-image-4.6.6-040606-generic_4.6.6-040606.201608100733_i386.deb

Şimdi 4.6.6 Linux çekirdeğini yükleyelim:

sudo dpkg -i linux-headers-4.6*.deb linux-image-4.6*.deb

64 bit sistemler için:

4.6.6 Linux çekirdeği 64 bit sistemlere aşağıdaki gibi yüklenir. İlkin gerekli paketleri indiriyoruz:

cd /tmp

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-headers-4.6.6-040606_4.6.6-040606.201608100733_all.deb

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-headers-4.6.6-040606-generic_4.6.6-040606.201608100733_amd64.deb

wget kernel.ubuntu.com/%7Ekernel-ppa/mainline/v4.6.6/linux-image-4.6.6-040606-generic_4.6.6-040606.201608100733_amd64.deb

Şimdi 4.6.6 Linux çekirdeğini yükleyelim:

sudo dpkg -i linux-headers-4.6*.deb linux-image-4.6*.deb

Eğer gerek duyarsanız daha sonra çekirdeği kaldırmak için bu sayfadan yararlanabilir ya da aşağıdaki komutu verebilirsiniz.

sudo apt-get remove linux-headers-4.6* linux-image-4.6*

August 09, 2016

Denizaltı kablo ağı haritası

Dünyadaki İnternet veri akışının çok önemli bir kısmı kıtaları birbirine bağlayan denizaltı kablolarıyla sağlanıyor. Zaman zaman ülkemizde de “kablo koptu, İnternet yavaşladı” şeklinde haberleri yapılan bu kablo ağı neye benzer, maliyeti nedir, kapasite ne kadar merak ettiniz mi? Burada yer alan harita, faal ve planlanan uluslararası ve Amerika’daki yerel kablo ağlarını göstermektedir. Faal olan kablo ağları, 31 Aralık 2011 tarihinde Ready for Service (RFS) tarafından açıklanmıştır. Planlanan sistemler yapım aşamasında olmakla beraber bitiriş tarihi 2014 olarak ilan edilen kablo ağlarıdır. Haritada yapılması amaçlanan kablo ağlarına dair bilgi verilmemiştir. Kabloların geçtiği yerler biçimlendirilmiştir. Kabloların geçtiği yerlerin fiziki konumunu tam olarak yansıtmamaktadır. Daha güncel bilgiler için submarine-cale-map.com sitesini ziyaret edebilirsiniz.

Harita -1

denizlalti-kabloagi-haritasi-2012-5

Harita -2

denizlalti-kabloagi-haritasi-2012-1

Kaynak Site

Video

 

Denizaltı kablo ağı haritası yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

August 08, 2016

getGNU RSS Chromium eklentisi

Değerli dostumuz @caylakpenguen, dün, bir Chromium eklentisi yazmış. Eklentiyi kurduğunuzda, Chromium’un üst paneline aşağıdaki resimde gördüğünüz simge yerleşiyor. Simgeye tıkladığınızda, 10 maddelik bir RSS listesiyle karşılaşıyorsunuz. Böylelikle, son 10 haberi oracıkta görme imkanınız oluyor. Ayrıca üstte arama kutusu var. Oraya aramak istediğiniz herhangi bir sözcüğü yazdığınızda, arama otomatik olarak getGNU’da yapılıyor ve sonuçlar karşınıza listeleniyor. @caylakpenguen‘e teşekkür ediyoruz, güle güle kullanın.

Eklentiyi buradan indirebilirsiniz. Eklentiyi, Chromium’da Ayarlar/Uzantılar kısmına sürükleyip bırakarak kolaylıkla kurabilirsiniz.

getGNU_Chrome

August 07, 2016

Raspberry Pi ile Evinizden Web Hosting – DNS – Bind

rasptuxMerhaba,

Daha önceki yazımda Raspberry Pi ile Evinizden Web Hosting yazısı yazmıştım.

Bugün ki yazıda ücretsiz alan adı alıp, Aldığımız  alan adını Raspiberry Pi ile Domain Name Server hizmeti vermeyi anlatacağım.

DNS Domain Nedir


Öncelikle buna cevap vermeye çalışayım domain internet üzerindeki sitelere erişmek için kullandığımız sistemdir.

Örnek vermek istersek Her sitenin bir sunucusu bu sunucunun da ip adresi vardır. bu ip adresler değişken veya  sabit olabilir. DNS sistemi varolmamış olsaydı. Sitelerin ip adreslerini ezberlemek zorunda kalacaktık. Hani Hepimizin varolan cep telefon numaraları gibi 🙂 Neyseki DNS sistemi var. Daha Detaylı bilgi. [1]

Domain Adı Alma

Raspi üzerinde domain host etmek için elbetteki elimizde domain olması gerekli.

Ben ücretsiz olarak iki tane domain aldım.

memleketim.tk

memleketim.ml

[2] adresinden kaydolup alan adı alabilirsiniz.

Dns Name server kısmına raspi için daha önceden ayarladığımız alan isimlerini giriyoruz.

raspi-dns-1

Alan adını kaydettik. Buraya kadarki işlemler tamamlandı.

raspi-dns-2

Sırada alan adı Sunucusu Bind9 Kurulumu var

Bind9 Kurulumu

Alan adımızı sunmak için Bind9 kulllanacağımız için öncelikle kurulması gerekli.

Raspinize bağlanın ve aşağıdaki komutu root olarak işletin.

apt-get update

apt-get install -y bind9 bind9utils bind9-doc  dnsutils

Bind kurulumu başarıyla gerçekleştirdiğimize göre alan isimlerimize göre ayarlamaya geçebiliriz.

Bind Yapılandırması

Bind default olarak yapılandırma dosyalarını /etc/bind/ dizin altında tutmaktadır.

Domain yapıandırma dosyalarımızın daha düzenli olması için bir dizin içerisinde tutmakta fayda var.

cd /etc/bind

mkdir zones

Sırada  domainlerimizin zone dosyaların oluşturmak var.

Alan Adı Domain Yapılandırması

cd /etc/bind/zones

nano memleketim.ml.zone

raspi-dns-3

memleketim.ml.zone içeriği

$TTL 3600
@   IN  SOA     ns.memleketim.ml. caylakpenguen.truvalinux.org.tr. (
        2016080701  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

; NS sunuculari:
                IN      NS              raspitr.nsupdate.info.
                IN      NS              caylak.nsupdate.info.
; A kayitlari
@               IN      A       94.54.139.252
www             IN      CNAME   memleketim.ml.

memleketim.tk.zone içeriği

$TTL 3600
@   IN  SOA     ns.memleketim.tk. caylakpenguen.truvalinux.org.tr. (
        2016080701  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

; NS sunuculari:
                IN      NS              raspitr.nsupdate.info.
                IN      NS              caylak.nsupdate.info.
; A kayitlari
@               IN      A       94.54.139.252
www             IN      CNAME   memleketim.tk.

Oluşturduğumuz bu dosyaları kaydedin.

Şimdi geldi sıra bind9 yapılandırma dosyasında alanlarımızı eklemeye geldi.

nano /etc/bind/named.conf.local

/etc/bind/named.conf.local içeriği

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";


zone "memleketim.tk" {
type master;
allow-query { any; };
file "/etc/bind/zones/memleketim.tk.zone";
};

zone "memleketim.ml" {
type master;
allow-query { any; };
file "/etc/bind/zones/memleketim.ml.zone";
};

son olarak yapılandırmamızın etkin olabilmesi için bind9 servisini yeniden başlatmamız gerekli

service bind9 restart

Yaptığımız işlemleri buraya kadar problemsizce yaptıysanız.

Dns Kontrolü

Dns kontrolü bir kaç farklı şekilde yapılabilmektedir.

Beni sizin aklınızı daha fazla karışmasına neden olmadan oncelikle kontrolü google üzerinden yapalım.

Size direkt Linki vereyim.

https://toolbox.googleapps.com/apps/dig/#NS/memleketim.tk

https://toolbox.googleapps.com/apps/dig/#NS/memleketim.ml

Elbetteki Dns kontrolü Konsoldan da yapılabilmektedir.

raspi-dns-4

Konsol çıktısı bu şekilde

Sonuç

Sonuç olarak Raspberry Pi üzerinde Bind9 DNS yapılandırdık.

Kalan bir işlem daha var.

Web Server kurup VirtualHost konfigurasyonu yapmak.

Bir Sonraki Yazının konusu Web Server Yapılandırması olacak.

Görüş ve eleştirilerinizi Bekleriz.

Hatalı olan  veya eklenmesini istediğiniz bir konu varsa yorum olarak belirtebilirsiniz.

Bana ulaşmak için İkinci bir seçenek olarak İletişim Formunu kullanabilirsiniz.

Kaynakça

1- https://tr.wikipedia.org/wiki/DNS

2- http://www.freenom.com

3- https://www.syslogs.org

Raspberry Pi ile Evinizden Web Hosting – DNS – Bind yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

August 06, 2016

Unix & GNU/Linux sistemlerde find komutunun kullanımı

Unix ve GNU/Linux tabanlı sistemlerde kullanılan find komutunun kullanımını gözden geçirelim. find komutu, temel olarak arama yapmak için kullanılır. Ancak, find komutu ile cok ceşitli kriterlere göre dosya aramak, dosya boyutlarını listelemek, dosya izinlerini ayarlamak gibi pek çok farklı işi yapmak mümkündür. Şimdi, dilerseniz, find komutuyla ilgili çeşitli terkipleri gözden geçirelim. Sözgelimi bilgisayarınızda var olan “bir.jpg” adlı dosyayanın nerede olduğunu belirlemek isterseniz, şu komutu kullanabilirsiniz.

sudo find / -name "bir.jpg"

Bilgisayarınızda var olan “e-dergi” adlı dizinin nerede olduğunu belirlemek isterseniz, şu komutu kullanabilirsiniz.

sudo find / -type d -name "e-dergi"

Herhangi bir dizindeki bir dosyayı aratmak isterseniz:

find /mnt/depo -name "bir.jpg"

Bilgisayarınızda var olan “bir.jpg” adlı dosyayı ararken, büyük küçük harf ayrımını ortadan kaldırmak isterseniz, -iname seçeneğinden yararlanabilirsiniz.

sudo find / -iname "bir.jpg"

Arama yaparken joker karakterleri kullanabilirsiniz ancak bu durumda onları çift tırnak içine almanız veya ̈onlerine ters bölü (backslash) koymanız gerekir.

sudo find /usr/share/doc -name README\*

Son 24 saat içinde oluşturulmuş dosyaları arayabilirsiniz.

sudo find . -name \? -mtime -1

24 saatten ̈once oluşturulmuş dosyaları arayabilirsiniz.

sudo find . -name \? -mtime +0

Günün başlama anından itibaren oluşturulmuş dosyaları arayabilirsiniz.

sudo find . -name \? -daystart -mtime +0 -mtime -3

size seçeneği dosyaları büyüklük kriterine göre aramanızı sağlar. Örneğin /usr/bin dizini içinde boyu 50 byte’tan küçük olan dosyaları bulmak isterseniz:

find /usr/bin -type f -size -50c

Aşağıdaki komut ise, 5 MB’tan büyük olan dosyaları listeleyecektir.

find /usr/bin -type f -size 5M

Aşağıdaki komut ise, 500 MB ile 2 GB arasındaki boyutlara sahip olan dosyaları listeleyecektir.

find /home -type f -size +500M -size -2G

Aşağıdaki komut ise, 500 karakterden fazla olan dosyaları listeleyecektir.

find /home -type f -size +500c

Bilgisayarınızdaki birden fazla dosyayı aynı anda aramak isterseniz, dosyaları aşağıdaki gibi sıralamanız gerekir.

sudo find / -type f \( -name "log1.txt" -o -name "log2.txt" \) -print

Aşağıdaki komut, belli bir dizin içerisinde (/home), son 1 saat içerisinde erişilmiş dosyaları listeleyecektir.

sudo find /home -type f -amin -60

Seçenekler ise şu şekilde:

Find “Size” Seçenekleri

k : kilobytes (1024 bytes)
M : megabytes (1024 kilobytes)
G : gigabytes (1024 megabytes)
T : terabytes (1024 gigabytes)
P : petabytes (1024 terabytes)

Find “Type” Seçenekleri

b : özel blok dosyası
c : özel karakter dosyası
d : dizin
f : basit dosya
l : sembolik link
P : FIFO
s : soket

Unix & GNU/Linux : Find Komutunun Örneklerle Kullanımı.

gnu-linux-tux-coffee-logoMerhabalar

Bu yazıda Unix ve GNU/Linux tabanlı işletim sistemlerinde kullanılan find komutunun örnekler halinde kullanımına değineceğim. Find komutu dosya aramak, dosya boyutlarını listelemek gibi ileri düzey farklı işlevler içinde kullanılmaktadır.

Find komutunun detaylarına bakalım.

1. Sistem üzerinde log.txt ismi olan dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.

root# find / -name "log.txt"

2. Sistem üzerinde log.txt ismi geçen dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, bir path dosyanın içerisinde log.txt ismi geçiyor ise listeyecektir. Basit bir örnek verelim, ( blabla.log.txt.blabla gibi.)

 

3. Sistem üzerinde log adında bir dizin aramak isterseniz aşağıdaki komut kullanılabilir.

root# find / -type d -name "log"

4. Bir dosya ararken büyük/küçük harf duyarsızlığını aktif etmek isterseniz aşağıdaki komuta        -iname parametresi eklenebilir.

root# find / -iname "log.txt"

5. Belirli bir dizin içerisinde bir dosya aramak isterseniz aşağıdaki gibi bir komut kullanabilirsiniz. Örnek, /home dizini içerisinde log.txt dosyasını bulmak için,

root# find /home -name "log.txt"

Find “Size” Seçenekleri

k : kilobytes   (1024 bytes)

M : megabytes  (1024 kilobytes)

G : gigabytes   (1024 megabytes)

T : terabytes   (1024 gigabytes)

P : petabytes  (1024 terabytes)

Find “Type” Seçenekleri

b : özel blok dosyası

c : özel karakter dosyası

d : dizin

f  : basit dosya

l  : sembolik link

P : FIFO

s  : soket

Find Komutunu “Tar” Komutu ile Kullanmak

6. Aşağıdaki komut /home dizini altındaki .mp3 uzantılı dosyaları myfile.tar adında bir dosya oluşturacak ve içerisine sıkıştıracaktır.

root# find /home -type f -name "*.mp3" | xargs tar cvf myfile.tar

7. Aşağıdaki komut ise /home dizini altındaki .mp4 uzantılı dosyaları oluşturulan myfile.taradında dosyaya ekleyecektir.

root# find /home -type f -name "*.mp4" | xargs tar rvf myfile.tar

8. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB olan dosyaları listeleyecektir.

root# find /home -type f -size 500M

9. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB üstü olan dosyaları listeleyecektir.

root# find /home -type f -size +500M

10. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB altı olan dosyaları listeleyecektir.

root# find /home -type f -size -500M

11. Aşağıdaki komut ise /home dizini içerisinde, boyutu 1GB olan dosyaları listeleyecektir. Üstteki+ ve seçeneklerini bu komutta ‘da kullanabilirsiniz.

root# find /home -type f -size 1G

12. Örneğin, /home dizini içerisinde boyutu 500MB ile 1GB arasındaki dosyaları listelemek isterseniz aşağıdaki gibi bir komut kullanabilirsiniz.

root# find /home -type f -size +500M -size -1G

13. Aşağıdaki komut /home dizini içerisinde 500MB olan dosyaları bulup size herhangi bir soru sormadan silecektir. Kullanırken dikkat ediniz. !

root# find /home -type f -size 500M -exec rm -rf {} ;

14. Aşağıdaki komut /home dizini altındaki 500MB olan .mp3 uzantılı dosyaları size herhangi bir soru soramdan silecektir. Yada 500MB ‘dan daha fazla olan .mp3 dosyalarını silmek isterseniz+500MB parametresini ekleyebilirsiniz.

root# find /home -type f -name *.mp3 -size 500M -exec rm {} \;

15. Aşağıdaki komut /home dizini içerisinde 500 karakterden fazla olan dosyaları listeleyecektir. Aynı şekilde + ve seçeneklerini bu komutta ‘da kullanabilirsiniz.

root# find /home -type f -size +500c

16. Sistem üzerinde birden fazla dosyayı aynı anda aramak isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, log1.txt ve log2.txt adlı iki dosyayı aynı anda aramak için,

root# find / -type f \( -name "log1.txt" -o -name "log2.txt" \) -print

home/log1.txt 
home/log2.txt

17. Aşağıdaki komut /home dizini içerisinde son 2 gün içerisinde oluşturulmuş ve dosya izinleri değiştirilmiş olan dosyaları listeleyecektir. Dizinler için ise ikinci komut kullanılabilir.

root# find /home -type f -ctime 2 
root# find /home -type d -ctime 2

18. Aşağıdaki komut /home dizini içerisinde son 1 saat içerisinde erişilmiş dosyaları listeyecektir. Komut dakika cinsinden çalışmaktadır.

root# find /home -type f -amin -60

19. Sistem üzerinde 777 iznine sahip olan dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz. Dizinler için ise ikinci komut kullanılabilir.

root# find / -type f -perm 777 root# find / -type d -perm 777

20. Sistem üzerinde sadece u+rwx iznine sahip olan dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir.

root# find / -type f -perm u+rwx

root# find / -type f -perm u+rwx | xargs ls -alh

21. Sistem üzerinde SUID bit izni olan dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir.

root# find / -type f -perm /u=s 

root# find / -type f -perm +4000

22. Yukarıdaki komutun aynısı sadece -user ali parametresini ekleyerek ali kullanıcısına ait SUID bit izni olan tüm dosyaları görebiliriz.

root# find / -user ali -type f -perm /u=s 

root# find / -user ali -type f -perm +4000

23. Aşağıdaki komutu kullanarak aynı anda SGID izinlerini ve SUID izinlerine sahip olan dosyaları görüntüleyebilirsiniz.

root# find / -type f -perm -4000 -o -perm -2000 -print

24. Sistem üzerinde SGID bit izni olan dosyaları ‘da listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.

root# find / -type f -perm /g+s 

root# find / -type f -perm /2000

25. Sistem üzerinde Sticky bit iznine sahip olan dosyaları görmek isterseniz birinci komut kullanılabilir. Aynı şekilde bu izne sahip dizinleri görmek isterseniz ise ikinci komut kullanılabilir.

root# find / -type f -perm 1551

root# find / -type d -perm 1551

26. Belirli bir dizin içerisinde 777 izni hariç diğer tüm dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir. 

root# find /home ! -perm 777 -type f 

root# find /home ! -perm 777 -type f | xargs ls -alh

27. Örneğin, /home dizini içerisinde 777 iznine sahip olan dosyaların izinlerini 755 izni ile değiştirmek isterseniz aşağıdaki komutu kullanabilirsiniz. Kullanırken çok dikkat ediniz bazı dosyaların erişim izinleri bozulduğu zaman çalışmayabiliyor.

root# find /home -type f -perm 777 -print -exec chmod 755 {} \;

28. Yukarıdaki komutun aynısı sadece dizinler için bunu yapmak isterseniz aşağıdaki komutu kullanabilirsiniz.

root# find /home -type d -perm 777 -print -exec chmod 755 {} \;

29. Aşağıdaki komutlar farklı gruplara ait sadece read-only iznine sahip dosyaları listleyecektir. Eğer izinleri ile birlikte görmek isterseniz komutun sonuna | xargs ls -lah parametresini ekleyebilirsiniz.

root# find / -type f -perm /u=r 

root# find / -type f -perm /g=r 

root# find / -type f -perm /o=r

30. Aşağıdaki komutlar ‘da farklı gruplara ait sadece executable-only iznine sahip dosyaları listleyecektir. 

root# find / -type f -perm /u=x 

root# find / -type f -perm /g=x

root# find / -type f -perm /o=x

31. Aşağıdaki komutlar ise farklı gruplara ait sadece write-only iznine sahip dosyaları listleyecektir.

root# find / -type f -perm /u=w 

root# find / -type f -perm /g=w 

root# find / -type f -perm /o=w

32. Aşağıdaki komut /home dizini içerisinde log.txt adlı dosyaları bulup size hiç bir soru sormadan silecektir. Kullanırken dikkat edin. !

root# find /home -type f -name "log.txt" -exec rm -rf {} \;

33. Aşağıdaki komut /home dizini içerisinde, içeriği boş olan dosyaları listeleyecektir.

root# find /home -type f -empty

34. Aşağıdaki komut ise yukarıdaki komuta benzer görevi ise /home dizini altındaki boş olan dizinleri listeleyecektir.

root# find /home -type d -empty

35. Hiçbir kullanıcıya ait olmayan dosyaları görmek isterseniz aşağıdaki komutu kullanabilirsiniz.

root# find / -nouser -print

36. Hiçbir gruba ait olmayan dosyaları görmek isterseniz aşağıdaki komutu kullanabilirsiniz.

root# find / -nogroup -print

37. Bir dizin altında gizli olan dosyaları görmek isterseniz aşağıdaki gibi bir komut kullanabilirsiniz.

root# find /home -type f -name “.*”

38. Örneğin, bir ali adlı kullanıcımız olsun ve aşağıdaki gibi bir komut kullanarak ali kullanıcısına ait tüm dosyaları görebiliriz.

root# find / -type f -user ali 

root# find / -type f -user ali |xargs ls -lah

39. Aynı şekilde ali kullanıcısına ait özel bir dosya arıyorsak aşağıdaki gibi bir komut kullanabilirsiniz.

root# find / -type f -user ali -name "log.txt"

40. Sistemde ali grubuna ait tüm dosyaları listelemek istersek aşağıdaki komut kullanılabilir.

root# find / -type f -group ali

41. Yukarıdaki komutun -type f parametresini silip -type d parametresini eklersek ali grubuna ait tüm dizinleri görebiliriz.

root# find / -type d -group ali

42. Sistemde ali kullanıcısına ait tüm dosyaları bulup silmek isterseniz aşağıdaki komutu kullanabilirsiniz. Kullanırken dikkat ediniz. !

root# find / -type f -user ali -exec rm -rf {} ;

43. Aşağıdaki komut /home dizini içerisinde son 5 gün içerisinde değiştirilmiş dosyaları listeleyecektir.

root# find / -type f -mtime 5

44. Yukarıdaki komuta benzer bir komut ise aşağıdaki gibi. Aşağıdaki komut ise /home dizini içerisinde son 10-20 gün arası değiştirilmiş dosyaları listeleyecektir. Detaylı bilgi almak istersenizstat dosya_ismi komutu kullanılabilir.

root# find / -type f -mtime +10 -mtime -20

45. Bir dizin içerisinde son 5 gün içerisinde erişilmiş olan tüm dosyaları görmek istersek aşağıdaki komut kullanılabilir. Hemen erişilmiş dosyaları görmek için -atime 0 parametresi kullanılabilir.

root# find /home -type f -atime 5 

root# find /home -type f -atime 0

46. Aşağıdaki komut /home dizini içerisinde son 1 saat içerisinde değiştirilmiş tüm dosyaları listeleyecektir. Bu parametre dakika cinsinden çalışmaktadır.

root# find /home -type f -cmin -60

 

Daha fazla bilgi için man find komutu kullanabilirsiniz.

Kaynak Site: http://lifeoverlinux.com/2015/08/06/find-komutunun-orneklerle-kullanimi/

 

Unix & GNU/Linux : Find Komutunun Örneklerle Kullanımı. yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

Eli Öpülesi Öğretmen

Öğretmenim Ellerinizden saygıyla öpüyorum.

link : https://twitter.com/TansuYegen/status/687395529463054336

Eli_Opulesi_Ogretmen

Eli Öpülesi Öğretmen yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

August 05, 2016

WordPress Yazı İçi Sayfalamak Nasıl

Yazdığımız sayfalar bazen çok uzun olabiliyor.

Okuyan kişilerin uzun sayfada kaybolmaması için bazen sayfayı bölmek isteyebilirsiniz.

Bu işlemin nasıl yapıldığını bilmiyordum.

Biraz araştırmayla sonuca ulaştım.

İsmail Usluer sitesinde konudan bahsetmiş sağolsun.  Link

Özetle yazdığımız yazıyı bölümlemek yani sayfalamak için yazıyı yazarken metin moduna geçip bölmek istediğimiz yere aşağıdaki kodu eklemek yeterli geliyor.

<!--nextpage-->

Sonuç Buna benzeyecek 🙂

sayfalar

Örnek olarak bölmüş olduğum bir yazı. CloneZilla Rehberi Yazının en altında sayfa numaralarını görebilirsiniz.

Kaynak: http://www.usluer.net/yazi-ici-sayfalama-yapimi/

 

WordPress Yazı İçi Sayfalamak Nasıl yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

August 04, 2016

Disney'in 16-Bit Klasikleri Geri Geliyor

GOG.com bir sürpriz yaparak, Disney'in en iyi 16-bit oyunlarından Aladdin, The Lion King ve The Jungle Book'u PC'ye getireceğini duyurdu. Disney'in bu 3 oyunu da günümüzün işletim sistemleriyle (Windows, Mac ve Linux) uyumlu çalışacak şekilde güncellendi. 1993 ve 1994 yılları arasında çıkan oyunların grafikleri ve müzikleri, o zamanın şartlarına göre çok iyiydi. Oyunların

August 03, 2016

Raspberry Pi ile Evinizden Web Hosting

Rasp_turn_aroundMerhaba dostlar, arkadaşlar.
Bu yazıyı yazmamın nedeni forumlarda bol miktarda “raspi ile sunucu hizmeti nasıl sağlarım
sorusunun karşımıza çıkıyor olması. Bu soruya genel bir cevap vermiş olacağım.

web de pek çok alternatif var. ücretsiz dns servisleri, ücretsiz hosting hizmetleri, ücretsiz dns+mail hosting gibi biraz araştırmak gerek.

Neyse konuyu fazla dağıtmayalım.
amacımız Raspi üzerinden site host olsun.

Öncelikle bize gerekenleri sıralayalım.

1 adet domain
1 adet dns host
1 adet ip ( bu zaten adsl veya kablonet kullanıcılarının dış ip adresidir)
1 adet Raspberry Pi ( model farketmez )

Öncelikle yapmamız gerekenler.

1- raspi ye statik ip adresi atamak -> raspi.gen.tr

2- Modeminizi Natlamak – Modemde DMZ ayarına Raspinin sabit ip adresini girmeniz.

3- webserver kurup site ayarlarını yapmak olmalı. ( detaya girmiyoruz )

Meraklısı için Kurulum Linki -> getGNU.org

ben size nasıl domain ( aslında subdomain) alıp raspi ip adresinizi günceleyeceğinizi anlatacağım.

Benim kullanmış ve gayet memnun olduğum https://www.nsupdate.info kullanmanızı tavsiye edeceğim.
Alacağımız domain örneğin: raspitr.nsupdate.info olsun.

Siteye ilk Bağlandığınızda göreceğiniz gibi ip adresinizin yazdığı bir ekranla karşılaşacaksınız.

nsupdate-1

https://www.nsupdate.info/account/register/

Bu Linki tıklayıp aşağıdaki gibi kaydolun. aktivasyon linki mail adresinize gelecek.

üye adınızı kendinize göre değiştirin tabiki 🙂

nsupdate-3

Üyelik kaydını tamamlayıp siteye login olalım. Gördüğünüz gibi hiç host oluşturmamışız. Add Host tıklayıp kaydı yapalım.

nsupdate-4

Host Oluşturmak

Hemen bitane host oluşturalım.

nsupdate-5

bu mesajı görürseniz işlem başarılı şekilde yapıldı demektir.

nsupdate-6

Aynı sayfada biraz aşağıda bu linkler oluşacak.

Bu linkler bizim ip adresinizin dns güncellemesini yapmamızı sağlayacak.

nsupdate-7

ipv4 için olanını kopyalayıp tarayıcına yapıştırın.

bu çıktıyı almanız lazım.

nsupdate-8

eğer ip adresiniz değişirse yeniden aynı adresi tıklayın,

bu seferki çıktı bu şekilde görünecek.

nsupdate-9

buraya kadarki işler tamamsa devam edelim.

Raspberry Pi ile Evinizden Web Hosting yazısı ilk önce ÇaylakPenguen Blog üzerinde ortaya çıktı.

LibreOffice 5.2 Resmi Olarak Çıktı

The Document Foundation, açık kaynak ofis paketi olan LibreOffice 5.2'yi çıkardıklarını duyurdu. Dört aydır geliştirilen LibreOffice 5.2 sürümü çok fazla geliştirme ve yeni özelliklerle birlikte geliyor.  Ayrıca The Document Foundation geliştiricilerinden Michael Meeks, tam özellikli bulut tabanlı ofis paketinin de yakında çıkacağını söyledi. LibreOffice 5.2 İndirme Linki: https://

GS1000 dashcam power cable

gs1000 araç kamerasına normal usb kablosu ile elektrik verildiğinde otomatik olarak kayıt moduna geçmiyor.


kablodaki özel durum şu;

pin 1 -> boş
pin 2 -> boş
pin 3 -> boş
pin 4 -> +5V
pin 5 -> GND
pin 6 -> boş

puppy & puppeee linux türkçe klavye çözümü

kurulumda sonrasında terminal ekranı açıp

xkbconfigmanager

programını çalıştırıyoruz, layouts altında türkçe klavye seçeneğini seçiyoruz, hepsi bu kadar.

arduino'dan google spreadsheet'e veri gönderimi

google spreadsheet'e eskiden ssl bağlantı olmadan da veri alıyordu, o zaman micro işlemci ile veri göndermek kolaydı. şimdi ssl eklesen bu sefer arduino hafızasında yer kalmıyor, bu nedenle pushingbox kullanıyoruz.

öncelikle drive.google.com 'a gidiyoruz ve create form diyoruz

form üretildikten sonra live form a bakıyoruz

entry_43242423432 gibi kısımlardaki sayıları bir kenara not alıyoruz

pushingbox'da yeni bir scenario oluşturuyoruz

içinde yeni bir action oluşturuyoruz

?entry.423423423423=$sensor1$&entry.5435433534543543=$sensor2$

action yukarıdaki gibi birşeyler olacak

pushingbox myservices 'dan yeni servis ekliyoruz

customurl kullanırız genelde ama başka yordamlarda var

form adresindeki viewform lu yeri formResponse yapıp url yerine yazıyoruz

gerisi basit

inet.httpPOST("api.pushingbox.com", 80, "/pushingbox?devid=vAE4234234AFDSF&", yollanacakveri, msg, 50);

gibi bir formatta veri gönderiliyor

squid proxy 'nize user authentication eklemek

squid proxy i seviyoruz, proxy mizin anonymouse proxy server lar listelerine düşmesinide istemiyoruz, bu durumda yapmamız gereken şey proxy 'mize user authentication özelliği eklemek. anlatım ubuntu 10.10 64-bit server a göredir fakat farklı sürümlerdede benzer ayarlar yapmak lazım.


basitçe nasıl yapılacağını anlatacağım;


apache server kuracağız
öncelikle repository yi update edelim
apt-get update
şimdi apache2 server kuralım
apt-get apache2
(squid server ın önceden kurulu olduğunu varsayıyorum)
htpasswd -c /etc/squid/passwd kullaniciadi
kullanici adi yazan yere proxy server kullanici adini yaziyoruz
sifre soruldugunda 2 kez proxy server kullanicimizin sifresi olacak sifreyi yaziyoruz
squid in passwd dosyasini okuyabilmesi icin;
chmod o+r /etc/squid/passwd
editor olarak nano kullandım siz vi de kullanabilirsiniz
nano /etc/squid/squid.conf
squid configuration dosyamızı duzenliyoruz
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

yazan yerleri buluyoruz ve önlerindeki # isaretlerini kaldiriyoruz
acl tanımlarının olduğu yerlere şunu ekliyoruz;
acl ncsa_users proxy_auth REQUIRED
yine http_access tanımlarının olduğu yerede şunu ekliyoruz;
http_access allow ncsa_users
squid server ı restart ediyoruz


hepsi bu kadar.

puppeee linux ile bluetooth kullanımı

puppeee linux da bluetooth kullanımı otomatik değil, aşağıda kısmen otomatikleştirme işlemini anlattım,

hcitool scan

ile tarama yapıyoruz,

00:aa:bb:cc:dd:ee BlueGPS CCDDEE

gibi bir tarama sonucu geliyor

sdptool records 00:aa:bb:cc:dd:ee

komutuyla servisleri tarıyoruz

Service Name: Dev B
Service RecHandle: 0x10000
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100

gibi bir sonuc geliyor


/usr/etc/bluetooth

dosyası editleniyor ve

# Bluetooth GPS
rfcomm2 {
bind yes,
device 00:aa:bb:cc:dd:ee,
channel 1,
comment "Serial Port",
}

örneğindeki gibi bir ekleme yapılıyor

rfcomm connect 2

gibi bir komutla bağlantı sağlanabilir

bu kadar

Linux Logitech T400 mouse orta tuş problemi

xmodmap -e 'keycode 133 = Pointer_Button2'
xkbset m
xkbset exp =m
 
 
------------------
yukarıdaki komutlar ile sorun çözülmekte,
xkbset yüklü değilse
 
sudo apt-get install xkbset
 
(apt kullanan distrolarda) 

linux'da manuel olarak bluetooth modem'e bağlantı yapmak

hcitool scan

ile taratıyoruz, gelen listeden istediğimiz mac id yi buluyoruz

sdptool browse 00:00:00:00:00:00

şeklinde bluetooth modemin servislerini tarıyoruz

dial-up modem li channel numarasını not alıyoruz

rfcomm bind /dev/rfcomm0 00:00:00:00:00:00 1

örneğin yukarıdaki komutla 1 nolu channel'a bağlantı yaptırmış oluyoruz

rfcomm release 0

yaparsak tekrar serbest kalmasını sağlamış oluyoruz (channel değişir ise yoksa gerek yok)

pgprs-connect

yazıp bağlantı kuruyoruz

hepsi bu kadar.

siyah-beyaz görüntü çözümü

Ekran kartı s-video çıkışından tv nin scart girişine bağlantı yaptığımda siyah-beyaz görüntü alıyordum. Ayarlamalara rağmen düzeltemedim. Çözümü aşağıda; 20.pinden 15.pin e yapılan bağlantı sayesinde çözüldü.

August 01, 2016

Richard Stallman: İlk yazılım paylaşma topluluğu

1971 yılında MIT Yapay Zekâ Laboratuvarında çalışmaya başladığımda, yıllarca varlığını sürdürmüş bir yazılım paylaşım topluluğunun bir parçası haline geldim. Yazılımların paylaşılması özel topluluğumuzla sınırlı değildi; bu, bilgisayar tarihi kadar eskiydi, tariflerin paylaşılmasının aşçılık kadar eski olması gibi. Ancak bunu çok iyi bir şekilde başardık. YZ Laboratuvarı, zamanın en büyük bilgisayarlarından biri olan Digital PDP-10 için laboratuvar ekibi hacker’larının tasarladığı ve assembler dilinde yazdığı ITS (Uyuşmaz Zaman Paylaşımlı Sistem) olarak adlandırılan bir zaman paylaşımlı işletim sistemini kullanmaktaydı. Bu topluluğun bir üyesi, YZ laboratuvar sistem hacker’ı olarak, benim görevim bu sistemi daha da geliştirmekti. Yazılımımızı “özgür yazılım” olarak adlandırmadık çünkü o zamanlar bu terim yoktu ancak gerçekte bu özgür yazılımdı. Başka bir üniversiteden ya da firmadan insanlar programımızı almak ve kullanmak istedikleri zaman, buna memnuniyetle izin veriyorduk. Birinin pek bilinmeyen ve ilginç bir program kullandığını görürseniz, her zaman kaynak kodunu görmek istersiniz, böylece kaynak kodunu okur, değiştirir ya da yeni bir program oluşturmak için, parçalayıp başka şekilde birleştirirsiniz.

(1) Yaygın medyada “güvenlik kırıcısı”nı ifade etmek için “hacker”ın kullanılması kafa karışıklığı yaratır. Biz hacker’lar bu ifadeyi kabul etmeyiz ve hacker’ın kelime anlamı olarak “Programlamayı ve bu konuda akıllı olmayı seven kimse” tanımını kullanmayı tercih ederiz

Topluluğun Çöküşü

1980’lerin başlarında Digital’in PDP-10 bilgisayarı üretiminin sona ermesiyle durum büyük ölçüde değişti. 60larda şık ve güçlü olan mimarisi, 80lerde uygun hale gelen daha geniş adres uzaylarına doğal olarak genişleyemedi. Bunun anlamı ITS’ye yönelik olarak yazılmış olan bütün programların geçersiz hale gelmesiydi.

YZ laboratuvarı zaten çökmüştü. 1981 yılında, Symbolics firması YZ Laboratuvarındaki hacker’ların hemen hemen hepsini işten çıkardı ve bu topluluk dağıldı. (Steven Levy tarafından yazılan Hackers kitabı bu olayları anlatmaktadır ve ayrıca bu topluluğa ilişkin açık bir tablo sunmaktadır.) YZ Laboratuvarı 1982 yılında yeni bir PDP-10 satın aldığında, yöneticileri, yeni makine üzerinde ITS yerine özgür olmayan bir zaman paylaşımlı sistemi kullanmaya karar verdi.

VAX ya da 68020 gibi zamanın modern bilgisayarları kendi işletim sistemlerine sahipti ancak bu işletim sistemlerinin hiçbiri özgür yazılım değildi: çalıştırılabilir bir kopya elde etmek için, bir gizlilik anlaşması imzalamanız gerekliydi.

Bu, bir bilgisayarın kullanımındaki ilk aşamanın komşunuza yardım etmemeye söz vermeniz olduğu anlamına geliyordu. Bu duruma göre, bir topluluğun işbirliği yapması yasaktı. Özel mülk yazılım sahipleri tarafından ortaya konan kural şuydu: “Komşunuzla bilgi paylaşırsanız siz bir korsansınız. Herhangi bir değişiklik isterseniz, bu değişikliğin yapılmasını bizden rica edin.”

Özel mülk yazılım sosyal sistemi, yazılımı paylaşmanıza ya da değiştirmenize izin vermeyen sistem, anti-sosyaldir, etik değildir, basitçe ifade edilirse yanlıştır, bu durum bazı okuyucular için şaşırtıcı olabilir. Ama toplumu bölen ve kullanıcıları çaresiz bırakan bir sistem hakkında başka ne söyleyebiliriz? Bu fikri şaşırtıcı bulan okuyucular bu özel mülk yazılım sosyal sistemini verildiği gibi almış olabilir ya da özel mülk yazılım işlerinin önerdiği şekilde değerlendirebilir. Yazılım yayıncıları, insanları, bu konuya yönelik tek bir bakış açısı olduğuna inandırmak için uzun ve zorlu bir çalışma yürütmüşlerdir.

Yazılım yayıncıları “haklarını” “almak” ya da “korsanlığı durdurmak” hakkında konuştukları zaman, gerçekte “söyledikleri” şey ikincil öneme sahiptir. Bu ifadelerin gerçek mesajı, ifade edilmeyen varsayımlardadır; insanların üzerine kafa yormadan bunları kabul etmesi beklenmektedir. Şimdi bunları inceleyelim.

Yapılan varsayımlardan biri şudur: Yazılım firmaları yazılımı sahiplenme ve tüm kullanıcıları üzerinde güce sahip olma gibi sorgulanamayan doğal bir hakka sahiptir (Bu doğal bir haksa, o zaman topluma ne kadar zarar verdiği önemli değildir, buna karşı koyamayız.). Amerikan Anayasası ve yasal geleneği bu görüşe karşı çıkmaktadır; telif hakkı doğal bir hak değildir ancak telif hakkı kullanıcıların doğal kopyalama hakkını sınırlandıran ve hükümet tarafından dayatılan yapay bir tekeldir.

İfade edilmeyen başka bir varsayım, yazılım hakkındaki önemli tek şeyin size hangi işleri yapmaya izin verdiğidir, biz bilgisayar kullanıcılarının ne tür topluluklara sahip olmaya izinli olduğumuza aldırmamalıyız.

Üçüncü bir varsayım, bir firmaya programın kullanıcıları üzerinde güç sunmazsak, kullanılabilir bir yazılıma sahip olmayacağımızdır (ya da şu ya da bu belirli işi gerçekleştiren bir programa asla sahip olamayacağımızdır). Özgür yazılım hareketinin üzerlerine zincir vurmadan da çok sayıda yararlı yazılım üretebileceğini göstermesinden önce bu varsayım uygunmuş gibi görünmüş olabilir.

Eğer bu yaklaşımları kabul etmeyi reddedersek ve bu konuları basit bir sağduyu ile, kullanıcıları öncelleyerek irdelersek, çok farklı bir sonuca varırız. Bilgisayar kullanıcıları, ihtiyaçlarına uygun olması için programlarını değiştirme ve yazılımlarını paylaşma konusunda özgür olmalıdır çünkü diğer insanlara yardımcı olmak toplumun temelidir.

Burada bu sonuca varmayı açıklamaya yetecek yer kalmadı, bu yüzden okuyuculara http://www.gnu.org/philosophy/why-free.html sayfasını öneririm.

Yalın Ahlaki Seçim

Topluluğumuzun sona ermesiyle, daha önceki gibi devam etmek mümkün değildi. Bunun yerine, bir yalın ahlaki seçimle karşı karşıya geldim.

Kolay seçenek özel mülk yazılım dünyasına katılmak ve gizlilik anlaşmaları imzalamak ve hacker arkadaşlarıma yardımcı olmamaya söz vermekti. Muhtemel olarak ben de bu gibi anlaşmalara uygun olarak hazırlanan yazılımlar geliştiriyor olacaktım, böylece diğer insanların da hacker arkadaşlarına ihanet etmesine ilişkin baskıyı arttıracaktım.

Bu şekilde para kazanacaktım ve belki de kod yazmaktan da zevk alacaktım. Ama iş hayatımın sonunda, insanları bölmek için duvarlar inşa ettiğim yılları görecek ve yıllarımı dünyayı daha kötü bir yer haline getirmekle geçirmiş olduğumu fark edecektim.

Birileri yazıcımıza ait kontrol programı için kaynak kodunu bana ve MIT YZ laboratuvarına vermek istemediğinde, bir gizlilik anlaşmasının alıcı ucunda olduğumu anladım. (Bu programdaki belirli özelliklerin olmaması yazıcının kullanımını bozmaktaydı.) Bu nedenle, bu gibi anlaşmaların masum olduğunu kendime söyleyemem. Yazıcı programı benimle paylaşılmayınca çok sinirlendim; vazgeçip, arkamı dönüp ben de aynı şeyi bir başkasına yapamazdım.

Kolay olan ancak hoş olmayan başka bir seçenek bilgisayar alanını tamamen bırakmaktı. Böylece yeteneklerim kötüye kullanılmamış olacaktı ama boşa harcanmış olacaktı. Bilgisayar kullanıcılarını bölme ve sınırlama konusunda suçlamayı hak etmeyecektim ama bu, bir şekilde gerçekleşecekti.

Bu nedenle, bir programcının iyi birşeyler yapabilmesi için bir yol aradım. Kendi kendime, bir topluluğu yeniden mümkün hale getirebilecek bir programı yazabilip yazamayacağımı sordum.

Yanıt açıktı: ilk olarak ihtiyaç duyulan şey bir işletim sistemiydi. İşletim sistemi, bir bilgisayarın kullanılabilmesi için gerekli yazılımdı. Bir işletim sistemiyle, birçok şey yapabilirsiniz; ancak işletim sisteminiz olmazsa, bilgisayarı çalıştıramazsınız. Özgür bir işletim sistemiyle, yine işbirliği yapan bir hacker topluluğumuz olabilir ve herkesi bu topluluğa katılmaya davet edebiliriz. Ve herkes, arkadaşlarını mahrum etmeden bir bilgisayarı kullanabilir.

Bir işletim sistemi geliştiricisi olarak, bu iş için doğru yeteneklere sahiptim. Bu nedenle, hak ettiğim başarıyı elde edebileceğimi düşünmesem de, bu iş için seçilmiş kişi olduğumu düşünüyordum. Sistemi Unix ile uyumlu olacak şekilde seçtim, böylece sistem taşınabilir bir sistem haline geldi ve böylece Unix kullanıcıları kolayca bu sisteme dönebildi. Hacker geleneğini takiben özyineli bir isim olan GNU ismi – GNU’s Not Unix – seçilmişti.

Bir işletim sistemi, yalnızca diğer programları çalıştırmak için yeterli olan bir öz anlamına gelmemektedir. 1970’lerde, her işletim sistemi, komut işlemcilerini, assembler’ları, derleyicileri, yorumlayıcıları, hata ayıklama birimlerini (debugger), metin düzenleyicilerini ve çok daha fazlasını içermekteydi . ITS’te, Multics’te, VMS’te ve Unix’te bunlar vardı. GNU işletim sistemi de bunları içerecekti.

Daha sonra Hillel’e atfedilen (1) şu sözleri duydum:

Ben kendim için değilsem, benim için olacak kimdir?
Ben yalnızca kendim içinsem, ben neyim?
Şimdi değilse, ne zaman?

GNU Projesini başlatma kararı benzer bir ruhu esas almaktadır.

Bir ateist olarak, dini liderleri izlemiyorum ama bazen dini liderlerden birinin söylediği bir sözü beğendiğimi fark ediyorum.

“Free Software”’deki “Free” Özgürlük Anlamındadır

“Free Software” (İngilizce’de “Free” hem özgür hem de ücretsiz anlamlarına gelmektedir) ifadesi bazen yanlış anlaşılmaktadır, buradaki “free” ifadesinin ücretle bir ilgisi yoktur. Burada “free” ifadesi özgürlükle ilgilidir. Bu nedenle, burada özgür yazılımın tanımı.

Aşağıdaki şartlar yerine getirildiğinde, sizin gibi belirli bir kullanıcı için, bir program özgür bir yazılımdır:

  • Herhangi bir amaçla programı çalıştırma özgürlüğüne sahipseniz.
  • İhtiyaçlarınıza uygun olacak şekilde programı değiştirme özgürlüğüne sahipseniz. (Bu özgürlüğü, uygulamada etkin hale getirmek için, kaynak koduna erişebilmelisiniz, çünkü kaynak kodu olmaksızın bir programda değişiklikler yapmak aşırı zordur.)
  • Kopyaları ücretsiz olarak ya da belirli bir ücret karşılığında yeniden dağıtma özgürlüğüne sahipseniz.
  • Toplumun gelişmelerden faydalanmasını sağlamak için, programın değiştirilmiş sürümlerini dağıtma özgürlüğüne sahipseniz.

“Özgür” (Free) özgürlüğe atıf yaptığı ve fiyata atıf yapmadığı için, kopyaların ve özgür yazılımın satılması arasında bir çatışma yoktur. Gerçekte, kopyaları satma özgürlüğü çok önemlidir: CD-ROM’larda satılan özgür yazılım koleksiyonları, toplum için önemlidir ve bunların satılması, özgür yazılımın gelişimi için gerekli paranın toplanması için önemlidir. Bu nedenle, insanların bu kolleksiyonlara ekleyemediği bir program özgür yazılım değildir.

“Özgür”ün (Free kelimesinin İngilizce’deki) anlam belirsizliğinden dolayı, insanlar uzun süre alternatif bir ifade arayışına girmiştir ancak hiç kimse uygun bir alternatif bulamamıştır. İngiliz Dili, başka herhangi bir dilden daha fazla sözcüğe ve nüansa sahiptir ancak özgürlükteki gibi “özgür” anlamına gelen basit, belirsizlikten uzak bir sözcüğü içermemektedir, “zincirsiz” anlamca en yakın gelen sözcüktür. “Özgür bırakılmış”, “özgürlük” ve “açık” yanlış bir anlama ya da başka bazı dezavantajlara sahiptir.

GNU Yazılımı ve GNU Sistemi

Bütün bir sistem geliştirmek çok büyük bir projedir. Sonuca ulaşmak için, her mümkün olduğunda, özgür yazılımın mevcut parçalarını uyarlamaya ve kullanmaya karar verdim. Örneğin, başlangıçta temel metin biçimlendirici olarak TeX’i kullanmaya karar verdim, GNU için başka bir pencere sistemi yazmak yerine X Window Sistemini kullanmaya karar verdim.

Bu karardan dolayı, GNU sistemi, tüm GNU yazılımının koleksiyonuyla aynı değildir. GNU sistemi, GNU yazılımı olmayan, kendi amaçları için diğer insanlar ve projeleri tarafından geliştirilen ancak özgür yazılım oldukları için kullanabildiğimiz programları içerir.

Projenin Başlatılması

1984 yılının Ocak ayında MIT’deki görevimden ayrıldım ve GNU yazılımını geliştirmeye başladım. MIT’den ayrılmam gerekliydi, çünkü MIT’nin GNU’nun özgür yazılım olarak dağıtımını kısıtlamasını istemiyordum. Ekipte kalsaydım, MIT bu çalışmayı sahiplenebilirdi ve kendi dağıtım kurallarını dayatabilirdi ve hatta bu çalışmayı özel mülk yazılım paketine dönüştürebilirdi. Çalışmaların sonuçsuz kalmasını ve başarısız olmasını istemiyordum, amacım yeni bir yazılım paylaşım topluluğu oluşturmaktı.

Bununla birlikte, o zamanlarda MIT YZ Laboratuvarının başında bulunan Profesör Winston, beni, kibarca laboratuvarın olanaklarını kullanmaya devam etmem yönünde teşvik etti.

İlk Adımlar

GNU Projesine başlamadan kısa süre önce, VUCK olarak da bilinen Özgür Üniversite Derleyici Kitini duymuştum. (Hollanda dilinde “özgür”e ilişkin kelime ‘V’ harfi ile yazılmaktadır) Bu, C ve Pascal dahil olmak üzere çok sayıda dili kontrol etmek ve çok sayıdaki hedef makineyi desteklemek için tasarlanmış bir derleyiciydi. GNU’nun bunu kullanıp kullanamayacağını sormak için yazarına yazdım.

Alaycı bir yanıt yazdı, üniversitenin özgür olduğunu ancak derleyicinin özgür olmadığını söyledi. Bu nedenle, GNU Projesi için ilk programımın çok-dilli çok platformlu bir derleyici olmasına karar verdim.

Tüm derleyiciyi kendi kendime yazma ihtiyacımı önleme umuduyla, Pastel derleyicisine ilişkin kaynak kodu edindim, Pastel derleyicisi, Lawrence Livermore Laboratuarında geliştirilmiş çok-platformlu bir derleyiciydi. Kendisinin de yazılmış olduğu, Pascal’ın sistem programlama dili olarak tasarlanmış genişletilmiş bir sürümünü destekliyordu. Bir C ön ucu [:front-end] ekledim ve Motorola 68000 bilgisayarına yüklemeye başladım. Derleyicinin megabaytlarca yığıt [:stack] alanına ihtiyaç duyduğunu ve mevcut 68000 Unix sisteminin yalnızca 64k’ya izin verdiğini fark ettiğimde bundan vazgeçtim.

Daha sonra, Pastel derleyicisinin tüm giriş dosyasını bir sözdizim ağacına ayrıştırarak çalıştığını, tüm sözdizim ağacını bir “yönerge” zincirine dönüştürdüğünü ve daha sonra, herhangi bir depolama alanını boşaltmaksızın tüm çıkış dosyasını ürettiğini fark ettim. Bu noktada, yeni bir derleyici yazmam gerektiği sonucuna vardım. Bu yeni derleyici şimdi GCC olarak bilinmektedir; içinde Pastel derleyicisi kullanılmamaktadır ancak yazmış olduğum C ön ucunu uyarlamayı ve kullanmayı sağladım. Ancak bunu birkaç yıl sonra gerçekleştirdim; ilk olarak, GNU Emacs üzerinde çalıştım.

GNU Emacs

1984 yılının Eylül ayında GNU Emacs üzerinde çalışmaya başladım ve 1985 yılında, GNU Emacs kullanılabilir olmaya başladı. Bu, düzenleme işlemleri için Unix sistemlerini kullanmaya başlamamı olanaklı kıldı; vi ya da ed’i kullanmayı öğrenme konusunda bir ilgim yoktu, o zamana kadar düzenleme işlemlerimi diğer makineler üzerinde gerçekleştirmiştim.

Bu noktada, insanlar, GNU Emacs’i kullanmayı istediler, bu durum da GNU Emacs’in nasıl dağıtılacağı sorusunu gündeme getirdi. Tabi ki, GNU Emacs’i, kullandığım MIT bilgisayarındaki ftp sunucusuna, anonim olarak erişilebilecek şekilde koydum. (Bu bilgisayar, başka bir deyişle, prep.ai.mit.edu, bu nedenle temel GNU ftp dağıtım bölgesi haline geldi; birkaç yıl sonra devreden çıkarıldıktan sonra, alan adını yeni sunucumuza yönlendirdik) Ancak, bu zaman zarfında, ilgili insanların birçoğu İnternette değildi ve ftp ile bir kopyasını alamadı. Bu nedenle, şu soru ortaya çıktı: onlara ne diyecektim?

Şöyle diyebilirdim: “Ağ üzerinde olan ve sizin için bir kopya alacak olan bir arkadaşınızı bulun”. Ya da orijinal PDP-10 Emacs’ta yaptığımı yapacaktım: “Bana bir bant ve SASE gönderin ve ben de size üzerinde Emacs olacak şekilde bunu size geri göndereyim.” Ama işsizdim ve özgür yazılımdan para kazanmanın yollarını arıyordum. Bu nedenle, $150 karşılığında isteyen herkese bir bant gönderebileceğimi anons ettim. Bu şekilde, özgür yazılım dağıtım işine başladım, böylece, günümüzde Linux-tabanlı GNU sistemlerini dağıtan firmalar için öncü oldum.

Bir program her kullanıcı için özgür müdür?

Bir program yazarının elinden çıktığında özgür yazılımsa, bu, programın kopyasına sahip herkes için mutlaka özgür yazılım olacağı anlamına gelmez. Örneğin, kamuya ait yazılım (telif hakkına sahip olmayan yazılım) özgür yazılımdır; ancak herkes, bunun özel mülk değiştirilmiş bir sürümünü oluşturabilir. Benzer şekilde, birçok özgür program telif hakkına sahiptir ancak değiştirilmiş özel mülk sürümlere izin veren basit izin lisansları altında dağıtılmıştır.

Bu problemin faydacı örneği, X Window Sistemidir. Bu sistem, MIT tarafından geliştirilmiş ve bir izin lisansıyla özgür yazılım olarak yayınlanmış olup, çeşitli bilgisayar firmaları tarafından benimsenmiştir. Bu firmalar, yalnızca ikili [:binary] biçimde özel mülk Unix sistemlerine X’i eklemiş ve aynı anlaşma ile kapsanmıştır. X’in bu kopyaları, bundan böyle Unix’in olduğundan daha fazla özgür yazılım değildir.

X Window Sisteminin geliştiricileri bunu bir problem olarak görmemişler , bu durumun meydana gelmesini beklemişlerdir. Hedefleri özgürlük değildi, yalnızca “başarıydı” ve başarı “fazla sayıda kullanıcıya sahip olmak” olarak tanımlanmaktaydı. Kullanıcıların özgürlüğe sahip olup olmamaları umurlarında değildi, tek istedikleri çok sayıda kullanıcıya sahip olmaktı.

Bu durum, “Bu program özgür mü?” sorusuna farklı yanıtlar veren iki farklı özgürlük derecesi hesaplama yönteminin olduğu bir paradoks durumuna neden olmaktadır. MIT sürümünün dağıtım terimleri cinsinden sağlanan özgürlük derecesini esas alarak değerlendirme yaptıysanız, X’in özgür yazılım olduğunu söyleyebilirsiniz. Ancak, X’in ortalama kullanıcısının özgürlüğünü ölçerseniz, o zaman Özel mülk yazılım olduğunu söylemeniz gereklidir. Birçok X kullanıcısı, Unix sistemleriyle birlikte verilen özel mülk sürümleri kullanmaktadır, özgür sürümü kullanmamaktadır.

Copyleft ve GNU GPL

GNU’nun hedefi yalnızca popüler olmak değil kullanıcılara özgürlük de sağlamaktır. Bu nedenle, GNU yazılımının özel mülk yazılıma dönüştürülmesini önleyen dağıtım terimlerini kullanmamız gereklidir. Kullandığımız yöntem copyleft yöntemidir. (1)

Copyleft, telif hakkı kanununu kullanır ancak genel amacının tersine hizmet etmesi için tersine çevirir: yazılımı özel hale getirmek yerine, yazılımı özgür tutmanın bir yolu haline gelir.

Copyleft’in temel fikri, herkese, programı çalıştırma, değiştirme, değiştirilmiş sürümleri dağıtma hakkını vermek, ancak özel kısıtlamalar ekleme iznini vermemektir. Bu nedenle, “özgür yazılımı” tanımlayan önemli özgürlükler, yazılımın kopyasına sahip herkes için mevcuttur; bu, geri alınamaz bir haktır.

Etkin bir copyleft için, değiştirilmiş sürümler de özgür olmalıdır. Bu, yayınlanırsa, bizimkileri esas alan çalışmaların, topluluğumuz için erişilebilir olmasını sağlar. Programcı olarak çalışan kimseler GNU yazılımını değiştirmek için gönüllü olduklarında, copyleft, “Bu değişiklikleri paylaşamazsın çünkü programın özel mülk sürümünü oluşturmak için bu değişiklikleri kullanacağım” denmesini önler.

Programın her kullanıcısı için özgürlüğü sağlamak istersek, değişikliklerin özgür olması gerektiğine ilişkin şart önemlidir. X Window Sistemini özelleştiren firmalar, genellikle X Window’u sistemlerine ve donanımına taşımak için bazı değişiklikler yapmıştır. Bu değişiklikler X’in üstün derecesiyle karşılaştırıldığında küçüktü ancak önemsiz değildi. Değişikliklerin yapılması kullanıcıların özgürlüklerinin inkâr edilmesine ilişkin bir özürse, herkesin bu bahaneden yararlanması kolaydır.

İlgili bir konu da özgür bir programın özgür olmayan kodla birleştirilmesidir. Bu gibi bir birleşim özgürlükten uzak olacaktır; özgür olmayan kısım için eksik olan özgürlükler bütün için de eksik olacaktır. Bu gibi birleşimlere izin verilmesi, bir gemiyi batırmaya yetecek büyüklükte deliklerin açılmasına neden olur. Bu nedenle, copyleft için önemli bir şart bu deliği tıkamaktır: copyleft edilmiş bir programla birleştirilmiş ya da bu gibi bir programa eklenmiş herhangi bir şey, birleştirilmiş daha büyük sürümün de özgür ve copyleft olmasını gerektirecektir.

Birçok GNU yazılımı için kullandığımız copyleft’in özel gerçekleştirimi, GNU Genel Kamu Lisansı ya da kısaca GNU GPL’dir. Bazı özel durumlarda ve ortamlarda kullanılan diğer copyleft tipleri de mevcuttur. GNU kullanım kılavuzu da copyleft edilir ancak çok daha basit bir copyleft tipi kullanırlar çünkü GNU GPL’nin karmaşıklığı kılavuzlar için gerekmez. (2)

(1) 1984 ya da 1985 yılında, Don Hopkins (hayal gücü çok geniş olan bir adam) bana bir mektup gönderdi. Mektubunda birçok komik şey yazıyordu, şu da bunlardan biriydi: “Copyleft , tüm hakları ters çevrilmiştir”. “Copyleft” sözcüğünü o zamanlar geliştirmekte olduğum dağıtım kavramını adlandırmak için kullanmıştım.

(2) Şimdi belgeleme için GNU Özgür Belgeleme Lisansını kullanıyoruz.

Özgür Yazılım Vakfı

Emacs’ın kullanımına ilişkin ilgi arttıkça, başka insanlar GNU Projesine dahil oldular ve o zaman yeniden destek almamızın zamanının geldiğine karar verdik. Böylece 1985 yılınca özgür yazılım geliişimi için vergiden muaf bir hayır kurumu olan Özgür Yazılım Vakfını (FSF) kurduk. FSF ayrıca Emacs bant dağıtım işini de ele aldı; daha sonra, banda diğer özgür yazılımları (hem GNU hem de GNU-olmayan) ekleyerek ve özgür kılavuzları satarak bu işi genişletti.

FSF, bağışları kabul eder ancak gelirinin çoğu özgür yazılımın ve ilgili diğer hizmetlerin satışından gelmektedir. Günümüzde, kaynak kodunu içeren CD-ROM’ları, ikili kodları içeren CD-ROM’ları, güzel baskılı kılavuzları (hepsinin yeniden dağıtım ve değiştirme özgürlüğü vardır) ve Deluxe Dağıtımlarını (burada sizin seçeceğiniz dağıtım için tüm özgür yazılım koleksiyonu yer alıyor) satmaktadır.

Özgür Yazılım Vakfı çalışanları bazı GNU yazılım paketlerini yazmış ve ellerinde tutmuştur. Bunlardan tanınmış iki tanesi C kütüphanesi ve kabuktur (shell). GNU C kütüphanesi, GNU/Linux sisteminde çalışan her programın Linux ile haberleşmek için kullandığı şeydir. Özgür Yazılım Vakfında çalışan Roland McGrath tarafından geliştirilmiştir. Birçok GNU/Linux sisteminde kullanılan kabuk BASH’tır, Bourne Again Shell (1), bu kabuk, FSF çalışanı olan Brian Fox tarafından geliştirilmiştir.

Bu programların geliştirilmesini destekledik çünkü GNU Projesi yalnızca araçlar ya da bir geliştirme ortamı hakkında değildi. Hedefimiz tam bir işletim sistemiydi ve bu programlar söz konusu hedef için gerekliydi.

(1) “Bourne again Shell” “Bourne Shell” adı üzerinde bir şakadır, bu, Unix’teki genel kabuktur.

Özgür Yazılım Desteği

Özgür yazılım felsefesi, bazı yaygın ticari uygulamayı reddeder ancak ticarete karşı değildir. İşyerleri kullanıcıların özgürlüğüne saygı duyduğunda, onlara başarı dileriz.

Emacs’ın kopyalarının satılması, bir çeşit özgür yazılım ticaretini gösterir. FSF bu işi devraldığında, geçimimi sağlamak için başka bir yol gerekti. Geçimimi, geliştirmiş olduğum özgür yazılıma ilişkin hizmetlerin satılmasıyla sağladım. Bu, GNU Emacs’ın nasıl programlanacağı ve GCC’nin ve yazılım gelişiminin nasıl uyarlanacağı (çoğunlukla GCC’yi yeni platformlara taşıyan) gibi konular için eğitim vermeyi de içermektedir.

Günümüzde özgür yazılım ticaretinin bu tiplerinin her biri belirli sayıda kurum tarafından uygulanmaktadır. Bazıları, CD-ROM üzerinde özgür yazılım koleksiyonları dağıtmaktadır; diğerleri, çeşitli seviyelerde destek satmaktadır, bu destek: kullanıcı sorularının yanıtlanması, sorunların giderilmesi ve büyük ve yeni özelliklerin eklenmesini içerir. Yeni özgür yazılım ürünlerinin başlatılmasını esas alan özgür yazılım firmalarını görmeye başladık bile.

Yine de dikkatli olun, kendilerini “açık kaynak” terimiyle ilişkilendiren bazı firmalar, özgür yazılımla çalışan özgür olmayan yazılımı esas almaktadır. Bunlar özgür yazılım firmaları değildir, bunlar, özel mülk yazılım firmalarıdır, ürünleri ve kullanıcıları özgürlükten uzaklaştırmaktadır. Onlar bunu katma değerli olarak adlandırırlar, bu terim benimsememizi istedikleri değerleri yansıtır: özgürlüğün üstünde kazanç. Özgürlüğe daha çok değer vererek, bunları “özgürlüğü çıkarılmış” ürünler olarak adlandırmalıyız.

Teknik hedefler

GNU’nun temel hedefi, özgür yazılımı sağlamaktır. GNU’nun UNIX’e göre teknik bir avantajı olmasa da, sosyal bir avantajı vardır, kullanıcıların birlik olmasına imkân verir ve etik bir avantajı vardır, kullanıcıların özgürlüğüne saygı duyar.

Ancak iyi uygulamaların bilinen standartlarının çalışmaya uygulanması doğaldı, örneğin rastgele sabit büyüklükteki sınırları önlemek için veri yapılarının dinamik olarak tahsis edilmesi ve anlamlı olan her yerde mümkün olan tüm 8-bitli kodların kontrol edilmesi gibi.

Ek olarak, 16-bit makineleri (GNU sistemi tamamlandığında, 32-bit makineler geçerli olacaktır) desteklememeye ve megabaytı geçmedikçe bellek kullanımını azaltmak için çaba göstermemeye karar vererek Unix’in küçük bellek büyüklüğü üzerine odaklanmasını reddettik. Çok büyük dosyalarla işlem yapılmasının çok önemli olmadığı programlarda, programcıların, tüm giriş dosyasını çekirdekte okumasını, daha sonra içeriğini I/O konusunda tedirginliğe kapılmaksızın taramasını sağladık.

Bu kararlar, birçok GNU programının Unix benzerlerini, güvenilirlik ve hız açısından geçmesini mümkün kılmıştır.

Bağışlanan Bilgisayarlar

GNU Projesinin ünü arttıkça, insanlar, üzerlerinde Unix çalışan makinelerini projeye bağışlamaya başladı. Bunlar çok yararlıydı çünkü GNU’nun bileşenlerini geliştirmenin en kolay yolu, bunu bir Unix sistemi üzerinde gerçekleştirmek ve söz konusu sistemin bileşenlerini birer birer değiştirmekti. Ancak bu durum etik bir sorunu ortaya çıkardı: Unix’in bir kopyasına sahip olmamız doğru mudur?

Unix, özel mülk bir yazılımdı (hâlâ da öyledir) ve GNU Projesinin felsefesi, özel mülk yazılım kullanmamamız gerektiğini söyler. Ancak, aynı mantık uygulandığında şu sonuca varılır: kendini korurken şiddet uygulanabilir, insanların özel mülk paketi kullanmalarını durdurmasına yardımcı olan özgür programı kullanabilmek için özel mülk paketin kullanılması mantıklıdır.

Savunulabilir bir durum olmasına rağmen, bu durum yine de kötü bir durumdur. Günümüzde, Unix’in hiçbir kopyasına sahip değiliz çünkü bu kopyaların yerine özgür işletim sistemlerini yerleştirdik. Bir makinenin işletim sistemini özgür bir işletim sistemiyle değiştiremediysek, bunun yerine makineyi değiştirirdik.

GNU Görev Listesi

GNU Projesi ilerledikçe ve artan sayıda sistem bileşeni bulundukça ya da geliştirildikçe, artık kalan eksiklerin bir listesinin yapılması yararlı bir hale geldi. Eksik parçaları yazmak için geliştiricileri işe almaktaydık. Bu liste, GNU Görev Listesi olarak bilinmeye başladı. Eksik Unix bileşenlerine ek olarak, gerçekten tam bir sistemin sahip olmasının gerekli olduğunu düşündüğümüz diğer yararlı yazılım ve belgeleme projelerini listeledik.

Günümüzde, GNU Görev Listesinde ancak birkaç tane Unix bileşeni kalmıştır, bu işler (birkaç tane önemsiz iş hariç olmak üzere) gerçekleştirilmiştir. Ancak, liste, bazılarının “uygulamalar” olarak adlandırabildiği projelerle doludur. Dar bir kullanıcı grubundan daha fazlasını gerektiren herhangi bir program, işletim sistemine eklenecek yararlı bir birimdir.

Oyunlar bile görev listesine dahildir ve başlangıçtan beri durum böyledir. Unix’te oyunlar vardı, bu nedenle doğal olarak GNU’da da olmalıydı. Ancak oyunlar için uyumluluk söz konusu değildi, bu nedenle, Unix’in sahip olduğu oyun listesini izlemedik. Bunun yerine, kullanıcıların sevebildiği farklı oyun tipi çeşitlerini listeledik.

GNU Kütüphane GPL

GNU C kütüphanesi, GNU Kütüphane Genel Kamu Lisansı (1) olarak adlandırılan ve özel mülk yazılımla kütüphane arasında bağlantı kurma iznini sağlayan özel bir copyleft tipini kullanmaktadır. Bu istisnai durumun nedeni nedir?

Bu bir ilke sorunu değildir; özel mülk yazılım ürünlerinin kodumuzu içermesi konusunda yetkilendirilmesini söyleyen bir ilke yoktur. (Bizimle paylaşmayı reddeden bir projeye niye katılalım?) C kütüphanesi ya da herhangi bir kütüphane için LGPL kullanılması bir strateji hususudur.

C kütüphanesi genel bir işi başarmıştır; özel mülk her sistem ya da derleyici bir C kütüphanesine sahiptir. Bu nedenle, C kütüphanemizi yalnızca özgür yazılıma açık kılmak özgür yazılıma hiçbir avantaj sağlamayacaktır, bu yalnızca kütüphanemizin kullanımını engelleyecektir.

Bir sistem bu kurala uymayan bir durumdur: GNU sisteminde (ve bu, GNU/Linux’ı içerir) GNU C kütüphanesi, tek C kütüphanesidir. Böylece, GNU C kütüphanesinin dağıtım terimleri, GNU sistemi için özel mülk bir programın derlenmesinin mümkün olup olmadığını belirler. GNU sistemi üzerinde özel mülk uygulamalara izin vermek için etik bir neden yoktur ancak stratejik açıdan, onlara imkân vermemek, özgür uygulamaların geliştirilmesini cesaretlendirmekten ziyade GNU sisteminin kullanımına yönelik cesareti kıracaktır. Bu, GPL Kütüphane kullanımının C kütüphanesi için iyi bir strateji olmasının nedenidir.

Diğer kütüphaneler için, stratejik karar her duruma özgü bir şekilde oluşturulmalıdır. Bir kütüphane belirli program tiplerinin yazılmasına yardımcı olan özel bir işi gerçekleştirdiğinde, o zaman bunu GPL altında yayarak sadece özgür programlarda kullanımını sınırlandırmak diğer özgür yazılım geliştiricilerine yardımcı olmanın bir yolu olacaktır, bu da özel mülk yazılıma karşı onlara bir avantaj sağlayacaktır.

GNU Readline’ı değerlendirelim, bu, BASH için komut satırının düzenlenmesini sağlayan bir kütüphanedir. Readline, sıradan GNU GPL altında yayılır, GPL kütüphane altında dağıtılmaz. Bu muhtemelen Readline’ın kullanım miktarını azaltır ancak bizim için bir kayıp yoktur. Bu arada, özgür yazılım için en azından bir tane yararlı uygulama belirli olarak gerçekleştirilmiştir böylece Readline kullanılabilir ve bu, toplum için gerçek bir kazançtır.

Özel mülk yazılım geliştiricileri, paranın sağladığı avantajlara sahiptir; özgür yazılım geliştiricilerinin, birbirleri için avantajlı durumlar oluşturması gerekir. Umarım, günün birinde özel mülk yazılımlar için eşleri olmayan GPL ile lisanslanmış geniş kütüphane kolleksiyonlarına sahip olacağız, bu kütüphaneler yeni özgür yazılımlar için inşa birimlerini oluşturacak ve daha fazla özgür yazılım geliştirmesi için önemli bir avantaj sağlayacaklar.

(1) Bu lisans şimdi GNU Kısıtlı Genel Kamu Lisansı adını almıştır, kütüphanelerin onu kullanması gerektiği fikrini vermemek için. Ayrıntılı Bilgi İçin.

Arzuyu kaşımak?

Eric Raymond, “Her iyi yazılım çalışması, geliştiricinin kişisel ve güçlü bir arzusunun ortaya çıkmasıyla başlar” der. Bu söz bazı durumlarda doğrudur ancak GNU yazılımının birçok esas parçası tam bir özgür işletim sistemine sahip olmak için geliştirilmiştir. Bunlar, bir bakış açısından ve bir plandan gelmektedir, bir dürtüden değil.

Örneğin, GNU C kütüphanesini geliştirdik çünkü Unix-benzeri bir sistem bir C kütüphanesine, ihtiyaç duyar, Bourne Again Shell’i (BASH) geliştirdik çünkü Unix-benzeri bir sistem bir kabuğa ihtiyaç duyar ve Unix-benzeri bir sistem bir tar programına ihtiyaç duyduğu için GNU tar’ı geliştirdik. Kendi programlarım için de aynısı geçerlidir, GNU C derleyicisi, GNU Emacs, GDB ve GNU Make.

Bazı GNU programları özgürlüğümüze ilişkin bazı tehditlerle başa çıkmak için geliştirilmiştir. Bu nedenle, Compress programının yerine geçmesi için gzip’i geliştirdik, bu program, LZW patentlerinden dolayı kayıptır. LessTif’i geliştirdik ve yakın zamanda belirli özel mülk kütüphaneler nedeniyle oluşan problemleri halletmek için GNOME ve Harmony’i başlattık (aşağıdaki “özgür olmayan kütüphaneler” bölümüne bakınız). Özgür olmayan gözde şifreleme yazılımının yerine geçmesi için GNU Gizlilik Kılavuzunu geliştirmekteyiz çünkü kullanıcılar gizlilik ve özgürlük arasında bir tercih yapmak zorunda kalmamalıdır.

Tabi ki, bu programları yazan insanlar çalışmayla ilgilenmeye başlamıştır ve kendi ihtiyaçları ve çıkarları için, çeşitli insanlar tarafından bunlara birçok özellik eklenmiştir. Ancak programların var olma nedeni bu değildir.

Beklenmedik gelişmeler

GNU Projesinin başlangıcında, tüm GNU sistemini geliştirebileceğimizi ve daha sonra bir bütün olarak yayınlayabileceğimizi hayal etmiştim. Ancak durum böyle olmadı.

GNU sisteminin her bir bileşeni bir Unix sisteminde gerçekleştirildiği için, bütün bir GNU sisteminin var olmasından çok önce her bir bileşen Unix sistemlerinde çalışabilmeliydi. Bu programların bazıları gözde hale geldi ve kullanıcılar, bunları, çeşitli uyumsuz Unix sürümlerine ve bazen de diğer sistemlere genişletmeye ve taşımaya başladı.

Süreç, bu programların çok daha güçlü olmasını sağladı ve hem maddi destek sağladı, hem de destekçileri GNU Projesine çekti. Ancak bu en az özellikli, çalışır bir sistemin tamamlanmasını da yıllarca geciktirdi çünkü GNU geliştiricilerinin zamanı, birbiri ardına eksik bir bileşenin yazılmasından çok, bu bileşenlerin devamlılığının sağlanmasına ve mevcut bileşenlere yeni özelliklerin eklenmesine harcandı.

GNU Hurd

1990 yılı itibariyle, GNU sistemi hemen hemen tamamlanmıştı; tek temel eksik bileşen, çekirdekti [:kernel]. Çekirdeğimizi, Mach’ın en üstünde çalışan sunucu süreçleri kümesi olarak gerçekleştirmeye karar verdik. Mach, Carnegie Mellon Üniversitesinde ve daha sonra Utah Üniversitesinde geliştirilen bir mikro-çekirdektir; GNU Hurd, Mach’ın üstünde çalışan sunucu topluluğudur ve Unix çekirdeğinin çeşitli işlemlerini gerçekleştirir. Söz verilmiş olduğu gibi, Mach’ın özgür yazılım olarak dağıtılmasını beklerken, geliştirmenin başlaması gecikti.

Bu tasarımın seçilmesinin bir nedeni, işin en zor kısmı olarak görülen aşamadan kaçınılmasıydı: kaynak-seviyesinde bir hata ayıklayıcı [:debugger] olmaksızın çekirdek programındaki hataların ayıklanması. İşin bu kısmı hâlihazırda Mach’da gerçekleştirilmişti ve GDB ile kullanıcı programları olarak Hurd sunucularının hatalarının ayıklanmasını ummuştuk. Ancak bunun mümkün kılınması uzun zaman aldı ve birbirine mesaj gönderen çok-kullanımlı sunucuların hatalarının ayıklanmasının çok zor olduğu fark edildi. Hurd çalışmasının gerçekleştirilmesi yıllara yayıldı.

Alix

GNU çekirdeğinin başlangıçta Hurd olarak adlandırılacağı düşünülmemekteydi. Orijinal adı Alix’ti, o zamanlar sevgilim olan kadının adıydı. Bir Unix sistem yöneticisi olan Alix, Unix sistem sürümleri için isminin bir birime verilmesi gerektiğini şaka yollu olarak söylerdi: arkadaşlarına, “Benim adımın bir çekirdeğe verilmesi lazım” derdi. Hiçbir şey söylemezdim ancak çekirdeğe Alix adını vererek ona sürpriz yapmaya karar verdim.

Ancak daha sonra durum değişti. Michael Bushnell (şimdi Thomas), çekirdeğin ana geliştiricisi, Hurd adını tercih etti ve Alix’in yalnızca çekirdeğin belirli bir kısmının adı olmasına karar verdi, bu kısım sistem çağrılarını alan ve Hurd sunucularına mesaj göndererek kontrol eden kısımdır.

Sonunda Alix ve ben ayrıldık ve Alix, adını değiştirdi; bundan bağımsız olarak, Hurd tasarımı değiştirildi, böylece C kütüphanesi sunuculara doğrudan mesajlar göndermeye başladı ve bu durum Alix bileşeninin tasarımdan çıkarılmasına neden oldu.

Ancak bu olaylar meydana gelmeden önce, Alix’in bir arkadaşı, Hurd kaynak kodunda Alix ismine rastladı ve Alix’e bunu söyledi. Böylece isim amacını gerçekleştirmiş oldu.

Linux ve GNU/Linux

GNU Hurd, normal kullanım [:production use] için hazır değildi. Neyse ki, başka bir çekirdek ortaya çıktı. 1991 yılında, Linus Torvalds Unix’e uyumlu bir çekirdek geliştirdi ve bunu Linux olarak adlandırdı. 1992 yılı civarında, daha tamamlanmamış GNU sistemiyle Linux’un birleşmesi bütün bir özgür işletim sistemine neden oldu. (Bunların birleştirilmesi de tabi ki kendi içinde önemli bir işti). Günümüzde GNU sisteminin bir sürümünün çalıştırılması Linux sayesindedir.

Çekirdek olarak GNU sisteminin Linux’la birleşiminin oluşumunu ifade etmek için bu sistemi GNU/Linux olarak adlandırırız.

Geleceğimizde Ortaya Çıkabilecek Sorunlar

Geniş özgür yazılım çeşitlerini geliştirmek konusundaki yeteneğimizi kanıtladık. Ancak bu, bizim yenilmez ve durdurulamaz olduğumuz anlamına gelmemektedir. Çeşitli sorunlar, özgür yazılımın geleceğini belirsiz hale getirmektedir; bunların yerine getirilmesi sadık çalışmaları ve sabrı gerektirecek ve bu bazen yıllarca sürecektir. Bu, insanların özgürlüklerine değer vermeleri ve onu kimsenin almasına izin vermemeleri konusunda kararlılık göstermesini gerektirecektir.

Aşağıdaki dört bölüm bu hususları açıklamaktadır.

Gizli Donanım

Donanım üreticileri, donanım belirtimlerini sır olarak saklama eğilimindedir. Bu durum, Linux’ın ve XFree86’nın yeni bir donanımı desteklemesini sağlayan özgür sürücülerin yazılmasını zorlaştırmaktadır. Günümüzde bütün özgür sistemlere sahibiz ancak yarının bilgisayarlarını destekleyemezsek, yarın bunlara da sahip olamayacağız.

Bu problemle başa çıkmanın iki yolu vardır. Programcılar, donanımı nasıl destekleyeceklerini belirlemek için tersine mühendisliği [:reverse engineering] gerçekleştirebilir. Geri kalanımız, özgür yazılım tarafından desteklenen donanımı seçebilir; sayımız arttıkça, belirtimlerin gizliliği kendi kendine terk edilen bir politika haline gelecektir.

Tersine mühendislik önemli bir iştir; bunu üstlenebilecek yeterli kararlılığa sahip programcılarımız var mı? Evet, özgür yazılımın bir ilke konusu olduğuna ve özgür olmayan sürücülerin dayanılmaz olduğuna dair güçlü bir duygu oluşturursak olabilir. Ve çoğumuz özgür sürücüleri kullanmak için fazladan para harcarsak ya da hatta biraz fazladan zaman harcarsak? Evet, özgürlüğe sahip olma kararlılığı yaygınsa bu olabilir.

(2008 notu: bu konu BIOS’a da genişletilebilir. Özgür bir BIOS vardır, LibreBoot; problem LibreBoot’un destekleyebilmesini sağlamak üzere makine belirtimlerini elde etmektir.)

Özgür olmayan Kütüphaneler

Özgür işletim sistemleri üzerinde çalışan özgür olmayan bir kütüphane, özgür yazılım geliştiricileri için bir tuzaktır. Kütüphanenin çekici özellikleri yemdir; kütüphaneyi kullanırsanız, tuzağa düşersiniz çünkü programınız özgür bir işletim sisteminin bir parçası olamaz. (Daha doğrusu, programı dahil edebiliriz ancak eksik kütüphane ile çalışmayacaktır). Daha da kötüsü, özel mülk kütüphaneyi kullanan bir program gözde hale gelirse, şüpheci olmayan diğer programcıları da tuzağa düşürebilir.

Bu probleme ilişkin ilk örnek, 80’lerdeki Motif araç-kitiydi. O zamanlar, özgür yazılımların mevcut olmamasına rağmen, daha sonra onlar için Motif probleminin oluşacağı açıktı. GNU Projesi buna iki şekilde yanıt verdi: ayrı özgür yazılım projelerinin özgür X araç-kiti bilgisayar ekranındaki tuş, buton, çubuk gibi unsurlardan her birinin desteklemesini isteyerek ve birilerinin Motif için özgür bir yedek hazırlamasını isteyerek. Bu iş yıllar aldı; Hungry Programcıları tarafından geliştirilen LessTif, yalnızca 1997’de birçok Motif uygulamasını desteklemek için yeterince güçlü hale geldi.

1996 ilâ 1998 yılları arasında, Qt olarak adlandırılan özgür olmayan başka bir Grafiksel Kullanıcı Ara Yüzü (GUI) araç-kiti kütüphanesi özgür yazılım koleksiyonunda (masaüstü KDE) kullanıldı.

Özgür GNU/Linux sistemleri KDE’yi kullanmadı çünkü bu kütüphaneyi kullanamazdık. Ancak, sistemlerine özgür yazılımın eklenmesi konusunda duyarlı olmayan bazı ticari GNU/Linux sistem dağıtıcıları, sistemlerine KDE’yi ekledi, daha fazla özelliğe ancak daha az özgürlüğe sahip bir sistem ürettiler. KDE> grubu, daha fazla sayıda programcının Qt’yi kullanmasını destekledi ve milyonlarca yeni “Linux kullanıcısı” bununla ilgili bir problemin var olduğu fikrine inanmadılar. Bu durum korkutucu görünüyordu.

Özgür yazılım topluluğu probleme iki şekilde yanıt verdi: GNOME ve Harmony.

GNOME, açık adıyla, GNU Network Object Model Environment (GNU Ağ Nesne Model Ortamı), GNU’nun masaüstü projesidir. 1997 yılında Miguel de Icaza tarafından başlatılmıştır ve Red Hat Software’in desteğiyle geliştirilmiştir, GNOME, benzer masaüstü özellikleri sağlamak için oluşturulmuştur ancak özgür yazılımları kullanır. Teknik avantajları da vardır, yalnızca C++’ı değil, çeşitli dilleri de destekler. Ancak temel amacı özgürlüktür: özgür olmayan hiçbir yazılıma ihtiyaç duymaz.

Harmony, uyumlu bir değiştirme kütüphanesidir, Qt’yi kullanmaksızın KDE yazılımının çalıştırılmasını mümkün kılmak için tasarlanmıştır.

1998 yılının Kasım ayında, Qt’nin geliştiricileri, bir lisans değişikliğini anons etti, bu lisans değişikliğinin gerçekleşmesiyle, Qt özgür yazılım haline gelmekteydi. Bundan emin olmanın bir yolu yoktur ancak bana kalırsa bu, QT’nin özgür olmamasından kaynaklanan soruna topluluğun verdiği yanıttan kaynaklanmaktadır. (Yeni lisans elverişsiz ve eşitlikten uzaktır, bu nedenle, Qt’nin kullanımının önlenmesi istenmektedir.)

[not: Eylül 2000’de Qt GNU GPL olarak yayınlanmıştır, bu problem çözülmüştür.]

Sonraki özgür olmayan kütüphaneye karşı nasıl bir tepki vereceğiz? Tüm topluluk tuzaktan uzak kalmanın gerekliliğini anlayacak mı? Ya da birçoğumuz kullanışlılık için özgürlükten vazgeçecek mi ya da büyük bir problem mi ortaya çıkacak? Geleceğimiz felsefemize bağlıdır.

Yazılım Patentleri

Karşılaştığımız en büyük tehdit yazılım patentlerinden gelmektedir, bu patentler, özgür yazılıma yirmi yıla kadar varabilen algoritma ve özellik sınırları koyabilir. LZW sıkıştırma algoritma patentleri 1983’te uygulanmıştı ve hâlâ uygun şekilde sıkıştırılmış GIF’ler üretmek için özgür yazılımı yayınlayamamaktayız. 1998 yılında, bir patent grubunun tehdidi altında, MP3 sıkıştırma ses programı üreten özgür bir program dağıtımdan kaldırılmıştı.

Patentlerle başa çıkmanın yolları vardır: bir patentin geçersiz olduğuna dair kanıt için araştırma yapabiliriz ve bir işi yapmanın alternatif yollarını araştırabiliriz. Ancak bu metotların her biri yalnızca zaman zaman çalışmaktadır; hepsi de başarısız olduğunda, patent, tüm özgür yazılımı, kullanıcıların istediği birtakım özelliklerden mahrum bırakmaya zorlayabilir. Bu durum meydana geldiğinde ne yapacağız?

Özgürlük adına özgür yazılıma değer veren bizim gibi insanlar her durumda özgür yazılımla kalacaktır. İşlerimizi hallederken patentli özellikleri kullanmayacağız. Ancak teknik açıdan daha üstün olmasını bekledikleri için özgür yazılıma değer verenler, patent onu geri tuttuğunda, bunu bir başarısızlık olarak adlandırma eğilimindedir. Bu nedenle, yazılım geliştirmenin “pazar” modelinin ve özgür yazılımın güvenilirliği ve gücünün pratik etkililiği hakkında konuşmak yararlı iken, burada durmamalıyız. Özgürlük ve ilke hakkında konuşmalıyız.

Özgür Belgeleme

Özgür işletim sistemlerimizdeki en büyük eksiklik yazılımda değildir, en büyük eksiklik, sistemlerimize dahil edebildiğimiz iyi özgür belgelerin olmamasıdır. Belgeleme, her türlü yazılım paketinin önemli bir parçasıdır; önemli bir özgür yazılım paketi iyi bir özgür belgeyle birlikte verilmediğinde, bu büyük bir eksiktir. Günümüzde bu gibi eksiklerimiz vardır.

Özgür belgeleme, tıpkı özgür yazılım gibi, bir özgürlük konusudur, ücretle ilgili değildir. Özgür bir kılavuza ilişkin ölçütler özgür yazılıma ilişkin ölçütlere oldukça benzerdir: bu, tüm kullanıcılara belirli özgürlükler verilmesi hususudur. Yeniden dağıtıma (ticari satış dahil olmak üzere) izin verilmelidir, bu, çevrim-içi olarak ya da kağıt biçiminde olabilir, böylece kılavuz, programın her kopyasıyla birlikte verilebilir.

Değiştirmeye ilişkin izin de önemlidir. Genel kural olarak, insanların tüm makale ve kitap tiplerini değiştirme iznine sahip olmasının gerekli olduğuna inanmıyorum. Örneğin, işlemlerimizi ve görüşlerimizi tanımlayan bu gibi makaleleri değiştirmek için izin vermek zorunda olduğumuzu sanmıyorum.

Ancak, özgür yazılımın belgelerinin değiştirilme özgürlüğünün önemli olmasının belirli bir nedeni vardır. İnsanlar, yazılımı değiştirme hakkını kullandıklarında ve özelliklerine ekleme yaptıklarında ya da özelliklerini değiştirdiklerinde, vicdanlı davranır ve özenlilerse kılavuzları da değiştireceklerdir, böylece değiştirilmiş programla birlikte doğru ve kullanılabilir belgeleri de sağlayacaklardır. Programcıların özenli olmalarına izin vermeyen ve işi tanımlamayan bir kılavuz ihtiyaçlarımızı karşılamaz.

Değişikliklerin nasıl gerçekleştirildiğine ilişkin bazı sınırlamalar hiçbir problem oluşturmaz. Örneğin, asıl yazarın telif hakkı uyarısının korunmasına ilişkin şartlar, dağıtım ifadeleri ve yazar listesi uygundur. Ayrıca değiştirilmiş sürümlerde uyarı bulunmasının gerekli olması ve bu kısımların teknik-olmayan başlıkları ele almaları durumunda, silinemeyen ya da değiştirilemeyen kısımlara sahip olma konusunda bir problem yoktur. Değişikliklerin nasıl gerçekleştirildiğine ilişkin bazı sınırlamalar hiçbir problem oluşturmaz. Örneğin, asıl yazarın telif hakkı uyarısının korunmasına ilişkin şartlar, dağıtım ifadeleri ve yazar listesi uygundur. Ayrıca değiştirilmiş sürümlerde uyarı bulunmasının gerekli olması ve bu kısımların teknik-olmayan başlıkları ele almaları durumunda, silinemeyen ya da değiştirilemeyen kısımlara sahip olma konusunda bir problem yoktur.

Ancak, kılavuzun tüm “teknik” içeriğinin değiştirilmesi ve daha sonra tüm genel kanallar üzerinden tüm genel ortamlarda sonucun dağıtılması mümkün olmalıdır; aksi takdirde, kısıtlamalar topluluğu engellemektedir, kılavuz özgür değildir ve başka bir kılavuza ihtiyaç duyarız.

Özgür yazılım geliştiricileri tam bir özgür belge çeşitliliği oluşturma bilincine ve kararlılığına sahip olacak mıdır? Yine, geleceğimiz felsefeye bağlıdır.

Özgürlük Hakkında Konuşmalıyız

Günümüzde Debian GNU/Linux ve Red Hat Linux gibi GNU/Linux sistemlerinin on milyon kullanıcısının var olduğu tahmin edilmektedir. Özgür yazılım öyle pratik avantajlar sunmuştur ki, kullanıcılar tamamen uygulamaya ilişkin nedenlerden dolayı özgür yazılımı kullanmaktadır, uygulamaktadır.

Bunun iyi sonuçları ortadadır: özgür yazılımın geliştirilmesiyle daha fazla ilgilenildiğinde, yazılım işleri için daha fazla müşteri mevcuttur, bu da özel mülk yazılım ürünleri yerine ticari özgür yazılımın geliştirilmesi için firmaların daha fazla cesaretlendirilmesi için olanak demektir.

Ancak yazılıma olan ilgi yazılımın esas aldığı felsefenin bilincinden daha hızlı bir şekilde büyümektedir ve bu durum soruna neden olmaktadır. Yukarıda açıklanan sorunlarla ve tehditlerle başa çıkma özelliği, özgürlük için direnme isteğine bağlıdır. Topluluğumuzun bu isteğe sahip olduğundan emin olmak için, topluluğumuza girdiklerinde yeni kullanıcılara bu fikri yaymamız gereklidir.

Ancak bunu yapmakta başarısız olmaktayız: yeni kullanıcıları topluluğumuza çekme çabaları, topluluğumuzun temel bilgilerini öğretme çabalarını fazlasıyla geride bırakmaktadır. Her ikisini de gerçekleştirmemiz ve iki çabayı da dengede tutmamız gereklidir.

“Açık Kaynak”

Yeni kullanıcılara özgürlüğü öğretmek 1998 yılında daha zor hale geldi çünkü topluluğun bir kısmı “özgür yazılım” terimi yerine “açık kaynak yazılımı” terimini kullanmaya karar verdi.

Bu terimi destekleyen bazıları, “özgür” teriminin “bedava” terimiyle karıştırılmasını önlemeyi hedefledi, bu geçerli bir hedefti. Ancak diğerleri, özgür yazılım hareketini ve GNU Projesini güdüleyen ilkenin ruhunu bir kenara koydu ve bunun yerine yöneticilere ve işyeri kullanıcılarına yöneldi, bunların çoğu kârı özgürlüğün, toplumun ve ilkenin üstünde tuttu. Bu nedenle, “açık kaynak” konusu, yüksek-kaliteli ve güçlü yazılımın gerçekleştirilmesi potansiyeline odaklanmaktadır ancak özgürlük, toplum ve ilke fikirlerinden uzak durmaktadır.

“Linux” dergileri bunun açık bir örneğidir, GNU/Linux’la çalışan özel mülk yazılım için ilanlarla doludurlar. Sıradaki Motif ya da Qt ortaya çıktığında, bu dergiler programcıları bundan uzak durması konusunda uyaracak mı yoksa onun için reklam mı yayınlayacaklar?

Ticaretin desteklenmesi topluma birçok şekilde katkı sağlayabilir; diğer her şey eşit olduğunda, bu yararlıdır. Ancak özgürlük ve ilke hakkında daha az konuşarak desteklerini kazanmak çok kötü sonuçlar doğurabilir; bu, sosyal yardımlaşma ve yurttaşların eğitimindeki dengesizlği daha da kötüleştirecektir.

“Özgür yazılım” ve “açık kaynak” yaklaşık olarak aynı yazılım kategorisini tanımlar ancak yazılım hakkında ve değerler hakkında farklı şeyler söyler. GNU Projesi, yalnızca teknolojinin değil özgürlüğün de önemli olduğunu ifade etmek için “özgür yazılım” ifadesini kullanmaya devam eder.

Deneyin!

Yoda’nın felsefesi (“’Deneme’ yoktur”) iyi ve zekice görünmektedir ancak bu, benim için geçerli değildir. İşi yapıp yapamayacağım konusunda tedirginken aslında işin çoğunu yaparım ve hedefi gerçekleştirsem bile, hedefi yakalamak için yeterli olup olmadığım konusunda emin değilimdir. Ama en azından denedim çünkü düşmanım ile şehrim arasında hiç kimse yoktu, ben vardım. Şaşırtıcı bir şekilde, bazen başarılı oldum.

Bazen başarısız oldum; bazı şehirlerim düştü. O zaman tehdit altında olan başka bir şehir buldum ve başka bir savaş için hazırlandım. Zaman içinde, tehditleri aramayı ve kendimi tehditlerle şehrim arasına koymayı öğrendim ve diğer hacker’ların gelip bana katılmaları konusunda çağrı yaptım.

Bugünlerde yalnız değilim. Bana destek olan hacker’ları gördüğümde bir rahatlama ve neşe duyuyorum ve bu şehrin, en azından şimdilik, dayanabileceğini görüyorum. Ancak tehlike her geçen yıl büyüyor ve şimdi Microsoft açık bir şekilde topluluğumuzu hedef aldı. Özgürlüğün geleceğini veremeyiz. Teslim olmayalım! Özgürlüğümüzü korumak istiyorsak, her zaman hazır olmalıyız.

Yazan: Richard Stallman
Açık Kaynaklar” kitabında yayınlanmıştır

gnu.org

July 31, 2016

GNU Bildirgesi

GNU Bildirgesi (aşağıda yer almaktadır) Richard Stallman tarafından GNU Projesinin başlangıcında, destek ve katılım istemek için yazılmıştır. İlk birkaç yıl boyunca, gelişmeleri hesaba katmak için basit şekilde güncellenmiştir ancak şimdi birçok insanın görmüş olduğu gibi bu bildirgeyi değiştirmemek en iyisi gibi görünmektedir. O zamandan beri, farklı anlatım biçimleri ile kaçınılabilecek ortak yanlış anlamaları öğrendik ve bu yanlış anlamaları açıklamak için 1993’ten beri dipnotlar ekledik. Var olan GNU yazılımları hakkında güncel bilgilere ulaşmak için, lütfen web sunucumuzda olan bilgileri inceleyin, özellikle yazılım listemizi. Nasıl katkı yapabileceğinize dair http://www.gnu.org/help/help.html adresini ziyaret edebilirsiniz.

GNU nedir? Gnu Unix Değildir!

Gnu Unix Değildir [:Gnu’s Not Unix] anlamına gelen GNU, yazmakta olduğum Unix-uyumlu yazılım sisteminin adıdır, bu yazılımı, kullanabilen herkese özgür olarak verebilirim(1). Diğer çeşitli gönüllüler bana yardım etmektedir. Zaman, para, program ve cihaz katkıları büyük ölçüde gereklidir.

Şu anda, editör komutlarını yazmak için Lisp’li bir Emacs metin düzenleyicimiz, kaynak-seviyesi hata ayıklayıcımız, yacc-uyumlu derleyici [:parser] üretecimiz, bağlayıcımız ve 35 civarında özelliğimiz mevcuttur. Bir kabuk (komut yorumlayıcı [:interpreter]) hemen hemen tamamlanmıştır. Yeni bir taşınabilir eniyileştirici C derleyicisi kendi kendini derlemiştir ve bu yıl piyasaya sürülebilir. Bir başlangıç çekirdeği mevcuttur ancak Unix’e benzer biçimde çalışmak için daha fazla birçok özellik gereklidir. Çekirdek ve derleyici tamamlandığında, program gelişimi için uygun bir GNU sisteminin dağıtılması mümkün olacaktır. Metin biçimlendirici olarak TEX’i kullanacağız ancak üzerinde nroff çalışacak. Bunun yanı sıra, özgür ve taşınabilir X Window Sistemini de kullanacağız. Bundan sonra, taşınabilir Common Lisp’i, Empire oyununu, bir hesap çizelgesini ve yüzlerce başka şeyi ve çevrim içi belgeyi ekleyeceğiz. Sonunda, bir Unix sisteminin sahip olduğu her şeyi ve daha da fazlasını sağlamayı umuyoruz.

GNU, Unix programlarını çalıştırabilecektir ancak Unix’e özdeş olmayacaktır. Diğer işletim sistemleriyle olan tecrübelerimizi temel alarak elverişli olan tüm gelişmeleri gerçekleştireceğiz. Özellikle, daha uzun dosya isimlerine, dosya sürüm numaralarına, sorunsuz bir dosya sistemine, dosya adı tamamlama özelliğine, terminale-bağlı ekran desteğine ve belki de sonunda çeşitli Lisp programlarının ve sıradan Unix programlarının bir ekranı paylaşabildiği bir Lisp-tabanlı bir pencere sistemine sahip olmayı planlamaktayız. Hem C hem de Lisp sistem programlama dilleri olarak mevcut olacaktır. Haberleşme için İnternet protokollerini, UUCP’yi, MIT Chaosnet’i desteklemeye çalışacağız.

GNU, sanal belleğe sahip olan ve 68000/16000 sınıfındaki makineleri hedeflemektedir çünkü bunlar, çalıştırılabilecek en kolay makinelerdir. Daha küçük makineler üzerinde çalışması için fazladan çaba, onu bunlar üzerinde kullanmak isteyen kimselere kalmıştır.

Ciddi bir karışıklığı önlemek için, bu projenin adı olan ‘GNU’ sözcüğündeki ‘G’ harfini dikkatli telaffuz edin.

GNU’yu niçin yazmalıydım?

Benim Altın Kuralım şudur: Bir programı sevdiysem, bu programı seven kimselerle onu paylaşmalıyım. Yazılım satıcıları kullanıcıları bölmek ve alt etmek istemektedir, kullanıcıların birbiriyle yazılım paylaşmama konusunda fikir birliği içinde olmasını isterler. Diğer kullanıcılarla bu şekilde dayanışmayı kırmayı reddediyorum. Aklım başımda iken bu gibi bir yazılım lisans anlaşmasını imzalamam. Yıllarca bu gibi eğilimlere ve diğer soğukluklara karşı koymak için Yapay Zeka Laboratuarında çaba harcadım ancak sonunda çok ileri gittiler: benim irademe karşı bazı şeylerin yapıldığı bir kurumda kalamazdım.

Bilgisayarları onurlu bir biçimde kullanabilmek amacıyla, yeterli bir bütünü oluşturacak özgür yazılımları bir araya getirmeye karar verdim. Bunu özgür olmayan yazılımlar olmadan başaracaktım. MIT’in, GNU’yu yaymayı(2) engelleyecek herhangi bir yasal durum yaratmasını önlemek için YZ laboratuvarından istifa ettim.

GNU niçin Unix ile Uyumlu Olacaktır?

Unix benim ideal sistemim değildir ancak çok kötü de sayılmaz. Unix’in temel özellikleri iyi özellikler gibi görünmektedir ve zannediyorum ki Unix’in eksiklerini tamamlayabilirim. Ve Unix ile uyumlu bir sistem başka birçok insanın benimseyebileceği şekilde uygun olacaktır.

GNU Nasıl Erişebilir Olacaktır?

GNU kamu malı [:public domain] değildir. Herkesin GNU’yu değiştirme ve yeniden dağıtma hakkı vardır ancak hiçbir dağıtıcının yeniden-dağıtımını kısıtlamaya hakkı yoktur. Başka bir deyişle, özel mülk değişikliklere izin verilmeyecektir. GNU’nun tüm sürümlerinin özgür kalacağından emin olmak isterim.

Niçin Başka Birçok Programcı Yardım Etmek İstemektedir?

GNU konusunda heyecanlı olan ve yardım etmek isteyen çok sayıda programcı ile karşılaştım.

Birçok programcı sistem yazılımının ticarileşmesi konusunda mutsuzdur. Bu durum programcıların daha fazla para kazanmasını mümkün kılabilir ancak bu, diğer programcıları arkadaş gibi hissetmeleri yerine onlarla çatışma içinde gibi hissetmelerini gerektirir. Programcılar arasındaki temel arkadaşlık ilişkisi programların paylaşılması konusundadır; ancak günümüzdeki pazarlama düzenlemeleri, diğerlerini arkadaş olarak görmelerini engellemektedir. Yazılım alıcısı, arkadaşlık ve kanuna uymak arasında bir tercih yapmalıdır. Doğal olarak, birçoğu arkadaşlığın daha önemli olduğuna karar verir. Ancak kanuna inanan diğerleri, her iki tercihte de rahat olamazlar. Bu kimseler iyiliğe inanmaz hale gelir ve programlamanın yalnızca para kazanmanın bir yolu olduğuna inanırlar.

Özel mülk programlar yerine GNU üzerinde çalışarak ve GNU’yu kullanarak, herkese karşı kapısı açık – paylaşımcı olabilir ve kanunlara da uyabiliriz. Ek olarak, GNU, bir esin kaynağı örneğidir ve paylaşma konusunda başkalarının bize katılmasını sağlayan bir işaret gibidir. Bu bize özgür olmayan yazılımı kullandığımızda mümkün olmayan bir ahenk duygusu verir. Konuştuğum programcıların yaklaşık olarak yarısı için, bu, paranın yerini alan önemli bir mutluluktur.

Nasıl Katılabilirsiniz?

(Bu günlerdeki, çalışılabilecek yazılım görevleri için, http://fsf.org/campaigns/priority-projectsni ziyaret edin. Katkı sağlamanın diğer yolları için,http://www.gnu.org/help/help.html adresini inceleyin.)

Bilgisayar üreticilerine makine ve para bağışı yapmaları konusunda istekte bulunuyorum. Bireylere program ve çalışma konusunda bağışta bulunmaları konusunda istekte bulunuyorum.

Makine bağışlarsanız bekleyebileceğiniz bir sonuç, erken bir tarihte söz konusu makinelerin üzerinde GNU’nun çalışmasıdır. Makineler bütün olmalıdır, kullanmaya hazır sistemler olmalıdır, elverişli bir mekanda çalışması için onaylı olmalıdır ve gelişmiş soğutma ya da güç gereksinimi içinde olmamalıdır.

GNU için yarı zamanlı çalışma gerçekleştirmek için hevesli çok sayıda programcının olduğunu gördüm. Birçok proje için, bu gibi yarı zamanlı olarak dağıtılmış çalışmanın eşgüdümlenmesi çok zor olacaktır, bağımsız-olarak yazılan parçalar birlikte çalışmayacaktır. Ancak Unix’in yerini alan belirli bir iş için, böyle bir problem yoktur. Bütün bir Unix sistemi, yüzlerce programı içermektedir, bunların her biri ayrı ayrı belgelendirilmektedir. Birçok ara yüz belirtimi Unix uyumluluğu ile sağlanmaktadır. Katkıda bulunan her birey tek bir Unix özelliği için uyumlu bir parça yazabilir ve bir Unix sistemindeki orijinal parçanın yerine uygun şekilde çalıştırabilirse, o zaman bu özellikler bir araya getirildiğinde düzgün şekilde çalışacaktır. Murphy’nin1 beklenmedik birkaç problem oluşturmasına izin verilse bile, bu bileşenlerin birleştirilmesi uygulanabilir bir iş olacaktır. (Çekirdek daha yakın bir haberleşme gerektirecektir ve küçük ve sıkı bir grup tarafından üzerinde çalışılacaktır.)

Para bağışı alırsam, tam zamanlı ya da yarı zamanlı olarak birkaç kişiyi işe alabilirim. Maaş, programcıların standartlarına göre yüksek olmayacaktır ancak topluluk ruhunun oluşturulmasına para kazanmak kadar önem veren kişileri arıyorum. Bunu, kendini bu işe adamış insanların tüm enerjilerini GNU üzerinde çalışmaya ayırmalarını olanaklı kılmanın bir yolu olarak görüyorum, bu insanlar hayatlarını kazanmak için başka bir yol tercih edebilirler.

Niçin Tüm Bilgisayar Kullanıcıları Yarar Sağlayacaktır?

GNU yazıldıktan sonra, aynen hava almak gibi herkes iyi sistem yazılımını ücretsiz bir şekilde edinebilecektir.(3)

Bu, herkesin Unix lisansının ücretini ödememesinden daha fazla bir şeyi ifade etmektedir. Bu, sistem programlama çabasının çok zahmetli olan kopyalama işinden kaçınılması anlamına gelmektedir. Bu çaba, bunun yerine projede aşama kaydedilmesi için harcanabilir.

Bütün sistem kaynakları herkese açık olacaktır. Bunun bir sonucu olarak, sistemde değişikliğe ihtiyaç duyan bir kullanıcı bu değişiklikleri kendi başına yapma konusunda özgür olacaktır ya da bu değişiklikleri yaptırmak için, bir programcı ya da firmaya para verecektir. Kullanıcılar, bundan böyle kaynakların sahibi olan tek bir programlayıcının ya da firmanın insafına kalmayacaktır ve değişiklik yapma hakkına sahip olacaklardır.

Okullar, sistem kodunu çalıştırmak ve daha da geliştirmek için tüm öğrencileri cesaretlendirerek çok daha eğitici bir ortam sağlayabilir. Harvard’ın bilgisayar laboratuarı, kaynaklarının kamuya açık olmaması durumunda hiçbir programın sisteme kurulamayacağı politikasını izlemekteydi ve belirli programları kurmayı reddederek bu kararlılığını korudu. Bundan çok etkilenmiş ve ilham almıştım.

Son olarak, sistem yazılımına kimin sahip olduğu ve bu yazılımla ne yapılıp yapılamayacağı özgür hale gelmektedir.

Kopyaların lisanslanması dahil olmak üzere bir programa insanlar tarafından para ödenmesine ilişkin düzenlemeler, her zaman bir insanın ne kadar (başka bir deyişle, hangi programlara) ödemesi gerektiğini belirlemek için gerekli ağır düzenlemeler aracılığıyla toplum için ağır bir yük oluşturmaktadır. Ve yalnızca bir polis devleti herkesi bu kurallara uymaya zorlayabilir. Havanın büyük bir maliyette üretilmesinin gerekli olduğu bir uzay istasyonunu değerlendirelim: her hava alanın havanın litresi başına ücretlendirilmesi uygun olabilir ancak herkes faturaları ödeyebilse bile, sayaçlı gaz maskesinin gündüz ve gece boyunca takılması tahammül edilemeyecek bir durumdur. Ve maskeyi çıkarıp çıkarmayacağınızı görmek için her yere TV kameralarının konulması ahlaka aykırıdır. Kişi başına vergi alınması ve maskelerin atılması daha iyidir.

Bir programın tamamının ya da bir parçasının kopyalanması bir programcı için nefes almak kadar doğal bir şeydir, aynı zamanda da üretkenliğini artırır. Bu, özgür olmalıdır.

Bazı kimseler GNU’nun hedeflerine kolayca karşı çıkmaktadır

“Özgür olursa yazılımı hiç kimse kullanmayacaktır, çünkü bu, herhangi bir desteğe güvenilmeyeceği anlamına gelmektedir.”

“Desteği sağlamak üzere ödeme yapabilmek için programa ait bir ücret almalısınız.”

İnsanlar, ek hizmetler içermeyen özgür GNU’yu almaktan ek hizmetleri içeren GNU’ya ödeme yapmayı tercih ederlerse, GNU’yu özgür olarak edinen insanlara yalnızca hizmet sağlayan bir firma kârda olacaktır.(4)

Gerçek bir programlama çalışmasındaki destek ile elinden tutma arasındaki farkı anlamalıyız. Gerçek programlama çalışması, bir yazılım satıcısından alınamayan bir şeydir. Probleminiz yeterince sayıda insanda yoksa, satıcı size kaybolmanızı söyleyecektir.

İşiniz desteğe güvenmeyi gerektiriyorsa, buna sahip olmanın tek yolu gerekli tüm kaynaklara ve araçlara sahip olmaktır. O zaman probleminizi çözmek için herhangi birini tutabilirsiniz; herhangi tek bir insanın insafına kalmazsınız. Unix’te, birçok iş için kaynakların fiyatı bu durumun ikinci plana atılmasına neden olur. GNU için, bu, kolay olacaktır. Hâlâ uzman bir kimsenin olmaması durumu var olabilir ancak bu problem dağıtım anlaşmalarına bağlanamaz. GNU dünyanın tüm problemlerini ortadan kaldırmaz, yalnızca bazılarını ortadan kaldırır.

Bu arada, bilgisayarlar hakkında hiçbir şey bilmeyen kullanıcılar, ellerinden tutulmaya ihtiyaç duyarlar: kendilerinin de kolayca yapabilecekleri ama nasıl yapacaklarını bilmedikleri şeylerin onlar için yapılması gibi.

Yalnızca ellerinden tutma ve tamir hizmetini satan firmalar tarafından bu gibi hizmetler sağlanabilir. İnsanlar para harcayıp hizmeti olan bir ürünü almayı tercih ederlerse, ürünü ücretsiz bile alsalar, hizmete para vermeye istekli olacaklardır. Hizmet firmaları kalite ve ücret konusunda rekabet edecektir; kullanıcılar, herhangi birine bağlı olmayacaktır. Bu arada, hizmete ihtiyaç duymayanlar, hizmete para ödemeden programı kullanabilmelidir.

“Reklam vermeden çok sayıda insana ulaşamazsınız ve programı desteklemek için para ödemelisiniz.”

“İnsanların özgürce sahip olabileceği bir program için reklam vermenin bir anlamı yoktur.”

Çok sayıda bilgisayar kullanıcısını GNU gibi bir program hakkında bilgilendirmek için kullanılabilecek çeşitli özgür ya da çok ucuz tanıtma yolları vardır. Ancak reklam verilerek çok daha fazla sayıda mikro-bilgisayar kullanıcısına ulaşılabileceği doğru bir yaklaşım olabilir. Durum gerçekten de böyleyse, bir ücret karşılığında GNU’nun kopyalanması ve postalanması hizmetinin reklamını veren bir şirket, reklam ve daha fazlası için ödeme yapmaya yetecek kadar başarılı olmalıdır. Bu şekilde, yalnızca reklamdan kâr yapan kullanıcılar program için ödeme yapacaktır.

Diğer taraftan, birçok insan GNU’yu arkadaşlarından edinirse ve bu gibi firmalar başarılı olamazsa, bu durum, GNU’yu yaymak için reklam vermenin ille de gerekli olmadığını gösterecektir. Niçin özgür piyasanın savunucuları buna özgür piyasanın karar vermesini istemiyor(5)?

“Firmam, rekabetçi bir durum elde etmek için özel mülk bir işletim sistemine ihtiyaç duymaktadır.”

GNU işletim sistemi yazılımını rekabet alanından çıkaracaktır. Bu alanda bir rekabet durumu elde edemeyeceksiniz ancak rakipleriniz de size fark atamayacak. Siz ve rakipleriniz farklı alanlarda rekabet edeceksiniz, bu konuda ortak yararınız olacaktır. İşiniz bir işletim sistemi satmaksa, GNU’yu sevemeyeceksiniz ancak bu sizin için zorlayıcı bir durumdur. İşiniz başka bir şeyle alakalıysa, GNU işletim sistemleri satmak gibi pahalı bir işe atılmanızı engelleyecektir.

Her birine ilişkin maliyeti düşürerek birçok kullanıcıdan ve üreticiden gelen hediyelerle GNU’nun gelişimini görmek isterdim.(6)

“Programcılar yaratıcılıkları için bir ödülü hak etmezler mi?”

Herhangi bir şey ödülü hak ediyorsa, bu, sosyal katkıdır. Yaratıcılık sosyal bir katkı olabilir ancak bu yalnızca toplumun sonuçları kullanabildiği ölçüdedir. Yeni programlar yarattıkları için programcılar ödüllendirilmeyi hak ediyorlarsa, aynı mantıkla, bu programların kullanılmasını kısıtlarlarsa, cezalandırılmayı da hak ederler.

“Bir programcı yaratıcılığı için ödül isteme hakkına sahip olmamalı mıdır?”

Zarar verici yolların kullanılmaması şartıyla, çalışma için ücret istemekte ya da bir kimsenin gelirini en üst seviyeye çıkarmak istemesinde bir yanlış yoktur. Ancak günümüzde yazılım konusunda alışılageldik yollarda zarar verici bir durum vardır.

Kullanımlarını kısıtlayarak bir programın kullanıcılarından para almak zarar vericidir çünkü kısıtlamalar miktarı ve programın kullanılma şeklini dşürür. Bu, insanlığın programdan edinebileceği zenginliği azaltır. Kasıtlı bir kısıtlama durumu söz konusu olduğunda, bunun sonucu da kasıtlı zarardır.

İyi bir vatandaşın daha zengin olmak için bu gibi araçları kullanmamasının nedeni şudur: herkes böyle yaparsa, ortak zararlardan dolayı hepimiz daha fakir hale geleceğiz. Bu, Kantçı ahlaktır; ya da Altın Kuraldır. Herkesin bilgilerini saklaması durumunda ortaya çıkacak sonuçlardan hoşlanmadığım için, bir kişinin bile bilgiyi saklamasını hatalı görüyorum. Özel olarak, birinin yaratıcılığı için ödüllendirilmesi isteği, genel olarak bu yaratıcılığın tamamından ya da bir kısmından mahrum kalınmasını haklı kılmaz.

“Programlayıcılar açlıktan ölmeyecek midir?”

Bu soruyu “hiç kimse programcı olmaya zorlanmamaktadır” diye yanıtlayabilirim. Çoğumuz caddede durup gülümseyerek para kazanamayız. Sonuç olarak, caddede durup gülümseyerek açlıktan öldüğümüz için kınanmayız. Başka bir şeyler yaparız.

Ama bu yanlış yanıttır çünkü soruyu soranın üstü kapalı varsayımını kabul etmektedir: yazılımın sahibi değilse, programcılara bir kuruş bile ödenemez. Bu, ya hep ya hiçtir.

Programcıların açlıktan ölmeyecek olmalarının gerçek nedeni, programlama için programcılara para ödenecek olmasının hâlâ mümkün olmasıdır; ancak şimdiki kadar çok ödeme yapılmayacaktır.

Kopyalamanın kısıtlanması, yazılım piyasasında iş yapılmasının tek temeli değildir. Bu en yaygın temeldir(7) çünkü en çok parayı bu getirmektedir. Yasaklanmış ya da müşteri tarafından reddedilmiş olsaydı, yazılım işi, şimdi daha az kullanılan organizasyon temellerine doğru kayardı. Herhangi bir iş tipini organize etmek için her zaman çeşitli yollar mevcuttur.

Muhtemelen programlama, yeni temelde şimdi olduğu gibi kârlı olmayacaktır. Ancak bu, bu değişikliğe karşı bir sav değildir. Satış görevlilerinin şimdi kazandığı paraların bir haksızlık olduğu düşünülmemektedir. Programcılar da aynısını yapsaydı, bu da bir haksızlık olmayacaktı. (Uygulamada, hâlâ bundan çok daha fazlasını gerçekleştireceklerdi.)

“İnsanlar yaratıcılıklarının nasıl kullanıldığını kontrol etme hakkına sahip değil midir?”

“Birinin fikirlerinin kullanımının kontrolü” gerçekte diğer insanların hayatları üzerinde kontrol oluşturur ve genellikle yaşamlarını daha zor hale getirmek için kullanılır.

Fikri mülkiyet [:intellectual property] (8) hakları üzerine dikkatli bir şekilde çalışan insanlar (avukatlar gibi) fikri mülkiyete ilişkin hiçbir içkin hakkın olmadığını söyler. Hükümetin tanıdığı fikri mülkiyet hakları, özel amaçlar için yasama organları tarafından oluşturulmuştur.

Örneğin, patent sistemi, mucitlerin buluşlarının ayrıntılarını açıklaması için kurulmuştur. Patent sisteminin amacı, mucitlerden çok topluma hizmet etmektir. Bir patent için 17 yıllık bir zaman aralığı, son teknoloji ürününün gelişiminin hızıyla karşılaştırıldığında kısaydı. Yalnızca, bir lisans anlaşmasının maliyetinin ve uğraşının üretimin sağlanmasıyla karşılaştırıldığında küçük kaldığı üreticiler arasındaki bir husus olduğu için, patentler, genellikle çok zarar verici değildir. Patentli ürünleri kullanan birçok bireyi engellemezler.

Eski zamanlarda telif hakkı fikri yoktu, o zamanlar, yazarlar, kurgusal olmayan yazınlarda diğer yazarları sıklıkla kopyalamaktaydı. Bu uygulama yararlı idi ve birçok yazarın çalışmasının kısmen olsa bile ayakta kalması için tek yoldu. Telif hakkı sistemi, açık ve net bir şekilde yazarlığı cesaretlendirmek amacıyla oluşturuldu. İcat edildiği bölge için ekonomik olarak yalnızca bir baskıda kopyalanabilen kitaplar az zarar vericiydi ve kitapları okuyan bireylerin çoğunu engellemedi.

Tüm fikri mülkiyet hakları yalnızca toplum tarafından verilen lisanslardır çünkü hatalı ya da doğru bir şekilde, toplumun bütünü bu lisansların verilmesinden kârlı çıkmaktadır. Ancak herhangi bir özel durumda, sormamız gereken soru şudur: bu gibi bir lisansın verilmesiyle daha mı iyi olacağız? Bir kimsenin yapması gereken bir hareketi nasıl lisanslıyoruz?

Günümüzde programların durumu, yüz yıl önceki kitapların durumundan çok daha farklıdır. Bir programın kopyalanmasının en kolay yolu bir komşudan diğerinedir, bir program farklı olan kaynak koduna ve nesne koduna sahiptir ve bir program okuyup zevk almak yerine kullanılmaktadır, bir telif hakkını zorlayan kimsenin hem materyalist hem de manevi açıdan topluma bir bütün olarak zarar verme durumudur; bir kimse kanunların mümkün kılıp kılmamasından bağımsız olarak bunu yapmamalıdır.

“Rekabet bazı şeylerin daha iyi bir şekilde yapılmasını sağlar.”

Rekabetin paradigması bir yarıştır: kazananı ödüllendirerek, herkesi daha hızlı bir şekilde koşma konusunda cesaretlendiririz. Kapitalizm bu şekilde çalıştığında, iyi bir iş yapmış olur; ancak bu sistemin savunucuları bu sistemin her zaman bu şekilde çalıştığını varsayarak hatalı bir iş yapmış olur. Koşucular, ödülün niçin sunulduğunu unutur ve kazanma konusunda aşırı hırslanırlarsa, nasıl olursa olsun diyerek farklı stratejiler bulabilirler, örneğin, diğer koşuculara saldırabilirler. Koşucular ciddi bir kavgaya tutuşurlarsa, hepsi de yarışı geç bitireceklerdir.

Özel mülk ve gizli yazılım, ciddi bir kavgadaki koşucuların eş değeridir. Üzgünüz ki, sahip olduğumuz tek hakem de bu kavgalara karşı çıkmıyor gibi görünmektedir; bu hakem yalnızca bu kavgaları düzenlemektedir (“Koştuğunuz her on metre için, birbirinize bir kere vurabilirsiniz”). Gerçekte yapması gereken kavga edenleri ayırmak ve dövüşmeye çalışan koşucuları cezalandırmak olmalıdır.

“Maddi bir hedefi olmayınca herkes program yapmayı durdurmayacak mıdır?”

Gerçekte, birçok insan mutlak olarak hiçbir parasal amacı olmaksızın program yapacaktır. Programlama, bazı insanlar için karşı konulmaz bir büyüdür, bu kimseler genellikle programlama konusunda en iyi olan kimselerdir. Bu şekilde para kazanamadıklarını düşünseler bile, müzik işine devam eden çok sayıda profesyonel müzisyen vardır.

Ancak genelde sıklıkla sorulmasına rağmen, gerçekte duruma uygun soru bu değildir. Programcılara ilişkin ödeme ortadan kalkmayacak, yalnızca daha az olacaktır. Böylece doğru soru şudur: herkes indirgenmiş bir parasal hedefe göre mi programlama yapacaktır? Benim tecrübelerim durumun böyle olacağını göstermektedir.

On yıldan daha uzun bir süre boyunca, dünyanın en iyi programcılarının birçoğu, başka herhangi bir yerde kazanabileceklerinden çok daha az parayla Yapay Zeka Laboratuarında çalıştı. Çeşitli parasal-olmayan ödüller kazandılar: örneğin, ün ve saygınlık gibi. Ve yaratıcılık da ayrıca bir eğlence, kendi içinde bir ödüldü.

Daha sonra birçoğu, aynı ilginç işi çok daha fazla para kazanarak yapmak için işlerini bıraktı.

Gerçekler şunu göstermektedir: insanlar zenginlerden farklı nedenler için programlama yapacaktır; ancak aynı zamanda çok para kazanma şansına da sahip olurlarsa, bu parayı kazanmayı bekleyecek ve talep edeceklerdir. Düşük ödeme yapan organizasyonlar, rekabette yüksek ödeme yapan organizasyonlara göre daha zayıftır ancak yüksek ödeme yapan organizasyonların yasaklanması durumunda, kötü şeyler yapmaları gerekmez.

“Çaresiz bir şekilde programcılara ihtiyaç duymaktayız. Komşularımıza yardım etmememizi isterlerse, buna uymamız gerekir.”

Aslında bu tip bir isteğe uyacak kadar çaresiz değilsiniz. Unutmayın: “savunma için milyonlar harcanır ama barış için bir sent bile verilmez!”

“Programcılar bir şekilde yaşamlarını sürdürmek zorundadır.”

Kısa vadede bu durum geçerlidir. Ancak, bir programın kullanım hakkını satmaksızın programcıların yaşamlarını kazanmalarının çeşitli yolları vardır. Bu yol şimdi alışılageldik bir yoldur çünkü programcılara ve iş adamlarına en çok parayı getiren yol budur, çünkü para kazanmanın tek yolu bu değildir. Bulmak isterseniz başka yollar da bulmak kolaydır. Aşağıda bir kaç örnek görebilirsiniz.

Yeni bir bilgisayarı piyasaya süren bir üretici, işletim sistemlerinin yeni donanıma taşınması için bir ücret ödeyecektir.

Öğretme, destek ve bakım hizmetleri için de programcıların kullanılması gerekli olabilir.

Yeni fikirlere sahip insanlar, freeware (ücretsiz)(9) olarak programları dağıtabilir, memnun kullanıcılardan bağış isteyebilir ya da destek hizmetlerini satabilir. Hâlihazırda bu şekilde başarılı bir biçimde çalışan insanlarla karşılaştım.

İlişkili ihtiyaçlara sahip kullanıcılar kullanıcı grupları oluşturabilir ve hak ödeyebilir. Bir grup, grup üyelerinin kullanmak istediği programları yazmak için, programlama firmalarıyla anlaşma yapabilir.

Tüm geliştirme çeşitlerine bir Yazılım Vergisiyle finansman sağlanabilir:

Bir bilgisayarı satın alan herkesin yazılım vergisi olarak yüzde x’ini ödemesinin gerekli olduğunu varsayalım. Hükümet, bunu, yazılım geliştirme konusunda harcamak üzere NSF gibi bir birime verir.

Ancak bilgisayar alıcısının kendisi yazılım geliştiricisine bir bağışta bulunursa, vergiye karşı kredi alabilir. Kendi tercihine göre projeye bağışta bulunabilir çünkü ulaşılan sonuçları kullanmayı ummaktadır. Ödemesinin gerekli olduğu toplam vergiye kadar olan miktarda ödeme yapmak için kredi alabilir.

Toplam vergi oranı vergi ödeyenlerin oyuyla belirlenebilir, vergilendirilecek miktara göre ağırlıklandırılır.

Sonuçlar:

  • Bilgisayar kullanan topluluk yazılım gelişimini destekler.
  • Bu topluluk, hangi destek seviyesinin gerekli olduğuna karar verir.
  • Paylarının hangi projelere harcandığına önem veren kullanıcılar, kendileri için bunu seçebilir.

Uzun vadede, programların özgür hale getirilmesi, insanların yalnızca yaşamlarını idame ettirmek için çok sıkı çalışmasının gerekli olmadığı kıtlık-sonrası dünyaya doğru bir adımdır. İnsanlar, yasa yapma, aile danışmanlığı, robot tamiri ve asteroit araştırması gibi gerekli işler konusunda haftada on saat ayırdıktan sonra, kendilerini programlama gibi eğlenceli olan etkinliklere adama konusunda özgür olacaktır. Programlama sayesinde geçimini sağlamak için gerekli kazancı sağlayabilme ihtiyacı olmayacaktır.

Gerçek üretkenliği sağlamak için tüm toplumun gerçekleştirmesi gereken iş miktarını büyük ölçüde azalttık ancak bunun yalnızca çok az bir bölümü, işçiler için boş vakte çevrildi çünkü üretken etkinliğe eşlik etmek için çok miktarda üretken-olmayan etkinlik gereklidir. Bunun temel nedenleri, bürokrasi ve rekabete karşı olan izometrik savaşlardır. Özgür yazılım, yazılım üretimindeki bu sorunları büyük ölçüde azaltacaktır. Bunu, üretkenlikteki teknik kazançların bizim için daha az çalışmaya dönüşmesi için yapmalıyız.

Dipnotlar

  1. Buradaki anlatım biçimi dikkatsizcedir. Amaç, GNU sistemini kullanma izni için hiç kimsenin ücret ödemesinin gerekli olmayışıdır. Ancak sözcükler bu durumu çok net anlatamamaktadır ve insanlar bunu genellikle GNU’nun kopyalarının her zaman düşük bir ücretle ya da ücretsiz olarak dağıtılması gerektiği olarak yorumlamaktadır. Amaç, hiçbir zaman bu değildir; daha sonra, bildirgede firmaların kâr için dağıtım hizmetini sağlama olanağı ifade edilmektedir. Sonuç olarak, özgürlük anlamındaki “free” (ç.n. özellikle İngilizce bırakılmıştır) ile ücret anlamındaki “free” arasındaki ayrımı dikkatli bir şekilde yapmayı öğrendim. Özgür yazılım, kullanıcıların, dağıtma ve değiştirme özgürlüğüne sahip oldukları yazılımdır. Bazı kullanıcılar kopyaları ücretsiz olarak temin edebilirken bazıları kopyaları edinmek için ödeme yapar – ve yazılımın daha da geliştirilmesi için finansman bulunursa, o zaman durum daha da iyi olur. Önemli olan şey şudur: Kopyaya sahip olan herhangi biri, bu kopyanın kullanımı konusunda diğer insanlarla işbirliği yapma özgürlüğüne sahiptir.
  2. “Vermek” [:give away] ifadesi, ücret ve özgürlük arasındaki ayrımın doğru konulmadığını gösteren bir başka belirtidir. Günümüzde özgür yazılımdan bahsederken bu ifadeden kaçınmanızı öneriyoruz. Ayrıntılı bir açıklama için “kafa karıştıran kelimeler ve ifadeler” bağlantısını ziyaret ediniz.
  3. Burada “free” kelimesinin iki farklı anlamı arasında dikkatli bir ayrım yapamadığım başka bir durum var. Burada anlaşılan özgür ifadesi hatalı değildir – ücretsiz olarak, arkadaşlarınızdan ya da İnternetten GNU yazılımının kopyalarını alabilirsiniz. Ancak burada yanlış anlamı ifade etmektedir.
  4. Buna benzer bir çok şirket günümüzde vardır.
  5. Bir firma olmaktan çok bir hayır kurumu olmasına rağmen, Özgür Yazılım Vakfı 10 yıldır finansmanının çoğunu dağıtım hizmetinden sağlamaktadır. FSF’den birşeyler satın alarak çalışmasını destekleyebilirsiniz.
  6. GNU C Derleyicisinin devamlılığının desteklenmesi için, bir grup bilgisayar firması 1991’de finansman sağladı.
  7. Özel mülk yazılımın yazılımda en yaygın para kazanma yolu olduğunu söylemekle yanılmışım. Gerçekte en yaygın iş modeli özelleştirilmiş yazılım geliştirilmesidir. Bu kiraların toplanması olasılığını önermemektedir, böylece firmalar getiri edinmeye yönelik olarak gerçek çalışmayı sürdürmelidir. Özelleştirilmiş yazılım iş dünyası özgür yazılım dünyasında da varolmaya devam edecektir, fazla veya az değişmeden. Bu yüzden, çoğu ücretli programcının özgür yazılım dünyasında daha az kazanmasını artık beklemiyorum.
  8. 1980lerde “fikri mülkiyet hakları” [:intellectual property] “konusunda” konuşmanın ne kadar karışık olduğunu farketmemiştim. Terim açıktır ki taraflıdır; çok kurnaz gerçek şudur ki çok farklı konular üzerine tamamen farklı yasaları bir araya getirmektedir. Bu günlerde kişilerin “fikri mülkiyet hakları” terimini tamamen redetmesine çabalıyorum, başkaları bunun uyumlu, tutarlı bir konu olduğunu sanmasın diye. Açık olmanın bir yolu patentleri, telif hakkını, ve markaları ayrı ayrı tartışmaktır. Daha fazla açıklamayla bu terimin yaydığı karışıklık ve taraflılığı görebilirsiniz.
  9. Sonradan “özgür yazılım” ve “ücretsiz yazılım” [:freeware] terimlerini ayırmayı öğrendik. “Ücretsiz yazılım” teriminin anlamı dağıtmakta özgür olduğunuz, ancak genellikle kaynak kodu çalışamayacağınız, değiştiremeyeceğinizdir, bu yüzden çoğu özgür yazılım değildir. Daha fazla açıklama için kafa karıştıran kelimeler ve ifadeleri ziyaret ediniz.

gnu.org

Skype for Linux 1.3 Alpha Sürümü Çıktı

Microsoft, Linux projeleri üzerinde çalışmaya devam ediyor. Skype'ın yeni sürümü birçok geliştirmeyle birlikte geliyor. Skype for Linux 1.3 Alpha sürümünde birçok hata düzeltmesi yapıldı. Eğer 1.2 sürümünü kullanıyorsanız, daha bir iyi performans almak için 1.3 sürümünü denemelisiniz.  Skype 1.3 for Linux Alpha, desteklenen bütün dağıtımlardaki post-install script problemi çözülmüş. Bu

July 30, 2016

Overlord II Linux'e Geldi

Overlord'un Linux'e gelmesinden bir hafta sonra, Virtual Programming, Overlord II'yi Linux için yayınladı.  Overlord II'yi satın almak isterseniz şu adresten satın alabilirsiniz. Overlord II Sistem Gereksinimleri Linux: Ubuntu İşlemci: Intel Core2Duo veya ona yakın AMD işlemci Sistem Belleği: 2GB Grafik: nVidia/AMD OpenGL 3.2 uyumlu Grafik Belleği: 1GB Hard Disk Alanı: 4.7GB Ses:

July 28, 2016

Ubuntu 16.10 (Yakkety Yak) Alpha 2 Sürümü Çıktı

Ubuntu 16.10'un ikinci alpha sürümü çıktı. Şu an için sadece Lubuntu, Ubuntu Kylin ve Ubuntu MATE sürümlerini kullananlar yararlanabilir. Xubuntu, Ubuntu GNOME ve Kubuntu kullanıcılarının ilerleyen sürümleri beklemesi gerekecek. Alpha sürümleri, içerisinde birçok hatayı barındırabileceğinden günlük kullanım için uygun değildir. Deneyimli bir kullanıcı değilseniz kararlı sürümün

July 25, 2016

İsim dediğin nedir ki?

İsimler anlamları iletirler; seçtiğimiz isimler, söylediğimiz şeylerin anlamını belirler. Uygun seçilmemiş bir isim, insanlara yanlış bir fikir verir. “Gül”e “Gül” demeseydik yine de güzel kokacaktı, ama ona kalem diyecek olursak onunla yazmaya çalışacak insanlar hayal kırıklığına uğrayacaktır. Ayrıca kaleme “gül” dersek insanlar bunun ne işe yaradığını da anlayamazlar. Dolayısıyla eğer biz de sistemimize Linux diyecek olursak, bu adlandırma sistemin kökeni, geçmişi ve amacı konusunda yanlış bir fikir verir. Ama eğer GNU/Linux denecek olursa (ayrıntılı olmasa da) doğru bir fikir verecektir.” diye başlıyor sözlerine Richard Matthew Stallman. “Özgür yazılım” fikrini ortaya atan ilk kişi, özgür yazılım aktivisti, hacker ve yazılım geliştiricisi Stallman; çoğumuzun pek de önem vermediği, fakat pek önemli bir konuya temas ediyor, “İsim Dediğin Nedir Ki?” başlıklı yazısında.  “Ad konusuyla ilgili olduğundan, GNU/Linux sisteminin geçmişini öğrenmek için http://www.gnu.org/gnu/linux-and-gnu.html sayfasına bakın. GNU/Linux SSSve GNU’yu Hiç Duymamış GNU Kullanıcıları başlıklı yazılarımızı da okuyabilirsiniz.” açıklamasını yapan Stallman; yazısını şu biçimde sürdürüyor:

richard-m-stallman

İsimler anlamları iletirler; seçtiğimiz isimler, söylediğimiz şeylerin anlamını belirler. Uygun seçilmemiş bir isim, insanlara yanlış bir fikir verir. “Gül”e “Gül” demeseydik yine de güzel kokacaktı, ama ona kalem diyecek olursak onunla yazmaya çalışacak insanlar hayal kırıklığına uğrayacaktır. Ayrıca kaleme “gül” dersek insanlar bunun ne işe yaradığını da anlayamazlar. Dolayısıyla eğer biz de sistemimize Linux diyecek olursak, bu adlandırma sistemin kökeni, geçmişi ve amacı konusunda yanlış bir fikir verir. Ama eğer GNU/Linux denecek olursa (ayrıntılı olmasa da) doğru bir fikir verecektir.

Peki adlandırma meselesinin topluluğumuz için ne önemi var? İnsanların sistemin kökenini, geçmişini veya amacını bilip bilmemesi önemli mi? Evet önemli. Çünkü geçmişi unutan insanlar onu tekrar etmeye mahkumdur. GNU/Linux etrafında gelişen Özgür Dünya güvende değil; bizi GNU’yu geliştirmeye iten sorunlar tamamen ortadan kalkmadı. Üstelik bunların tekrar ortaya çıkma tehlikesi var.

Neden bu işletim sistemine Linux yerine GNU/Linux demenin doğru olduğunu açıkladığım zaman insanlar bazen şu cevabı veriyor:

Varsayalım ki GNU Projesinin bu iş için takdir edilmesi gerekiyor. Peki ama insanlar takdir etmediğinde cidden sızlanmaya değer mi? Asıl önemli olan işin yapılmış olması mı, yoksa kimin yaptığı mı? Sakin olmalı ve işinizi doğru yaptığınız için gurur duymalısınız. Emeğinizin takdir edilip edilmemesini de dert etmemelisiniz.

Bu akıllıca bir öğüt olurdu. Tabii şayet durum sizin dediğiniz gibi olsaydı… Yani şayet iş bitmiş, sıra dinlenmeye gelmiş olsaydı… Keşke böyle olsaydı! Ama tehditler bir yığın. Üstelik vakit gelecekten emin olma vakti değil. Topluluğumuzun gücü kendini özgürlüğe ve işbirliğine adamış olmasından geliyor. GNU/Linux adını kullanmak, insanların bu idealleri hatırlayıp başkalarını da bilgilendirmeleri için bir yoldur.

GNU’suz da iyi bir özgür yazılım üretmek mümkün; Linux adına da pek çok iyi işler yapıldı. Ama “Linux” terimi, isim olarak ortaya çıktığından beri işbirliği yapma özgürlüğüne adanmamış bir felsefeye sahip. Linux ismi, iş dünyası tarafından giderek artan düzeyde kullanıldıkça, onu topluluk ruhuyla bağdaştırmakta daha da büyük sorunlar yaşayacağız.

Özgür yazılımın geleceğine karşı önemli bir tehdit; “Linux” dağıtımları hazırlayan şirketlerin, rahatlık ve güç kazandırdığı bahanesiyle özgür olmayan yazılımları GNU/Linux‘a ekleme eğilimleridir. Bütün büyük ticari dağıtımların geliştiricileri böyle davranıyor. Hiçbiri bütünüyle özgür bir dağıtım üretmiyor. Bir çoğu, dağıtımlarındaki özgür olmayan paketleri açıkça belirtmiyor da. Hatta çoğu, özgür olmayan yazılımlar geliştirip bunları sisteme ekliyor. Kimi ise çirkin bir şekilde, kullanıcısına Microsoft Windows’un verdiğinden daha fazla özgürlük vermeyen, “kullanıcı başına lisanslanmış” “Linux” sistemlerinin reklamını yapıyor.

İnsanlar özgür olmayan yazılımların eklenmesini, “Linux’un yaygınlık kazanacağını” bahane ederek haklı çıkarmaya çalışıyor. Böyle diyerek aslında popülerliği özgürlüğün üzerinde tutuyorlar. Bazen de bunu açıkça itiraf ediyorlar. Mesela Wired Magazine; Robert McMillan’ın (Linux Magazine editörü) açık kaynaklı yazılımların politik kararlardan değil, teknik kararlardan güç alması gerektiğini düşündüğünü söylüyor. Ayrıca Caldera’nın CEO‘su kullanıcıları açık açık özgürlük gayelerini bir kenara bırakıp “Linux’un popülerliği” için çalışmaya teşvik ediyor. (http://www.zdnet.com/stallman-love-is-not-free-3002091004/)

Eğer popülerlikten kastımız, özgür olmayan yazılımlar içeren herhangi bir GNU/Linux dağıtımını kullanan insanların sayısı ise, GNU/Linux sistemlerine özgür olmayan yazılımlar eklemek belki popülerliği artıracaktır. Ancak aynı zamanda bu durum alttan alta, topluluğun, özgür olmayan yazılımları sanki iyi bir şeymiş gibi görmelerini de teşvik etmektedir. Eğer arabayı yolda tutmayı beceremiyorsanız, hızlı sürmenizin ne anlamı var?

Özgür olmayan “eklenti” bir kitaplık ya da programlama aracı olduğunda, özgür yazılım geliştiricileri için bir tuzağa dönüşebilir bu durum. Yazılım geliştiricileri, özgür olmayan bir pakete bağımlılık duyan bir özgür yazılım geliştirdiklerinde, bu yazılım tam anlamıyla özgür bir sistemin parçası olamayacaktır. Motif ve Qt geçmişte pek çok özgür yazılımı bu yolla tuzağa düşürdü ve bu durum, çözümü yıllar süren sorunlar doğurdu. Motif sorunu hâlâ tamamen çözüme kavuşturulamadı, çünkü LessTif’in biraz daha üzerinden geçmek gerekiyor (lütfen siz de gönüllü olun!). Sun’ın özgür olmayan Java uygulaması da benzer bir etki yaratıyor: Java Kapanı (Tarihi not: Kasım 2006 itibariyle Sun şirketi, Java platformunu GNU GPL ile yeniden yayınlama çalışmalarının tam ortasında bulunuyor.)

Eğer topluluğumuz bu yolda ilerlemeye devam ederse, bu durum GNU/Linux‘un geleceğini özgür ve özgür olmayan bileşenlerden oluşmuş bir mozaiğe dönüştürebilir. Bundan beş yıl sonra eminiz ki hâlâ pek çok özgür yazılımımız olacak, ama eğer dikkatli olmazsak, sistemimiz, kullanıcıların bulmayı umduğu özgür olmayan yazılımlar olmaksızın pek kullanışlı olmayacak. Bu gerçekleşirse özgürlük çabalarımız başarısızlığa uğramış demektir.

Eğer özgür alternatifler yayınlamak sadece bir programlama meselesi olsaydı, topluluğumuzun geliştirme kaynakları arttıkça gelecekteki problemleri çözmek daha kolaylaşabilirdi. Ama biz bu işi zorlaştıran tehditlerle karşı karşıyayız: Özgür yazılımı yasaklayan kanunlar. Yazılım patentleri çoğaldıkça ve DMCA benzeri kanunlar, DVD izlemek veya RealAudio yayınlarını dinlemek gibi önemli işler için yapılmış özgür yazılımların geliştirilmesini yasaklamak amacıyla kullanıldıkça, patentli ve saklı veri biçimlerine karşı mücadele etmek için bunları kullanan özgür olmayan yazılımları reddetmekten başka bir yolumuz kalmayacak.

Bu tehditlere cevap verebilmek için pek çok farklı mücadele şekli geliştirmek gerekiyor. Ama bir tehdidi boşa çıkarmak için ihtiyacımız olan şey, her şeyden önce, işbirliği yapma özgürlüğü gayemizi hatırlamaktır. Sırf güçlü, güvenilir yazılımlar üretme arzusunun insanları büyük çabalar sarfetmeye teşvik etmesini bekleyemeyiz. Kendilerinin ve topluluklarının özgürlüğü için savaşan, bunu yıllarca sürdürüp yılmayan insanların kararlılığına ihtiyacımız var.

Bizim topluluğumuzda bu amaç ve kararlılık asıl olarak GNU Projesi’nden kaynaklanıyor. Özgürlükten ve topluluktan, arkasında dimdik durulacak şeyler olarak bahsedenler bizleriz, “Linux”tan bahseden kuruluşlar bunlara pek değinmez. “Linux” ile ilgili dergiler genellikle özgür olmayan yazılımların reklamlarıyla doludur. “Linux”u paketleyen şirketler sisteme özgür olmayan yazılımlar ekliyor; başka şirketler özgür olmayan yazılımlar vasıtasıyla “Linux’u destekliyor”; “Linux” kullanıcı grupları ise bahsi geçen bu yazılımları tanıtmaları için satıcıları davet ediyor. Dolayısıyla topluluğumuzdaki insanların, özgürlük ve kararlılık idealleriyle buluştukları başlıca mekan GNU Projesi’dir.

Peki insanlar bu ideallerle buluştuklarında, bu ideallerin kendileriyle bağlantısını hissedebilecekler mi?

GNU Projesi’nden çıkan bir sistem kullandıklarını bilen insanlar kendileri ile GNU arasında doğrudan bir bağlantı görebilirler. Bizim felsefemizi bir çırpıda kabul etmeseler de en azından bunun hakkında ciddi ciddi düşünmek için bir neden göreceklerdir. Kendilerini “Linux kullanıcıları” olarak gören ve GNU Projesi’nin “Linux için kullanışlı olduğu kanıtlanmış araçlar geliştirdiğine” inanan kişiler kendileri ile GNU arasında sadece dolaylı bir ilişki kurabilirler. GNU felsefesiyle karşı karşıya geldiklerinde de bu felsefeyi gözardı etmeleri muhtemeldir.

GNU Projesi idealisttir ve bugün kim idealizmi savunsa büyük bir engelle karşılaşır. Bu engel; hakim ideolojinin, insanları idealizmi “kullanışsız” bulup göz ardı etmeye teşvik etmesidir. Halbuki bizim idealizmimiz oldukça kullanışlıdır: özgür bir GNU/Linux işletim sistemimizin var olmasının nedeni de budur aslında. Bu sistemi seven insanlar bunun bizim idealizmimiz sayesinde gerçekleştiğini bilirler.

Eğer “görev” gerçekten tamamlanabilmiş olsaydı, emeğimizin takdir edilmesi dışında bir mesele olmasaydı belki bu konuyu boşverebilirdik. Ama bu durumda değiliz. İnsanları yapılacak işleri yapmaya yüreklendirmek için şimdiye kadar yaptıklarımızın takdir edilmesi gerekiyor. Lütfen işletim sistemini GNU/Linux olarak adlandırarak bize yardımcı olun.

gnu.org

July 23, 2016

Özgür yazılım özgür olmayana bağımlı olduğu zaman

Dünya üzerinde “Özgür Yazılım” fikrini ortaya atan ilk kişi, özgür Yazılım aktivisti, hacker ve yazılım geliştiricisi Richard Matthew Stallman‘ın gnu.org üzerinde yayımlanan “When Free Software Depends on Nonfree” adlı yazısının Nuran Kısı tarafından yapılmış çevirisidir. Yazı, LKD’nin linux.org.tr sayfası üzerinde yayımlanmıştır. Yazı, şöyle:

Bir program özgür yazılım olduğunda, bunun anlamı programın, kullanıcılarına programın yaptığı şeyi kontrol etmelerini sağlayan dört özgürlük (gnu.org/philosophy/free-sw.) vermesidir. Pek çok durumda bu, programın dağıtımının ahlaka uygun olması için yeterlidir, fakat her zaman değil. Bazı özel durumlarda başka problemler ortaya çıkabilir. Bu makale, özgür bir programın yükseltilmesi için özgür olmayan bir programa gerek duyulması halinde ortaya çıkan, hemen göze çarpmayan bir problemi tanımlamaktadır.

Eğer bir özgür programın kullanımı, kaçınılmaz bir biçimde özgür olmayan başka bir programın kullanımına bağlıysa, bu özgür program için “tuzağa düşmüş” diyebiliriz. Bu programın kodu özgür yazılımdır ve belki siz bu kodların belli parçalarını diğer özgür programlara iyi, ahlaki sonuçlarla kopyalayabilirsiniz. Ama tuzağa düşmüş bu programı çalıştırmamalısınız, çünkü bu özgürlüğünüzün diğer özgür olmayan programa teslim edilmesi sonucunu doğurur.

Özgür yazılım prensiplerini benimseyen biri bilerek tuzağa düşmüş bir program yapmayacaktır. Fakat özgür programların çoğu özellikle bu prensipleri desteklemeyen veya sorunu anlamayan kişi ve şirketler tarafından geliştirilir.

Özgür olmayan bir programa bağlılık pek çok biçimde karşımıza çıkabilir. Programlama dilinin özgür bir gerçekleştirime sahip olmaması bunun en basit biçimidir. GNU sistemi için 1980’lerde yazdığım ilk programlar, GNU Emacs, GDB ve GNU Make de dahil, AT&T’nin özgür olmayan C derleyicisinde derlenmek zorundaydı, çünkü ben GCC’yi yazana kadar özgür bir C derleyicisi yoktu. Neyse ki bu tip sorunlar neredeyse tamamen tarihe karıştı, şimdi özgür yazılım geliştirmek için kullanılan hemen hemen tüm diller için özgür derleyicilere sahibiz.

Bu tip bir tuzağa düşmüş programı, programlama dilini başka bir programlama diline çevirerek yayımlayabiliriz veya ilgili programlama dilinin özgür bir gerçekleştirimini yayımlayarak bunu yapabiliriz. Dolayısıyla, tamamen özgür bir Java gerçekleştirimi mevcut olduğunda bütün özgür Java programları Java tuzağından kurtulmuş olur.

Bu tip bir bağımlılık kavramsal olarak basittir çünkü nihayetinde böyle bir bağımlılık verili bir andaki durumdan kaynaklanmaktadır. T zamanında, özgür bir program olan P programı, özgür olmayan Q programlama platformu olmaksızın çalışmaz. Dil bilimden ödünç alınacak bir terimle ifade edilirse, bu ilişki “eş zamanlı”dır.

Yakın geçmişte, veritabanı programlarında başka bir tür bağımlılığı programın herhangi bir versiyonunu özgür dünyada yapabilmekle birlikte bu programı N versiyonundan N+1 versiyonuna yükseltmek için özgür olmayan bir programın gerektiği durumda gördük.

Bu durum veritabanının dahili formatının N versiyondan N+1 versiyona değişmesinden kaynaklanır. Eğer ciddi bir şekilde N versiyonunu kullanmaktaysanız, halihazırda N versiyonunun formatında geniş bir veritabanına sahipsinizdir. Veritabanı yazılımını N+1 versiyonuna yükseltmek için veritabanını yeniden formatlamanız gerekir.

Bunu yapmak için patentli bir yeniden formatlama programı çalıştırmak ya da geliştiricinin SaaSS (Service as a Software Substitute – Yazılım Yerine Servis) servisini kullanmak gerekiyorsa, veritabanı yazılımı tuzağa düşmüştür – ama daha az gözle görülür bir biçimde. Veritabanı programının herhangi bir versiyonu özgür olmayan bir yazılım veya SaaSS olmadan kullanılabilir. Zaman zaman programı yükseltmeyi gerektirecek biçimde uzun süreli bir kullanım sonucunda bahsedilen problem ortaya çıkar; programı bu şekilde bazı özgür olmayan yazılımlar veya muadilleri olmadan kullanamazsınız. Bu veritabanı programı zaman içinde tuzağa düşer -buna dil bilimden ödünç alınabilecek başka bir ifadeyle “diyakronik/artzamanlı olarak tuzağa düşmüş” diyebiliriz.

Örneğin, OpenERP programı, diyakronik olarak tuzağa düşmüştür. Medikal klinik yönetimi amaçlı özgür paketimiz GNU Health, başlangıçta OpenERP kullanıyordu. 2011 yılında, GNU Health geliştiricisi Luis Falcón, OpenERP bir sonraki sürümüne yükseltmek için veritabanını (bütün hastaların tıbbi verileri) yeniden formatlanmak üzere OpenERP’nin sunucusuna göndermek gerektiğini fark etti. Bu SaaSS’tir: GNU Health kullanıcısının (bir kliniğin), kendi hesaplamasını (computing) ve verisini OpenERP‘i geliştiren şirkete emanet etmesini gerektirir. Falcón boyun eğmek yerine, GNU Health’i Tryton kullanarak yeniden yazdı.

SaaSS kullanmak doğası gereği, casusluk özelliği ve genel gizli kapısı olan bir özel mülkiyetli yazılımı çalıştırmakla eşdeğerdir. Servis, kullanıcıların yeniden biçimlendireceği veritabanının bir kopyasını saklayabilir. Servisi işleten şirkete, verinin herhangi bir biçimini herhangi birine bilinçli olarak hiçbir zaman göstermeyeceği konusunda güvensek bile, çeşitli ülkelerin istihbarat birimleri tarafından ya da güvenlik kırıcılar (lütfen onları “hacker” olarak adlandırmayalım) tarafından erişilmeyeceğinden emin olamayız.

Bir program diyakronik olarak tuzağa düşmüşse, onu bu tuzaktan kurtarmak tek seferlik bir programlama işinden fazlasını gerektirir. Onun yerine, veri formatında bir değişiklik olduğu her durumda, bu iş sürekli olarak yapılmalıdır. Bunu uzun süreli yapmaya devam etme sorumluluğu gerektiren bir proje başlatmak kolay değildir. Şirkete, kullanıcıları tuzağa düşürmeyi durdurması konusunda baskı yapmak daha kolay olabilir- bunu yapana kadar tuzağa düşmüş programı kullanmayı reddetmek yoluyla. Programı özgürleştirmenin ne kadar zor olduğu göz önünde bulundurursak, bu tip programlardan uzak durmanız daha iyidir.

Diyakronik olarak tuzağa düşmüş bir programı özgür olmayan bir yazılım kullanmadan denemek mümkündür, fakat yüzeysel bir şeyler yapmaktan daha fazlasını yapacaksanız, programı gerçekten kullanmaktan sakınmak zorundasınız. İşletmeler ve bireyler bu tip bir sorunun olmadığı özgür alternatifler bulacaklardır; tuzaktan kaçınmak için gereken tek şey onu fark etmektir.

Richard Matthew Stallman

Çeviren: Nuran Kısı

July 19, 2016

HONEYPOT NEDİR ?



Bir analoji ile baslayalim,

Okul caglarinda bir asi furyasi alir basini giderdi. Tenefus  aralarinda ya da o anki ders iptal edilip, gelen hemsireler tarafindan agrisi sizisi 2-3 gunde anca gecen ignelerden muzdaribizdir eminimki. Peki bu 2-3 gunluk agri sizi bize ileride ne kazandirdi? Atiyorum kizamik asisi olduk, vucut kizamik virüsüyle daha once karsilasmadigi icin antikor uretip savunmayi sagladi. İlerleyen senelerde tekrar bir kizamik virüsü ile karsilasan bizler, hastaligi tekrar gecirmedik ya da cok hafif bir sekilde atlattik.

Honeypot diye geldik, biyoloji anlatiyor diyebilirsiniz ama bu sekilde orneklendirme daha kalici oluyor :)

Simdi vucudunuzun bir kurumsal bir sirket oldugunu dusunun. Yine bir guvenlik soz konusu. Saldirinin nereden gelecegini bilmiyoruz? Ne sekilde gelecegini bilmiyoruz? Bilsek bile ne siddette gelecegini nasil onlem alinacagini bilmiyoruz.

Bunun icin bir honeypot projesi baslatmislar. Amac disaridan gelecek saldiriyi kaydedip, loglayarak saldirganin ne tur ataklar yaptigini sistemde hangi komutlari calistirdigini tespit edip gidisata gore onlem almaya katki sagliyor.

Bir nevi tuzak sistem diyebiliriz, disaridan gelen adam bunun gercek bir makine(insan) oldugunu sanip uzerinde cesitli denemeler yaparken karsi tarafin onu analiz ettiginden haberi olmuyor, Bizse gelen saldirilari izleyip sistemi ona gore korumaya alip keyfimize bakiyoruz.

Yukarida hastaliklardan bahsetmistik, cesit cesit demistik. Aynı sekilde sirketinizde calisan sistemler/servisler de cesit cesit. Ssh, ftp, web yaygin olarak kullanilan servislerden. Saldirganlar genelde bu servisleri ele gecirmeye yonelik denemelerde bulunacaktir.

Her bir servis icin honeypotlar bulunmaktadir, bunlarin hepsinin bir arada oldugu bir virtualmachine imajı olan honeydrive kullanılabilir. Ya da yok ben ayri ayri ssh honeypotunu, ftp honeypotunu kuracagim derseniz. Asagidaki linkte cesitli honeypotlar bulunmakta. Dilediginizi sisteminize kurarak guvenlik onleminizi arttirabilirsiniz.

https://github.com/paralax/awesome-honeypots

Honeydrive imajını kullanabilmek icin bir adet virtualbox'a ihtiyaciniz olacak.

https://bruteforce.gr/honeydrive 

Buradan indirmeyi yapabilirsiniz.

 Kurulum asamasi gayet basit, inen imaja cift tiklayip sanal makinede acabilirsiniz. İcerisinde cesitli honeypotlari barindirdigini gorursunuz.




Hepinize kolay gelsin,
Görüşmek üzere...





July 14, 2016

July 13, 2016

PowerShell parola dosyası ile vcenter’a nasıl bağlantı kurulur?

PowerCLIVMware Vcenter bağlantısı kuran zamanlanmış PS betikleri (scheduled PowerShell task), doğrudan hesap bilgilerinin koda eklenmesi, zamanlanmış göreve doğrudan tanımlanan hesap yada parola dosyası (credential file) kullanarak sağlanabiliyor.

Güvenlik ve tam test edilebilirlik sağlamasından dolayı parola dosyasının kullanımı daha uygun bir yöntemdir. Şimdi bu dosyayı nasıl oluşturabileceğimizi ve kullanacağımızı inceleyelim. Parola dosyasındaki bilgiler kriptolu tutulur.

PS Vcenter Parola dosyası nasıl oluşturulur?

Add-PSSnapIn VMware.VimAutomation.Core
New-VICredentialStoreItem -host my-vcenter-server -user hamdi -password ****** -file "C:\PowerCLI\credfile.xml"

PS Vcenter bağlantısı kurulurken parola dosyası nasıl kullanılır?

Add-PSSnapIn VMware.VimAutomation.Core
$creds = Get-VICredentialStoreItem -file “C:\PowerCLI\credfile.xml”
Connect-viserver -Server $creds.Host -User $creds.User -Password $creds.Password

July 10, 2016

Calibre Kurulumu Nasıl Yapılır?

Calibre, içerisinde e-kitap dönüştürücüsü, e-kitap görüntüleyici gibi birçok özelliği barındıran, ayrıca epub, cbz, mobi ve fb2 gibi çok popüler formatları destekleyen bir açık kaynak e-kitap yönetim yazılımıdır. Calibre Kurulumu Arch Linux, Manjaro, ArchBang, Antergos ve diğer Arch Linux türevli dağıtımlarda Calibre'yi kurmak için aşağıdaki komutları çalıştırın. sudo pacman -Sy yaourt

FFmpeg 3.1.1 nasıl yüklenir?

Popüler bir multimedya kapsamı olan FFmpeg; kolaylıkla mux, demux, stream, filtre, ses ve video içeriğini oynatmanıza, kodlamanıza olanak sağlar. FFmpeg, multimedya dosyalarını dönüştürmek için araçlar sunar. FFmpeg kütüphaneleri çeşitli işlevselliklerle gelirler: Ses ve video codecleri için kodlayıcılar ve kod çözücüleri içeren bir kütüphane olan libavcodec, multimedya konteyner formatları için demuxer ve muxer içeren kütüphane libavformat, medya filtreleri içeren bir kütüphane olan libavfilter, görüntü ölçeklemesi yapan bir kütüphane libswscale, optimize edilmiş ses örnekleme, rematrixing ve örnek format dönüştürme işlemleri gerçekleştiren bir kütüphane libswresample bunlardan bazılarıdır. Bilindiği gibi, 1 Temmuz 2016‘da FFmpeg’in “Laplace” kod adlı 3.1.1 sürümü duyuruldu. Yeni filtreler eklenen sürüm, pek çok optimizasyonlar içeriyor. FFmpeg 3.1.1 hakkında ayrıntılı bilgi edinmek için sürüm notlarını inceleyebilirsiniz. Herhangi bir sorusu olanın sorusunu #ffmpeg IRC kanalından (irc.freenode.net üzerinden) ya da e-posta listeleri aracılığıyla sorabileceği belirtildi. Bu yazıda; Ubuntu 16.04 Xenial Xerus, Ubuntu 15.10 Wily Werewolf, Ubuntu 14.04 Trusty Tahr ile Linux Mint 18 Sarah, Linux Mint 17.3 Rosa, Linux Mint 17.2 Rafaela, Linux Mint 17.1 Rebecca, Pinguy OS 14.04, Elementary OS 0.3 Freya, Peppermint Five, LXLE 14.04 ve diğer Ubuntu türevlerine FFmpeg 3.1.1’in nasıl yüklendiğini ele alacağız.

Yükleme işlemi PPA depo üzerinden yapıldığı için, kolaydır. Yapmanız gereken tek şey ilgili PPA depoyu sisteminize eklemek ve yükleme komutlarını vermektir. O halde kuruluma geçebiliriz.

sudo add-apt-repository ppa:djcj/hybrid

sudo apt-get update

sudo apt-get install ffmpeg

Daha sonra gerek duyarsanız, FFmpeg’i kaldırmak için şu komutu kullanabilirsiniz:

sudo apt-get remove ffmpeg

Güvenlik Güncellemeleri Nasıl Kurulur? [Ubuntu/Debian]

Debian tabanlı sistemlere işlevsellik kazandıran unattanded-upgrades paketi ile Debian sistemlerde güvenlik güncellemelerini kurabilirsiniz. Ayrıca güvenlik güncellemelerinin kurulumunu da otomatik olarak ayarlayabilirsiniz. Gerekli Paketlerin Kurulumu Varsayılan olarak unattanded-upgrades paketi sisteminizde kurulu olarak gelmiş olmalı. Eğer kurulu değilse aşağıdaki komut ile kurulumu