Комментарии 57
возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК
В старых материнках возможно это и был аккумулятор. В современных это литиевая батарейка. И никогда не пытайтесь ее заряжать, иначе скорее всего будет небольшой ба-бах, а с учетом того что крышка может отлететь в любую сторону, то могут быть и травмы некоторых частей тела, например глаз.
В старых материнках аккумуляторы были никелевые. В более новых — литиевые батарейки(не аккумуляторы). При попытке зарядки литиевой батареи небольшим током — ничего страшного не случится.
еще бы уточнить размер этого небольшого тока заряда, который не повредит батарейке. Подозреваю что около микроампера, то есть никакой.
К слову открывал новый сервер Lenovo и удивился увидев несколько больших ионисторов. Правда для другой цели — похоже на питание SSD, а не часы.
Никелевые текли, и растворяли дорожки вокруг себя. У ретроводов с этим большие проблемы
Вот всегда было интересно узнать разницу между литиевым аккумулятором и батарейкой. Например, RCR123A — аккумулятор, а CR123 — батарейка в том же размере.
Почему тогда не делают батареек в размере 18650? Или аккумуляторов в размере CR2032?
Если с таким пониманием железа человек является
Windows Kernel Developer
, ничего удивительного в постоянных глюках. Четырёх основных партиций им мало, 2,2 ТБ им мало. Зачем винде больше партиций, если только в Свисте появился скрытый системный раздел, а по дефолту оно занимает весь доступный объём? В некоторых случаях переустановки системным становится даже выделенный под /user. Не говоря о том, что обновления запихивали туда же неудаляемую обычными методами временную и скрытую папку с длинным непроизносимым наименованием. Такое впечатление, что поведение и развитие ОС уже неподвластно невелоперам. Понимание закончилось где-то после ХР, последнее что могли объяснить была вообще 98. Наслоили сэндвичи, осталось смузи полить.
Видел. А Вы знаете, по какой причине это сделано?
И реплика была в ответ на сетования про несовершенство классического BIOS.

по какой? расскажите. И про необходимость всего этого безумия с a/b, sar, boot ramdisk, recovery ramdisk, hybrid ramdisk, super раздел, retrofit. На фоне тонны разделов от вендора bsp, дополненных фантазиями OEM/ODM.

Recovery image — чтобы при неудачной установке ядра всегда можно было загрузить устройство хоть в какой-то режим. Бонусом — возможность вынести функционал восстановления из основного образа. Устройства, где recovery и kernel были в одном разделе, иногда умирали крайне не вовремя. И с кучей танцев для их оживления.
A/B — чтобы установка обновлений была быстрой, незаметной и имела возможность отката при проблемах.
SAR — чтобы не плодить действительно лишние разделы, поскольку у нас и так есть неизменяемый system. Аналогично делают и в современных линуксах — никто не делит уже диск на / и /usr.
Цирк с разными ramdisk пошёл уже от разных вендоров, которые считают, что они знают лучше. При этом сам ramdisk стал обязателен из-за того, что разделы для системы теперь динамические (чтобы не возникало старых проблем, когда новая версия android не помещается в заранее заданный раздел).
Отдельный раздел под телефонный софт/прошивку/настройки — просто чтобы не трогать эту часть при обновлении системы и отделить от основной части.
Часть производителей даёт ещё раздел /vendor или /preload, чтобы вынести туда свой софт, который устанавливается при первом запуске в зависимости от текущего региона/оператора. Нужно, поскольку софт из /system будет считаться установленным всегда.
Ничего не скажу про "retrofit" или "super раздел", слышу о них впервые.

Я знаю зачем они. Спрашивал про необходимость вести эволюцию именно таким путем. После этой чехарды жаловаться на служебный раздел у висты это просто смешно. Ну и интересно услышать про остальные разделы, коих наберется пара десятков. Так ли уж все они необходимы, и если да, почему у разных вендоров настолько разные наборы
зы: я читал внутреннюю документацию qualcomm, например. Поэтому ЧТО лежит в разделе мне не интересно. Мне интересно ЗАЧЕМ.)


