[Linux] Re: Merhaba

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Deniz Akkus Kanca (deniz@arayan.com)
Date: Thu 04 Jul 2002 - 12:34:04 EEST


Necmettin Begiter wrote:

Cevap biraz uzun oldu....

> 1. Linux İşletim Sistemi (veya Sistemleri -hangisi daha uygunsa) temel olarak iki parçadan oluşur doğru mu? Kernel ve arayüz...
Linux işletim sistemi bir tanedir. Sistemin bir kaç yapıtaşı vardır:

1. Çekirdek - kernel. Linux'u linux yapan budur. Linux çekirdeğini
çıkarıp içine başka bir çekirdek (örneğin BSD) koyarsanız BSD serisinden
bir işletim sistemi elde etmiş olursunuz.
2. Dosya sistemi vb gibi çekirdeğin etrafındaki parçalar. Bunlar esas
olarak FSF'in eseridir (GNU) ve hemen hemen her Unix varyantında artık
bunlar kullanılır.

İşletim sistemi aslında bundan ibarettir. Üzerine gelen herşey
uygulamadır. Bu noktadan itibaren elinizdeki makinaya tabiri caizse
"can" üflenmiş olur.

Bunun üzerine çeşitli seviyelerde uygulamalar gelebilir.

"Daemon"lar -- sistem servisleri:
Örneğin apache (web sunucusu), normal kullanıcılar için işletim
sisteminin bir parçası olarak görünebilir fakat değildir. Herhangi bir
uygulamadır, sistem tarafından sürekli çalışılır tutulduğu için
"daemon", yani sistem servisi olarak adlandırılır. Özel bir kullanıcı
yetkisi bile yoktur, düşük yetkili normal bir kullanıcıymış gibi çalışır.

"Ağ ortamı" dendiğinde akla gelen şeylerden birisi olan bilgisayarların
birbirlerinin diskini görebilmeleri, samba, nfs gibi daemon'lar
tarafından yapılır. Bunlar da işletim sisteminin "esas" parçası değildir
aslında. İsterseniz birini kaldırır, diğerini kurarsınız. (Linux
üzerindeyseniz sisteminizi yeniden de başlatmazsınız :-) )

Sistem servisleri genelde kullanıcılar tarafından işletim sisteminin
bütünleşik parçası zannedilir. Değillerdir. Sistem, bu servisler
olmaksızın çalışır -- istediğiniz fonksiyonaliteyi sağlamayabilir, fakat
çalışır.

Grafik arayüzleri:

X:
X, Linux dünyaya gelmeden önce yazılan bir grafik arayüzüdür. X kısaca
ekranı idare eder. Yani bir pikselin ekranın neresine çizileceğini idare
eden X'dir. En yalın hali ile bundan daha başka bir şey aslında pek yapmaz.

X kutudan çıktığı hali ile ağlı ortamlarda çalışır, birden fazla ekranı
idare edebilir. Bundan kastedilen şudur: Örneğin iki makina (A ve B) X
çalıştırsın. A, B'nin ekranında gösterilmek üzere bir şey gönderebilir.
B, buna izin verebilir, veya reddedebilir. X aynı zamanda bir makinaya
birden fazla ekran bağlanma meselesini de halledebilir.

X, işletim sisteminin parçası değildir. Örneğin bir zamanlar Sun iş
istasyonlarında X yoktu, kendi grafik sistemleri vardı. Eğer isterseniz
  , X haricinde bir grafiklenme sistemi çalıştırabilirsiniz. Bir kaç
alternatifi vardır, fakat destek/uygulama vb söz konusu olunca X
haricinde bir şeyi tercih etmekte zorlanırsınız.

X'in üzerine gelen katmanlar:
Yalın X çalıştırmak mümkündür. Uzun yıllar öyle yaptık. X'de bir pencere
yöneticisi seçersiniz, çeşitli "düz X" çalıştıran programları
çalıştırırsınız. Kendi ayarlarınızı yaparsınız, menü yoktur, vb.

Sonra Motif ve CDE geldi, en son da KDE ve Gnome. Motif, yaygın olan
pencere elementlerini içeren bir kitaplık (pencerenin sağındaki,
altındaki sliding bar'lar, her pencerenin kapanmasına, küçülmesine
yarayan tepedeki tuşlar vb) idi. Motif'in ikinci bir elementi de
standart hale getirilmiş bir "ortam" idi. Ortamdan kastedilen, standart
pencere yöneticisi, kullanıcı sisteme girdiği zaman kendisine gösterilen
standart masa üstü vb idi. Motif, X üzerine gelen bir katmandan
ibarettir. Motif'den sonra CDE geldi. CDE de benzer bir katman idi.
Çeşitli Unix satıcıları (Sun, HP, AIX vb) bir araya gelerek bunda
birleşme kararı aldılar. Halen daha Sun, HP, AIX vb satın alırsanız
karşınıza CDE çıkar.

