Cumartesi 21 2020

Bilgi Teknolojileri 》 3. KONU

            
 Konu 3  
                       
Açık kaynak kod, kapalı kaynak kod ve özgür yazılım hakkında araştırma yapınız ve ülke    güvenliği/maliyet/etik gibi konularda fikirlerinizi yazınız. 



                                     ÖZGÜR YAZILIM  NEDİR ?

Eğer kullanıcılar bir yazılımı özgürce kullanabiliyor, kopyalayabiliyor, dağıtabiliyor ve üzerinde çalışıp değişiklik yapabiliyorlarsa bu yazılım bir özgür yazılımdır.

  • Herhangi bir amaç için yazılımı çalıştırma özgürlüğü.
  • Her ne istiyorsanız onu yaptırmak için programın nasıl çalıştığını ögrenmek ve onu değiştirme özgürlüğü. Yazılımın kaynak koduna ulaşmak, bu iş için önkoşuldur.
  • Kopyaları dağıtma özgürlüğü. Böylece komşunuza yardım edebilirsiniz.
  • Tüm toplumun yarar sağlayabileceği şekilde programı geliştirme ve geliştirdiklerinizi (ve genel olarak değiştirilmiş sürümlerini) yayınlama özgürlüğü. Kaynak koduna erişmek, bunun için bir önkoşuldur.

Bir yazılım, eğer yazılımın kullanıcıları bu özgürlüklere sahipse özgür yazılımdır. Yani, kopyalarını değiştirerek ya da değiştirmeden, ücretli ya da ücretsiz, herhangi birine dağıtmaya serbest olmalısınız. Bu anlamda özgür olmak demek, tüm bunları yapmak için izin istemek zorunda olmamanız demektir.

                                           4 TEMEL ÖZGÜRLÜK 

Bir program, eğer kullanıcıları 4 temel özgürlüğe sahipse, bir özgür yazılımdır.

● Herhangi bir amaç için yazılımı çalıştırma özgürlüğü .   ( 0 numaralı özgürlük)

● Her ne istiyorsanız onu yaptırmak için programın nasıl  çalıştığını öğrenmek ve onu değiştirme özgürlüğü . Yazılımın kaynak  koduna ulaşmak bu iş için önkoşuldur. (1 numaralı özgürlük ) 

● Kopyaları dağıtma özgürlüğü. 
Böylece komşularına yardım edebilirsiniz .
( 2 numaralı özgürlük)

●  Tüm  toplumun yarar sağlayabileceği şekilde programı geliştirme ve geliştirdiklerinizi ( ve genel olarak değiştirilmiş sürümlerini) yayınlama özgürlüğü.  Kaynak koduna erişmek  bunun için önkoşuldur . ( 3 numaralı özgürlük)

ÖZETLE,  

Bir yazılım,  eğer yazılım kullanıcıları bu özgürlüklere sahip ise özgür  yazılımdır,  aksi hâlde özgür değildir.
Yani ,  kopyalarını değiştirerek ya da değiştirmeden,  ücretli ya da ücretsiz,  herhangi birine dağıtmaya  serbest olmalıdır.
Bu anlamda özgür olmak  demek, tüm bunları yapmak için izin istemek zorunda olmamanız demektir .


Özgür bir program , yazılımın herhangi bir kopyasını  edinen tüm kullanıcılara, yazılımı kapsayan özgür lisansın burun koşulların o zamana kadar uymaları şartıyla 4 özgürlüğü sunmalıdır. 

              PROGRAMI  ISTEDIĞIMİZ GIBI   ÇALIŞTIRMA ÖZGÜRLÜĞÜ

Bir programı kullanma özgürlüğü demek, onu herhangi bir bireyin ya da kurumun, herhangi bir bilgisayar sistemi üzerinde,  herhangi bir iş için geliştirici ya da başka şeyle ile iletişim kurmak zorunda olmadan kullanılabilmesi demektir, bu özgürlükte kullanıcıların amacı önemli,  geliştiricinin değil .
Biz , kullanıcı olarak kendi amaçlarımız  için bir programı çalıştırmaya özgürüz  ve eğer bir başkasına dağıtırsak,  o da kendi amaçları için programı çalıştırmaya özgürdür,  ama kendi amaçlarımız için onu zorlayamayız.
Programı istediğimiz gibi çalıştırma özgürlüğü  çalıştırmamızın yasaklanmadığı ya da durdurulmadığı anlamına gelir.
Bu programın,  ister herhangi bir ortamda teknik yönden işlevli  olsun,  isterse de herhangi bir belirli hesaplama faaliyeti olsun, hangi işlevsellikleri barındırdığından bağımsızdır. 
 
 ÖRNEĞİN ;

