Shell nedir?

Başlatan kurch, 09 Haziran 2008 - 00:02:54

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

kurch

Arkadaşlar shell nedir ve yardımcı kaynaklar gösterirseniz sevinirim

munirekinci


heartsmagic

Kabaca: İşletim sistemiyle (bu Linux'ta kernel örneğin) kullanıcı arasında iletişimi sağlayan ara birim.
Farklı türleri vardır. En bilineni ve yaygını bizim de şu an kullandığımız bash'tir.

Kaynak olarak nasıl bir şey arıyorsun?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

kurch

aslında sormak istediğim bu bir program mı örneğin java gibi mi java gibiyse jbuilder gibi bir programı var mı?

Ulath


heartsmagic

Program değil, anlattığım üzere bir ara birim. - Biliyorum aslında bir program :) -
Ancak senin düşündüğün tarzda değil. Şöyle söyleyelim, DOS gibi :) (Biliyorum iğrenç oldu ve yine biliyorum DOS bir işletim sistemiydi, anlaman için örnek veriyorum)

Bir derleyiciye falan ihtiyacın yoktur. Shell türleri verdiğin komutları anlar ve buna uygun cevaplar üretirler. İstersen bash betikleri yazıp, yürütebilirsin.

http://www.google.com/linux altında "bash programlama" diye aratırsan birçok sonuca ulaşırsın. Ayrıca http://www.belgeler.org adresinde de bir anlatım mevcut.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

potasyumsiyanur

#6
http://www.linuxsozluk.com/ a göre shell

*linux'un ms-dos'u desek yerinde olur.
(#88) foxhound|04/06/2008 18:41 |
*kerneli çevreleyen kabuk. kayısıyı işletim sistemine benzetirsek; çekirdek kernel, çekirdek kabuğu shell, yenilen kısım da programlar vs.dir
(#91) mawhamana|04/06/2008 19:32 |
*türkçe anlamı kabuk olup, benzin istasyonu marka ile uzaktan yakından hiçbir alakası ilişkisi yoktur.

bu arada sitede tanıtım yapılmamış olabilir. http://www.linuxsozluk.com/ bence linuxu tanıtacak keyifli bilgilerle dolu
deniz yanmaz dersin ama...
yanarsada kimse söndüremez.

kurch

peki linuxun msdosunu yani shellini nasıl calistiracam?

munirekinci

Aslında soru yanlış ama, demek istediğini anlıyorum;

Applications > Accessories > Terminal
Uygulamalar > Donatılar > Terminal (Uçbirim)

kurch

kernelin hangi sürümünü kullandığımı hangi komutla öğrenebilirim?

heartsmagic

uname -r

Lütfen biraz vakit ayırıp http://www.belgeler.org 'a göz at. Biraz vaktini ayırırsan inan basamakları beşer onar çıkmaya başlarsın. Yoksa böyle olursa, biz elinden tutmadan bir basamak bile çıkamazsın.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

kurch


MURATSPLAT

Alıntı yapılan: munirekinci - 09 Haziran 2008 - 00:05:57
Şurası faydalı olur; http://www.ubuntu-tr.net/index.php?topic=369.0
Şu resimde mantığını anlamanız açısından faydalı olabilir;
[IMG]http://img146.imageshack.us/img146/4088/linuxsistemqy8ej2.th.gif[/img]

Az önce bu resme baktımda,  shell çekirdekle servisler arasında olmak zorunda. Sistem değişkenleri shell bir bütün. Xorg altında ne işi var  :)
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

kurch

kerneli upgrade etme konusunda yardımcı olursanız sevinirim

heartsmagic

Farklı bir başlığın konusu bu. Lütfen doğru yerlerde belirt problemini. Ayrıca kernel kendisi yükselir zaten senin bir şey yapmana gerek yok.

Lütfen kernel konusunu burada devam ettirmeyelim.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

munirekinci

Alıntı yapılan: MURATSPLAT - 17 Haziran 2008 - 14:54:53
Alıntı yapılan: munirekinci - 09 Haziran 2008 - 00:05:57
Şurası faydalı olur; http://www.ubuntu-tr.net/index.php?topic=369.0
Şu resimde mantığını anlamanız açısından faydalı olabilir;
[IMG]http://img146.imageshack.us/img146/4088/linuxsistemqy8ej2.th.gif[/img]

Az önce bu resme baktımda,  shell çekirdekle servisler arasında olmak zorunda. Sistem değişkenleri shell bir bütün. Xorg altında ne işi var  :)


