Category: компьютеры

Category was added automatically. Read all entries about "компьютеры".

филосораптор

ступенька

Бывает что люди замечают "изменения реальности", примерно как по ссылке ниже. Когда живёшь себе потихоньку, а однажды утром обнаруживаешь, что что-то хорошо тебе известное не просто стало другим, а всегда другим и было, а таким каким ты его помнишь - никогда не было, и все это подтверждают. И это не "эффект Манделы", когда ты что-то где-то вроде слышал, а на поверку оказалось что всё по другому, речь про вполне конкретный свежий личный опыт, без догадок и неоднозначностей.

https://sam-newberry.livejournal.com/1016683.html

А я про другое вспомнил. Про недавние уязвимости процессоров - а именно про Meltdown и Spectre (так их уже с два десятка есть, это самые известные). А основаны они на так называемом "спекулятивном выполнении" в современных процессорах: там, в самом центре ядра процессора, где собственно и происходят вычисления, всё крутится с такой бешеной скоростью, что "думать некогда, считать надо", и совершенно штатной является ситуация, что к моменту начала исполнения команды мы ещё не знаем, надо ли её вообще исполнять - доступны ли все данные вот прям счас, "не подвели ли смежники" (успешно ли выполнилась предыдущая команда, от которой зависит эта), по этой ли ветке условного перехода пойдёт выполнение, и даже имеем ли мы право её вообще исполнять (есть ли у процесса доступ к той памяти, к которой команда хочет доступиться). Поэтому команда, а то и ветка команд, начинает выполняться сразу (и бывает что успевает выполниться на пару операций "вглубь"), а уже в процессе выполнения процессор выясняет, стоило ли вообще это выполнять, или не стоило (в абсолютном большинстве случаев стоило, за счёт этого и происходит ускорение - мы не теряем времени на проверки). Если же не стоило - просто выбрасывает результаты выполнения, а команду заворачивает в специальную очередь на повторное выполнение (или не заворачивает, если оказалось что её выполнять вообще не надо было(*)).
При этом "выбрасывание результата" штука не такая тривиальная - нужно ведь чтобы в случае отмены спекулятивного выполнения не осталось буквально никаких алгоритмически значимых следов этого выполнения, и у программы создавалось впечатление исполнения строго-по-порядку-и-правильно (есть ведь ещё "внеочередное исполнение инструкций", тоже интересная тема, а ещё "неправильно" выполненная инструкция вовсе не обязательно останавливает выполнение следующих за ней). И специально для такого "выбрасывания" в процессоре реализована целая куча механизмов, вплоть до возможности "откатить" даже запись в память (для этого сделан короткий "буфер записи", через который проходят все операции записи, прежде чем реально записаться в память, и пока операция в буфере - её можно просто вычеркнуть, как будто ничего и не было). Но поскольку изначально задача зачистки вообще всех "хвостов" не ставилась, ставилась задача чтобы все эти фокусы были незаметны чисто, так сказать, алгоритмически, а например обращение к памяти так или иначе "задевает" довольно много узлов процессора (кеш, таблицы дескрипторов, что-там-ещё), оставляя косвенные признаки того, что обращение было, эти признаки можно пытаться обнаруживать - то есть команда вроде как бы и не выполнилась, никакого _результата_ после себя не оставила, но _следы_ попыток её выполнения - остались.

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