KDE: KDE de, tıpkı Motif, CDE vb gibi bir katmandır. KDE'de ek olarak,
bir de uygulamalar vardır. Bunlar, KDE kitaplığını kullanarak yazılan,
grafik arayüzlü uygulamalardır (kmail vb). Ama örneğin mozilla, bir KDE
uygulaması değildir. Düz X çalıştıran (KDE kitaplığı olmayan) bir
makinada mozilla çalıştırabilirsiniz, ama kmail çalıştıramazsınız.

Gnome: KDE gibi ama farklı bir tat/renk.

Bu katmanları bir arada çalıştırabilirsiniz aslında. Örneğin KDE çalışan
bir sistemde aynı zamanda Gnome dan uygulamaları da çalıştırabilirsiniz.
Veya bir daha sisteme girişinizde Gnome'u seçebilirsiniz. Tabii X'in
üzerine gelen katmanları çalıştırabilmeniz için X çalıştırmanız gerekir.

Uygulamalar:

KDE ve Gnome'un içinde de uygulamalar vardır -- bunlar KDE ve Gnome
bağımlısıdır. Bir de bağımsız uygulamalar vardır, örneğin mozilla,
OpenOffice vb. Bunlar da işletim sisteminin esas/asli parçası değildir.
Kaldırıp yerine başka bir şey koyabilirsiniz, hangisini kuracağınıza siz
karar verirsiniz.

--------------------------

