Есть только 2 возможности:
слишком сложный, чтобы быть полезным для обучения
слишком простой, чтобы быть полезным для обучения
Такие вещи, как необычные функции / расширенная функциональность, устранение проблем безопасности, устранение аппаратных ошибок / дефектов, производительность, масштабируемость и поддержка очень широкого спектра различного оборудования - все это увеличивает сложность кода; и если вы посмотрите на настоящую коммерческую ОС (например, Linux, возможно), которая должна заботиться обо всех этих вещах, трудно узнать о чем-то одном (например, об управлении памятью) без того, чтобы вся сложность мешала и значительно усложняла изучение .
Если у вас простая ОС, которая не выполняет ни одной из этих функций (без дополнительных функций, без устранения проблем с безопасностью и т. Д.), Тогда гораздо легче изучить основные принципы из нее; но также становится невозможным использовать его, чтобы узнать о необычных функциях, смягчении проблем безопасности, работе с аппаратными ошибками / исправлениями, ...
Решение состоит в том, чтобы начать с простой ОС (например, XV6), чтобы изучить основы, а затем переключиться на настоящую ОС, чтобы изучить все остальное.
Тем не мение; большинство курсов по ОС в университетах не предназначены для того, чтобы научить вас писать ОС. Вместо этого они предназначены для предоставления вам базовой информации об операционных системах, чтобы вы могли использовать эти знания при написании прикладных программ для существующих операционных систем. По этой причине (и из-за ограничений по времени) они выполняют только первую часть (с простой ОС, такой как XV6), а затем курс заканчивается.
person
Brendan
schedule
16.02.2020