А теперь рассмотрим ситуацию, в которой человечество живёт и обсчитывается в некоей Матрице. Чисто из соображений эффективности, мир при этом удобно разбить на систему слабосвязанных участков, и каждый такой участок обсчитывать на своём вычислительном узле - тогда не придётся учитывать "влияние всего на всё" (ретроградного Меркурия на успех Великой Октябрьской Социалистической Революции), а обойтись относительно небольшим потоком информации между узлами. Это мы, в принципе, и наблюдаем - люди любят селиться компактными кучками (города, сёла) с относительно слабыми связями (интернет это изменил, но не так чтобы радикально), звёзды-планеты вообще отдельно, и до недавнего времени вообще сводились к "точкам на небесном своде". Но при этом, как за счет ограниченности потока данных, так и временнЫх задержек, точное состояние "внешних" узлов при обсчёте будет частично "угадываться" (кстати, не эту ли проблему должен был решить хак с квантовой механикой?), что неизбежно будет приводить к рассогласованиям между реальностями разных узлов. При синхронизации эти рассогласования будут, разумеется, обнаружены и скомпенсированы - в лёгких случаях простым "приведением в соответствие" (небольшие сбои в реальности мало кто заметит), в более серьёзных - с "коррекцией прошлого" (частичной заменой памяти/предыстории).
Но, поскольку изменяется только так сказать явная, "видимая" часть памяти, а неявная, то есть весь букет ассоциаций и поведенческих нюансов, с этой памятью связанных, не изменяется (поскольку это потребовало бы фактически пересчёта этого участка заново от момента первого изменения, а это не просто затраты времени, но и рассинхронизация участков), как раз и возможны всякие странные ситуации. Начиная с "события как бы не было, но его последствия есть" и до "ложной памяти" вроде той самой "ступеньки" по ссылке.

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

===
(*) в плане спекулятивного выполнения мне вот что больше всего понравилось.
Вот программа-злоумышленник выполняет инструкцию с обращением к чужой памяти. Инструкция начинает выполняться, пока она выполняется процессор обнаруживает что выполнять её нельзя ни в коем случае, и генерирует исключение. Управление передаётся операционной системе, а та, при достаточно параноидальной настройке, тупо прибивает программу. Да и при менее параноидальной испортить жизнь злоумышленнику не так уж сложно, хотя бы кеш инвалидировать - уже большая часть атак отвалится.
А теперь мы кладём эту же инструкцию в одну из веток условного перехода, и подначиваем процессор думать, что эта ветка более вероятна (методы есть). Процессор спекулятивно выполняет инструкцию, обнаруживает обращение к чужой памяти... но мы тем временем выполняем переход по _другой_ ветке, и поскольку оказывается что инструкцию выполняли зря, и надо сделать вид что этого не было - исключение _не_ генерируется, и злоумышленник спокойно переходит к следующему этапу (обычно это опрос кусочка своей памяти на предмет выяснения, что из этого кусочка есть в кеше).
Работает же фантазия у людей!
Kimura2

CGA!

Тут наткнулся на пару статей (ссылки внизу).
Есть одна демо-группа - это люди, которые пишут программы с демонстрацией спецэффектов, как правило на античных компах, потому что на новых это слишком просто и потому неинтересно (они существуют!!! до сих пор!!). Так вот, они взяли IBM PC/XT с видеоадаптером CGA (это 1981 год, графический режим с использованием 4 цветов из палитры в 16 цветов, текстовые режимы с использованием 16 цветов, причём 16 цветов там как бы принципиальное ограничение железа - на стандартный выход идёт четыре цифровых сигнала - RGB и "светлый" - и что с этим не делай, больше 16 комбинаций не получишь). И, используя несколько очень хитрых трюков, получили на нём... 1024 цвета! Показываемых одновременно, правда в низком разрешении, но "сравнительно честных" - без дизеринга, мелькания и подобных трюков, правда не на мониторе, а на условном "телевизоре" через композитный выход видеокарты.
Каким образом они совершили невозможное и выбили из CGA больше цветов чем когда-то позже сделают в VGA я пересказывать не буду - оно "изобилует сценами неприкрытого насилия", в том числе и над здравым смыслом, отмечу что меня больше всего удивило.