Linux (ve bütün Unix'ler) bu tarz katmanlardan oluşur. Her katmanda
değişik kararlar verebilirsiniz.

Meseleyi karıştıran olay, Microsoft'un bu katmanlar hakkında aldığı
kararları kullanıcı veya sistem yöneticisine bırakmamasıdır. Dolayısıyla
Microsoft sistemlerine alışık olanlar bu katmanları karmaşık bulurlar.

Linux'un esnekliği ise bu katman tercihlerinin yapılabilmesinden
kaynaklanır. Örneğin kol saatinde Linux çalıştıracaksanız (IBM), bu
katmanların çoğunu çalıştırmazsınız/kurmazsınız. Bu katmanları devre
dışı bırakmak veya birinin yerine diğerini tercih etmek için yapacağınız
işlem basit ve tanımlıdır.

Normal bir kullanıcının önündeki masaüstü Linux'unda bu değişik
katmanların hepsi mevcuttur ve çalışır.

"Dağıtım" ların görevi, temel işletim sisteminin üzerine konulacak bu
katmanlar için tutarlı tercihler yapmaktır. Dolayısıyla elinize bir
Linux dağıtımı geldiği zaman, şimdi grafik arayüz için ne kullanayım
demezsiniz, o tercih X lehine sizin için yapılmıştır. KDE/Gnome genelde
hepsinde mevcuttur, orada hangisini (veya ikisini birden) istediğinize
dair bir tercih yaparsınız. Sistem servislerinden ana servislerin hepsi
vardır, kurayım mı, çalıştırayım mı tercihini yaparsınız.

> 2. Kernel tek bir tane mi ? (Makina başına demiyorum, tüm Linux sistemleri için konuşuyorum -yani Windows kernelinin hep aynı olması gibi...)

Windows kernel'u bildiğim kadarı ile hep aynı değil. Hatta Windows'un
değişik sürümleri arasında tamamen farklı ve yeniden yazılmış olanları
var. Bildiğim kadarı ile:

Windows 3.1 - DOS'un üzerine giydirilen bir grafik arayüz ortamından
ibarettir (muadili X + KDE/Gnome olsa gerek). İşletim sistemi DOS'tur.

Windows 95 - yine 3.1 gibi, fakat bu sefer biraz daha "entegre".

Windows NT - New Technology. Microsoft, Windows 9x sürümünden hemen
hemen hiç faydalanılmadan sıfırdan yazılmıştır. Arka plan mimarisi VMS
kökenlidir (VMS, eski bir Digital işletim sistemidir, Microsoft VMS'i
yazan ekibi işe aldı ve NT'yi yazdırdı)

Windows 2000 - Resmi ben burada kaybettim, fakat anladığım kadarı ile
BSD Unix'den çok kod alan bir sistem bu. Yine sıfırdan yazılmıştır, NT
veya daha öncekilerden satır satır farklıdır.

Windows XP - 2000'den ne kadar faydalandıklarını bilmiyorum.

Ama Linux çekirdeği bir tanedir. 1. sürümden itibaren değişik sürümleri
vardır, güncellenmiştir, ama sıfırdan tekrar yazılmamıştır. (OK, 1'den
2'ye geçerken yeniden yazılan tarafları oldu)

"Linux" dendiği zaman gözümüzde canlandırdığımız işletim sisteminin kimi
katmanları (örneğin X), Linux'un kendisinden daha eskidir. Güncellenir,
hataları düzeltilir vb ama genellikle bu parçalar da yeniden yazılmaz.

> 3. Arayüzün birden çok olduğunu (daha doğrusu bir sürü olduğunu) sanıyorum (Çünkü bir sürü isim vs geçiyor ve benim anladığım çoğunun sadece arayüz olduğu).

1. maddede biraz anlattım sanırım. Bunların hepsi, X grafik arayüzünün
tepesine oturan katmanlar. Birini tercih etmeniz diğerinden bir şeyler
kullanmanızı, hatta bir diğerine geçivermenizi engellemez. Aynı makinayı
birden fazla kişi paylaşıyorsa birisi Gnome, diğeri KDE çalıştırabilir.
Siz, KDE çalıştırırken Gnome'dan sevdiğiniz uygulamaları
kullanabilirsiniz vb.

> 4. Kernelin güncellenmesi işlemi herhangi bir yolla elimize geçen metin dosyalarının (tabi sıradan metin dosyalarından bahsetmiyorum, .HTML veya .CPP gibi özel metin dosyalarından bahsediyorum) derlenip uygun (gerekli) yerlere yerleştirilmesi şeklinde mi oluyor ?

Hayır. Elinize geçen ikilik (binary) dosyaların çeşitli yerlere
kopyalanması ve sistemin yeniden başlatılması ile olur.

Eğer isterseniz, metin dosyalarını (yani çekirdeğin kaynak kodlarını)
gcc'den (derleyici/compiler) geçirerek derleyebilir ve binary
dosyalarını kendiniz oluşturabilirsiniz.

> 5. Linux sistemler C ağırlıklı mıdır ?

Evet, tıpkı Windows gibi. İşletim sistemleri genelde C dilinde yazılır.
İşletim sisteminin hangi dilde yazılmış olduğu kullanıcı için önemli
değildir. O işletim sisteminin üzerinde bulunan derleyici (compiler)
sizin o işletim sistemi için hangi dilde program yazabileceğinizi
belirler. Linux üzerinde C, C++, Java, Fortran, Lisp, Pascal, Delphi, ve
şimdi adını hatırlayamadığım bir sürü dilde yazılım yazabilirsiniz.

> 6. Scripting denilen olay C "programcık"larıyla mı oluyor ?

Hayır. Scripting'den kastedilen farklı bir şey.

5. maddede adını verdiğim program dilleri *derlenir*.

Yani:

Programı yazarsınız.
Derleyici (compiler) dan geçirirsiniz, bu programı binary haline getirir.
Programı çalıştırırsınız.

Bir de "interpreter" (yorumlayıcı) kullanan diller vardır. Örneğin perl.
Perl başlı başına bir dildir, fakat derlemeden kullanabilirsiniz. Sistem
"derleme" işlemini yapmaz, perl yorumlayıcısını çalıştırır, o sizin
"script" (betik) okur, ve makinaya ne yapması gerektiğini söyler.

Derleme işlemi olmadığı için script'ler daha hızlıca yazılabilir. Fakat
derleme işlemi bir sefer yapılır. Dolayısıyla aynı "script"i 10,000 defa
çalıştıracaksanız, sistem bunu 10,000 defa yorumlayacak. Halbuki
derlerseniz, bir defa yorumlama işlemi yapılır, makina diline
dönüştürülür, ondan sonrasında bu ekstra işlem yapılmaz. Dolayısıyla
genelde script'ler derlenmiş programlardan daha yavaş çalışır.

Hangi dilin script, hangisinin programlama dili olduğu biraz geniş bir
mevzuudur. Örneğin perl dilini derleyebilirsiniz de. Dolayısıyla perl'de
ufak bir script yazıp, bunu deneyip istediğiniz hale getirdikten sonra,
sık kullanılacaksa bunu derlersiniz, o zaman daha hızlı çalışır.

scripting dendiği zaman genelde kastedilen şey, komut satırında bir kaç
ufak şeyi yapmak için yazılıvermiş, genelde çeşitli yaygın script (perl,
bash vb) dillerinden birini kullanan ufak "programcıklardır".

Bunların C programlarından farkı, derlenmeden kullanılabilmesidir.
Üstelik komut satırına yazdığımız her komut, script'lerin içinden
kullanılabilir. Buna Linux'da "binary" dosyalar ve metin dosyaları
arasında fark güdülmediğini de ekleyince, kullanıcıya normal uygulama
gibi gelen çeşitli script'ler yazılabilir. Linux'un kuvvetlerinden
birisi bu konuda çok esnek olabilmesidir.

Cevaplar biraz uzun oldu, kusura bakmayın.

Esen kalın,
Deniz

-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.

Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.