# Hobi amaçlı işletim sistemi

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

* AROS
* EmuTOS
* GeckOS
* Ghost
* HelenOS
* KolibriOS
* LUnix
* MenuetOS
* Phantom OS
* ReactOS
* Redox
* SerenityOS
* Syllable Desktop
* SymbOS
* TempleOS

## BIOS'un kullanımı

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

## 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.