Дело было в 2015 году. Меня не очень удивляет, что в 2015 году находятся люди, с энтузиазмом ковыряющиеся в железе 1981 года с целью наковырять в нём что-нибудь интересное. Меня вообще не удивляет что люди находят в железе недокументированные возможности, и используют их в своих целях - там по второй ссылке есть забавный пример использования на CGA почти-как-настоящего разрешения 640х200 с 16 цветами (на самом деле хитрого текстового, но сразу-то и не разглядишь).
Меня удивляет то, что когда эпоха CGA безвозвратно ушла и забылась, когда казалось бы уже были открыты (и забыты за ненадобностью) все "хитрые трюки" того железа, уже в наше время, когда всё меряется гигабайтами и гигагерцами, народ открывает НОВЫЕ возможности того железа, причём в разы превосходящие то, что было открыто "по горячим следам", когда CGA была ещё хоть немного актуальна.

В общем:
https://habr.com/ru/post/358122/ - хаброперевод статьи про демку, есть видео демки (на реальном железе, эмуляторы в такое не умеют)
https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrated/ - статья с описанием того, как удалось добиться 1024 цветов от принципиально 16-цветной карточки. Самое интересное, "для тех кто понимает"
Corvax

Снова хламовник

Снова хламовник.

ISA VGA таки нашлась, так что если захочу - смогу собрать почти аутентичный 386 комп ("почти" потому что вместо диска будет флэшка. Хотя, может и живой IDE HDD найдётся, они живучие). Но вряд ли захочу - ну правда, разве что совсем старые игрушки гонять?...



О, ISA VGA нашлась :-)




"Радиолюбительская технология", жаль в виде обломков. Сверху - похоже какой-то передатчик (убейте не помню какой и зачем), слева внизу - мелкий УМЗЧ, справа внизу - похоже на радиомикрофон (правда собственно микрофон отсутствует)




Радуга конденсаторов :-)




BNC в ассортименте
Dexter's Lab

культурный слой

Разработки культурного слоя продолжаются. Дошёл до компьютерного хламовника. Откопал (подробности - в комментариях к фоткам в альбоме в ВК):

https://vk.com/album69360943_273048729

- ISAшный саунд-бластер (чип ct1336, 1992 год однако)
- саунд-бластер (чип ct5880)
- саунд-бластер (SB Live, emu10k1)
- внешний спортстер на 14400
- внутренний спортстер(?) на 14400(?)
- поддельный(!) моторолловский модем
- несколько ISA-шных плат с LPT/COM
- ISA мультикарту
- видеокарту EGA
- 3.5" IDE HDD "двойной высоты"
- 5.25" дисководы, "старый" и "современный"
- IrDA USB адаптер
- процессор celeron 366, вставленный в переходник s370/slot1 (или как там этот слот назывался), с надетым кулером
- калькулятор электроника МК-51

Странно что не нашёл ни одной PCI видеокарты (совершенно точно должна была быть S3 Troi 64v+, вроде бы какой-то трайдент, и наверняка было же ещё что-то); жаль что нет ISA VGA (где лежит 386 плата я помню, блок питания адаптируем современный, вместо диска поставим флэшку через переходник, но вот без видео 386 комп уже не соберешь, будет скучновато); жаль что нет ни одного 5.25" HDD (они были забавные, я помню). Впрочем, раскопки только начались, возможны и неожиданные находки. Например, точно помню что у меня где-то закопан 486 компьютер "в сборе", перед закапыванием снял только модем... :-)

https://vk.com/album69360943_273048729
Hello computer!

винда

Винда всё-таки интересно относится к настройкам пользователя. "Опять этот глупыш что-то накрутил, надо бы вернуть по нормальному пока он не видит".

