Dosya Sistemleri

4. Dosya Sistemleri

Özlü Söz

 

“Üç kesin gerçek vardır. Ölüm, vergiler ve veri kaybı.”(David Dixon)

Kazanımlar

∙ Disk yönetim yöntemlerini öğrenebilir.

∙ Dosya ve Dizin yapıları üzerinde işlemler gerçekleştirebilmeyi öğrenebilir.

∙ İşletim sistemlerinin kullandığı farklı dizin yapıları hakkında fikir sahibi olabilir.

∙ Disk problemlerini tanıyabilir ve çözüm üretebilir.

∙ Disk planlama algoritmalarını tanıyabilir ve parametrelerini hesaplayabilir.

Birlikte Düşünelim

 

1. Dosyalara disk üzerinde alan tahsis etme işleminde yapay zeka tekniklerinden faydalanılabilir mi?2. Disk planlamasında hangi parametreler dikkate alınmalıdır?3. Disk planlamasında kullanılan parametreler bilgisayar performansına bağlı mıdır?

Başlamadan Önce

 

Bu bölümde işletim sisteminin dosya yönetimi için gerçekleştirdiği aktiviteler; dosya yönetimi, dizin yönetimi ve disk yönetimi başlıkları altında anlatılacaktır. Dosya ve dizin kavramlarına detaylıca yer verilecek ve işletim sistemlerinde yaygın olarak kullanılan farklı dosya erişim yöntemleri, alan tahsis etme yöntemleri, boş alan yönetimi için başvurulan yöntemler, disk planlaması için kullanılan algoritmalar örneklerle birlikte anlatılacaktır.

4.1. Dosya

Dosya benzer özellikler gösteren bir dizi kaydın tutulabilmesini sağlayan bir veri yapısıdır. Fotoğrafların bir arada olduğu fotoğraf dosyası, ses verilerinin olduğu ses dosyaları örnek olarak verilebilir. Benzer özellikler gösteren bir dizi dosya dizin olarak bilinir. Ses dosyaları bir araya gelerek ses dizinini oluştururlar. Farklı seviyelerde dizinler dosya sistemini oluşturur.

 

Şekil 7. Dosyaların Özellikleri

Dosyalar üzerinde birçok işlem gerçekleştirilebilir.

 Şekil 8. Dosyalar Üzerinde Gerçekleştirilen İşlemler

4.2. Dosya Erişim Yöntemleri

Disk üzerinde tutulan dosyalara erişmek için geliştirilen yöntemlerden bazıları aşağıda verilmektedir.

Sıralı erişim: Bu erişim türünde işletim sistemi dosyayı kelime kelime okur. Dosya işaretçisi, dosyanın ilk kelimesinin adresini tutar. Kullanıcı, dosyayı okumak istediğinde dosya işaretçisi kelimeyi verir ve değerini 1 kelimelik arttırır. Bu şekilde kelime kelime dosyanın sonuna kadar işlemler devam eder.

İlk işletim sistemleri sadece sıralı erişime izin vermekteydi. Modern işletim sistemleri sıralı erişimi kullanmakla birlikte doğrudan erişim ve indekslenmiş erişim yöntemlerini de kullanmaktadır.

Doğrudan erişim: Doğrudan erişim yönteminde ulaşılmak istenen veriye dosyanın başından itibaren sırayla gelinmez, doğrudan erişim gerçekleştirilir. Genellikle veri tabanı sistemlerinde gerekli olan ve kullanılan bir dosya erişim yöntemidir.

İndekslenmiş erişim: Bir dosya, dosyalananlardan herhangi birine göre sıralanabiliyorsa, dosyaya indeks atanabilir. İndeks, dosyadaki kaydın adresidir. Çok büyük veri tabanlarında arama yapmak bu yöntemle oldukça kolaydır.

4.3. Dizin

Birbirlerine benzer ve ilgili dosyalar bir araya gelerek dizinleri oluştururlar. Dizinler disklerde saklanırlar. Dizinler sahip oldukları her dosya için dosyanın özelliklerini içeren bir kayda sahiptir (Bk. Çizim 26).

 

Çizim 26. Dizinlerde Bulunan Dosya Metadata

 

Şekil 9. Dizin

4.3.1. Dizin Hiyerarşisi

 Şekil 10. Dizinlerin Saklanma Şekilleri

Tek Seviyeli Dizinler:

