гик

гик

Прикольные гаджеты. Научный, инженерный и айтишный юмор Подписчиков: 5105     Сообщений: 17044     Рейтинг постов: 190,960.2

it-юмор geek 

it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Развернуть

it-юмор geek 

Btuy'S AGENT
ш Л


С Semicolon missing at line 5
ВЫ ТОЛЬКО ПОСМОТРИТЕ НА	НЕГ...

ЕГО ПЕРВЫЕ ШАГИ В ПРОФЕССИИ ПРОГРАММИСТА
А*

FBI

S* 6R AFO,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Развернуть
Комментарии 8 16.09.201921:30 ссылка 22.2

it-юмор geek 

V I
Tim Pope
@tpope
when people ask me to recommend a text editor
VISUAL STUDIO COI
7:27 • 14 Sep 19 • Twitter Web App
3,008 Retweets 11.IK Likes,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Развернуть

it-юмор geek 

it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Развернуть

Area 51 it-юмор geek c++ 

"Я убегаю из Зоны 51 унося С+"

Area 51,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,c++


Развернуть

it-юмор geek регулярные выражения 

Is there a regular expression to detect a valid regular expression?
Asked 10 years, 11 months ago Active 4 days ago Viewed 192k times
941
Is it possible to detect a valid regular expression with another regular expression? If so please give example code below.
regex
938
✓
(?:
Развернуть

it-юмор geek 

it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Развернуть

it-юмор geek 

ОЕЭМЙН
/ЛИКЕ THIS SMALL
CHArtGf
fBEFORE fíU6lo)
\¿J9NT
= CUCR=,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Развернуть

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

Mihatron2012 Mihatron2012 14.09.201912:40 ссылка
+37.6

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%)
Развернуть

песочница coub geek 

Развернуть
Комментарии 2 13.09.201921:27 ссылка -1.5
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме гик (+17044 картинки, рейтинг 190,960.2 - гик)