Ну, что в десятке ни одна из настроек "не включать комп самостоятельно" (их там более одной) не работает, я уже привык, и даже нашёл в какое место реестра надо всунуть ломик, чтобы это сломать (раз уж штатно починить невозможно). И что антивирус может "забыть" что я разрешил какой-нибудь radmin, и молча вырубить его в карантин (ну, почти молча - формально там окошко появляется, но такое что если в этот момент моргнуть, то можно и не заметить).
Но зачем она сама иногда включает мне скринсейвер, точнее "отключение экрана при неактивности"? Я первый раз даже напугался, потому что когда возвращаешься в комнату и видишь глухой чёрный экран в то время когда он должен быть ни разу не чёрным - это явные проблемы с железом, хорошо хоть на ресет тогда не нажал.
Или вот недавно отключила мне прокси в системных настройках. Сижу себе во вконтактике, никого не трогаю, листаю фотки, и вдруг фотки листаться перестают, и диагностика при этом какая-то _непривычная_. Не сразу и нашёл в чём дело, вернул взад. Через пять минут - опять. Вернул взад. Через пять минут опять... в общем, где-то через пять итераций перезагрузился - попустило. То есть она как бы упорно знает как мне лучше - но если я начинаю нервничать, отступает. Не знаю уж, надолго ли.

Кстати, про то что у меня комп игнорирует настройки "не просыпаться от клавиатуры с мышью" в биосе, и просыпается, мне объяснили. Что биос-то выставляет всё как надо, но винда потом переинициализирует по своему - "ну что там этот пользователь опять накрутил, разве ему так надо". Я проверил - так и есть, если дать отработать биосу но не дать загрузиться винде, всё работает "как биос прописал". В результате выставил всё что хотел в винде, через powercfg, радуюсь.
Hello computer!

куда ещё можно засунуть флэшку

Настоящих инженеров нельзя допускать к разработке массовых стандартов без присмотра нормальных людей - всегда есть шанс что они сделают очередное что-то, глядя на которое возникает вопрос: ну да, наверное оно красиво, но нафига??

На днях я узнал, что разъём eSATAp ("eSATA с питанием") - это по сути разъём USB2 type-A, в который по дальним углам распихали контакты SATA. А 12В, для тех случаев когда он нужен, вкрячили в левую и правую выемки разъёма (на фото). Причём сделали это не для каких-то SATAшных нужд, а просто решив "а пусть в наш разъём будет можно втыкать ещё и флэшки!!11", ну и оформив его соответствующим образом - для самого SATA никакого USB разумеется не нужно. Собственно, если посмотреть на фото, видно что разъём похож на USB, но "с приподвывертом".

Причем разъёму eSATAp уже больше десяти лет, а про то что это просто USB с дополнительными ногами я узнал только сейчас. Потому что мне и в голову не приходило, что в SATA (ну ок, в eSATAp) можно в принципе попытаться вставить что-то кроме SATA устройства. А потом мне показали платку переходника SATA/eSATAp, я увидел на ней гребёнку для подключения USB, и задался вопросом "но нахрена??"...



Hello computer!

зеленый провод

Компьютер у меня старенький, и уже местами глючный. Например, мне так и не удалось отключить в BIOS включение компа по клавиатуре или мыши - как ни ставь галочки, нажатие на клавишу включает комп. А ещё - материнская плата последнее время "не видит батарейку": при обесточивании компа выключателем "сзади" слетают настройки BIOS, после чего приходится их вбивать "с бумажки": мало того что слетает время, так ещё режим SATA слетает в эмуляцию IDE, и винда тупо не грузится. Батарейку проверял, менял - не помогает: что-то в железе сломалось. А поскольку у меня котик, и по клаве он топчется регулярно, то перед очередным отъездом на пару дней я решил поступить хитро.

Извлёк из жгута, идущего от БП к материнской плате, зелёный провод, разрезал его, и впаял выключатель. Кто не понял - БП всегда даёт на МП дежурное питание 5 вольт, а по зеленому проводу МП командует БП "включай всё!". Если провод перерезать - включить комп МП не удастся, но при этом дежурное питание никуда не денется, а значит BIOS не слетит.

Почувствовав себя ну очень умным сапёром, правильно выбравшим какой провод резать (зеленый!), разомкнул выключатель, постучал по клаве, удовлетворенно убедился что комп не реагирует, включил выключатель, и убедился что комп... не грузится. Лампочки зажглись, но экран чёрный и звуков нет. Потыкав во все кнопки включая ресет и выключатель (передний), всё-таки кратковременно обесточил комп, после чего комп включился, но настройки таки сбились. "Не сработало" - подумал я, выставил в BIOS режим SATA в AHCI, решив что "это важно, а остальное потом поправлю", и загрузил винду.