Tek seviyeli dizinde bütün sistemde yalnızca bir dizin vardır. Bu dizin dosya sistemlerinde bulunan bütün dosyaları içerir. Tek seviyeli dizin yapıları basit sistemlerde kullanılmaktadır. En basit dizin yapısıdır. Uygulaması oldukça basittir. Tek bir dizin olduğu için dosyalar aynı isme sahip olamaz. Dosya sistemlerinde çok sayıda dosya varsa eğer tek bir dizin içerisinde bir dosyayı aramak uzun zaman alabilir. Koruma seviyesi oldukça düşüktür. Farklı kullanıcıların dosyaları aynı dizin altında tutulmaktadır. Aynı türdeki dosyaları gruplandırmak mümkün değildir. Farklı türlerdeki dosyalar aynı dizin içerisinde yer alır. İşletim sistemleri dosyaları isimlendirme de bazı kurallar koyar. Karakter sayısı, bazı karakterlerin kullanımında kısıtlamalar mevcuttur. Bu nedenle her dosya için eşsiz bir isimlendirme yapmak saklanabilecek dosya sayısını da etkiler.

İki Seviyeli Dizinler:

İki seviyeli dizin yapısında, her kullanıcı için bir dizin oluşturulur. Ana bir dizin vardır ve her bir kullanıcı için oluşturulan dizinler ana dizine bağlıdır (bk. Çizim 27). Kullanıcılar için oluşturulan dizinlerin ana dizine bağlanması iki seviyeli dizin yapısını oluşturur. Tek seviyeli dizin yapısına göre koruma seviyesi yüksektir. İşletim sistemi bir kullanıcının bir başka kullanıcının dizinine izinsiz girmesine izin vermez.

 

Çizim 27. İki Seviyeli Dizin Yapısı

Her kullanıcının dosyaları farklı dizinlerde bulunur. Farklı kullanıcılar aynı isme sahip dosyalar oluşturabilirler. Her dosya ismi “/kullanıcının ismi/dizin ismi/” şeklinde bir yapı ile başlar. Arama işlemi tek seviyeli dizin yapısına göre daha kolaydır. Hangi kullanıcı için dosya arama gerçekleştiriliyorsa kullanıcının dizininde arama yapılır. Aynı tür dosyalar, bir kullanıcının dizininde gruplandırılamaz.

Ağaç Yapısı Şeklinde Olan Dizinler:

Ağaç yapılı dizin sisteminde, kök seviyesinde dizin vardır. Kök seviyesindeki dizinlere dosya veya başka dizinler bağlanabilir. Bu dizinlere başka dizinler veya dosyalar bağlanabilir. Bu şekilde bir ağaç yapısında dizin yapısı oluşturulur. Ağaç yapısı dizinler ile iki seviyeli dizin yapısında oluşan problemlerin üstesinden gelinebilir. Örneğin: Benzer türdeki dosyalar bir dizin içerisinde gruplandırılabilir.

Her kullanıcıya ait bir dizin yapısı vardır. Bir kullanıcı başka bir kullanıcının dizinine erişemez. Kullanıcıların kök seviyedeki dizinlerde bulunan verileri okuma izni vardır fakat herhangi bir değişiklik gerçekleştiremezler. Sadece sistem yöneticisinin kök seviyesindeki dizinlere tam erişim hakkı vardır. Dizinde dosya arama işlemi daha hızlıdır.

Modern işletim sistemlerinde tercih edilen dizin yapısıdır. Bir dosyaya doğrudan erişim sağlanabileceği gibi dolaylı yoldan bir erişim de sağlanabilir. Doğrudan erişim de sistemin kök dizini referans alınır. Dolaylı erişim yönteminde ise sistemin şu an çalışan dizini referans alınır.

 

Çizim 28. Ağaç Yapılı Dizin

Döngüsel Olmayan Graf Yapısındaki Dizin:

Döngüsel olmayan graf dizinlerinde her kullanıcı için bir dizin tanımlanır. Dizinler, dizin veya dosyalar barındırabilir. Bir dizin içerisindeki dizin bir başka kullanıcı tarafından kullanılabilir. Farklı dizinler aynı dosya veya alt dizine işaret edebilirler (bk. Çizim 29).

 

Çizim 29. Döngüsel Olmayan Graf Yapısında Dizin

4.4. Dosya Sistemleri

Dosya yönetiminden işletim sisteminin dosya sistemleri bölümü sorumludur. Dosya sistemleri program ve verileri saklamak, bulmak ve erişebilmek için kullanılan mekanizmadır. Dosya sistemleri katmanlı bir yapıda diskler üzerinde saklanırlar. Çizim 30 örnek bir dosya sistemi düzenini göstermektedir:

 