super — для поддержки динамических разделов
retrofit — когда способ загрузки изменяется с течении жизни девайса


вот тут подробнее https://topjohnwu.github.io/Magisk/boot.html

По ссылке нет слова super, да и "retrofitted" используется как обычный глагол, а не как термин без перевода.
Попробуйте предложить свой вариант эволюции, чтобы сохранять атомарность обновлений и не пихать всё в одну кучу?

По ссылке нет слова super


Всё там есть, особенно с учётом моей подсказки о динамических разделах. Смотрите строчку «As time passed from Android 7.1 to Android 10, Google introduced Dynamic Partitions» ну и далее по ссылке.

да и «retrofitted» используется как обычный глагол, а не как термин без перевода.


Обратите внимание, что RV недостаточно для классификации, пришлось вводить LV. «Retrofit» стирает эту необходимость. Вполне себе термин для вполне себе объективных (и редких) событий.

Попробуйте предложить свой вариант эволюции, чтобы сохранять атомарность обновлений и не пихать всё в одну кучу?


Если бы не было такого чудовищного числа разделов изначально — наверное дела были бы проще. Неужели у Google недостаточно талантливых инженеров, чтобы единожды продумать базовый, коренной механизм своей ОС, а не менять его каждые пару лет, причём весьма кардинально?
Windows Kernel Developer — это не только про драйвера устройств, это про операционную систему в принципе. Windows уже давно не стартап в котором каждый разработчик это человек-оркестр. Разделением диска на разделы занимается другая команда.
Чем конкретно вам доставляют неудобства эти особенности реализации?

Стиль изложения у статью такой что есть
Ощущение что прочитал какую то книгу типа Windows 2000 для новичков.
Или Компьютер для чайников (Windows 2000).
их тех самых времён :D

Windows Internals гораздо сложнее и объёмнее, плюс здесь инфа из других источников соединённая вместе.
Парни, вы сначала определитесь с «батарейкой» и уясните, что в батарею можно набрать как химические неподзаряжаемые элементы питания, так и аккумуляторы.
И где глазастый screwer хейтер увидел жалобу на служебный раздел? Жаловался автор третьей порции на нехватку партиций «устарелым BIOS».
Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено

Может всё-таки один расширенный изначально? Или все, кто говорит что максимум 3 primary и 1 extended — неправы?

ЕМНИП extended partition могло быть и больше одной, другое дело, что это было нецелесообразно — по факту extended partition это оверхэд над логическими дисками в ней, и естественно его минимизировать.

Совместимый со всеми вариант — это в котором
1) не больше одного расширенного в первичном разделе (LBA=0);
2) каждый расширенный имеет такую же таблицу, в которой под номером 1 целевой раздел и, если продолжается, под номером 2 снова расширенный на остаток исходного расширенного раздела.


Это то, что умеет весь софт одинаково. В принципе были варианты с более гибкой схемой, но если такую схему поймёт только одна ОС и не поймут никакие другие — то такое никому не будет интересно — как и случилось.

а что это за пассаж с Nvidia 2070 S и несовместимым разъемом на материнке из-за которого надо вставлять скрепку на PS-ON или покупать новую материнку?
Прикладная иллюстрация как блок питания получает сигнал от материнки на включение.
тогда стоило бы вставить это пояснение перед тем абзацем, чтобы не искать второй и третий скрытый смысл. Не бежать гуглить ATX12VO и Nvidia 12pin и размышлять что стало с материнками и видяшками
осталось нераскрытым почему «разъёмы материнки будут не совпадать с разъёмами БП»
Как я понял на PS-ON нужно подать 0 для включения. Почему же тогда не соединить 2 вывода PS-ON вместе, вместо скрепки на втором БП- чтобы он тоже выключался кнопкой)
Процессор начинает свою работу в режиме который называется «Реальный». Это режим совместимости, в нём CPU работает так же как и старые 16-bit процессоры...

