Hobi amaçlı geliştirilen işletim sistemlerinden biri olan MenuetOS'da tetris oyunu
Bir **hobi amaçlı işletim sistemi** geliştirmek, bilgisayarı hobi olarak gören kişiler için daha karmaşık ve teknik bir seçenek olabilir. Hobi işletim sistemi tanımı da bazen biraz belirsiz olabilir. Bunlar, geliştirici bakış açısından geliştiricilerin/yazılım topluluklarının sadece eğlenmek ya da öğrenmek amacıyla yaptıkları projeler olabilir, kullanıcı bakış açısından kullanıcıların geniş çaplı ve tam işlevsel bir sistemden ziyade sadece bir oyuncak olarak kullandıkları/kurcaladıkları veya kendilerini geliştirdikleri sistemler olarak da görülebilir ya da çok büyük bir kullanıcı tabanına sahip olmayan küçük bir topluluğa sahip bir işletim sistemi olarak da tanımlanabilir.

Geliştirme, bir çekirdek (kernel), bir işletim sistemi veya bir ön yükleyici (bootloader) gibi mevcut kaynaklardan başlayarak ilerleyebilir veya tamamen sıfırdan başlayan bir proje de olabilir. Geliştirme platformu, bir işletim sisteminin doğası gereği bir çıplak donanım makinesi olabilir, ancak bir sanal makine üzerinde de geliştirilebilir ve test edilebilir.

Karmaşık bir sistemi teknik şartların sürekli değişen ihtiyaçlarına uyarlamak için hobici geliştiricilerin daha fazla sahiplenmesi/aidiyeti gerektiğinden, işletim sistemi geliştirmeye ilgi duyan birçok farklı grup arasında çok fazla heves/arzu gözlemlemek yaygındır.

Geliştirme
----------

İşletim sistemi geliştirme, aşağıdaki unsurları içerir:

* Kernel:
	+ Bootstrapping
	+ Bellek yönetimi
	+ İşlem yönetimi ve çizelgeleme
	+ Aygıt sürücüsü yönetimi
	+ Program API
* Dış programlar
* Kullanıcı arayüzü

Hobi amaçlı işletim sistemi programlama için C programlama dili ve assembly dili sıklıkla kullanılır, ancak diğer diller de kullanılabilir. İşletim sistemi geliştirme için diğer masaüstü programları geliştirirken kullanılan dillerden farklı olarak çoğunlukla alt seviye programlama dilleri tercih edilir.

Assembly dilinin kullanımı küçük sistemlerde, özellikle MOS Technology 6502 ailesi veya Zilog Z80 gibi sekiz bitlik mikroişlemcilere dayalı sistemlerde veya küçük çıktı boyutu ve düşük seviye verimliliği nedeniyle mevcut kaynakların yetersiz olduğu sistemlerde yaygındır.

Kullanıcı arayüzü
-----------------

Çoğu hobi amaçlı işletim sistemi, geliştirme kolaylığı nedeniyle bir CLI veya basit bir TUI kullanır. Daha gelişmiş hobi işletim sistemleri bir GUI'ye sahip olabilir. Örneğin, AtheOS tamamen bir programcı tarafından yazılmış grafik arayüzlü bir hobi işletim sistemiydi.

### Örnekler

* AROSAROS
* EmuTOSEmuTOS
* GeckOSGeckOS
* GhostGhost
* HelenOSHelenOS
* KolibriOSKolibriOS
* LUnixLUnix
* MenuetOSMenuetOS
* Phantom OSPhantom OS
* ReactOSReactOS
* RedoxRedox
* SerenityOSSerenityOS
* Syllable DesktopSyllable Desktop
* SymbOSSymbOS
* TempleOSTempleOS

BIOS'un kullanımı
-----------------

Ana madde: BIOS kesme çağrısı
Bu bölüm ağırlıklı olarak x86 odaklı ele alınmıştır.

BIOS (Temel Giriş/Çıkış Sistemi; İngilizce: Basic Input/Output System) terimi, bilgisayar donanımını başlatan ve bir işletim sistemi yüklemek için gerekli hükümleri olan firmware anlamına gelir. BIOS ayrıca önyükleme sırasında çeşitli düşük seviyeli aygıt sürücüleri için standart bir arayüz oluşturur. BIOS kaynakları, özellikle 16-bit x86 makinelerde yazılan hobi amaçlı işletim sistemleri tarafından sıklıkla kullanılır, çünkü birçok hobi işletim sistemi geliştiricisi karmaşık düşük seviyeli sürücüleri kendileri yazacak zamana sahip değildir veya sadece sistem için mümkün olan en kısa sürede yazılım yazmaya başlamak isterler.

En yaygın kullanılan BIOS işlevleri VideoBIOS ve Disk hizmetleri'dir. Bunlar, ekran kartları ve disk sürücüleri farklı makinelerde önemli ölçüde değişiklik gösterdiğinden ve özel sürücülerin yazılması genellikle zor olduğundan kullanılır.

BIOS'un kullanımı Korumalı mod (İngilizce: Protected mod) veya Uzun mod'da (İngilizce: Long mod) çalışan işletim sistemlerinde nadirdir, çünkü sistemin BIOS sürücülerinin çalıştığı gerçek mod'a (İngilizce: Real mod) geri dönmesi gerekir.