Kabuk X'in altında değil X kabuğun altında.
Grafiğe doğru bakarsan görürsün!

MURATSPLAT

  Ben grafiğe baktım.  Bu grafikta shell ile servisler  bağımsız  görünüyor. Halbu ki bu böyle değildir.
Servisler shell üzerinde çalışır. Benim söylemek istediğim buydu..
   
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

matafleur

#17
Alıntı yapılan: MURATSPLAT - 18 Haziran 2008 - 19:10:30
  Ben grafiğe baktım.  Bu grafikta shell ile servisler  bağımsız  görünüyor. Halbu ki bu böyle değildir.
Servisler shell üzerinde çalışır. Benim söylemek istediğim buydu..
   


mmmh emin değilim ama tam olarak doğru değil aslında.Servisler init üzerinde çalışır bildiğim kadarıyla.Orphaned processlerdir.Eğer init i parent olarak düşünmezsen.Ve shell de bildiğim kadarıyla init üzerinde çalışıyor.


Uzun lafın kısası parentları aynı kardeş processlerdir bunlar  (:

Hatalı olabilrim.Net bilgisi olan varsa düzeltirse sevinirim.

heartsmagic

Benim de bildiğim servislerin kabuğa göbeklerinin bağlı olmadığı ve init seviyesinde çalıştıkları. Detayları anlatacak derecede bilgiye sahip olan varsa seve seve dinleriz :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

MURATSPLAT

Slackware de hemen hemen çoğu sistem betiğine bakmıştım. Hepsi shell değişkenlerini kullanıyor. çekirdek açıldıktan sonra shell ortaya çıkıyor. shell olmasa çekirdek modulleri nasıl yüklenecek. Ve ağ  udev aklımıza gelen herşey...
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

heartsmagic

init seviyesinde çalışan servislerin kabukla pek alakası olmasa gerek. Örneğin udev? Hangi aşamada kabuğa ihtiyaç duyuyor ki? Ayrıca modüllerin yüklenmesi de sanırım kabuğa bağlı değildir. Aslında bu konuda çok ehil değilim sadece fikir yürütmeye çalışıyorum.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

DeFacto

init değerlerini değiştirdiğimizde X'in başlangıcını da etkiliyor ve konsola düşüyorsak, shell aracı olmuyor mu X ile kernel arasında ? Kabukta verdiğimiz bir startx ile kernel ile X arasındaki ilgiyi kurmuyor mu ? Bunlar düz mantık sonucu üretilmiş fikirlerdir :) Kaale alınmamasını tavsiye eder fakat bu kararsızlığımın da aydınlatılmasını reca ederim :)

izzetguntalaz

Alıntı yapılan: DeSPeRaDo - 30 Haziran 2008 - 16:10:17
init değerlerini değiştirdiğimizde X'in başlangıcını da etkiliyor ve konsola düşüyorsak, shell aracı olmuyor mu X ile kernel arasında ? Kabukta verdiğimiz bir startx ile kernel ile X arasındaki ilgiyi kurmuyor mu ? Bunlar düz mantık sonucu üretilmiş fikirlerdir :) Kaale alınmamasını tavsiye eder fakat bu kararsızlığımın da aydınlatılmasını reca ederim :)

Farklı bir ifade şekli olmuş. :)
Cevabını ben de merak ettim.

heartsmagic

init değerleri değişince sistem başlangıç seviyesi değişiyor doğru, hatta konsola düşüyor bu da doğru da bu illa servislerin kabuğa ihtiyaç duyduğu anlamına gelir mi acaba? Kabuksuz servisler çalışır mı yani :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

erginemr

#24
Alıntı yapılan: DeSPeRaDo - 30 Haziran 2008 - 16:10:17
init değerlerini değiştirdiğimizde X'in başlangıcını da etkiliyor ve konsola düşüyorsak, shell aracı olmuyor mu X ile kernel arasında ? Kabukta verdiğimiz bir startx ile kernel ile X arasındaki ilgiyi kurmuyor mu ? Bunlar düz mantık sonucu üretilmiş fikirlerdir :) Kaale alınmamasını tavsiye eder fakat bu kararsızlığımın da aydınlatılmasını reca ederim :)