Я конечно не специалист в это деле (меня интересует UNIX железо на не-x86 процессорах), но как-то с трудом верится что в 2020 году, более 40 лет спустя появления 8086, современные x86 процессоры до сих пор стартуют в 16-разрядном режиме. Это такой вариант с/м для итшников? Зачем в 2020 году стартовать в этом режиме, когда BIOS уже давно мертва и когда до выполнения первой команды процессором работает тот самый системный контроллер, который может и процессор, и память и чипсет сконфигурировать как производителю захочется?
Это цитата из раздела описывающего загрузку на BIOS, на современных компьютерах стоит UEFI, поэтому CPU начинает работу в своей родной разрядности.
В разрядности UEFI. Потому что мерзкие машинки с 32-бит UEFI на х64 процессоре есть в природе.
Ага, так в каком же режиме процессор начинает работать после сброса? Это как-то конфигурируемо? Или он всё-таки сбрасывается в 16 разрядов, а потом 32-разрядная UEFI переводит его в 32 разряда, а 64-разрядная UEFI а 64?
То, что вы цитировали из статьи в первом сообщении ветки относится к состоянию перед загрузкой ОС, как я понял статью. Если именно сразу после сброса/включения, то
сбрасывается в 16 разрядов, а потом 32-разрядная UEFI переводит его в 32 разряда, а 64-разрядная UEFI а 64?
и потом грузится ОС, да. Насколько я знаю это не настраиваемо, и одинаково для всех x86, даже для этого ru.wikipedia.org/wiki/Intel_Quark
Если что, старые BIOS (ну не 80-х годов) тоже почти сразу переходили в 32-разрядный режим при старте компьютера, и только перед загрузкой ОС прыгали обратно в 16.

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

А это точно что современные x86 не конфигурируются до сброса, или просто нет официальной документации? Например старые добрые G5 процессоры из Apple Powermac 2003-2006 года выпуска до сброса настраиваются системным контроллером через JTAG, и только после этого начинают исполнять первые команды из ПЗУ.

Есть официальная документация на чипсеты. Наверняка там не всё сказано, но про запуск процессора сказано по сути, что ищется, где есть процессор (если несколько слотов) и запускается подачей документированных сигналов, а процессор выбирает внутри себя ядро и точно так же запускает его. Ещё задача чипсета раздать всем процессорам уникальный id и настроить начальное состояние материнки, чтобы стартовое ядро хоть как-то запустилось. Дальше уже код BIOS выполняет прочие действия.

Очень интересно, спасибо! А конкретные ссылки на Интеловскую документацию есть по тому, что вы рассказали?

В PowerMac G5 например чипсет не занимается раздачей процессорных id — каждый процессорный сокет имеет свои уникальные id ножки, и ядра их таким образом считывают при сбросе. Все ядра начинают работать и исполнять код ПЗУ одновременно, но в чипсете есть один уникальный регистр, который возвращает «да» лишь один-единственный раз после холодного сброса. То из ядер которое первым сумеет считать оттуда «да» и назначается загрузочным по коду ПЗУ. Остальные, после самотестирования, переходят в режим ожидания специального прерывания.
Если что, старые BIOS (ну не 80-х годов) тоже почти сразу переходили в 32-разрядный режим при старте компьютера, и только перед загрузкой ОС прыгали обратно в 16.

Они переходили в 32 бита для включения Unreal mode и тут же прыгали обратно, потому что в 16-битном режиме код короче. Потом, да, периодически включался 32-разрядный, но только по необходимости. Подробно это рассказано, например, тут (есть в сети в электронном виде).


современные ОС давно не полагаются на BIOS, имеют свои драйверы и умеют переключать процессор куда им надо

Умеют, да. Но ACPI может потребовать вызывать какие-то вещи через BIOS, поэтому такой вариант резервируется.


На UEFI насколько я знаю тоже не полагаются.

UEFI специально оставляет так называемые runtime services для выполнения функций уже на запущенной системе.

x86 CPU всегда стартует в 16-разрядном режиме согласно спецификации

Зачем в 2020 году стартовать в этом режиме

Это многим интересно. Но, думаю, пока не разработают SMM32, с этим ничего не изменится.

