Що вам потрібно зробити - це створити операційну систему. Навіть якщо, наприклад, ви вирішили, що це має бути UNIX-система, все ще потрібно прийняти багато рішень. Наскільки ти схожий на UNIX? Які частини UNIX вам подобаються і які, на вашу думку, потребують вдосконалення?
Якщо ви не налаштовані на те, що він схожий на UNIX, у вас з’являється ще більше запитань, щоб відповісти: чи мають процеси утворювати дерево, чи вони «плоскі»? Які типи міжпроцесового спілкування ви хочете підтримувати? Ви хочете, щоб це було багатокористувацьким або просто багатозадачним (або, можливо, однозадачним)? Ви хочете, щоб це була система в режимі реального часу? Який ступінь ізоляції ви хочете забезпечити між завданнями? Де ви хочете, щоб він потрапляв у масштабі монолітного проти мікроядра? Наскільки ви хочете, щоб він підтримував розподілену операцію?
Як правило, я б радив не вивчати ядро Linux для вашого натхнення. Це не проти самого ядра Linux, а простий факт, що Linux призначений насамперед для виробничого використання, а не для освіти. У ньому багато оптимізації, хакерської сумісності та ін., Які надзвичайно корисні для виробництва, але швидше відволікають, ніж навчають.
Якщо ви зможете знайти його, копія книги Лева (коментар Левів до 6-го видання UNIX , із вихідним кодом , Джоном Левом) є набагато легшою відправною точкою. 6-е видання UNIX було ще невеликим і простим, щоб читати і розуміти досить швидко, не будучи надто спрощеною іграшковою системою.
Якщо ви плануєте орієнтуватися на x86 (принаймні в першу чергу), ви також можете подивитися на MMURTL V 1.0 Річарда Берджеса. Тут представлена система для x86, яка набагато більше використовує апаратне забезпечення x86, як спочатку планували дизайнери процесорів - те, що більшість реальних систем уникає на користь переносимості до інших процесорів. Як ви могли здогадатися, це, як правило, орієнтується набагато сильніше на апаратний кінець речей. Друковані копії здаються дорогими і важкими у пошуку, але ви можете завантажити текст і код безкоштовно.
На щастя, є ще кілька можливостей - Проектування та впровадження операційної системи Ендрю Таненбаума та Альберта Вудхолла, наприклад.