Efendim, şimdi şöyle izah edeyim: X karşıdan geliyor, shell ise sol şeritten seyrederken, aniden karşısına çıkan startx'i ezmemek için sola kırınca init bariyerlerine çarparak X ile birbirine giriyor. Son anda shell arkadan dolanıp X'i kündeye getiriyor ve puanı alıyor. Bunu gören kernel da "hani bana, hani bana" diyor. ;)

Şaka bir yana, olayı kendince özetleyen aşağıdaki yazının sahibine göre:
http://www.physics.nmt.edu/~rsonnenf/research/LinuxCourse/bigpicture.rs

Linux sistem açılış sırası şu şekilde gerçekleşiyor:

1. Sisteme elektrik geliyor ve BIOS yazılımı donanımları başlatıyor.

2. BIOS, kontrolü boot sektörde yüklü olan GRUB/LILO yazılımına bırakıyor. GRUB, ilgili sabit disk bölümünden kendine verilen ayar dosyasındaki yönergeleri izleyerek Linux çekirdeğini ve initrd (init ram diskini) başlatıyor.

3. Kernel kullanıcı seviyesindeki ilk ve temel işlem olan "init"i başlatıyor. Bundan sonra, ilgili dosyalardan (eskiden ve hala bazı sistemlerde /etc/inittab, şimdiyse /etc/init.d/*) hangi kullanıcı seviyesinde (tek ya da çok kullanıcılı, metin ya da grafik ekran) başlayacağına karar vererek, ilgili seviyedeki betikleri çalıştırıyor. Tabii ki bu betikleri çalıştırmak için de shell'e (kabuğa) ihtiyacı var.

4. Bu aşamadan sonra kullanıcı login ekranı geliyor ve ilgili kabuk (bash, zsh, vb.) setinin komutları kullanıcının emrine sunuluyor.

Şahsen bu resme baktığımda, ben init ile shell arasında bir ayrım gözetmiyorum. init bütün proseslerin babası ama kendisi de shell (kabuk) komutlarını kullanıyor. Ayrıyeten, kullanıcıların kullanımına, aynı nesne-tabanlı programlarda sınıfların bir kopyası, görüntüsü nasıl oluşturuluyorsa, shell'in bir görüntüsünü (instance) sunuyor.

Proses hiyerarşinini göz önüne seren güzel bir konsol komutu var: pstree. Gnome yüklüyken, ayrıca 2 sanal terminalden giriş (login) yaptıktan sonra bu komutu verdiğim zaman, proses ağaç şeması şu şekilde oluşuyor:


init-+-NetworkManager---{NetworkManager}
     |-NetworkManagerD
     |-acpid
     |-atd
     |-avahi-daemon---avahi-daemon
     |-bonobo-activati---{bonobo-activati}
     |-console-kit-dae---61*[{console-kit-dae}]
     |-cron
     |-cupsd
     |-2*[dbus-daemon]
     |-dd
     |-dhcdbd---dhclient
     |-gconfd-2
     |-gdm---gdm-+-Xorg
     |           `-x-session-manag-+-at-spi-registry
     |                             |-gnome-panel
     |                             |-gnome-settings--+-pulseaudio-+-gconf-helper
     |                             |                 |            `-2*[{pulseaudio}]
     |                             |                 `-{gnome-settings-}
     |                             |-metacity
     |                             |-nautilus
     |                             |-seahorse-agent
     |                             |-ssh-agent
     |                             `-{x-session-manag}
     |-4*[getty]
     |-gnome-keyring-d
     |-gnome-power-man
     |-gnome-screensav
     |-gnome-terminal-+-bash---pstree
     |                |-bash
     |                |-gnome-pty-helpe
     |                `-{gnome-terminal}
     |-gnome-volume-ma
     |-gvfs-fuse-daemo---3*[{gvfs-fuse-daemo}]
     |-gvfsd
     |-gvfsd-burn
     |-gvfsd-trash
     |-hald---hald-runner-+-hald-addon-acpi
     |                    |-hald-addon-inpu
     |                    `-2*[hald-addon-stor]
     |-hcid---2*[bluetoothd-serv]
     |-klogd
     |-2*[login---bash]
     |-mixer_applet2---{mixer_applet2}
     |-syslogd
     |-system-tools-ba
     |-trashapplet---{trashapplet}
     |-udevd
     `-vboxadd-timesyn