Çizim 30. Örnek Dosya Sistemi Düzeni (Samet, 2018) (Gülbağ, 2017).

Diskler birden çok bölüme ayrılırlar. Diskin 0. Sektörü MBR (Master boot record) olarak bilinir. MBR, işletim sisteminin hard-diskte nerede bulunduğu ile ilgili bilgileri barındırır. Böylece; işletim sistemi RAM’de başlatılır. MBR’ye, sabit diskteki her bölümü bulan bir bölüm tablosu içerdiğinden ana bölüm tablosu da denir.

Ana bellekte veriler uçucudur. Bu nedenle bilgisayarı açtığımızda CPU ana belleğe doğrudan erişemez. CPU’nun ilk eriştiği yer ROM içerisindeki BIOS olarak isimlendirilen özel bir programdır. BIOS, CPU’nun ilk eriştiği MBR’yi okur ve çalıştırır. MBR programı diskin aktif bölümünü tespit eder ve bölümün ilk bloğunu okur. Bölümün ilk bloğu boot’tur. Boot bloğundaki program işletim sistemini ana belleğe yükler.

4.5. Dizin Uygulaması

Dizin yapılarının uygulanmasında algoritmalardan faydalanılmaktadır. Algoritma seçimi sistemin performansını etkiler. Yaygın olarak kullanılan 2 algoritma vardır: Doğrusal liste algoritması, Hash tablosu algoritması.

Doğrusal Liste Algoritması: Bu algoritmada bir dizindeki tüm dosyalar bağlı liste olarak tutulurlar. Bağlı liste veri yapısının davranışlarını sergiler. Her bir dosya, veri bloğunun adresini ve dizindeki bir sonraki dosyayı gösteren işaretçiler (pointer) içerir (Bk. Çizim 31) .

Yeni bir dosya oluşturulduğunda öncelikle tüm liste gezinir ve yeni oluşturulan dosya ile aynı isme sahip bir dosya var mı diye kontrol edilir. Eğer yok ise o zaman dosya oluşturulur. Bağlı liste olduğu için listenin başına veya sonuna eklenir. Dosya üzerinde gerçekleştirilecek silme, oluşturma, güncelleme gibi işlemlerin hepsi için liste baştan sona tek tek gezinilmek zorundadır. Bu da sistemin verimliliğini düşürür.

 

