песочница

песочница

Подписчиков: 3774     Сообщений: 700147     Рейтинг постов: 1,166,477.5

футфетиш closeup футфетиш ero песочница 

футфетиш closeup,футфетиш ero,футфетиш, футфетиш ero,песочница
Развернуть

футфетиш closeup футфетиш ero песочница 

футфетиш closeup,футфетиш ero,футфетиш, футфетиш ero,песочница
Развернуть

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 байты. Думаю, вы замечали, что когда копируете файлы на носитель обычными методами, никто не спрашивает вас, в какой именно участок памяти вы хотите их поместить. Значит, копировать загрузчик нужно каким-то особенным способом.


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



Продолжать?
Да
306 (59.8%)
Единая Россия
206 (40.2%)
Развернуть

коты гифка песочница 

Развернуть

песочница 

 3||, 1 CL,песочница
Развернуть

песочница собакен мопсы живопись картина маслом art густав климт великие мопсы 

Живопись и Мопсы

песочница,собакен,мопсы,живопись,картина маслом,art,арт,густав климт,великие мопсы
Развернуть

песочница собакен art мопс картина маслом густав климт великие мопсы 

Мопсы

Мои работы мопсов)
 ШШШ 1 L.v ШЁ ЩШ Hf* шы ел ^У^ЦР £j» ^£>5 / х'*~ «.’, ' ^УД ■ " л ■ш®<в Л л » J,песочница,собакен,art,арт,мопс,картина маслом,густав климт,великие мопсы
Развернуть

песочница coub geek 

Развернуть

котэ гифка зевота песочница синхронность 

Развернуть

игры gamedev Сова - эффективный менеджер Manager Killer песочница 

Делаем 3D-шутер по мотивам комикса "Сова - эффективный менеджер"

www. В ANDICAM.com pi,игры gamedev Сова - эффективный менеджер Manager Killer,песочница


Последний билд был нацелен на оптимизацию и багфиксы.

Т.к. тестирование "в узком кругу" не выявило критических ошибок, решено вынести билд на открытое тестирование.

Варианты :
1. скачать с рутрекера: https://rutracker.org/forum/viewtopic.php?t=5777203
2. Скачать напрямую с гугло-диска: https://drive.google.com/open?id=1Xerjgzlh926XzqBVOpsACdnSaHw01lCL

Напоминаю, игра все еще в разработке. Из 5ти запланированных локаций готово 1,5.
Если наткнетесь на ошибки, просьба связаться со мной, приготовив файл "SYSTEM DRIVE":\Users\"YOUR ACC NAME"\AppData\LocalLow\Homeship Ind_\OwlShooter\output_log.txt

Ну и немного неудачного (потому что Бандикам вызвал дикие тормоза, которых нет в самой игре) видео по второй локации:
Развернуть
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме песочница (+700147 картинок, рейтинг 1,166,477.5 - песочница)