01 - Linux Giriş

LinuxBannerBu Eğitim Kimler İçin?

Linux nedir? ne işime yarar? kariyerimde gereklimi? Sorularını kendinize soran biri iseniz bu eğitim tam size göre. 

Önsöz

Linux günlük hayatınızda her işinize yarayacak mükemmel bir client (bireysel) işletim sistemidir diyemem ama uzmanlık alanlarına göre mükemmel işlevsellikleri olan yüzlerce Linux sürümünü iş hayatında kullanmak istiyorsanız Linux öğrenmeye muhtaçsınız.

Nedir bu alanlar derseniz benim deneyimlerim sonucu şunu alanlarda şaheser Linux platformları vardır.

Mail sunucuda Zimbra, (Centos, şu sıralar adı Almira)
Monitöring konusunda Zabix, LibreNMS (Centos)
Ip Santral konusunda FreePbx, (Centos)
Web server konusunda Cpanel, (Almira)
Penetrasyon konusunda Kali,
CRM/ERP Alanından SAP sunucuları, (Suse)
Linux Docker mimarisi, (Ubuntu, Suse, Centos vb…)
Sanallaştırma alanında Esxi, (SimOs kullanır bir Unix varyantı aslında linux’un atası)
Vcenter (Project Photon OS)
NVR sistemleri için shinobi (Ubuntu)
Anlık mesajlaşma jitsi (Debian / ubuntu)
Sql platformları Oracle, maria db için (Ubuntu, Suse, Centos vb…)
Sistem Loglama GrayLog, Logsign (Ubuntu vb…)
SIEM SecurityOnion (Ubuntu,  vb…)
Modern File Server NextCloud (Ubuntu, Suse, Centos vb…)
Storage sistemlerinin hepsi (özelleştirilmiş Linux çekirdekleri)
Nac sistemleri clearpass, (Centos)
Firewall cihazları pfsense (FreeBSD)
Spam gateway korumail vb…(özelleştirilmiş Linux çekirdekleri)
Backup ve replikasyon sistemleri Avamar, recover point (özelleştirilmiş Linux çekirdekleri)
3cx ip telefon sistemleri (Debian)
Proxmox Virtual Environment (Debian)
Proxmox Mail Gateway (Debian)
Proxmox Backup Server (Debian)

Bunların dışında antivirüs sunucuları, IoT cihazları say say bitmez.

Sistem veya yazılım üzerine bir kariyer planlıyorsanız Linux bilmeden olmaz diyebilirim. Ev kullanıcısı veya teknolojiyi hobi olarak kurcalayanlardansanız Linux size pek haz vermeyebilir.
Linux Sistemlerin çekirdek yapıları, komut setleri yapımcına göre değiştiğinden, ilk yıllarınızda size baya bir saç baş yoldurtabilir.

Burada biraz proaktif yaklaşarak sizi düşünmeye yönlendireyim. Genelde IT dünyasında ben linux’ün kitabını yazdım, Linux’ü ağlatırım gibi konuşan kişilerle çok karşılaşırsınız.

Hangi linux’ü biliyorsun! Dediğimde kafaları karışıyor gardlarını düşürdükten sonra da biraz laf ile tokatlıyorum. Bu duruma kendiniz düşürmeyin.

Aşağıdaki tabloda Linux çekirdekleri, kabukları ve distro sürümleri yer almakta. Endüstri için değiştirilmiş sürümlerinden tutunda, ev kullanıcılarından, cep telefonlarına hatta akıllı saatlere kadar birçok sistemin içinde Linux çekirdeği vardır.

http://ferhatyildiz.com/toploji/LinuxDagitimlari.svg

 

 

OS Nedir?Donanim Os insan

Elektrik, Bilgisayar veya yazılım mühendisliği alanlarında okumuyorsanız OS (Operating System) nedir size anlatmam çok zor bu sebepten Sistem Mühendisliği eğitimimi izlemenizi tavsiye ederim. Size değişik bir hayata bakış açısı sunacağımı düşünüyorum.

Biliyorum burayı bırakıp dönüp sistem mühendisliği kursuna başlamayacaksınız bu sebepten kabaca anlatayım size OS yani işletim sistemi makine donanımı ile kullanıcı arasındaki iletişimi sağlayan ara yazılım birimi. Ayrıca diğer bir görevi de üzerinde yüklü olan diğer yazılımları koordine etmek iş sıarsına sokmak. Acayip kabaca anlattım bir Linus Torvalds okusa bana küfür eder. Siz en iyi sistem mühendisliğine giriş eğitimimi izleyin böyle olmayacak.

 

 

 

Linus Torvalds Linux Nedir?

Linux ismi tek başına işletim sistemi değil çekirdektir! Linux çekirdeği diye geçer. Linux’e geçmeden önce UNIX ne bilmeliyiz yoksa aklınıza yanlış yer ediyor. Tesla’yı Elon Musk icat etti zannettiğiniz gibi işletim sistemlerinin babası da Linus Torvalds sanıyorsunuz.

