LFS projesi yapmayı deneyebilirsin.

Sıfırdan işletim sistemi yapmak, tekeri yeniden icat etmeye benzer. Lakin "Nasıl GNU/Linux dağıtımı yapabilirim?" dersen, daha makul bir soru sormuş olursun. Bunun için önce Milis Linux, Pisi, Archman gibi dağıtımlarda pişmen gerekir.

Nasıl bir işletim sistemi yapılır? Bilgim yok bu yüzden nasıl yapabilirim ve bilgileri nereden öğrenebilirim? Son düzenleyen: Moderatör: 30 Mayıs 2020

Debian bir GNU/Linux dağıtımı. Linus Torvalds ́ın Linux çekirdeği olmasaydı ve Richard Stallman ́ın GNU Projesi olmasaydı Debian ́da olmayacaktı. Sırf onlar da değil. Örneğin Guido van Rossum ve yarattığı Python programlama dili de GNU/Linux sistemlerde yoğun bir şekilde kullanılıyor. TeX, X11, X. org, Apache, Perl vs. diye uzar gider liste. Yani Debian ́ı yazan adam sıfırdan yazmadı.

İşletim sistemi yapmak kolay değil. Kernelini kendiniz mi yazacaksınız? Kendi program deponuz mu olacak? İş yükü, RAM kullanımı, program desteği diye uzar gider liste.

Ben Cpp ile C arasındaki tek farkın nesne bilmem neyi farkı mı ne var diye biliyorum. Neyse sağol bakarım sonra.

Hangi yazılım dili üzerine çalışmalıyım.

Link atabilir misiniz Linux 0.01. @TerabyteForever @TerabyteForever

Bence diğer işletim sistemlerindeki eksik olan veya daha iyisi yapılabilecek şeyler konusunda değişiklik yapılmalı, lakin ne kadar zaman alacağını vs bilemem. Debian, Ubuntu Linux tabanlı değil mi?

Topluluklar tarafından geliştirilen GNU/Linux dağıtımları mevcut. Örneğin Pisi Linux gibi. Eğer yazılım geliştirebilecek düzeyde programlama bilginiz varsa bu topluluklara gönüllü olarak katılarak sizin de bir işletim sisteminin geliştirilmesinde yani bir çorbada tuzunuz olabilir. İşletim sistemleri aslında bir bilgisayarın donanım kaynaklarını yöneten yazılımlar bütünüdür. Tek bir yazılım değil, birden çok yazılımı içlerinde barındırırlar. Bir işletim sisteminin geliştirilmesinde yüzlerce, hatta binlerce programcının katkısı olabilir.

Operating System kodlama videolarını izlersin. Basit bir şeyler yaparsın ama elle tutulur/performanslı bir şey yapmak tek kişilik iş değil. Binlerce insan gerektirir. Linux gibi bir şey ortaya çıkarma hayallerin varsa maalesef diyorum Benim tavsiyem siber güvenlik alanında bir şeyler yap. Her türlü paranı kazanırsın.

C ve C++.

Debian'ı yapan adam nasıl yapmış o zaman. Eşiyle kendisinin isminin ilk üç harfinin birleşmesiyle oluşuyor zaten işletim sisteminin.

Yapamazsın demedik zaten bizde. Ancak uzun uğraş ve bilgi gerektiriyor bunlar. Eskiden 3-5 tane tool içeren sistemler şimdi yüzlerce tool içeriyorlar. O yüzden tek başına yapılacak iş değil. Acemi olarak basit bir tane merakını gidermek için yaparsın, fazlası olmaz onun.

Daha iyisini yapmak demek zaten değiştirdiğin anlamına geliyor. Örneğin kopyalama için daha iyi bir algoritma ile değiştirirsen, bir değişiklik yapmış oluyorsun zaten. Linux dağıtımlarına buradan bakabilirsin: Linux Dağıtımları Tarihsel Sıralama - Wikipedia

Peki nasıl linux modlayıp yeni özellikler eklemeyi düşünüyorum bunu için nereden bilgi alabilirim.

Anladım, sağol Allah razı olsun. Mesela ben Pisi Linux'da küçük büyük değişikler yapsam benim olsada sonuçta o işletim sistemimi temel almış olurum. Debian'da Linux gibi işletim sistemi çekirdeğidir bu arada. Anladığım bu yani.

Hayır; Asıl Ubuntu, Debian yapısı üzerine kurulu.

Teşekkürler ben Winworldpc'den indirdim.

ASM ile en kolay sekilde MikeOS'a bakabilirsin, Kolibri'ye bakabilirsin. C++98 ile gelistirilen Haiku'yu da test edebilirsin. en kucuk capli projeler icin GitHub/GitLab gibi yerlerde operating system keyword'unu ararsan buluyorsun binlerce repository. Sifirdan ise, Osdev guzel topluluk. Tek basina yaparsin da, hobi amacli yaparsin.

C++ olmaz mı yav?

Çok istiyorsan C üzerinde de nesne benzetimi var, ama uğraştığına değmiyor zaten, gerek yok o yüzden. Sadece o nesne bile ortalığı karıştırıyor bellek yönetiminde.

C++ olmaz mı?

Index of /pub/linux/kernel/Historic/

