Операционната система е просто това, което дава възможност на вашия софтуер да управлява хардуера. Очевидно някои операционни системи са по-сложни от други.
В самата си същност компютърът започва да изпълнява на фиксиран адрес, което означава, че когато компютърът се стартира, той настройва програмния брояч на предварително определен адрес и просто започва да изпълнява машинен код.
В повечето компютри този процес на "стартиране" веднага инициализира познатите периферни устройства (като, да речем, дисково устройство). Веднъж инициализиран, процесът на стартиране ще използва някаква предварително дефинирана последователност, за да използва тези периферни устройства. Използвайки отново драйвера на диска, процесът може да прочете код от първия сектор на твърдия диск, да го постави в известно пространство в RAM и след това да премине към този адрес.
Тази предварително дефинирана последователност (стартиране на процесора, зареждане на диска) позволява на програмистите да добавят повече и повече код в ранните части на стартирането на процесора, което с течение на времето може в крайна сметка да стартира много сложни програми.
В съвременния свят, със сложни периферни устройства, усъвършенствани CPU архитектури и огромни, огромни ресурси (GB или RAM, TB диск и много бързи CPU), операционната система може да поддържа доста мощни абстракции за разработчика (множество процеси, виртуална памет , зареждаеми драйвери и др.).
Но за проста система, с ограничени ресурси, всъщност не се нуждаете от много за "ОС".
Като прост пример, много малки компютри с контролер имат много малки "ОС" и някои могат просто да се считат за "монитор", предлагайки малко повече от лесен достъп до сериен порт (или терминал, или LCD дисплей). Разбира се, няма много нужда от голяма ОС при тези условия.
Но също така помислете за нещо като класическа Forth система. Тук имате система с "ОС", която ви дава вход/изход на диск, вход/изход на конзола, управление на паметта, плюс действителния език за програмиране, както и асемблер, и това се побира в по-малко от 8K памет на 8-битова машина.
или старите дни на CP/M с неговия BIOS и BDOS.
CP/M е добър пример за това, когато една проста операционна система работи добре като абстракционен слой, за да позволи на преносими програми да работят на широк набор от хардуер, но дори и тогава системата отне по-малко от 8K RAM, за да стартира и работи.
Далеч от MBs памет, използвана от съвременните операционни системи. Но, за да бъдем честни, ние ИМАМЕ MB памет и животът ни е МНОГО МНОГО по-прост (предимно) и много по-функционален поради това.
Писането на операционна система е забавно, защото е интересно да накарате ХАРДУЕРА да отпечата „Здравей свят“, като избутва данни 1 байт наведнъж от някакъв неясен входно-изходен порт или ги зарежда в някакъв магически адрес на паметта.
Вземете x86 емулатор и купонясвайте, като получите сектор за зареждане, за да произнесете името си. Това е кикотливо удоволствие.
person
Will Hartung
schedule
31.12.2008