Eğer kod nedensiz bir şekilde anlamlı girdileri reddederse veya hatta koşulsuz bir şekilde çökerse bu programın yararını azaltabilir,  belkide tamamen yararsız kılar. 

Ancak bu durum yine de kullanıcıların programı çalıştırma özgürlüğünü engellemez. 
    

                                         Açık Kaynak Kod Nedir?

"Açık kaynak kodlu yazılım" terimini sıkça duyuyoruz. Linux ve Linux tabanlı Android gibi yazılımların açık kaynak kodlu olduğunu biliyoruz. Peki açık kaynak kod tam olarak ne demek ve açık kaynaklı yazılımın avantajları neler?

Programlar, yani kısaca .exe, ..dmg, .deb gibi dosyalar, binlerce "kaynak kodu" satırından derlenmiştir. Programlama dilini bilmeyenler için fazlasıyla karışık görünebilecek bu kodlar, bir uygulama dosyası olarak derlenir. Derleme işleminden sonra artık kaynak koduna ihtiyaç duyulmaz. Dolayısıyla iTunes gibi bir yazılımı çalıştırırken kaynak kodunu görmez, sadece ürünün son halini görürsünüz. Çoğumuz için bu zaten olması gereken şeydir. Açık kaynak kodlu yazılımlar ise kaynak kodlarıyla beraber yayınlanırlar. Geliştirici, bazen onları derleyip, kaynak kodlarının yanında bir uygulama dosyası da sunabilir. Bazı durumlarda ise derleme işi kullanıcıya bırakılır.

Avantajları ;

-Açık kaynak kodlu yazılımlar, programcı topluluğunun gelişimini sağlar. Bu sayede eğitime, yaratıcılığa ve ilham almaya yardımcı olur.
-Açık kaynak kodlu yazılımlarda örneğin bir açık bulunduğunda, onunla ilgilenen çok daha fazla kişi olduğundan çok daha çabuk kapatılabilir. Kapalı kaynak kodlu yazılımlarda ise uzun bir süre beklemeniz gerekebilir.
-Yazılımların farklı çeşitlerinin ortaya çıkmasını sağlar. Örneğin Mozilla Firefox, Chromium ve Linux'tan türeyen birçok yazılım var.
-Yazılım geliştiricisinin PC'nizde şüpheli işler çevirmediğinden emin olmanızı sağlar. Kaynak kodu kapalı bir yazılımın yaptığını iddia ettiği şeyleri gerçekten güvenilir yoldan yaptığını anlamanın çok fazla yolu olmayabilir.

Açık kaynak kodlu işletim sistemleri;

Kişisel bilgisayar kullanımının popüler bir hal almaya başladığı zaman dilimi içerisinde işletim sistemi olarak en çok kullanılan sistemler Windows ve Apple'ın ürettiği Mac OS işletim sistemleriydi. Bu işletim sistemleri kullanıcılara belli bir lisans karşılığı satılıyor ve kaynak kodları gizli olarak ulaşıyordu. Ticari amaçlara dönüştürülen bu işetim sistemleriyle beraber tamamen açık kaynaklı “özgür yazılım” hareketi de baş gösterdi. Bu hareket sonucunda ortaya güzel bir alternatif olarak Linux tabanlı dağıtımlar sunulmaya başlandı. Hala günümüzde azımsanamayacak bir aktif kitle tarafından kullanılan Linux tabanlı işletim sistemleri açık kaynak kodludur ve kullanıcılarının geliştirmesine açık olarak yayın yapmaktadır. Açık kaynak kodlu ve özgür bir yazılım olduğu için de Linux dağıtımlarının büyük bir kısmı ücretsiz olarak kullanılabilmektedir.

Son olarak; kaynak kodların daha kolay yorumlanabilmesi için yazılımcılar kod satırlarının içerisine yorum ekleyebilirler. Eklenen bu yorumlar sadece kaynak kod dosyası incelenirken görünür ve normal şartlarda görülemez. Bu yorumların eklenmesinin nedeni sistemi parçalara ayırmak ve olası güncelleme ya da sorun giderme durumunda diğer yazılımcıların veya kendisinin kolayca doğru kod parçasını bulmasına yardımcı olmasıdır. Sadece işletim sistemi değil birçok alanda hizmet eden küçük ya da büyük birçok yazılım geliştirilmektedir. Açık kaynak topluluğu Photoshop gibi ticari yazılımlara alternatif olarak Gimp gibi açık kaynaklı ve ücretsiz yazılımlar çıkarmıştır ve çıkarmaya devam etmektedir. Çeşitliliği ve kaliteyi artırmak için kullanılarak ya da geliştirilerek destek verilmesi gerekir.


              Kapalı Kaynak Kodlu Yazılım Nedir?

