разработка

Подписчиков: 9     Сообщений: 97     Рейтинг постов: 817.9

OSDev операционная система разработка программирование geek ASM Комиксы песочница 

Уроки ОСдева №1

В прошлом посте я представил свою операционку и игру, которую пишу под неё в свободное время. Там же я сделал несколько заявок на будущие посты. Среди прочего я сказал, что, возможно, сделаю серию образовательных постов про разработку операционных систем и низкоуровневое программирование. Сегодня будет первый такой пост. Для понимания материала не нужно знать ассемблер или разбираться в устройстве ОС - про всё это я буду рассказывать. Нужно иметь представление об архитектуре компьютера в общих чертах: понимать, что такое BIOS, процессор, материнская плата, оперативная память, видео-, звуковая и сетевая карты, жёсткий диск, оптические и флоппи-приводы и как примерно всё это между собой скрепляется. Неплохо бы знать, что такое бит, байт и слово. Вообще супер, если вы в курсе, чем десятичная система счисления отличается от двоичной и шестнадцатеричной и умеете переводить из одной в другую. Поехали.


P.S.: если знаете английский, советую зайти сюда. Это довольно старая серия уроков по ОСдеву для новичков. Я в своё время почерпнул там очень много и в своих постах наверняка буду невольно цитировать оттуда.



Часть 1, теоретическая.


С чего начать? Вопрос, который возникает в голове любого, кто собрался писать ОС с нуля. В интернете полно тематических ресурсов, но не так много обучающих, где бы задача написания операционной системы разбивалась на небольшие последовательные этапы-уроки. Например, на OSDev.org очень много информации, распределённой по тематическим разделам, но составить на её основе у себя в голове необходимую последовательность действий для новичка будет очень сложно.


Я думаю, стоит начать с включения компьютера. Это не шутка: чтобы создать свою операционную систему, надо до определённой степени понимать как работает компьютер. Что происходит, когда вы нажимаете кнопку POWER на системном блоке и как у вас на экране оказывается ваш заваленный ярлыками и "новыми папками" рабочий стол? Для того, чтобы программа (а наша ОС - это, конечно же, программа) начала исполняться, она должна сначала попасть в оперативную память. Содержимое оперативной памяти же на момент включения пусто. Если среди читающих есть инженеры, советую зажмуриться и пропустить до следующего абзаца: сейчас будет упрощённая модель.


1. Нажатая кнопка POWER посылает электрический сигнал на материнскую плату.

2. Сигнал доходит до материнской платы и отправляется к блоку питания.

3. Блок питания просыпается и начинает подавать энергию подключенным устройствам.

4. Блок питания посылает сигнал на материнскую плату, начинает исполняться программа BIOS.

5. BIOS проводит POST (power-on self-test), посылая сигналы разным устройствам и получая (или не получая) от них ответ. Если устройство не отправило ответ, оно помечается как нерабочее или отсутствующее. Тут же BIOS определяет количество оперативной памяти и некоторые другие параметры системы.

6. Если POST окончен и никаких критических поломок не выявлено, BIOS сверяется со списком загрузочных устройств. Наверняка вы хоть раз его видели, если устанавливали Windows: его обычно можно настроить через интерфейс BIOS, выбрав, с чего загружать ОС (floppy, HDD, USB, ...).


Вот тут начинается часть, которая интересует нас. Предположим, мы вставили дискету с нашей ОС в привод и настроили приоритет загрузки следующим образом: CD-ROM, флоппи-привод, жёсткий диск, USB. Как BIOS определит, что на одном из носителей есть операционная система для загрузки? Физическое устройство цифровых носителей и способы доступа к информации на них это тема для отдельного урока или даже нескольких, так что пока удовольствуемся упрощённой схемой: BIOS считывает с 0 по 511 байты носителя и проверяет, чему равны байты 510 и 511. Если они равны 170 и 85 (AAh и 55h в шестнадцатеричной системе), BIOS считает, что нашёл программу-загрузчик. После этого считанный участок носителя размером в 512 байт загружается в оперативную память и запускается центральный процессор компьютера, который начинает выполнять загруженную программу. Программа-загрузчик догружает остальные файлы ОС и располагает их в памяти нужным образом, а потом говорит процессору, откуда нужно начать выполнение ОС.


