COMPİLER NEDİR?
Basitçe bir dilde yazılmış olan kodu (kaynak kodu yada source code)
istenilen başka bir kod haline dönüştüren programdır. Genelde üretilen bu kod
ortama göre çalıştırılabilir kod (executable code) olarak üretilmektedir. Ancak
bir derleyicinin daha doğru tanımı bir dildeki kodu başka dile çeviren program
olarak yapılabilir. Örneğin C dilinde yazılan bir programı PASCAL diline
çeviren programlara derleyici adı verilebilir. Derleyicinin diğer bir tanımı
ise daha üst seviye bir dilden daha alt seviyeli bir dile tercüme olarak kabul
edilebilir. Buna göre örneğin C dilinden Assembly veya makine dili gibi daha
alt dillere tercüme ile derleyici kavramı daha da sınırlandırılmış olarak kabul
edilebilir. Derleyiciler günümüzde daha çok bir dilde yazılmış koddan, işletim
sistemi ve donanım bağımlı kodların üretilmesinde kulllanılmaktadırlar.
DEBUGGER NEDİR? NE İŞE YARAR?
Bilgisayar
programcıları arasında oldukça sık kullanılan terimlerdir. Tam karşılıkları böcek ve böcekten arındırmadır. Bir
programın umulmadık noktalarında hatalar varsa ve program zaman zaman yanlış
çalışıyorsa, o programda BUG (Böcek) bulunduğuna ilişkin cümleler kullanılır.
Bu hataların bulunarak düzeltilmesi sürecine DEBUG adı verilir. Bu deyimin
bilgisayar terminolojisine girmesinin hikayesiyse oldukça ilginçtir.
MARK
II elektromekanik bilgisayarı için 1950 li yıllarda program geliştiren Grace
Hopper isimli ünlü kadın programcı, hatalı çalışan programındaki problemi bir
türlü bulamamaktaydı. Uzun aramalar sonucunda, bilgisayarın röleleri arasında
sıkışmış kalmış bir böcek ölüsünün bütün sorunların kaynağı olduğu
anlaşılmıştı.
Buradan
da anlaşılacağı gibi Debugger hata ayıklayıcı demektir. Derleyici programın
arka planında çalışarak yazılan kodlar arasındaki hataları bulmaya çalışır.
LİNKER NEDİR?
Bir derleyici tarafından
üretilmiş olan kodları bağlayarak işletim sisteminin çalıştırabileceği tek bir
kod üreten programdır.
Günümüzde hızla
gelişen programlama ihtiyaçları sonucunda programlamada modüler yaklaşıma
geçilmiştir. Buna göre büyük bir yazılım küçük alt parçalara bölünmekte ve her
parça ayrı ayrı işlenerek büyük program elde edilmektedir. Yapısal
programlamanın da çıkış sebeplerinden birisi olan bu yaklaşıma göre dillerde
fonksiyon desteği gelmiş ve değişik parametrelere göre aynı kodun farklı
sonuçlar üretmesi sağlanmıştır. Daha sonradan gelişen nesne yönelimli
programlama bu konuda bir sonraki nesil olarak kabul edilebilir. Nesne
yönelimli programlamada, programlar nesnelere bölünerek farklı bir yaklaşım
izlenmiştir.
Bu
yaklaşımların derleyicilere yansıması da uzun sürmemiş, daha yapısal
programlamanın ilk geliştiği günlerde derleyiciler de farklı kütüphaneler
ve bu kütüphaneleri birleştirmeye yarayan harici programlar kullanmaya
başlamışlardır.
Kodun birden fazla
parçaya bölünmesi ve her parçanın ayrı ayrı üretilmesi durumunda bu parçaların
birleştirilmesi ve tek bir program halinde üretilmesinden sorumlu olan
programlara bağlayıcı (linker) adı verilmektedir.
GUİ (Graphical User Interface) NEDİR?
Grafiksel Kullanıcı Ara yüzü, elektronik cihazların simgeler, ikonlar ve diğer görsel
grafikler yardımıyla kullanmasına yardımcı olması amacıyla geliştirilmiş
tasarımlardır. GUI öncesi komut bazlı işletim sistemi kullanılan eski nesil
bilgisayarlar ve elektronik cihazlarda herhangi bir işlemi gerçekleştirmek için
komut satırı kullanılıyordu. Kullanıcılar bilgisayar üzerindeki her işlemi klavye üzerinden ve komutları kullanarak
gerçekleştiriyordu. Daha sonra kullanıcıların daha rahat kişisel
bilgisayar kullanabilmesi için 1981 yılında aralarında Alan Kay, Douglas Engelbart ve
bir grup araştırmacının yer aldığı grup Xerox PARC' da ilk
GUI' yi geliştirmiştir. Daha sonraları grafiksel kullanıcı ara yüzü fikrini Apple benimsemiş ve Lisa ismiyle
çıkış yapan bilgisayarında kullanmıştır. Bugün artık aktif olarak
gelişimi devam ettirilen işletim sistemlerinin neredeyse tamamı grafiksel
kullanıcı ara yüzünü kullanmaktadır.
GNU NEDİR?
GNU; çekirdeği,
sistem araçlarını, açıcılarını, kütüphanelerini ve
son kullanıcı yazılımlarını içeren, GNU Tasarısı kapsamında geliştirilen bir işletim sistemidir.
İsminin açılımı "GNU's Not Unix" (GNU Unix değildir)’dir. Bu
ismi almasındaki sebep de tasarımının Unix'e benzerken kendisinin özgür yazılım olması
ve herhangi bir UNIX kodunu içermemesidir.
GNU
işletim sistemi planı 1983 Eylül'ünde Richard
Stallman tarafından
duyurulmuş, 1984 Ocak ayında işleyişe
başlamıştır. 2006 itibarıyla GNU hâlâ
etkin olarak gelişmektedir. GNU'nun geliştirilmesi GNU Tasarısı tarafından
gerçekleştirilmektedir ve bu tasarı altında birçok GNU belgeleri ve yazılımları
bulunur.
Günümüz
itibarıyla hâlâ tamamlanmış bir GNU sistemi sunulmamıştır. Resmi
çekirdeği GNU Hurd'dür
ancak Hurd henüz bitmemiştir zira geliştirilmesi aşamasında bazı lisans
sorunları yaşanmış ve yapısal değişikliğe gidilmiştir. Linux'un da devreye
girmesiyle birçok GNU kullanıcısı Linux çekirdeğine geçiş yapmış böylece Linux,
Hurd'ün yerini doldurmuştur. GNU resmi olarak başka yazılımları da
desteklemektedir (Xorg ve TeX gibi).
Sistemin
başlıca içeriği GNU Compiler Collection (GCC), GNU Binary Utilities
(binutils),
bash kabuğu, GNU C kütüphanesi (glibc)
ve coreutils'den oluşur. Görsellik açısından
X.Org'u; yazım açısından da TeX yazılımlarını kullanır. Tüm GNU yazılımları
halen GNU Hurd çekirdeğiyle uyumlu değildir.
Linux
çekirdeğini kullanan kullanıcılar sistemlerini genel olarak "Linux"
demektedir ancak GNU Projesi "Linux" yerine "GNU/Linux"
denmesini önerir. Çünkü Linux, bünyeside GNU araçlarını barındırmaktadır. Bu
konudaki tartışma uzun süredir devam etmektedir.
GNU
Genel kamu lisansı (GPL),
GNU Lesser General Public License (LPGL) ve GNU Free Documentation License (GFDL) GNU tarafından
yazılmıştır ancak bambaşka birçok diğer konuda da kullanılmaktadır. GNU kamu
malı olarak görülmektedir ve başarisinin arkasında olan da herkese olan
açıklığıdır. Her kullanıcı GNU'yu geliştirebilir.
GPL (General Public Licence - Genel
Kamu Lisansı) NEDİR?
GNU Genel Kamu Lisansı (GNU GPL ya da GPL) birçok yerde kullanılan
ücretsiz yazılım lisansıdır ve özgün hali Richard Stallman tarafından GNU
projesi için yazılmıştır. Bu lisansın en son sürümü (GPLv3), 29 Haziran 2007'de
çıkmıştır. GNU Kısıtlı Genel Kamu Lisansı yani LGPL ise GPL'in bazı yazılım
kütüphaneleri için yazılmış sürümüdür.
GPL'in genel nitelikleri
GPL
lisans anlaşması, 1983 yılında Richard Stallman tarafından geliştirilmiş, çok
akıllıca detaylarla bağlayıcılığı bulunan, teşvik edici, gerek kullanıcı
gerekse üretici tarafa büyük olanaklar sağlayan bir lisans türüdür. GPL'in en
çok üzerinde durduğu konu yazılımların kaynak kodu ile birlikte dağıtılmasının
gerekliliğidir. Üretici firma yazılımını binary olarak dağıtsa bile kaynak
kodunu da herkes tarafından erişilebilir bir yere bırakmak zorundadır.
Kullanıcı, bu kaynak kodu alıp inceleyebilir, üzerinde istediği değişikliği
yapabilir, kendi projelerinde, yazılımlarında kodun tamamını ya da bir
parçasını kullanabilir. Hatta başkasının kod parçasını alıp birkaç değişiklik
yapıp, satarak maddi kazanç da elde edebilir. Ama tek bir şartla, yeni üretilen
program da GPL ile lisanslanmak zorundadır.
GPL, yazılımın ücretlendirilmesi hakkında hiçbir
fikir beyan etmez. GPL yazılımları ücretsiz olmak zorunda değildir. Üretici
firma ya da kuruluş, yazılımını GPL ile lisanslayıp, dağıtabilir ve
karşılığında da bir ücret talep edebilir. Bu madde en baştan beri sözleşme
içerisinde olmasına rağmen, GPL yazılımların çok büyük bir kısmı ücretsizdir.
Genel yaklaşım yazılımdan değil, kullanıcıya sunulan kurulum, eğitim, yönetim
ve ek modül yazma gibi süreçlerden para kazanılması şeklindedir. Bu özelliği
ile GPL pek çok lisanstan ayrılmaktadır.
OPEN
SOURCE (Açık Kaynak Kod) NEDİR??
Açık kaynak kodlu yazılım,
kaynak kodları herkese açık olan yazılımdır. Bunun anlamı, onun üzerinde
herhangi bir değişiklik yaparak kendi sürümünüzü meydana
getirebileceğinizdir. Normalde bir programı çalıştırdığınızda onun kaynak
kodlarına erişemezsiniz. Yani uygulamanın size sunduğu işlevleri nasıl
sunduğunu göremez, onun özelliklerinde herhangi bir değişiklik yapamazsınız.
Bunu taşındığınız, yeni
yapılmış bir ev örneğine benzetebiliriz. Evin her şeyi hazırdır,
elektrik hattı, su boruları ve diğer altyapı duvarların arkasına gizlenmiştir.
Örneğin elektrik hattınızda bir sorun meydana geldiğinde, hatlara
erişemiyorsanız elektrikçinin gelip sorunu gidermesinden başka
yapabileceğiniz bir şey yoktur.Kapalı
kaynak kodlu yazılımlarda da durum buna benzer. Bu tür programlarda programın
geliştiricisine bağlısınızdır, herhangi bir sorun gördüğünüzde onu düzeltmeniz
mümkün olmaz.