Винда же после этого:
1) заново нашла звуковую карту, и поставила её как новое устройство. Сбросив при этом вывод звука в какое-то очередное "никуда" (кажется в выход sp/dif на МП)
2) залогинилась на "коридорном сервере" не тем пользователем, которым логинилась несколько лет до этого (через net use в автозагрузке), а тупо текущим! И отказалась разлогиниваться или перелогиниваться! И при сбитии сеанса на сервере, почти мгновенно перелогинивалась "неправильным" пользователем! Помогла только блокировка "неправильного" пользователя на сервере, и многократное сбитие сеанса на сервере плюс перезагрузка клиента с зацикленным в батнике net use.

И если (1) я в принципе могу понять - плуг-энд-плей в винде штука такая, тут потрогал - везде всколыхнулось, а тут наверняка что-то в BIOS поменялось, то (2) меня несколько удивило. Несколько лет логинилась как надо, а именно сегодня, после того как я перерезал зеленый провод - сделать вот так вот? Но почему??

Haruhi-kun

цшт 10

Тут винда удивила.
Вылазит окно "защитника windows", который, как следует из названия, обычно защищает windows от пользователя, и говорит, мол "обнаружен страшный критический троян, но вы не беспокойтесь, я его уже того". Я, естественно, забеспокоился, и полез в это окно. В котором быстро выяснил, что страшный троян - это стоящая у меня уже много лет (со времен win2k), и регулярно используемая программа radmin версии 2.1, которую многие антивирусы давно но незаслуженно считают трояном. Ну, винда его в конце концов и того. Я поковырялся в интерфейсе и вернул как было (оказывается недостаточно выбрать "разрешить" в списке того "что с этим делать" - при этом ничего кроме надписи в окошке не меняется; надо залезть глубже, в общий список обнаруженных угроз, и уже там нажать "восстановить" - тогда файл вернётся на место).

Ничего в этом подозрительным не кажется? Ну, кроме интерфейсных штучек - что плитку в винде клали таджики, и не подо всеми плитками есть цемент, ну то есть не под всеми кнопками есть вменяемый код, это как бы давно известно?
"Radmin - древняя программа, ей скоро двадцать лет стукнет, трояном её считают почти так же давно, сам экзешник программы лежал на этом месте диска ещё до установки десятой винды и запускался за это время не одну сотню раз, а "помощник" ТОЛЬКО СЕЙЧАС решил поднять тревогу?? А если бы это был настоящий вирус?!" - скажете вы? И будете не совсем правы.

На самом деле, "помощник" поднял панику ещё при самом первом запуске. Получил в ответ "спокойно, свои" ("разрешить"), и успокоился. Аж на четыре года. А через четыре года видимо решил что я забыл, и свою реакцию повторил - а ну как пользователь передумал. На этот раз, кстати, почти втихую - не с запросом "вот, я нашёл, что с ним делать", а с всплывающим (и уплывающим - если бы я отошел от компа, мог бы и не заметить) уведомлением "я нашёл и нейтрализовал, не благодарите".

И вот именно это и удивляет. Даже два раза: что "защитнику" такое вообще пришло в голову (или что там у него), и что он терпел с этим аж четыре года.
Dexter's Lab

type-C

Всё-таки стандарты на всякие там разъёмы (и не только) должны разрабатывать инженеры (не гики!) под контролем (но не плотным) маркетологов. Потому что если позволить гикам творить свободно - получается разъём DVI: прогрессивный цифро-аналоговый, очень красивый и сложный на вид, истинный гик по одному взгляду на количество, форму и расположение ножек может определить поддержку разного вида потоков и количество цифровых каналов, но при этом - тупо большой и дорогой (а в массовом производстве в какой-то момент начинают экономить центы), а ещё - без поддержки звука (ведь гики пускают звук через колонки, только ламеры пускают звук через телевизор/монитор). Если же передать вожжи маркетингу - получится HDMI (дешевый, компактный, и в принципе даже удобный, но - без надёжной фиксации, ковыряясь в куче проводов легко выдернуть), или DisplayPort (который как HDMI, "only different" - и это по большому счёту и было основной целью его создания).