Только что проверил — процессор i7-3612QE в моём ноутбуке стартует в 16-битном режиме. Для этого я посмотрел в дамп флешки (виртуальной, полученной склейкой микросхем на 4 и 8 мебибайт) по смещению bffff0 (reset vector попадает на последние 16 байт флеша) и получил следующий код:
BFFFF0: 0F 09 wbinvd
BFFFF2: E9 6B F9 00 00 jmp bff960


Если проинтерпретировать инструкцию по адресу BFFFF2, как 32-битную, то получится BFFFF2: E9 6B F9 00 00 jmp c0f962, что не даст осмысленного адреса.

И, чтобы наверняка, посмотрим на код, куда идёт данный branch:
BFF960: DB E3 finit
BFF962: 0F 6E C0 movd mm0, eax
BFF965: 66 33 C0 xor eax, eax
BFF968: 8E C0 mov es, ax
BFF96A: 8C C8 mov ax, cs
BFF96C: 8E D8 mov ds, ax
BFF96E: 66 B8 DC F8 00 80 mov eax, 8000f8dc
BFF974: BA F8 0C mov dx, cf8
BFF977: 66 EF out dx, eax

Последние три инструкции в 32-битной интерпретации превращаются в бессмыслицу:
BFF96E: 66 B8 DC F8 mov ax, f8dc
BFF972: 00 80 BA F8 0C 66 add [eax+660cf8ba], al
BFF978: EF out dx, eax
по смещению bffff0 (reset vector попадает на последние 16 байт флеша)

Процессор ресетится так, что стартует с ffff0. Не фатальная разница, но лучше уточнить.
Или вы не про старт сразу после ресета процессора?

Процессор стартует с 0xFFFF_FFF0, т.е. с 4GiB — 16. Флешка 12MiB = 0xC0_0000, маппится в 0xFF40_0000.

Адрес во флешке будет 0xC0_0000 — 16 = 0xBF_FFF0, и он замаппится как раз в 0xBF_FFF0 + 0xFF40_0000 = 0xFFFF_FFF0, то есть в тот самый адрес.
и он замаппится как раз в 0xBF_FFF0 + 0xFF40_0000 = 0xFFFF_FFF0, то есть в тот самый адрес.

Ну так тут важны именно адреса, которые видит процессор. Во флэшке оно может быть вообще по адресу, в котором часть линий перепутаны или инвертированы, это уже дело интерфейса. Поэтому лучше было таки показывать с 0xffff0 (или 0xfffffff0, тут неважно).


Но в общем понятно, вопрос закрыт.

Про 300$ и несовместимые разъемы это что вообще, после даже читать не стал. Вы давно покупали материнскую плату? 100$ Средняя мать от асуса на Bxxx чипсете. Можно и за 60$, но сильно порезанную, а за 300 это где вы такую нашли?

И как это повышает стоимость новой материнки до 300? Столько i5 9600 с матерью стоит в комплекте

их можно даже очень дорогие найти, к примеру со встроенной поддержкой водяного охлаждения.
Как я уже писал, этот вопрос у автора не раскрыт, и гадать тут можно долго
материнки для игровых ПК именно столько и стоят, покрайней мере во всех магазинах рядом со мной.

Купил Asus Intel H370 LGA-1151 mATX за 115€ что я делаю не так? И проц за 229€ i5 9600k. Можно пример такой среднестатистической материнки за 300

Я так понимаю что среднестатистическая видеокарта для вас это 3090 rtx.

В свободное от работы время в местном колледже преподаю некоторые предметы по курсу Компьютерные системы и комплексы: как же не хватает таких поэтапных статей изложения нужного и, главное нового, материала. Приходится из десятка бредовых статей статей в интернете выуживать и собирать нужную лекцию. Тут у Вас всё по полочкам, под номерами и пояснениями, ну если короче, то просто Спасибо!
Большое спасибо за интересный материал!

Кстати, всегда удивляло, что есть 1000 экспертов, которые разбираются лучше, но в Microsoft не работают)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.