Какие выводы можно сделать из полученной информации?


1. Помимо операционной системы на носителе должна быть программа-загрузчик, т.к. компьютер не знает, как именно структурированы файлы ОС и куда их надо загружать. Загрузка ОС - тоже задача разработчика.

2. Загрузчик должен быть не больше 510 байт, ведь BIOS считывает 512 и последние два из них заняты меткой загрузчика.

3. Последние два байта программы-загрузчика должны быть равны AA55h.

3. Загрузчик должен занимать строго определённое место на носителе: с 0 по 511 байты. Думаю, вы замечали, что когда копируете файлы на носитель обычными методами, никто не спрашивает вас, в какой именно участок памяти вы хотите их поместить. Значит, копировать загрузчик нужно каким-то особенным способом.


Это была короткая вводная, но теперь мы имеем представление о том, как операционная система попадает в оперативную память и начинает исполняться при включении компьютера. Предлагаю пока помедитировать над этим. В следующий раз наверное будем говорить об устройстве цифровых носителей и потихоньку погружаться в волшебный мир ассемблера.



Продолжать?
Да
236 (58.6%)
Единая Россия
167 (41.4%)
Развернуть

it-юмор geek скриншот шакалы разработка хоррор 

У всех бывало

 херня, бы у меня нз прошлой работе один долбоё.. дятел короче 20:01 был этот дятел начальником отдела веб-программистов 20:01 © и он разрабатывал один корпоративный портал для большого завода (20 тыс чел) веб-портал - НА ФЛЕШЕ 20:02 © база была на mysql, а тот старый флеш (5й версии - это
Развернуть

Отличный коммент!

С одной стороны он конечно мудила редкостный. Но с другой определенно красава.
iggdiggd10.10.201817:24ссылка
+70.1

концепт-арт gamedev Игры инди картинки фентази длинопост разработка много картинок арт 

Арты моего друга

Инди игра в жанре ртс, разрабатываем с другом в свободное время. В разработке
Вот вам пару Артов.
Остальное в комментах
Biography Commander of the strike group Skills [Protective sign] - the defensive ability | that gives +200 additional health points and -20% of incoming damage during 2 turns. , [Shield bash] attacks your opponent f with a shield. The base damage is 140. Your enemy lose is 1 AP. [Blindness] -
Развернуть

Одинокий Игорь Игры сделал сам сделали сами разработка 

Ну что тут сказать. Я очень благодарен всем подписчикам как тега, так и людям в группе.

В общем, мы с данным товарищем скооперировались, vorobey33rus и сделали демо версию игры про Игоря. И таки смогли уложиться до нового года, и сделать вам всем подарок за терпение и столь тёплые отзывы :з

Мы немного нервничаем, поэтому текст немного суховат х)

В демо-версию нашего проекта можно поиграть онлайн по данной ссылке ---> Игра

Очень надеемся что вам понравится наше творение. Желаем вам хорошего нового года.


Все свежие новости по проекту, картинки, эвенты и т.д. постятся каждый день (ну или почти каждый день) в нашей группе "Одинокий Игорь".


Одинокий Игорь,Игры,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам,сделали сами,разработка

Ждём вашей реакции.

Одинокий Игорь,Игры,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам,сделали сами,разработка


Развернуть

команда проект разработка gif it-юмор 

Развернуть

заказчики разработка гладиаторские игры песочница 

Когда пытаешься утвердить проект у заказчика

Развернуть

gamedev игра dotcom разработка нужны пинки под зад от следящих 