Linux çekirdeğini yazan Linus Benedict Torvalds  Hollandalı profesör Andrew Tanenbaum'un işletim sistemleri ile ilgili yazdığı kitabı bir dönem önceden alıp okumaya başlamış. Kitap aynı zamanda Tanenbaum tarafından yazılmış Unix benzeri bir akademik çalışma sistemi olan Minix'i anlatmaktadır. Detaylar internette her yerde var ben adamın hayatını çok irdeleyip yüceltmeyeceğim yerin dibine de sokmayacağım dikkatinizi çekmeye çalışacağım nokta nasıl yaptığı.
Linus Benedict Torvalds  Bilgisayarla tanışması 1981 yılında iktisat profesörü olan büyükbabasına ait Commodore VIC-20 ile olmuştur. O dönemde iktisatçılar şimdiki gibi exel ile çalışmıyorlar bildiğiniz yazılım mühendisi gibi kod yazarak hesaplamaları yaptırıyorlar.
Linus Benedict Torvalds dedesine ait kâğıda yazılmış hesaplamaları bilgisayara yaza yaza farkında olmadan programcılığa başlamış olmuş. Gazeteci anne baba ve iktisatçı dede, iyi ışık alan mutsuz olmanın yasak olduğu bir ülke, kendisi de sakin bir kişilik bu adam kod master olmasında ben mi olayayım diye imrenmeden edemiyorum.

İnsanların lisans ücretinden kaçmak için kendi işletim sistemini yazma akımı devam ediyorken bu durum Linus Torvalds'ı da etkilemiş olacak ki Linus, UNIX'ten esinlenerek Helsinki Üniversitesi'ndeyken kendi işletim sistemi çekirdeğini yazdı. Daha sonra Linus, bu geliştirdiği çekirdeğin çeşitli insanlara ve geliştirici topluluklara ulaşmasını sağlayarak, insanların verdiği dönüşlere göre düzenlemeler yaptı. Linus, bu geliştirdiği çekirdeğe(kernel) "Freax" adını verdi. Ancak Linux bir çekirdekti ve içerisinde UNIX gibi kullanışlı araçları bulundurmuyordu.

 
Richard StallmanLinux cephesinde bunlar yaşanıyorken Richard Stallman'da ,  GNU genel kamu lisansını ortaya atarak özgür yazılımı savunuyordu.

Açık kaynak yazılımların kaynak kodlarının herkese açık şekilde yayınlanmış olmasıdır. Bu sayede yazılımların tüm çalışma yapısı şeffaf bir biçimde herkes tarafından denetlenebilir. Şeffaf denetim imkanı olduğu için yazılım içerisinde zararlı kodlar bulunma ihtimali de son derece düşürülmüş olur. Böylelikle mevcut yazılımın geliştirilmesi ve ihtiyaç halinde daha verimli alternatiflerinin ortaya konulabilmesi için iyi bir zemin sağlanır. Açık kaynağın sağladığı avatajlar dolayısıyla "açık kaynak" genellikle "özgür yazılım" adıyla birlikte anılır. İki kavram arasındaki farkı Richard Stallman aşağıdaki ifadeler ile net biçimde açıklamıştır.

“Her iki kavramda hemen hemen aynı kategoride yer alan yazılımları tasvir ediyor olsa da, esasen farklı değerleri temsil ediyorlar. Açık kaynak (open source) bir geliştirme metodolojisi iken, özgür yazılım (free software) ise sosyal bir harekettir.”

Açık kaynağın ve özgür yazılımın(free software) birlikte anılmasının yansıması olarak genellikle insanlar açık kaynağın ücretsiz yazılım demek olduğu yanılgısına düşebiliyorlar. Açık kaynak Richard Stallman'ın da belirttiği şekilde yalnızca bir geliştirme metodolojisidir. Bu sebeple hem ücretli hem de ücretsiz açık kaynaklı pek çok yazılım bulunmaktadır. Yani açık kaynak ve ayrıca özgür yazılım "ücretsiz-bedava" demek değildir. Yazılımların özgür olmasını sağlayan, sahip oldukları lisans türleridir. Richard Stallman da açık kaynağı ve özgür yazılımı desteklediği için bu doğrultuda GPL lisansını sunmuştur.

GPL

GNU GPL (General Public License - Genel Kamu Lisansı) açık kaynağı destekleyici bir lisans türü olup, ilk defa açık kaynak kodlu yazılımların kapalı kaynak kodlu hale getirilerek satılmasından rahatsız olunması sonucu öneri olarak geliştirilmiştir.

GPL 4 temel özgürlük üzerine kurulmuştur bunlar:

    1: Programı sınırsız kullanma özgürlüğü.

    2: Programın nasıl çalıştığını inceleme ve amaçlara uygun değiştirme özgürlüğü.

    3: Programın kopyalarını sınırsız dağıtma özgürlüğü.

    4: Programın değiştirilmiş halini dağıtma özgürlüğü.