Kapalı kaynak, kaynak kodu açıklanmamış bilgisayar programları için kullanılan genel bir tabirdir.
Bilgisayar yazılımlarını oluştururken kullanılan kod bütününe kaynak kodu denir. Genellikle bu kod, programın içinde gizlenmiş durumdadır. Programcılar eğer bu kodu paylaşmak istemezlerse kodu saklarlar. Bu tür yazılımlara kapalı kaynak kodlu yazılımlar denir. Kapalı kaynak kodlu yazılımlar, çoğunlukla paylaşma, değiştirme ve tersine mühendislik gibi işlemlere izin vermeyen lisanslara sahiptir. Açık kaynak kodlu yazılımın ne demek olduğunu anlamak için, öncelikle bilindik kapalı kaynak kodlu yazılımların nasıl çalıştığını incelemeliyiz. Mutlaka Windows XP, Office XP yada Adobe Photoshop ya da benzeri bir program kullanmışsınızdır. Bunların hepsi kapalı kaynak kodlu yazılımlara örnek.
Bütün bildiğiniz programlar başlangıçta yazıdan oluşan bir kaynak koduna sahiptirler. Onlarca, belki de yüzlerce bilgisayar programcısı bu kaynak kodunu yazıp sonra da daha hızlı çalışan makina dili ya da ikili (binary) sürüm haline getirmek için bu kodları derlerler (compile). Bu ikili dosyalar Windows XP ya da Office XP aldığınızda size verilen CD’lerde bulunur.
Bu işlemi fırından ekmek almaya benzetebilirsiniz. Fırıncı çeşitli hamur işi yiyecekler için tariflere sahiptir. Siz fırına girer belli bir ücret öder ve istediğiniz ürünü alırsınız. Fakat aldığınız şey ekmektir kesinlikle tarif yanında gelmez.

            Kaynak kodun açık olması güvenliği nasıl etkiler?


Özgür yazılımla yeni tanışmış olanların aklına ilk gelen sorulardan biri kaynak kodun açık olmasının bir güvenlik sorunu oluşturup oluşturmayacağı oluyor. Madem programın kaynak kodu ortada saldırganlar bunu saldırı için de kullanabilirler, bu da olumlu bir şey değil diye düşünüyor büyük kalabalıklar. Güvenlikle ilgili neredeyse bütün yazılımların kaynak kodlarının açık olması, kullandığımız bütün şifreleme araçlarının kodlarının ortada olması içinizi rahatlatmıyorsa birlikte bakalım durum gerçekten böyle mi?
Algoritmayı gizleyerek güvenlik sağlanamaz
Kriptografi dersinin başlangıcında anlatılan konu budur: bir algoritmayı gizleyerek onu daha güvenli hale getiremezsiniz. Konuyla ilgisi yok ama gizlenmesi gereken şey algoritma değil anahtar olmalıdır. Eğer güvenlik için tek dayanağınız algoritmanın gizliliği olursa o sızdırıldığında (saklanmak isteyen her şey bir gün sızdırılacaktır) algoritmanın yenilenmesi gerekecektir. Bunun ne kadar büyük maliyetli bir iş olacağı düşünülünce açıklıktan başka alternatif olmadığı da görülecektir.
Hatasız yazılım olmaz!
Yazdığınız programın kaynak kodunu ister açın isterseniz kapalı tutun mutlaka hatalar/açıklar içerecektir. Yazılımı tek başınıza sizin yazmış olmanız veya bir grupla geliştirmiş olmanız bu gerçeği değiştirmeyecektir. Ne kadar kalabalık bir geliştirici topluluğunuz olursa hatalar da o kadar azalacaktır. Benzer şekilde test için projeye ayırabileceğiniz kaynak da hataların azaltılmasına olumlu katkıda bulunacaktır. Projenizin kaynak kodlarını geliştirici ekipten başka kimsenin görmesine izin vermezseniz bütün bu yük sizin üzerinizde olacaktır. Halbuki projenizi bir özgür yazılım veya açık kaynak lisansıyla lisanslarsanız kaynak kodlarınıza başkaları da bakıp hataları size bildirebilecek veya daha da iyisini yapıp iyileştirmeleri size gönderebilecektir. Eğer benim projeme kim bakacak diyorsanız kendi endişenizi kendiniz ortadan kaldırmışsınız demektir ama projenizi dışarıdan katkı almaya uygun bir şekilde lisanslarsanız projeye ayıracağınız bütçe ile bedelini ödeyemeyeceğiniz geliştiricilere ve testçilere kavuşabilirsiniz.
Özgür yazılımlara daha çok göz bakar
Yazılımın geliştiricisi değil de kullanıcısı iseniz daha çok kişi tarafından ortaklaşa geliştiriliyor olması ve daha fazla test edilmiş olması sizin için daha az hata barındıran bir yazılım anlamına gelecektir. Neden bir şirketin çalıştırabileceği sınırlı sayıda yazılım geliştiriciye güvenebilirken dünyanın dört bir tarafına dağılmış çok daha büyük kalabalıklara güvenmeyeceksiniz? Hangi şirket bir tarayıcı yaklaşık 5000 kişinin kod göndermesine, yani yazılımın kodlarını okumasına kaynak ayırabilir? Bunu ancak özgür yazılımın gücü sağlayabilir.