Если кому интересно, наша игра .com (Dotcom) продолжает свое развитие. Какую-то движуху вы можете проследить на нашей странице в IndieDB. http://www.indiedb.com/games/dotcom. Идеи предложенные в предыдущем посте (http://old.reactor.cc/post/3218430) стараемся интегрировать в игру в лучшей манере. Вот вам скрины для оценки (в комментах)

Развернуть

it разработка не баг а фича 

Telegram (1) v л X last seen just now l. лете энкрипт? 6;42 PM 6:42 PM Ага с. 6:42 PM пиздос 7:17РМ мы ща во время релиза обнаружили 7:17 РМ что у нас в базе все широты и долготы местами перепутаны 7;18 рм ололо) 7:18 РМ к счатью, приложение тоже их путает местами, поэтому все
Развернуть

Отличный комментарий!

ледокол лазер разработка Санкт-Петербург 

Свершилось! Скоро сосули лазером резать будем.


Лазер для ледоколов испытают на «Диксоне»

ледокол,лазер,разработка,Санкт-Петербург

Национальный центр лазерных систем и комплексов «Астрофизика» совместно с Арктическим и антарктическим научно-исследовательским институтом Санкт-Петербурга проведет испытания лазерной установки, предназначенной для установки на ледоколы. Как пишет газета «У Белого моря», испытания установки мощностью 30 киловатт намечены на ноябрь текущего года. На время проверок лазер, предназначенный для разрезания льда, установят на дизельный ледокол «Диксон».


Испытания новой лазерной установки в лабораторных условиях уже состоялись и признаны успешными. По словам заместителя начальника специализированного конструкторского бюро двойных технологий «Астрофизики» Юрия Сорокина, в лабораторных условиях лазер быстро и уверенно разрезает лед толщиной один метр с расстояния шесть метров. В реальных условиях возможности новой установки могут оказаться недостаточными. Например, при резке льда на сильном морозе будет образовываться кипящая вода. Она замерзает быстрее воды нормальной температуры и по мере резке может быстро «склеивать» разрез.


Как отмечает bmpd, конечной целью проекта разработки лазера для ледоколов является создание установки мощностью 200 киловатт. Их установят на ледоколы, используемые для проводки судовых караванов по Северному морскому пути, кратчайшему морскому пути между Европейской частью России и Дальним Востоком. Предполагается, что мощный лазер позволит ледоколам проводить суда даже в тех зонах, где толщина льда достигает четырех метров. При этом скорость проводки составит до трех узлов (5,6 километра в час).


Разработчики полагают, что использование лазеров на ледоколах позволит повысить их класс, то есть увеличить проходимость. Это означает, что ледоколы смогут проходить в зонах с большей толщиной льда. При этом возможность лазерной установки обнаруживать слабину в ледовой корке позволит судам продвигаться быстрее. Кроме того, в лазерной установке реализована возможность изменения фокусировки луча и его мощность. Предполагается, что благодаря этому установку можно будет использовать для быстрой очистки судовых конструкций от льда.


Дизельный ледокол «Диксон», построенный в 1983 году, имеет в длину 92 метра и ширину — 21,4 метра. Судно оснащено четырьмя дизельными двигателями мощностью 13 тысяч лошадиных сил и способен развивать скорость до 17,5 узла. Автономность плавания ледокола составляет 30 суток. Судно может продвигаться по льду толщиной 0,9 метра со скоростью один узел.

Источник



Развернуть

it разработка 

— все работало отлично, зачем улучшать полез?
— мля, никогда больше так не буду:(
Преждевременная оптимизация
— корень всех зол
Дональд Эрвин Кнут — американский учёный, профессор, преподаватель и идеолог программирования.,it,разработка
Развернуть

Отличный комментарий!

Разработчики на бета-тестировании говорят:
- "Преждевременная оптимизация - корень всех зол".

Игроки после релиза говорят:
- Чтоб эти профессора всю жизнь с 10 fps играли блядь...
refefe refefe12.06.201714:30ссылка
+33.0
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме разработка (+97 картинок, рейтинг 817.9 - разработка)