Ayrıca bakınız
--------------

* Hobi amaçlı işletim sistemleri listesi
* Bilgisayar mimarisi
* OpenBIOS

Kaynakça
--------

1. ↑  
"Discussion of "My OS is less hobby than yours"". *Osnews*. 2 Aralık 2012. 24 Aralık 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Aralık 2012.
2. ↑  "OSDev Wiki". 26 Haziran 2008 tarihinde kaynağından arşivlendi.
3. ↑  "Uses of assembly language". 3 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2023.
4. ↑  "About BIOS". 4 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2023.
5. ↑  "OSDev - Use of BIOS in protected or long mode". 3 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2023.

Dış bağlantılar
---------------

* "OSDev.org". 2 Mart 2001 tarihinde kaynağından arşivlendi. Hobi amaçlı bir OSDev topluluğu
* "Independent Software". 15 Ağustos 2015 tarihinde kaynağından arşivlendi. Önyükleyici geliştirme ve korumalı moda girme üzerine bir dizi eğitim
* "The little book about OS development". 21 Nisan 2013 tarihinde kaynağından arşivlendi. Bu kitap, kendi x86 işletim sisteminizi yazmak için pratik bir rehberdir.
* "Kernel 101 – Let's write a Kernel". 15 Nisan 2014 tarihinde kaynağından arşivlendi.
* "aodfaq". 29 Kasım 2014 tarihinde kaynağından arşivlendi. İşletim sistemi geliştirme SSS
* "Bona Fide OS Development". 20 Kasım 2005 tarihinde kaynağından arşivlendi. İşletim sistemi geliştirme eğitimleri ve diğer ilgili belgeler deposu
* "Adım adım bir rehber". 31 Ekim 2007 tarihinde kaynağından arşivlendi.
* "Operating System Resource Center". 5 Mayıs 2001 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2023. Çeşitli OSDev konuları hakkında bilgi ve kaynaklar (hem yazılım hem de donanım hakkında)
* "The Resource Center for Free Operating Systems". 6 Ağustos 2010 tarihinde kaynağından arşivlendi.
* "The V2 Operating System". 11 Haziran 2018 tarihinde kaynağından arşivlendi.
* "ArchiveOS.org – Archive of Operating Systems". 21 Ocak 2016 tarihinde kaynağından arşivlendi.

| * g
* t
* d
Hobi amaçlı işletim sistemleri |
| --- |
| 
* AROS
* AtheOS
* BareMetal
* DSPnano RTOS
* EmuTOS
* FiwixOS
* GeckOS
* Ghost
* HelenOS
* KolibriOS
* LUnix
* MenuetOS
* Phantom OS
* Redox
* SerenityOS
* SharpOS
* SkyOS
* Syllable Desktop
* SymbOS
* TempleOS
* ToaruOS

 |
| 
* Kategori Kategori
* Liste Liste

 |

| * g
* t
* d
İşletim sistemi |
| --- |
| Genel | 
* Savunucu
* Karşılaştırma
* Adli Bilişim
* Tarihçe
* Geliştirme
* Liste
* Kronoloji
* Kullanım oranları

 |
| Çekirdek | 

|  |  |
| --- | --- |
| Mimari | 
* Ekzoçekirdek
* Hibrit çekirdek
* Mikrokernel
* Monolitik
* vkernel
* Rump kernel
* Unikernel

 |
| Bileşenler | 
* Aygıt sürücüsü
* Yüklenebilir çekirdek modülü
* Mikrokernel
* Kullanıcı uzayı

 |

 |
| İşlem yönetimi | 

|  |  |
| --- | --- |
| Kavramlar | 
* İçerik Değiştirme
* Kesme
* IPC
* İşlem
* İşlem kontrol bloğu
* RTOS
* İş parçacığı
* Zaman paylaşımı

 |
| Zamanlama  algoritmaları | 
* Çoklu işleme
* Sabit öncelikli kesintili zamanlama
* Çok düzeyli geri besleme kuyruğu
* Kesintili
* Round-robin
* En kısa iş sonra

 |

 |
| Bellek yönetimi ve kaynak koruma | 
* Veri yolu hatası
* Genel koruma hatası
* Bellek koruma
* Sayfalama
* Güvenlik halkaları
* Segmentasyon hatası
* Sanal bellek

 |
| Depolama erişimi ve dosya sistemi | 
* Önyükleyici
* Defragmentasyon
* Aygıt dosyası
* Dosya özniteliği
* Düğüm
* Günlük
* Bölümlendirme
* Sanal dosya sistemi
* Sanal teyp kütüphanesi

 |
| Liste | 
* AmigaOS
* Android
* BeOS
* BSD
* DOS
* GNU Hurd
* iOS
* Linux
* Mac OS
* MorphOS
* OpenVMS
* OS/2
* OSv
* QNX
* ReactOS
* RISC OS
* Solaris
* GzIS
* TPF
* UNIX
* VM/CMS
* Windows
* z/OS

 |
| Çeşitli kavramlar | 
* API
* Bilgisayar ağı
* HAL
* Canlı CD/DVD
* Canlı USB
* İS kabuğu
	+ CLI
	+ GUI
	+ 3D GUI
	+ NUI
	+ TUI
	+ VUI
	+ ZUI
* PXE

 |