Поэтому сейчас я с интересом смотрю на USB type-C. Там ведь как всё было. Изначально со стороны устройств был "type-B" - большой, достаточно надёжный, предназначенный для достаточно больших устройств типа принтеров-сканеров, и до сих пор там и используемый. Потом, для всякой мелочи типа телефонов или кардридеров, был придуман mini-USB - явно "инженерами на зарплате": формально техзаданию "маленький, железный" соответствующий, а что часто забивается пылью и ломается, так про то в ТЗ не было. На смену ему пришёл "нано-багфикс" в виде micro-USB - тут инженеров явно сильно простимулировали по двум направлениям: "ну вы сделайте наконец чтобы он не так часто ломался", и "надо ЕЩЁ мельче! Не спрашивайте зачем, просто надо!", в результате чего получилось довольно удачно: хотя выглядит он слабее чем mini-USB, на самом деле даже немного прочнее, ну и совсем мелкий, да.
А потом произошло странное. Появился и пошёл в массы (китайцы начали массово ставить в телефоны) USB type-C. Больше чем мини- и микро- одновременно, с поддержкой USB3, с возможностью втыкать любой стороной, а главное - с довольно серьёзной металлической окантовкой разъёма, фиг сломаешь. И что он стал _больше_ и явно _прочнее_ предыдущего - идёт вразрез с обычной логикой прогресса "мельче, хлипче, дешевле". Видимо на этот раз инженеров было много, они били маркетолога логарифмической линейкой по рукам и объясняли, что ТАК НАДО.

Но я теперь беспокоюсь. Не выкатят ли скоро, в рамках уже упоминавшейся логики "мельче, хлипче, дешевле", какой-нибудь "тип-Дэ", успешно компенсирующий особенности type-C? Скажем, круглый (просто потому что можно), но очень хрупкий (потому что тонкий, а контактов внутри дофига, надо же USB3, как без него). Ведь нельзя же допустить, чтобы пользователи привыкали к большому, прочному и надёжному разъёму - они ж тогда начнут странного хотеть...
Hello computer!

... to IDE

Не устаю удивляться вопросам совместимости.
Уже убедился, что SD to IDE переходники - штука весьма своеобразная, к тому же заранее ясно что медленная. Осознал, что есть куда более отлаженная технология - переходники SATA - IDE, и что китайские SSD-шки по ценам уже вплотную приближаются к флэшкам, купил китайский mSATA SSD, и воткнул в переходник на IDE (на чипе JM20330, в интернетах пишут что даже не особо глючный).

Windows XP на это безобразие радостно ставится и чувствует себя вполне счастливой: скорость переходник основательно снижает, но ХР много и не надо. UDMA работает, если что.
"Десятка" - виснет при установке на этапе форматирования раздела, если повезёт - виснет на этапе копирования файлов, один раз повезло настолько, что она полностью установилась, и повисла (убив что-то на разделе, загрузиться больше не смогла) при установке обновлений. Виснет, кстати, серьёзно: не "синька", не перезагрузка, и даже не "картинка замёрзла", а в пустой чёрный экран - такого ещё добиться надо.
Чтобы проверить что творится на диске, подключил "это" к переходнику IDE - USB (mSATA у меня втыкать некуда). К двум разным, по очереди. Один переходник не видит "это" вообще, второй раз в полминуты "блямкает" звуком "дивайс пришёл", в системе на секунду появляется устройство "диск", и тут же пропадает. С обычными жёсткими дисками оба переходника работают нормально.
Забавно это всё...