Hobi amaçlı işletim sistemi

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
BIOS'un kullanımı
Bu bölüm ağırlıklı olarak x86 odaklı ele alınmıştır.
BIOS (Temel Giriş/Çıkış Sistemi; ) 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 () veya Uzun mod'da () çalışan işletim sistemlerinde nadirdir, çünkü sistemin BIOS sürücülerinin çalıştığı gerçek mod'a () geri dönmesi gerekir.