Yazılımların hataları çoğunlukla kod okuyarak bulunmaz
Bir projenin kaynak kodlarını okuyup hatasını bulmak tahmin edilenden çok daha zor bir iştir. Elbette yazılımların hataları, açıkları kodları da okunarak tespit edilebilir ama yukarıdaki örneğe bakarsanız yaklaşık 16 milyon satırlık bir projede bunun pek kolay bir iş olmayacağını tahmin edebilirsiniz. Peki yazılımların açıkları nasıl bulunuyor? Belirli koşullar altındaki davranışlarına bakılarak elbette. Neredeyse bütün GNU/Linux dağıtımlarının varsayılan olarak kullandığı kabuk olan bash’in 1989’dan bu yana içerdiği bir hata ancak 2014’de görülebildi. Eğer kodu okuyup açığı tespit etmek sanıldığı kadar kolay olsaydı bu 25 yıldan kısa sürerdi herhalde.
Özgür yazılımların açıkları çok hızlı kapatılabilir
Özgür yazılımlar kullanıcılarına yazılım üzerinde değişiklik yapma ve bu değişikliği dağıtma hakkı verdiklerinden bir yazılım için geçerli bir hata veya açık bulunduğunda onu mutlaka geliştiricinin düzeltmesi gerekmez. Yazılımın geliştiricisini veya ait olduğu firmayı beklemek zorunda kalmazsınız özgür yazılım kullanırken.

Yazılımın kaynak kodlarının açık olması elbette yukarıda saydığım avantajlar için yeterli değildir. Eğer kullanıcılar yazılımı istedikleri gibi çalıştıramıyorsa, değiştiremiyorsa, dağıtamıyorsa veya değiştirdiği halini dağıtamıyorsa yazılım bu getirilerden mahrum kalacaktır. Yani sadece kaynak kodun açık olmasından sihirli bir iyileştirme beklememek gerekir. Bu avantajları bize sağlayan şey özgür yazılımdır.

Ülke Güvenliği:

 Yazılımların kodlarına herkes ulaşmalıdır. Kısacası açık kaynak kod ve özgür yazılım  kapalı kaynak koda göre daha güvenlidir. 

Maliyet: 

Bu tür yazılımlar ya ücretsiz ya da özellikle diğer türlerde yazılımlara kıyasla oldukça daha düşük ücretlerle sunulduğundan maliyeti düşürmek açısından da tercih edilmelidir. 

Etik/Ahlaki Açıdan:

Etik açıdan özgür yazılımın kullanılması ,özgür yazılıma destek olunması yazılımların gelişimine de katkı sağlamak açısından önemlidir. Ayrıca sağladığı 4 temel özgürlük de (çalıştırma, değiştirme, dağıtma, geliştirme) topluma fayda  sağlamak amacıyla  düşünülmüş  özgürlüklerdir. Bu yüzden ahlaka da uygundur. 


Yararlandığım kaynaklar :

http://ozgurlisanslar.org.tr/sik-sorulan-sorular/ozgur-yazilim-nedir/

https://forum.pardus.org.tr/t/kaynak-kodun-acik-olmasi-guvenligi-nasil-etkiler/1586

Ve blogumda ki yazı 

https://www.blogger.com/blog/post/edit/1348394277034548609/1059683498150948315





Bilgi Teknolojileri 》 5.KONU

                                              Konu 5 Libre Office ve Microsoft ofis yazılımları hakkında araştırma yapınız ve kullanımlarınd...