Пајтон - Оперативен систем од нула - CiupaCabra

Ме замолија да изберам проект за курсот за мојот оперативен систем на мојот универзитет. Ме бомбардираа идејата да направам оперативен систем од нула во Пајтон.

оперативен

  1. Имам само 3 месеци.
  2. Сакам да го сторам тоа во Пајтон.
  3. Јас можам да кажам 20-30 часа секоја недела.

Сакам да знам колку е изводлива идејата? На пример, колку далеку можам да одам во градењето на истото. Би бил многу среќен ако можам да добијам основна верзија која работи (нешто со неколку многу основни апликации за извршување.) Тоа е можно со дадените ограничувања?

Дали има книга што може да ми помогне како водич? (не мора да биде за Python, само ми треба водич за да ми каже како треба да работам за правење оперативен систем)

Ако идејата не е изводлива, некој може да ми каже колку ми треба за да ја намалам мојата идеја?

Секоја помош е многу ценета!

11 одговори

Скалирајте го ова многу. Јас би препорачал да разгледате многу мало парче оперативен систем што би сакале да го направите, можеби паралелна обработка. Не постои изводлив начин да можете да напишете цел оперативен систем за помалку од 500 часа, за само 5.000 часа. Вистинското прашање е дали ова е за диплома или за постдипломски студии? Одговорот на ова многу ќе го рефлектира она што е потребно за да се помине.

додавајќи
Земи книга на тема за оперативниот систем што те интересира и фокусирај се на тоа 3 месеци и може само да произведеш нешто што е добро. Оперативните системи може да изгледаат како да не прават многу однадвор, но помислете на тоа на ваков начин на Windows

Дали вашиот наставник има „ниска“ компонента во проектот? На пример, сè што се занимава со хардвер или инструкциска архитектура. Ако е така, вашиот учител нема да ви дозволи да го направите проектот во Пајтон. Проектот мора да биде напишан во Ц и монтиран. И, секогаш ќе работите на модифицирање на јадрото на Linux.

Сепак, сегашниот оперативен систем повеќе не е ограничен на нискиот аспект. Виртуелизација, база на податоци, паралелизација се изградени на врвот на оперативниот систем. Ако вашиот учител е „старо училиште“, тогаш тој/таа не може да ги смета тие нови предмети како дел од оперативниот систем. Значи, можеби ќе треба да му донесете неколку идеи за тест до вашиот наставник и да побарате појаснување.

Дали станува збор за ниско ниво, како што сугерираат некои, зависи целосно од образовните цели на наставниците.

Добар проект би вклучил еден или повеќе од:

  • Влез излез
  • Складирање
    • Одлучување што ќе се зачувува/предвидува што да се вчита претходно
  • Започнување/управување/задачи за најавување (процеси, нишки или функции на Python), локално или од далечина
  • Управување со ресурсите
    • Барајте секој процес да дава проценки за колку врвна меморија ќе се користи и редовно да известува за процент на „напредок“ во текот на нивното извршување, што потоа може да се искористи заедно за да се направат проценки за употребата на ресурсите
  • Комуникација
  • Конкурентност

Проект кој не комуницира директно со хардверот, но би бил добар проект, ќе биде:

  1. Ако вашиот проект обезбедува апстракција на оперативниот систем на апликациите што ќе работат „внатре“ во вашиот проект
    • Со други зборови, „апликациите“ се потпираат единствено на вашиот „проект на оперативниот систем“ за нивните I/O, складирање, управување со задачи, ресурси, комуникациски потреби
  2. Вашиот проект прави добра (ефикасна, мерлива) употреба на реалниот оперативен систем (Виндоус, Линукс итн.)

Тогаш тоа ќе биде добар дизајн на оперативни системи, без оглед на употребениот јазик.

Јас би предложил спроведување на ваш сопствен систем за меморирање, систем за намалување на мапи или едноставен систем за контрола на верзијата како примери за добар проект.