1.2 Ders 1
Sertifika: |
Linux Temelleri |
---|---|
Sürüm: |
1.6 |
Başlık: |
1 Linux Topluluğu ve Açık Kaynakta Kariyer |
Amaç: |
1.1 Başlıca Açık Kaynak Uygulamaları |
Ders: |
1 / 1 |
Giriş
Bir uygulama, amacı doğrudan bilgisayarın iç işleyişine bağlı olmayan, ancak kullanıcı tarafından gerçekleştirilen görevlerle ilgili olan bir bilgisayar programıdır. Linux dağıtımları, ofis uygulamaları, internet tarayıcıları, multimedya oynatıcıları, editörler vb. gibi çeşitli görevleri gerçekleştirmek için birçok uygulama seçeneği sunar. Belirli bir işi gerçekleştirmek için genellikle birden fazla uygulama veya araç mevcuttur. İhtiyaçlarına en uygun uygulamayı seçmek kullanıcıya kalmıştır.
Yazılım Paketleri
Hemen hemen her Linux dağıtımı, önceden yüklenmiş bir dizi öntanımlı uygulama sunar. Bu önceden yüklenmiş uygulamaların yanı sıra, bir dağıtım, paket yöneticisi aracılığıyla kurulabilecek geniş bir uygulama koleksiyonuna sahip bir paket deposuna sahiptir. Çeşitli dağıtımlar kabaca aynı uygulamaları sunsa da, çeşitli dağıtımlar için birkaç farklı paket yönetim sistemi mevcuttur. Örneğin, Debian, Ubuntu ve Linux Mint, genellikle DEB paketleri olarak adlandırılan yazılım paketlerini kurmak için dpkg
, apt-get
ve apt
araçlarını kullanır. Red Hat, Fedora ve CentOS gibi dağıtımlar bunlar yerine rpm
, yum
ve dnf
komutlarını kullanır ve bunlar da RPM paketlerini kurmaktadır. Her dağıtım ailesi için uygulama paketlemesi farklı olduğundan, paketleri hedef dağıtım için tasarlanmış doğru depodan kurmak çok önemlidir. Dağıtımın paket yöneticisi doğru paketleri, gerekli bağımlılıkları ve gelecekteki güncellemeleri seçeceğinden, son kullanıcının genellikle bu ayrıntılar hakkında endişelenmesine gerek yoktur. Bağımlılıklar, programların ihtiyaç duyduğu yardımcı paketlerdir. Örneğin, bir kitaplık birden çok program tarafından kullanılan JPEG görüntüleri ile ilgili işlevler sağlıyorsa, bu kitaplık büyük olasılıkla kitaplığı kullanan tüm uygulamaların bağımlı olduğu kendi paketinde paketlenmiştir.
dpkg
ve rpm
komutları tekil paket dosyalarında çalışır. Aslında, hemen hemen tüm paket yönetimi görevleri, DEB paketleri kullanan sistemlerde apt-get
veya apt
komutlarıyla ya da RPM paketleri kullanan sistemlerde yum
veya dnf
komutlarıyla gerçekleştirilir. Bu komutlar paket kataloglarıyla çalışır, yeni paketleri ve bunların bağımlılıklarını indirebilir ve kurulu paketlerin daha yeni sürümlerini kontrol edebilir.
Paket Kurulumu
Diyelim ki, terminalde büyütülmüş metin yazdıran figlet
adında bir komut duydunuz ve denemek istiyorsunuz. Ancak, figlet
komutunu çalıştırdıktan sonra aşağıdaki mesajı alıyorsunuz:
$ figlet -bash: figlet: command not found
Bu muhtemelen paketin sisteminizde kurulu olmadığı anlamına gelir. Dağıtımınız DEB paketleriyle çalışıyorsa, apt-cache search paket_adı
veya apt search paket_adı
kullanarak depolarınızda arayabilirsiniz. apt-cache
komutu paketleri aramak ve mevcut paketlerle ilgili bilgileri listelemek için kullanılır. Aşağıdaki komut, paketin adlarında ve açıklamalarında “figlet” teriminin herhangi bir tekrarını arar:
$ apt-cache search figlet figlet - Make large character ASCII banners out of ordinary text
Arama, eksik komuta karşılık gelen figlet adlı bir paket belirledi. Bir paketin yüklenmesi ve kaldırılması, yalnızca sistemin root
adlı yöneticisine verilen özel izinleri gerektirir. Masaüstü sistemlerde, sıradan kullanıcılar, yükleme/kaldırma komutlarının başına sudo
komutunu ekleyerek paketleri kurabilir veya kaldırabilir. Bu, devam etmek için parolanızı yazmanızı gerektirecektir. DEB paketleri için kurulum, apt-get install paket_adı
veya apt install paket_adı
komutuyla gerçekleştirilir:
$ sudo apt-get install figlet Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: figlet 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Bu aşamada paket indirilecek ve sisteme kurulacaktır. Paketin ihtiyaç duyduğu tüm bağımlılıklar da bunun sonucunda indirilecek ve kurulacaktır:
Need to get 184 kB of archives. After this operation, 741 kB of additional disk space will be used. Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB] Fetched 184 kB in 0s (213 kB/s) Selecting previously unselected package figlet. (Reading database ... 115701 files and directories currently installed.) Preparing to unpack .../figlet_2.2.5-2_armhf.deb ... Unpacking figlet (2.2.5-2) ... Setting up figlet (2.2.5-2) ... update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode Processing triggers for man-db (2.7.6.1-2) ...
İndirme tamamlandıktan sonra, tüm dosyalar uygun konumlara kopyalanacak, varsa gerekli ek yapılandırmalar yapılacak ve komut kullanılabilir hale gelecektir:
$ figlet Awesome! _ _ / \__ _____ ___ ___ _ __ ___ ___| | / _ \ \ /\ / / _ \/ __|/ _ \| '_ ` _ \ / _ \ | / ___ \ V V / __/\__ \ (_) | | | | | | __/_| /_/ \_\_/\_/ \___||___/\___/|_| |_| |_|\___(_)
RPM paketlerine dayalı dağıtımlarda, aramalar yum search paket_adı
veya dnf search paket_adı
kullanılarak yapılır. Diyelim ki bir metni daha ciddiyetsiz bir şekilde, ardından karikatürize bir inek olduğu halde görüntülemek istiyorsunuz, ancak bu görevi gerçekleştirebilecek paketten emin değilsiniz. DEB paketlerinde olduğu gibi, RPM arama komutları açıklayıcı terimleri kabul eder:
$ yum search speaking cow Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03. ==================== Name & Summary Matched: speaking, cow ==================== cowsay.noarch : Configurable speaking/thinking cow
Depoda uygun bir paket bulunduktan sonra, yum install paket_adı
veya dnf install paket_adı
komutlarıyla kurulabilir:
$ sudo yum install cowsay Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03. Dependencies resolved. ============================================================================== Package Arch Version Repository Size ============================================================================== Installing: cowsay noarch 3.04-10.fc28 fedora 46 k Transaction Summary ============================================================================== Install 1 Package Total download size: 46 k Installed size: 76 k Is this ok [y/N]: y
Bir kez daha, istenen paket ve olası tüm bağımlılıkları indirilecek ve kurulacaktır:
Downloading Packages: cowsay-3.04-10.fc28.noarch.rpm 490 kB/s | 46 kB 00:00 ============================================================================== Total 53 kB/s | 46 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Installed: cowsay.noarch 3.04-10.fc28 Complete!
cowsay
komutu, tam olarak adından anlaşılan şeyi yapar:
$ cowsay "Brought to you by yum" _______________________ < Brought to you by yum > ----------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
İşe yaramaz gibi görünseler de, figlet
ve cowsay
komutları, diğer kullanıcıların dikkatini ilgili bilgilere çekmenin bir yolunu sağlar.
Paket Kaldırma
Paketleri kurmak için kullanılan komutların aynıları onları kaldırmak için de kullanılır. Tüm komutlar, kurulu bir paketi kaldırmak için remove
anahtar sözcüğünü kabul eder: DEB paketleri için apt-get remove paket_adı
veya apt remove paket_adı
ve RPM paketleri için yum remove paket_adı
veya dnf remove paket_adı
. Kaldırma işlemini gerçekleştirmek için sudo
komutu da gereklidir. Örneğin, DEB tabanlı bir dağıtıma daha önce kurulmuş figlet paketini kaldırmak için:
$ sudo apt-get remove figlet Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: figlet 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 741 kB disk space will be freed. Do you want to continue? [Y/n] Y
İşlem onaylandıktan sonra paket sistemden silinir:
(Reading database ... 115775 files and directories currently installed.) Removing figlet (2.2.5-2) ... Processing triggers for man-db (2.7.6.1-2) ...
RPM tabanlı bir sistemde benzer bir yöntem uygulanır. Örneğin, RPM tabanlı bir dağıtıma önceden kurulmuş cowsay paketini kaldırmak için:
$ sudo yum remove cowsay Dependencies resolved. ================================================================================== Package Arch Version Repository Size ================================================================================== Removing: cowsay noarch 3.04-10.fc28 @fedora 76 k Transaction Summary ================================================================================== Remove 1 Package Freed space: 76 k Is this ok [y/N]: y
Aynı şekilde onay istenir ve paket sistemden silinir:
Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Erasing : cowsay-3.04-10.fc28.noarch 1/1 Running scriptlet: cowsay-3.04-10.fc28.noarch 1/1 Verifying : cowsay-3.04-10.fc28.noarch 1/1 Removed: cowsay.noarch 3.04-10.fc28 Complete!
Kaldırılan paketlerin yapılandırma dosyaları sistemde tutulur, böylece ileride paket yeniden kurulursa tekrar kullanılabilirler.
Ofis Uygulamaları
Ofis uygulamaları, bir ofis ortamında yaygın olarak kullanılan metin, sunum, hesap tabloları ve diğer biçimlerdeki dosyaları düzenlemek için kullanılır. Bu uygulamalar genellikle ofis paketi adı verilen koleksiyonlarda bir araya gelir.
Uzun bir süre Linux’ta en çok kullanılan ofis paketi OpenOffice.org paketiydi. OpenOffice.org, Sun Microsystems tarafından yayınlanan StarOffice paketinin açık kaynaklı bir sürümüydü. Birkaç yıl sonra, Oracle Corporation, Sun’ı satın aldı, ardından projeyi Apache Foundation'a devretti ve OpenOffice.org, Apache OpenOffice olarak yeniden adlandırıldı. Bu arada, Document Foundation aynı kaynak koduna dayalı başka bir ofis paketi yayınladı ve buna LibreOffice adını verdi.
İki proje aynı temel özelliklere sahiptir ve Microsoft Office belge biçimleriyle uyumludur. Ancak tercih edilen belge biçimi, tamamen açık ve ISO standartlarında bir dosya biçimi olan Açık Belge Biçimi'dir. ABB dosyalarının kullanımı, belgelerin işletim sistemleri ve Microsoft Office gibi farklı satıcılardan gelen uygulamalar arasında aktarılabilmesini sağlar. OpenOffice/LibreOffice tarafından sunulan başlıca uygulamalar şunlardır:
- Writer
-
Metin düzenleyici
- Calc
-
Hesap tabloları
- Impress
-
Sunumlar
- Draw
-
Vektör çizim
- Math
-
Matematik formülleri
- Base
-
Veritabanı
Hem LibreOffice hem de Apache OpenOffice açık kaynaklı yazılımlardır, ancak LibreOffice LGPLv3 ile lisanslanmıştır ve Apache OpenOffice, Apache Lisansı 2.0 ile lisanslanmıştır. Lisanslama farkı, LibreOffice’in Apache OpenOffice tarafından yapılan iyileştirmeleri dahil edebileceğini, ancak Apache OpenOffice’in LibreOffice tarafından yapılan iyileştirmeleri dahil edemeyeceğini ima eder. Bu durum ve daha aktif bir geliştirici topluluğunun varlığı, çoğu dağıtımın LibreOffice’i öntanımlı ofis paketi olarak benimsemesinin nedenidir.
İnternet Tarayıcıları
Çoğu kullanıcı için bir bilgisayarın temel amacı internete erişim sağlamaktır. Günümüzde internet sayfaları, ek bir yazılım yüklemeye gerek kalmadan her yerden erişilebilir olma avantajıyla tam özellikli bir uygulama gibi davranabilmektedir. Bu, internet tarayıcısını en azından ortalama bir kullanıcı için işletim sisteminin en önemli uygulaması yapmaktadır.
Tip
|
Web geliştirme hakkında bilgi edinmek için en iyi kaynaklardan biri, https://developer.mozilla.org/ adresinde bulunan MDN Web Dokümanlarıdır. Mozilla tarafından yönetilen site, yeni başlayanlar için öğreticiler ve çoğu modern web teknolojisine ilişkin referans materyalleriyle doludur. |
Linux ortamındaki ana internet tarayıcıları Google Chrome ve Mozilla Firefox'tur. Chrome, Google tarafından sürdürülen bir internet tarayıcısıdır, ancak dağıtımın paket yöneticisi kullanılarak yüklenebilen ve Chrome ile tamamen uyumlu olan Chromium adlı açık kaynak tarayıcıyı temel alır. Kâr amacı gütmeyen bir kuruluş olan Mozilla tarafından sürdürülen Firefox, açık kaynak modelini benimseyen ilk popüler internet tarayıcısı olan Netscape’le bağları olan bir tarayıcıdır. Mozilla Vakfı, modern internetin altında yatan açık standartların geliştirilmesiyle derinden ilgilenmektedir.
Mozilla ayrıca e-posta istemcisi Thunderbird gibi başka uygulamalar da geliştirmektedir. Birçok kullanıcı, özel bir e-posta uygulaması yerine web tabanlı e-posta kullanmayı tercih etmektedir, ancak Thunderbird gibi bir istemci, ilave özellikler sunar ve masaüstündeki diğer uygulamalarla en iyi şekilde bütünleşir.
Multimedya
Mevcut internet uygulamalarıyla karşılaştırıldığında, masaüstü uygulamaları multimedya içeriği oluşturmak için hala en iyi seçenektir. Video işleme gibi multimedyayla ilgili etkinlikler, genellikle en iyi şekilde yerel bir masaüstü uygulaması tarafından yönetilebilen yüksek miktarda sistem kaynaklarına ihtiyaç duymaktadır. Linux ortamı için en popüler multimedya uygulamalarından bazıları ve kullanım alanları aşağıda listelenmiştir.
- Blender
-
Animasyonlar oluşturmak için bir 3D oluşturucu. Blender, bir 3B yazıcı tarafından yazdırılabilecek 3B nesneleri dışa aktarmak için de kullanılabilir.
- GIMP
-
Adobe Photoshop ile karşılaştırılabilecek, ancak görüntülerle çalışmak için kendi kavramlarına ve araçlarına sahip olan tam özellikli bir görüntü düzenleyici. GIMP uygulaması, JPEG, PNG, GIF, TIFF ve başka birçok biteşlem dosyasını oluşturmak, düzenlemek ve kaydetmek için kullanılabilir.
- Inkscape
-
Corel Draw veya Adobe Illustrator'a benzer bir vektör grafik düzenleyici. Inkscape’in öntanımlı biçimi, vektör grafikleri için açık bir standart olan SVG’dir. SVG dosyaları herhangi bir internet tarayıcısı tarafından açılabilir ve vektör grafiği olmasının doğası gereği internet sayfalarının esnek düzenlerinde kullanılabilir.
- Audacity
-
Bir ses düzenleyici. Audacity, filtrelemek, efekt uygulamak ve MP3, WAV, OGG, FLAC, vb. gibi birçok farklı ses biçimi arasında dönüştürme yapmak için kullanılabilir.
- ImageMagick
-
ImageMagick, çoğu görüntü dosyası türünü dönüştürmek ve düzenlemek için bir komut satırı aracıdır. Görüntü dosyalarından PDF belgeleri oluşturmak ve bunun tersi için de kullanılabilir.
Ayrıca multimedya oynatımına adanmış birçok uygulama da vardır. Video oynatımı için en popüler uygulama VLC'dir, ancak bazı kullanıcılar smplayer gibi diğer alternatifleri tercih eder. Yerel müzik oynatımında da birçok seçenek mevcuttur, örneğin bir yerel ses dosyaları koleksiyonunu da yönetebilen Audacious, Banshee ve Amarok gibi.
Sunucu Programları
Bir internet tarayıcısı bir internet sitesinden bir sayfa yüklediğinde, aslında uzaktaki bir bilgisayara bağlanır ve belirli bir bilgi ister. Bu senaryoda, internet tarayıcısını çalıştıran bilgisayara istemci ve uzak bilgisayara sunucu denir.
Sıradan bir masaüstü bilgisayar veya özel bir donanım olabilen sunucu bilgisayar, sağlayacağı her tür bilgiyi yönetmek için özel bir programa ihtiyaç duyar. İnternet sayfalarının sunulmasıyla ilgili olarak, dünyadaki çoğu sunucu, açık kaynaklı sunucu programları kullanır. Bu özel sunucu programına HTTP sunucusu denir (HTTP, Üstmetin Aktarım Protokolü anlamına gelir) ve en popüler olanları Apache, Nginx ve lighttpd'dir.
Basit internet sayfaları bile, sıradan dosyalar (statik içerik adı verilen) veya çeşitli kaynaklardan işlenen dinamik içerik olabilen birçok istek gerektirebilir. Bir HTTP sunucusunun rolü, istenen tüm verileri toplamak ve tarayıcıya geri göndermektir; ardından tarayıcı, içeriği, alınan HTML belgesi (HTML, Üstmetin İşaretleme Dili anlamına gelir) ve diğer destekleyici dosyalar tarafından tanımlandığı şekilde düzenler. Bu nedenle, bir internet sayfasının oluşturulması, sunucu tarafında gerçekleştirilen işlemleri ve istemci tarafında yapılan işlemleri içerir. Her iki taraf da belirli görevleri gerçekleştirmek için özel betikler kullanabilir. HTTP sunucu tarafında PHP betik dilinin kullanılması oldukça yaygındır. JavaScript, istemci tarafında (internet tarayıcısı) kullanılan betik dilidir.
Sunucu programları her türlü bilgiyi sağlayabilir. Diğer sunucu programları tarafından sağlanan bilgileri talep eden bir sunucu programına sahip olmak alışılmamış bir şey değildir. Bir HTTP sunucusunun bir veritabanı sunucusu tarafından sağlanan bilgiye ihtiyaç duyması bunun gibi bir durumdur.
Örneğin, dinamik bir sayfa istendiğinde, HTTP sunucusu genellikle gerekli tüm bilgi parçalarını toplamak için bir veritabanını sorgular ve dinamik içeriği istemciye geri gönderir. Benzer şekilde, bir kullanıcı bir internet sitesine kaydolduğunda, HTTP sunucusu istemci tarafından gönderilen verileri toplar ve bir veritabanında saklar.
Veritabanı, düzenlenmiş bir bilgi kümesidir. Bir veritabanı sunucusu, içeriği biçimlendirilmiş bir şekilde saklamakta, bu da büyük miktarda veriyi güvenilir ve hızlı bir şekilde okumayı, yazmayı ve bağlamayı mümkün kılmaktadır. Açık kaynak veritabanı sunucuları sadece internet üzerinde değil birçok uygulamada kullanılmaktadır. Yerel uygulamalar bile yerel bir veritabanı sunucusuna bağlanarak verileri depolayabilir. En yaygın veritabanı türü, verilerin önceden tanımlanmış tablolarda düzenlendiği ilişkisel veritabanı_dır. En popüler açık kaynak ilişkisel veritabanları _MariaDB (MySQL kökenli) ve PostgreSQL'dir.
Veri Paylaşımı
Ofis ve evlerdeki gibi yerel ağlarda, bilgisayarların sadece internete erişebilmesi değil, aynı zamanda birbirleriyle iletişim kurabilmesi arzu edilir. Bir bilgisayar bazen sunucu görevi görürken, aynı bilgisayar bazen istemci görevi görür. Bu, biri bir USB sürücüsüne veya benzerine kopyalama zahmetine girmeden, örneğin, bir masaüstü bilgisayarda depolanan bir dosyaya taşınabilir bir aygıttan erişmek gibi, ağdaki başka bir bilgisayardaki dosyalara erişmek istediğinde gereklidir.
Linux makineleri arasında genellikle NFS (Ağ Dosya Sistemi) kullanılır. NFS protokolü, yalnızca Unix/Linux makineleriyle donatılmış ağlarda dosya sistemlerini paylaşmanın standart yoludur. NFS ile bir bilgisayar, bir veya daha fazla dizinini bu dizinlerdeki dosyaları okuyup yazabilmeleri için ağdaki belirli bilgisayarlarla paylaşabilir. NFS, tüm işletim sisteminin dizin ağacını, önyükleme yapmak için kullanacak istemcilerle paylaşmak için bile kullanılabilir. İnce istemciler olarak adlandırılan bu bilgisayarlar, her bir makinedeki her bir işletim sisteminin bakımından kaçınmak için çoğunlukla büyük ağlarda kullanılır.
Eğer ağa bağlı başka türde işletim sistemleri varsa, hepsinin anlayabileceği bir veri paylaşım protokolü kullanılması önerilir. Bu gereklilik Samba tarafından karşılanır. Samba, asıl olarak Windows işletim sistemi için yapılmış, ancak günümüzde tüm büyük işletim sistemleriyle uyumlu olan ağ üzerinden dosya paylaşımı için bir protokol ortaya koyar. Samba ile yerel ağdaki bilgisayarlar yalnızca dosyaları değil yazıcıları da paylaşabilir.
Bazı yerel ağlarda, bir iş istasyonunda oturum açıldığında verilen yetki, çeşitli yerel ve uzak kaynaklara erişimi yöneten etki alanı denetleyicisi denen merkezi bir sunucu tarafından verilir. Etki alanı denetleyicisi, Microsoft Active Directory tarafından sağlanan bir hizmettir. Linux iş istasyonları, Samba veya SSSD adlı bir kimlik doğrulama alt sistemi kullanarak bir etki alanı denetleyicisiyle ilişki kurabilir. Ayrıca sürüm 4’ten itibaren Samba, heterojen ağlarda etki alanı denetleyicisi olarak da çalışabilir.
Amaç, internet tabanlı veri paylaşımının çeşitli yöntemlerini sağlayabilen bir bulut bilişim çözümü meydana getirmekse, iki alternatif düşünülmelidir: ownCloud ve Nextcloud. İki proje birbirine çok benzemektedir çünkü Nextcloud, ownCloud’un bir uyarlamasıdır ve bu durum açık kaynak projeleri arasında alışılmadık bir şey değildir. Bu tür bölünmelere genellikle çatal denir. Her ikisi de aynı temel özellikleri sağlar: tamamen masaüstü, mobil ve internet arabirimleri aracılığıyla yapılabilen dosya paylaşımı ve eşitleme, ortak çalışma alanları, takvim, kişiler ve posta. Nextcloud ayrıca özel sesli/görüntülü konferans sağlarken ownCloud daha çok dosya paylaşımına ve üçüncü taraf yazılımlarla entegrasyona odaklanır. Daha birçok özellik daha sonra ihtiyaç duyulduğunda etkinleştirilebilen eklentilerle sağlanır.
Hem ownCloud hem de Nextcloud, ilave özelliklere ve genişletilmiş desteğe sahip ücretli bir sürüm sunmaktadır. Onları diğer ticari çözümlerden farklı kılan, hassas verilerin bilinmeyen bir sunucuda tutulmasını önleyerek Nextcloud veya ownCloud’u özel bir sunucuya ücretsiz olarak kurabilmeleridir. Tüm hizmetler HTTP iletişimine bağlı olduğundan ve PHP ile yazıldığından, kurulum Apache gibi önceden yapılandırılmış bir internet sunucusunda gerçekleştirilmelidir. Kendi sunucunuza ownCloud veya Nextcloud kurmayı düşünüyorsanız, bulutunuzdaki tüm bağlantıları şifrelemek için HTTPS’yi de etkinleştirdiğinizden emin olun.
Ağ Yönetimi
Bilgisayarlar arasındaki iletişim ancak ağ düzgün çalışıyorsa mümkündür. Normalde, ağ yapılandırması, ağ kullanılabilirliğini ayarlamaktan ve kontrol etmekten sorumlu yönlendirici üzerinde çalışan bir dizi program tarafından yapılır. Bunu başarmak için iki temel ağ hizmeti kullanılır: DHCP (Dinamik Ana Bilgisayar Yapılandırma Protokolü) ve DNS (Alan Adı Sistemi).
DHCP, bir ağ kablosu bağlandığında veya cihaz bir kablosuz ağa girdiğinde ana bilgisayara bir IP adresi atamaktan sorumludur. İnternete bağlanırken, ISP’nin DHCP sunucusu, istekte bulunan cihaza bir IP adresi sağlayacaktır. Bir DHCP sunucusu, bağlı tüm cihazlara otomatik olarak IP adresi sağlamak için yerel ağlarda da çok kullanışlıdır. Eğer DHCP yapılandırılmamışsa ya da düzgün çalışmıyorsa, ağa bağlı her aygıtın IP adresinin el ile yapılandırılması gerekir. IP adreslerini büyük ağlarda ve hatta küçük ağlarda el ile ayarlamak pratik değildir, bu nedenle çoğu ağ yönlendiricisi öntanımlı olarak önceden yapılandırılmış bir DHCP sunucusuyla gelmektedir.
IP adresi, bir IP ağındaki başka bir cihazla iletişim kurmak için gereklidir, ancak www.lpi.org
gibi alan adlarının hatırlanma olasılığı, 203.0.113.165
gibi bir IP numarasından çok daha yüksektir. Fakat alan adı tek başına ağ üzerinden iletişim kurmak için yeterli değildir. Bu nedenle bir DNS sunucusu tarafından alan adının bir IP adresine çevrilmesi gerekir. DNS sunucusunun IP adresi, ISP’nin DHCP sunucusu tarafından sağlanır ve tüm bağlı sistemler tarafından alan adlarını IP adreslerine çevirmek için kullanılır.
Hem DHCP hem de DNS ayarları, yönlendirici tarafından sağlanan internet arayüzüne girilerek değiştirilebilir. Örneğin, IP atamasını yalnızca bilinen cihazlarla sınırlandırmak veya belirli makinelere sabit bir IP adresini atamak mümkündür. ISP tarafından sağlanan varsayılan DNS sunucusunu değiştirmek de mümkündür. Google veya OpenDNS tarafından sağlananlar gibi bazı üçüncü taraf DNS sunucuları bazen daha hızlı yanıtlar ve ekstra özellikler sağlayabilir.
Programlama Dilleri
Tüm bilgisayar programları (istemci ve sunucu programları, masaüstü uygulamaları ve işletim sisteminin kendisi) bir veya daha fazla programlama dili kullanılarak yapılır. Programlar, işletim sisteminin işlemci ve diğer aygıtlar tarafından yorumlanacak ve gerçekleştirilecek bir talimat dizisi olarak gördüğü tek bir dosya veya yüzlerce dosyadan oluşan karmaşık bir sistem olabilir.
Çok farklı amaçlar için çok sayıda programlama dili vardır ve Linux sistemleri bunların çoğunu sağlar. Açık kaynak yazılımlar programların kaynaklarını da içerdiğinden, Linux sistemleri geliştiricilere kendi ihtiyaçlarına göre yazılımları anlamaları, değiştirmeleri veya oluşturmaları için mükemmel koşullar sunar.
Her program, kaynak kodu denen bir metin dosyası olarak başlar. Bu kaynak kodu, programın ne yaptığını açıklayan az çok insan dostu bir dilde yazılır. Bir bilgisayar işlemcisi bu kodu doğrudan çalıştıramaz. Derlenmiş dillerde, kaynak kodu bu nedenle daha sonra bilgisayar tarafından çalıştırılabilecek bir ikili dosyaya dönüştürülür. Derleyici denen bir program kaynak koddan yürütülebilir biçime dönüştürmeyi yapmakla sorumludur. Derlenmiş ikili dosya tek bir işlemci türüne özgü olduğundan, programın başka bir tür bilgisayarda çalışması için yeniden derlenmesi gerekebilir.
Yorumlanmış dillerde programın önceden derlenmesi gerekmez. Bunun yerine, bir yorumlayıcı program her çalıştırıldığında kaynak kodunu okur ve talimatlarını yürütür. Bu, geliştirmeyi daha kolay ve hızlı hale getirir, ancak aynı zamanda yorumlanan programlar derlenmiş programlardan daha yavaş olma eğilimindedir.
İşte en gözde programlama dillerinden bazıları:
- JavaScript
-
JavaScript çoğunlukla internet sayfalarında kullanılan bir programlama dilidir. İlk zamanlarında JavaScript uygulamaları örneğin form doğrulama rutinleri gibi çok basit uygulamalardan oluşmaktaydı. Günümüzdeyse, JavaScript birinci sınıf bir dil olarak kabul edilmekte ve yalnızca internet sitelerinde değil, sunucularda ve mobil cihazlarda da çok karmaşık uygulamalar oluşturmak için kullanılmaktadır.
- C
-
C programlama dili işletim sistemleriyle, özellikle de Unix ile yakından ilişkilidir, ancak hemen hemen her tür cihaza her türlü programı yazmak için kullanılmaktadır. C’nin büyük avantajları esneklik ve hızdır. C ile yazılmış aynı kaynak kodu, çok az değişiklikle veya hiç değişiklik yapılmadan farklı platformlarda ve işletim sistemlerinde çalışacak şekilde derlenebilir. Ancak program derlendikten sonra yalnızca hedeflenen sistemde çalışır.
- Java
-
Java’nın en önemli özelliği, bu dilde yazılan programların taşınabilir olması, yani aynı programın farklı işletim sistemlerinde çalıştırılabilmesidir. Adına rağmen Java, JavaScript ile bağlantılı değildir.
- Perl
-
Perl, en çok metin içeriğini işlemek için kullanılan bir programlama dilidir. Perl düzenli ifadelere büyük önem vermektedir ve bu onu metin süzme ve çözümleme için uygun bir dil yapmaktadır.
- Shell
-
Kabuk (Shell), özellikle Bash kabuğu, yalnızca bir programlama dili değil, aynı zamanda diğer programları çalıştırmaya yarayan etkileşimli bir arabirimdir. Kabuk betikleri olarak bilinen kabuk programları, komut satırı ortamında karmaşık veya tekrarlayan görevleri otomatikleştirebilir.
- Python
-
Python, bilgisayar bilimi ile doğrudan ilgisi olmayan öğrenciler ve profesyoneller arasında çok popüler bir programlama dilidir. Gelişmiş özelliklere sahip olmakla birlikte Python, kullanım kolaylığı yaklaşımı nedeniyle programlama öğrenmeye başlamak için iyi bir yoldur.
- PHP
-
PHP en çok internet sitelerinde içerik oluşturmak için bir sunucu tarafı betik dili olarak kullanılmaktadır. Çoğu çevrimiçi HTML sayfası statik dosyalar değil, sunucu tarafından veritabanları gibi çeşitli kaynaklardan oluşturulan dinamik içeriklerdir. PHP programları — bazen sadece PHP sayfaları veya PHP betikleri olarak adlandırılır — genellikle bu tür içeriği oluşturmak için kullanılır. LAMP terimi, bir Linux işletim sistemi, bir Apache HTTP sunucusu, bir MySQL (veya MariaDB) veritabanı ve PHP ile programlamanın birleşiminden gelir. LAMP sunucuları, internet sitesi sunucularını çalıştırmak için çok popüler bir çözümdür. PHP’nin yanı sıra, daha önce açıklanan tüm programlama dilleri de bu tür uygulamaları oluşturmak için kullanılabilir.
C ve Java derlenmiş dillerdir. Sistem tarafından yürütülebilmesi için C ile yazılan kaynak kod ikili makine koduna, Java kaynak kodu ise Java Sanal Makinesi denen özel bir yazılım ortamında yürütülen bayt koduna dönüştürülür. JavaScript, Perl, Shell betiği, Python ve PHP, betik dilleri olarak da adlandırılan yorumlanmış dillerdir.
Kılavuz Alıştırmalar
-
Aşağıdaki komutların her biri için, Debian paketleme sistemi veya Red Hat paketleme sistemi ile ilişkili olup olmadığını belirleyin:
dpkg
rpm
apt-get
yum
dnf
-
Ubuntu’da Blender’ı kurmak için hangi komut kullanılabilir? Kurulumdan sonra program nasıl çalıştırılabilir?
-
LibreOffice paketinden hangi uygulama elektronik hesap tablolarıyla çalışmak için kullanılabilir?
-
Hangi açık kaynaklı internet tarayıcısı Google Chrome’un geliştirilmesine temel olarak kullanılmaktadır?
-
SVG, vektör grafikleri için açık bir standarttır. Linux sistemlerinde SVG dosyalarını düzenlemek için en popüler uygulama hangisidir?
-
Aşağıdaki dosya biçimlerinin her biri için, ilgili dosyayı açıp düzenleyebilen bir uygulamanın adını yazın:
png
doc
xls
ppt
wav
-
Hangi yazılım paketi Linux ve Windows makineleri arasında yerel ağ üzerinden dosya paylaşımına izin verir?
Keşif Alıştırmaları
-
İlgili paket sistemden kaldırılsa bile yapılandırma dosyalarının tutulduğunu biliyorsunuz. DEB tabanlı bir sistemden cups adlı paketi ve yapılandırma dosyalarını otomatik olarak nasıl kaldırabilirsiniz?
-
Çok sayıda TIFF görüntü dosyanız olduğunu ve bunları JPEG’e dönüştürmek istediğinizi varsayın. Bu dosyaları doğrudan komut satırında dönüştürmek için hangi yazılım paketi kullanılabilir?
-
Bir Windows kullanıcısı tarafından size gönderilen Microsoft Word belgelerini açabilmek için hangi yazılım paketini yüklemeniz gerekir?
-
Her yıl, linuxquestions.org en popüler Linux uygulamaları hakkında bir anket düzenler. https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ adresini ziyaret edin ve deneyimli Linux kullanıcıları arasında hangi masaüstü uygulamalarının en popüler olduğunu öğrenin.
Özet
Bu derste şunları öğrendiniz:
-
Başlıca Linux dağıtımlarında kullanılan paket yönetim sistemleri
-
Popüler dosya biçimlerini düzenleyebilen açık kaynaklı uygulamalar
-
Birçok önemli İnternet ve yerel ağ hizmetinin altında yatan sunucu programları
-
Yaygın programlama dilleri ve kullanımları
Kılavuz Alıştırmaların Cevapları
-
Aşağıdaki komutların her biri için, Debian paketleme sistemi veya Red Hat paketleme sistemi ile ilişkili olup olmadığını belirleyin:
dpkg
Debian paketleme sistemi
rpm
Red Hat paketleme sistemi
apt-get
Debian paketleme sistemi
yum
Red Hat paketleme sistemi
dnf
Red Hat paketleme sistemi
-
Ubuntu’da Blender’ı kurmak için hangi komut kullanılabilir? Kurulumdan sonra program nasıl çalıştırılabilir?
apt-get install blender
komutu. Paket adı küçük harflerle belirtilmelidir. Program doğrudan uçbirimdenblender
komutuyla veya uygulamalar menüsünden seçilerek çalıştırılabilir. -
LibreOffice paketinden hangi uygulama elektronik hesap tablolarıyla çalışmak için kullanılabilir?
Calc
-
Hangi açık kaynaklı internet tarayıcısı Google Chrome’un geliştirilmesine temel olarak kullanılmaktadır?
Chromium
-
SVG, vektör grafikleri için açık bir standarttır. Linux sistemlerinde SVG dosyalarını düzenlemek için en popüler uygulama hangisidir?
Inkscape
-
Aşağıdaki dosya biçimlerinin her biri için, ilgili dosyayı açıp düzenleyebilen bir uygulamanın adını yazın:
png
Gimp
doc
LibreOffice Writer
xls
LibreOffice Calc
ppt
LibreOffice Impress
wav
Audacity
-
Hangi yazılım paketi Linux ve Windows makineleri arasında yerel ağ üzerinden dosya paylaşımına izin verir?
Samba
Keşif Alıştırmalarının Cevapları
-
İlgili paket sistemden kaldırılsa bile yapılandırma dosyalarının tutulduğunu biliyorsunuz. DEB tabanlı bir sistemden cups adlı paketi ve yapılandırma dosyalarını otomatik olarak nasıl kaldırabilirsiniz?
apt-get purge cups
-
Çok sayıda TIFF görüntü dosyanız olduğunu ve bunları JPEG’e dönüştürmek istediğinizi varsayın. Bu dosyaları doğrudan komut satırında dönüştürmek için hangi yazılım paketi kullanılabilir?
ImageMagick
-
Bir Windows kullanıcısı tarafından size gönderilen Microsoft Word belgelerini açabilmek için hangi yazılım paketini yüklemeniz gerekir?
LibreOffice veya OpenOffice
-
Her yıl, linuxquestions.org en popüler Linux uygulamaları hakkında bir anket düzenler. https://www.linuxquestions.org/questions/2018-linuxquestions-org-members-choice-awards-128/ adresini ziyaret edin ve deneyimli Linux kullanıcıları arasında hangi masaüstü uygulamalarının en popüler olduğunu öğrenin.
Tarayıcı: Firefox. E-posta istemcisi: Thunderbird. Ortam yürütücüsü: VLC. Resim düzenleyici: GIMP.