Çizim 31. Dosya Sistemlerinde Bağlı Liste Yapısı ( (javaTpoint, 2021).

Hash Tablo Algoritması: Doğrusal bağlı liste algoritmasının eksiklerinin üstesinden gelebilmek için bağlı listenin yanında hash tablosunu da kullanan yaklaşımdır. Bu yaklaşımda her bir dosya için bir anahtar-değer çifti oluşturulur ve bu değerler hash tablosunda saklanır (Bk. Çizim 32). Anahtar değer, dosya adına hash fonksiyonunun uygulanmasıyla elde edilir. Değer ise dizinde bulunan ilgili dosyanın adresini gösterir.

Hash tablosunun kullanımı ile dosya arama işlemi daha hızlı olur. Bütün liste tek tek gezinmez. Hash tablo kontrol edilir. Aranan kayıt hash tablosunda varsa ilgili dosyanın adresi alınır ve doğrudan ilgili dosyaya erişim gerçekleştirilir.

 

Çizim 32. Hash Tablosu

4.6. Tahsis Etme Yöntemleri

Dosyalar diskler üzerinde saklanır. Disk üzerinde dosyalara alan tahsis etmede farklı yöntemler kullanılmaktadır. Bu yöntemlerden bazıları;

Kullanılan yöntemlerden birkaçını ayrıntılı olarak görelim.

 

Şekil 11. Disk Üzerinde Dosyalara Alan Tahsis Etmede Kullanılan Yöntemler

Bitişik Tahsis: Dosyalar mantıksal bloklara bölünür ve bu bloklara aynı sırada sabit disk üzerinde arda ardına fiziksel bloklar tahsis edilir (bk. Çizim 33).

 

Çizim 33. Bitişik Tahsis

Bağlı Liste Yapısıyla Yer Tahsis Etmek: Bu yöntemde bağlı liste veri yapısı kullanılmaktadır. Dosya bloklara ayrılır. Her blok bir diğer bloğu göstermek için bir gösterici (pointer) ve bloğun verisini içerir (bk. Çizim 34). Bloklar sabit diskte sırayla kaydedilmek zorunda değildir. Diskte boş ve uygun yere konabilir. Dosyanın ilk adresinin bilinmesi dosyaya ait tüm bloklara erişmek için yeterlidir. Bağlı listenin en büyük eksikliği belirli bir bloğa rastgele bir erişim gerçekleştirilememesidir.

 

Çizim 34. Bağlı Liste Yapısıyla Yer Tahsisi.

FAT-Dosya Tahsis Tablosunun Kullanımı: Dosya tahsis tablosu disk bloğu bağlantılarının hepsini toplar. Her bir disk bloğu için bir girdi mevcuttur. Girdi, blok sayısı ile indekslenir. FAT kullanılarak bir varlığa erişmek kolaydır. Bütün listeyi dolaşmaya gerek kalmaz. FAT’tan istenilen blok okunur ve bloğa erişilir. MS-DOS ve NT Windows önceki versiyonlarında kullanılmaktadır. FAT dosya sisteminin girdilerin bit sayısının farklılıklarına göre FAT12FAT16FAT32 türleri geliştirilmiştir.

Inode: Inode; indeks node’un kısaltılmış halidir. Unix temelli işletim sistemlerinde kullanılır. Inode, dosya sistemleri için geliştirilmiş özel bir disk bloğudur. Inode tarafından her dosya indekslenir (Çizim 35. INode tablosu.). Inode sayısı kadar bir dosya sisteminde dosya ve dizin oluşturulabilir. Her dosyanın bir Inode tablosu vardır. Inode; disk bloklarının hangi dosyayla ilişkili olduğu bilgisini, dosya özelliklerini (dosya boyutu, izinleri gibi) içerir.

 

Çizim 35. INode Tablosu.

4.7. Boş Alan Yönetimi

Dosya yönetimi diskte bulunan boş alanların yönetiminden de sorumludur. Diskte bulunan boş alanları takip etmelidir. Bunun için kullanılan 2 yaygın yöntem vardır: Bit vektör ve bağlı liste.

Bit vektörde her blok bir bit ile temsil edilir. Bit değeri 1 ise blok boş, bit değeri 0 ise blok doludur. Bitler, bit haritası vektörünü oluşturur. Başlangıçta tüm bitler boş olduğu için bit haritası vektörü tamamen 1 değerlerinden oluşur.

Bağlı liste yönteminde bütün boş bloklar bağlı liste ile birbirlerine bağlıdır. Kullanılan işaretçi boş blok listesinin ilk bloğunun adresini tutar.

4.8. Disk Planlaması Ve Parametreleri

İşletim sisteminin sorumluluklarından biri de disk yönetimini gerçekleştirmektir. Diske gelen her isteğe karşı işletim sistemi adil olmalıdır. Maksimum sistem verimliliği elde edecek şekilde diskte planlamalar gerçekleştirmelidir.

Diske bir istek geldiğinde işletim sistemi öncelikle isteği inceler. Diske veri eklenmesi işlemi ise öncelikle diskte boş blok aranır ve en uygun bloğa verinin eklenmesi sağlanır. Diskten veri okunması veya diskteki verinin güncellenmesi işlemleri için öncelikle ilgili veri disk bloklarında aranır ve veri istekte bulunan prosese verilir veya güncellenir.

 

Şekil 12. Disk Planlamasında Dikkate Alınan Parametreler

4.9. Disk Planlama Algoritmaları

 

Şekil 13. Disk Planlama Algoritmaları

FCFS planlama algoritması: En basit planlama algoritmasıdır. Varış sırası dikkate alınır. İlk gelen istek ilk hizmeti alır.

Örnek: 100 silindir içeren bir disk düşünelim. Disk kafası başlangıçta 50 nolu silindirde bulunmaktadır. Sırasıyla 45, 25, 57, 67, 90, 4, 50 nolu silindirlere istek vardır. Silindirin toplam kafa hareketini FCFS planlama algoritmasını kullanarak bulunuz.

Çözüm:

 

Toplam Kafa Hareketi = (50-45)+(45-25)+(57-25)+(67-57)+(90-67)+(90-4)+(50-4) = 212

SSTF planlama algoritması: En kısa arama süresini dikkate alır. Kafanın mevcut pozisyonuna en yakın silindirlerdeki isteklere öncelik verir.

Örnek: 100 silindir içeren bir disk düşünelim. Disk kafası başlangıçta 50 nolu silindirde bulunmaktadır. Sırasıyla 45, 25, 57, 67, 90, 4, 50 nolu silindirlere istek vardır. Silindirin toplam kafa hareketini SSTF planlama algoritmasını kullanarak bulunuz.

Çözüm:

 

Toplam Kafa Hareketi = (50-50)+(50-45)+(57-45)+(67-57)+(90-67)+(90-25)+(25-4) = 136

Scan planlama:

Bu planlama çeşidinde disk kafası sonuna kadar belirli bir yöne doğru hareket eder. Yol boyunca gelen tüm isteklere cevap verir. Gittiği yöndeki en son isteğe cevap döndürdükten sonra ters döner. Ters yöndeki isteklere cevap verir. Diskin en başına kadar gider.

Örnek: 100 silindir içeren bir disk düşünelim. Disk kafası başlangıçta 50 nolu silindirde bulunmaktadır. Sırasıyla 45, 25, 57, 67, 90, 4, 50 nolu silindirlere istek vardır. Silindirin toplam kafa hareketini Scan planlama algoritmasını kullanarak bulunuz.

Çözüm:

Toplam kafa hareketi=(50-50)+(57-50)+(67-57)+(90-67)+(90-45)+(45-25)+(25-4)+(4-0)= 150

 

C-Scan algoritması: Scan algoritmasının bir türüdür. Scan algoritmasından farkı disk kafası belirli bir yönde ilerler, yol üzerindeki silindirlere cevap döndürür. Disk kafası yol üzerindeki son silindire geldikten sonra silindirin en başına konumlanır. Silindirin başından başlar ve geri kalan silindirlere cevap döndürür.

Örnek: 100 silindir içeren bir disk düşünelim. Disk kafası başlangıçta 50 nolu silindirde bulunmaktadır. Sırasıyla 45, 25, 57, 67, 90, 4, 50 nolu silindirlere istek vardır. Silindirin toplam kafa hareketini C-Scan planlama algoritmasını kullanarak bulunuz.

Çözüm:

 

Toplam kafa hareketi=(50-50)+(57-50)+(67-57)+(90-67)+(100-90)+(100-0)+(4-0)+ (45-25)+(25-4)=195

Look planlaması:

Scan ve C-Scan algoritmalarında disk başı diskin sonuna kadar gider. Look planlamasında diskin sonuna kadar gidilmez. Gittiği yönde, gelen en son isteğin bulunduğu diske gider ve yönünü değiştirir. Disk başı yönünü değiştirerek bu yöndeki ilk isteğin bulunduğu silindire gider.

Örnek: 100 silindir içeren bir disk düşünelim. Disk kafası başlangıçta 50 nolu silindirde bulunmaktadır. Sırasıyla 45, 25, 57, 67, 90, 4, 50 nolu silindirlere istek vardır. Silindirin toplam kafa hareketini Look planlama algoritmasını kullanarak bulunuz.

Çözüm:

 

Toplam kafa hareketi=(50-50)+(57-50)+(67-57)+(90-67)+(90-4)+(45-25)+(25-4)=167

Bölüm Özeti

∙ Dosya, benzer özellikler gösteren bir dizi kaydı saklayabilmek için kullanılan veri yapısıdır. Benzer özellikler gösteren dosyalar bir araya gelerek dizin yapılarını oluşturmaktadırlar. Farklı seviyelerde oluşturulan dizinler dosya sistemlerini oluşturmaktadırlar.

∙ Dosya ve dizinlerin kendilerine özgü özellikleri, dosya ve dizinler üzerinde yapılacak işlemler vardır. Dosya ve dizinler disk birimlerinde saklanırlar.

∙ Disk üzerindeki dosyaya ulaşmak için doğrudan erişim, indeksli erişim, sıralı erişim yöntemleri kullanılmaktadır.

∙ Dosyalar dizin yapıları içerisinde bağlı liste veri yapısı kullanarak tutulmaktadır. Bağlı liste kullanımında dosya üzerinde gerçekleştirilecek silme, oluşturma, güncelleme gibi işlemlerin hepsi için liste baştan sona tek tek gezinilmek zorundadır. Bu da sistemin verimliliğini düşürmektedir. Bu eksikliklerin üstesinden gelebilmek için bağlı listenin yanında hash tabloları da kullanılmaktadır. Her bir dosya için bir anahtar-değer çifti oluşturulmakta ve bu değerler hash tablosunda saklanmaktadır. Hash tablosunun kullanımı ile dosya arama işlemi daha hızlı olur.

∙ Dosyalar diskler üzerinde saklanırlar. Disk üzerindeki boş alanlar, tahsis etme yöntemleri kullanılarak dosyalara verilmektedir. Boş alanların yönetimi, disk üzerinde en uygun alanın tahsis edilmesi, gelen isteklere en uygun sırada hizmet sunmak, disk planlaması işletim sisteminin bellek yönetimi kapsamında gerçekleştirdiği aktivitelerdir. İşletim sistemi bu aktiviteleri gerçekleştirmek için veri yapılarından ve algoritmalardan faydalanmaktadır.

∙ Disk yönetimi işletim sisteminin sorumluluklarından biridir. Diske gelen her isteğe karşı işletim sistemi adil olmalı, maksimum sistem verimliliği elde edecek şekilde diskte planlamalar gerçekleştirmelidir. Arama zamanı, dönme gecikmesi, transfer süresi, disk erişim süresi, disk cevaplama süresi ve bant genişliği disk planlamasında dikkate alınan parametreleri oluşturmaktadır.

∙ FCFS planlama algoritması, SSTF planlama algoritması, SCAN planlama, C-SCAN planlama, LOOK planlama, C-LOOK planlama yaygın olarak kullanılan disk planlama algoritmalarıdır.

Kaynakça

 (2021). Debian Manpages: https://manpages.debian.org/ adresinden alındı

Aksan, C. (2021). Paket Yöneticisi Nedir? Neden İhtiyaç Duyulur? ceaksan.com: https://ceaksan.com/tr/paket-yoneticisi adresinden alındı

Aladağ, M. (2015). Windows 10 Yenilikleri – PowerShell 5 ile Paket Yönetimi OneGet. cozumpark.com: https://www.cozumpark.com/windows-10-yenilikleri-powershell-5-ile-paket-yonetimi-oneget/ adresinden alındı

Alkar, A. (2015). Embedded system basics and application. Ankara.

Çobanoğlu, B. (2018). Herkes için Python. Pusula.

Doğu Akdeniz Üniversitesi, B. B. (2021). İşletim Sistemleri-Bellek Yönetimi.

Doğu Akdeniz Üniversitesi, B. V. (2021). İşletim sistemleri-Kilitlenmeler. Siirt.

Gülbağ, A. (2017). İşletim Sistemlerine Giriş.

javaTpoint. (2021). OS. javaTpoint: https://www.javatpoint.com/os-attributes-of-a-process adresinden alındı

Kaya, A. (2009). Symbian İşletim Sistemi. Akademik Bilişim’09 – XI. Akademik Bilişim Konferansı Bildirileri. Şanlıurfa.

Özdemir, H. (2018). Linux Paket Yöneticileri. pythontr.com: https://www.pythontr.com/makale/linux-paket-yoneticileri-632 adresinden alındı

Saatçi, A. (2002). Bilgisayar işletim sistemleri. Ankara: Hacettepe Üniversitesi. http://hilmi.trakya.edu.tr/ders_notlari/os/isleti_sistemleri.pdf adresinden alındı

Samet, R. (2018). Bilgisayar Sistemleri. (A. Ü. Enstitüsü, Dü.)

Shotts, W. (2013). The Linux Command Line- Second Internet Edition. No Starch Press.

Silberschatz, A., Gagne, G., & Galvin, P. (tarih yok). Operating System Concepts. içinde John Wiley & Sons, Inc. 2021 tarihinde alındı

Taşcı, T. (2017). İşletim Sistemleri-Temel Bilgi Teknolojileri Kullanımı.

Taşçı, T. (2017). İşletim Sistemleri-Temel Bilgi Teknolojileri Kullanımı.

Türkoğlu, İ. (tarih yok). İşletim Sistemleri (Ders Notları). Fırat Üniversitesi, Teknik Eğitim Fakültesi, Elektronik ve Bilgisayar Bölümü. Türkiye. 2021 tarihinde alındı

Wikipedia. (2021). Paket yönetim sistemi. Wikipedia.org: https://tr.wikipedia.org/wiki/Paket_y%C3%B6netim_sistemi adresinden alındı

Yıldırım, S. (tarih yok). Bilgi Teknolojilerine Giriş3. Atatürk Üniversitesi. 2021 tarihinde alındı

Yorum Gönderin