Android işletim sistemini özelleştirmek ROM düzenleme olarak geçiyor. Sistemin çalışma mantığını değiştirmediğin sürece o işletim sisteminin değiştiği varsayılmıyor. Örneğin Debian işletim sistemini Ubuntu üzerinden ayıran şey çalışma mantığının da değişmesi. Sadece arayüzü değiştirmek bunu değiştirmiyor.

Tamamen yapıp bitirsen bile kimse kullanmayacağı için sence de daha gerekli projelere yönelmen daha iyi olmaz mı?

Kernel ile başlayabilirsin.

Cpp üst düzey dillere giriyor demi? Ben Cpp'ı C'nin sadece nesne bilmem neyi konusunda farkı olduğunu biliyordum.

Debian direkt olarak bir işletim sistemi, çekirdek değil. Buradaki bütün işletim sistemlerinin çalışmasına olanak sağlayan şey Linux Kernelidir. Bunun üzerine yapılan eklemeler ortaya bir işletim sistemi çıkarır. Bilgisayar üzerinde olan bütün bağımlılıkları bu şekilde daha net görebilirsin sanırım.

İşletim sistemini tek başına sıfırdan yapmak çok uzun ve yorucu bir iş. Ancak Linux kernellerin üzerine bir arayüz ekleyerek bir işletim sistemi yapsan da pek bir anlamı olmaz. Yapmak için yapılmış olur. En küçük sistemlere örnek verecek olursak : KolibriOS. Her bir karakterin ve ya işlemin bir byte olduğunu varsay, milyon tane karakter var bu işletim sisteminde. Bir işletim sisteminin nasıl çalıştığını öğrenebilirsin mantıksal olarak, bir işletim sisteminin nasıl yapıldığından çok. Ve arkadaşın dediği gibi bu işle ilgili bir Türkçe kaynak bulmak neredeyse imkansız. Üniversite kaynaklarında bununla ilgili kaynaklar bulabilirsin: Örnek

Tek satırlık bir belleğin var, sen bunları bir sürü pointer ile birbirine bağlama yapıyorsun. Assembly ve C üzerinde bu kadar yük bindirmiyorsun, ayrıca bu iki dil direk olarak makine koduna da çevriliyor diye hatırlıyorum. Öteki bütün diller başka dillere evrilip Assembly'dan sonra makineye çevriliyor olması erek diye hatırlıyorum. İnternette C/C++ anlatan uzman birisi daha faydalı olur benim anlattıklarım ziyade, araştırma yapın.

Bence Android'i özelleştirmek iş görebilir yinede.

Yani işletim sistemi kısmını kendi yazdı ama kernelini falan yazmadı. Sonuçta yapılıyor mu yapılıyor. Değil mi?

İşletim sistemleri bilgisayarın donanım kaynaklarını yöneten yazılımlar bütünüdür. Tek bir program değil, pek çok programın bir araya gelmesinden oluşurlar. İşletim sistemleri altında çalışan ve günlük olarak kullandığımız uygulamalar işletim sistemine özgü bazı fonksiyonları çağırarak bilgisayarda işlemler gerçekleştirirler. Yani programlar işletim sistemlerinden izin almadan hiçbir şey yapamazlar. Bilgisayarın donanımsal kaynaklarını işletim sistemleri kontrol eder. Bir işletim sistemini sıfırdan yazmak için yüzlerce, hatta belki binlerce bilgisayar mühendisinin yıllarını vererek çalışması gerekir. Yani sadece 1 kişinin tam bir işletim sistemini sıfırdan yazmasını beklemek, tek bir inşaat işçisinin Burc Halife ́yi tek başına inşa etmesini beklemek ile aynıdır. Örneğin Microsoft ve Apple gibi firmaların binlerce çalışanları var. GNU/Linux dağıtımlarında ise destek veren çok daha fazla sayıda şirketler, vakıflar, devletler, communityler ve gönüllüler var. Bu yüzden olmaz. Ancak ne yapabilirsiniz? Communityler tarafından geliştirilen GNU/Linux dağıtımları var. Örneğin Pisi Linux gibi. Eğer iyi seviye de program yazacak düzeyde programlama bilginiz varsa bu topluluklara gönüllü olarak katılıp bir işletim sisteminin geliştirilmesine katkıda bulunabilirsiniz. Bu sayede sizin de çorbada tuzunuz olabilir.

Yabancı kaynaklar en doğru tercih ama iyi bir İngilizce şart.

C++ yeterince donanım uyumlu değil. Yoksa gider C#/Java ile yazabilirim senin mantığınla. İnsana yaklaştıkça makineden uzaklaşırsın. Çekirdek yazabilmek/düzenlemek için donanıma hükmedebilmen gerek. Üst seviyeli diller bunu yapamaz. Ayrıca x86/64 ve ARM mimarisi arasında da farklar var. Öteki platforma derleyebilirsiniz ama çalştıramazsınız.

Neden ki?

KernelNewbies'ta anlatmışlar fakat size tavsiyem önce C ve Assembly öğrenmeniz. x86-64 Assembly bu devir için iyidir, ayrıca size bilgisayarın nasıl çalıştığını programcı gözüyle gösterir. KernelNewbies'ta ayrıca Linux 0.01 ile başlamanızı tavsiye ediyorlar modifikasyon işlemine. Sadece 10000 satır kod ile UNIX klonu olduğu için o da.