Açık kaynak, özgür yazılım ve GPL lisansından bahsettiğimize göre artık GNU oluşumunu doğru şekilde anlamak için gereken zeminimiz hazır demektir.

GNU (Gnu is Not Unix/GNU Unix Değildir), açık kaynak hareketi doğrultusunda geliştirilen araçların içinde bulunduğu ücretsiz ve herkes için ulaşılabilir özgür bir işletim sistemidir. Ancak GNU için her şey her daim güllük gülistanlık değildi. GNU, içerisinde kendine ait güçlü araçları bulundurmasının yanı sıra kararlı bir çekirdeğe sahip değildi.

Tam da bu noktada Linus Torvalds'ın sıfırdan geliştirip topluluğa sunduğu çekirdek (Linux) yazılımı, GNU ile tencere kapak uyumu olacak şekilde bir araya geldi. Böylelikle ortaya bir GNU/Linux efsanesi çıktı.

Dağıtım (Distro) Nedir ve Hangisini Seçmeliyiz? Seçemezsiniz ? o sizi seçer

https://distrowatch.com/  

Peki ama biz hangi dağıtımı seçmeliyiz yani hangi dağıtım bize daha uygun?

Mobil cihaz kullanıyorsanız android,
rasperi cihaz kullanıyorsanız arm işlemci destekli bir Linux,
evde multimedya TV yapacağım diyorsanız unubtu,
makalenin en başında saydığım kurumsal uygulamaları kullanacaksanız uygulamayı destekleyen dağıtımlara kurulum yapmalısınız.

Bunun dışında Shell yani kabuk sizin için bir seçim olabilir Örneğin debian’ın alt dağıtımlarını kullanırsanız hemen hemen aynı depolar ve komutlarla tüm alt dağıtımları kullanabilirsiniz. Bunla debian, ubuntu, kali, pardus benim en çok kullandıklarım. "Pardus" da kullansanız "Kali Linux" da kullansanız apt paket yönetim aracı varsayılan olarak yüklü gelecektir. İşte bizler de bu eğitimde Debian tabanlı dağıtımları nasıl yönetebileceğimizi öğrenmiş olacağız.
Diğer yandan RPM tabanlı red hat, süse, centos, fedora kurumsal uygulamalarda çokça karşınıza çıkacaktır.

Linux sistemleri CLI ve GUI olarak kullanabilirsiniz CLI (Command Language Interface) yani sistemde Mouse ile tıklayabileceğiniz hiçbir grafiksel alan yoktur herşeyi klavyenizden yazarak yaparsınız bunun bu şekilde olmasının sebebi sistemin daha az kaynak tüketmesinin sağlanmasıdır. Şimdi diyeceksiniz 2 gb ram fazla gitsin ama GUI (Graphical User Interface ) olsun şöyle düşünün bir web hosting firmasısınız ve Linux tabanlı sanal sunucular kiralıyorsunuz her oluşturduğunuz sanal sunucu GUI için 1gb Ram 1Ghz işlemci gücü ve 1Gb ilave disk alanı tüketse 1000 müşteriniz olsa donanım maliyetiniz çok fazla artar. Artı azda olsa gui’de güvenlik zafiyeti biraz daha fazla ve işinizin içine birde gui update işi çıkacak. Şahsi bilgisayarınızda GUI kurmamak ise tam bir ahmaklık olur çünkü internete girmek için bir web tarayıcınız bile olmaz.

Umarım GUI ile CLI arasındaki farkı anlamışsınızdır.

Linux sürümlerinde maalesef bir sürüm diğerini tutmuyor ben bu eğitimi yaptığımda kullandığım komut ve programlar siz iki yıl sonra bu videoyu izleyip uygulamaya çalıştığında büyük ihtimal çalışmayacak. Ubuntu 20.0 ile Ubuntu 20.01 arasında fark olabilir. Depolarda olan bir program başka bir sürümde desteklenmeye bilir.

Bir diğer sorun kabuk değişimi piyasada birçok Linux kabuğu bulunmakta bash, tcsh, ksh, zsh, fish en çok kullanılan kabuklardır (Shell).  Taklitçi Windows'un Power Shell'i gibi düşünebilirsiniz.
Bir kabuk , kullanıcı ve işletim sistemi(OS) arasında bir arayüz görevi gören bir yazılım programıdır. Başka bir programı çalıştırmak için kullanılan bir komut yorumlayıcısı olarak da düşünülebilir.

Linux Shell 

Biz bu eğitimde Debian tabanlı sistemlerde standart olan yönetim araçlarını, komutlar ile sistemi yönetmemizi sağlayan Bash kabuğunun kullanımını ve Linux’un sahip olduğu temel standartları öğreniyor olacağız.

Web sayfamda saha hizmetleri menüsü altında SAP konusunu işlerken Suse Linux kabuğunu ve genel kullanımınıda inceleyeceğiz. Burada PEN testlerde yoğunlukla tercih edilen Debian dağıtımı olan Kali üzerine çalışacağız.