↓
 ↑
Регистрация
Имя/email

Пароль

 
Вход при помощи VK ID
временно не работает,
как войти читайте здесь!

Техномаг (джен)


Автор заявки:
Фандом:
Рейтинг:
General, PG-13, R или NC-17
Опубликована:
18 марта 2026
Дадли хвастается новым компьютером.
– Фигня, – сказал Гарри.
– У тебя и такого нет, – сказал Дадли.
Гарри взял булыжник и превратил его в комп на почти таком же i80386DX, только с тактовой частотой 10 ГГц, много меньшей нормой (минимальным размером законченного элемента чипа, всего три нанометра против полутора микрон у оригинала), физической оперативной памятью, исчерпавшей предел доступной для адресации процессором i80386DX памяти (4 гигибайта за вычетом «дыр» схемы адресации), и четырьмя HDD по сто дисков (и по двести поверхностей). Размером комп оказался со шкаф, большую часть его объёма заняли монструозные HDD.
– Тестируй, – сказал Гарри. – Но точно такого у меня нет, здесь ты прав.
Дадли нажал кнопку включения. UNIX загрузился за секунды, поверх него запустился xWinows.
– А на чём тестилку писать? – спросил Дадли.
– На голых сях или на паскале, – ответил Гарри. – Тебе как удобнее?
– И сколько он просуществует? – спросил Дадли.
– Пока хватит моего внимания. Но информация с HDD не исчезнет при превращении компа снова в булыжник, вместо этого повторная трансфигурация того же булыжника в комп того же конфига восстановит весь образ на момент, предшествующий превращению компа в булыжник, со всем состоянием не только HDD, но и оперативной памяти и даже регистров, – ответил Гарри.
– А где здесь паскаль? – спросил Дадли.
– Два раза ткни мышью этот ярлык, – ответил Гарри.
Несмотря на редкость Windows, бывшей тогда не операционной системой, а непопулярной надстройкой над DOS, мышь Дадли знал по играм. Поэтому долго разбираться с наведением курсора и двойным кликом ему не пришлось. Только слегка смутил двойной клик вместо одинарного, который чаще встречался в интерфейсах игр. Дадли запустил среду, написал тестилку и запустил. Цифры появились, пока он отпускал кнопку.
– Даже i80386DX считал бы минуты две, – сказал Дадли.
– Так это он же, но турбированный в четыреста раз. Десять гигаГерц против двадцати пяти мегаГерц.
Прошло пять лет, совы принесли письма, потом, не дождавшись ответа, пришёл Хагрид, вручил билет на поезд и сводил Гарри за покупками. А в Хогвартсе Гарри трансфигурировал другой камень в компьютер уже на A80486DX-50 с той же тактовой частотой (10 ГГц), с максимальной оперативной памятью и с такими же монструозными HDD.
– Как ты умудрился включить его? – спросил удивлённый директор. – Магия мешает сложной электронике.
– Этот комп не включится и даже не сможет существовать как раз без магии, – ответил Гарри. – На самом деле это булыжник. И при превращении обратно в булыжник вся информация в нём заморозится до повторного превращения того же булыжника в комп того же конфига, которое восстановит весь образ со всей информацией не только в HDD, но и в оперативной памяти и даже в регистрах. Я так уже делал.
2 подписчика
28 комментариев из 62 (показать все)
7 апреля в 17:50
Ирокез
И я ни разу не видел, чтоб кнопка турбо вообще хоть как-то работала. Единственные эффекты — смена надписи LO на HI или числа 11 на 33.
А это могло быть связано с тем, что индикация турбо была жестко аппаратная - фиксировала нажата или нет кнопка, а не сменился ли режим. Она показывала все то же самое на многих корпусах, даже если была подключена только к питанию.
7 апреля в 17:55
Ирокез
Защита от отладки, недокументированные команды, непонимание документации, невозможность запустить сам эмулятор (это уже не глюки, это хуже) и непонимание эмуляторами форматов друг друга (это не глюки, это другое).
Я тебе не про разные эмуляторы. Давай я еще раз разжую вопрос:
Вот у нас эмулятор один, одной версии, и два гипотетических .rom'а, почему может один работать, а второй нет, ведь систему команд (и не только) эмулятор эмулирует? И никаких разных эмуляторов, разных форматов или версий, а разница почему-то есть. А на железе работали обе, почему?
7 апреля в 17:56
Это твои фантазии. В реальности же для полной копии никогда нет места.
Ага, именно по этому "вот щас мы на коленке сбацаем крутую штуку и она сразу заработает, потому что магия!"
Причём здесь-то магия? Какое приладе дело, на чём она исполняется? Можно даже вручную выполнить, только не хватит ни жизни, ни мела и доски для записи значений всех регистров и всех байтов памяти. Процессор выполнил такую-то операцию, софтина не знает, как он это сделал и за какое физическое время. Операция выполнена, результат сохранён в память или в регистр, потом он оттуда прочитан и использован для другой операции. Всё. Тайминги памяти нужны процессору на физическом уровне, на логическом получил число (а не импульсы), а дальше не имеет значения, за какое время и как оно получено. Ты получи именно его, а не бред из-за того, что процессор не попал в тайминг памяти, но если с этим справился, то дальше уже не важно. Так вот, тайминги здесь как раз другие по всей машине, друг другу (а не таймингам другой машины) они соответствуют, уже реализованы на физическом уровне всех чипов.
7 апреля в 17:57
Я тебе не про разные эмуляторы. Давай я еще раз разжую вопрос:
Вот у нас эмулятор один, одной версии, и два гипотетических .rom'а, почему может один работать, а второй нет, ведь систему команд (и не только) эмулятор эмулирует? И никаких разных эмуляторов, разных форматов или версий, а разница почему-то есть. А на железе работали обе, почему?
А по-русски?
7 апреля в 18:04
Так как софт вообще переносится на машины с тактовыми частотами, которые даже не были известны во время его разработки? А ну да, комп — это точные часы. Как тогда ни одна софтина, включая старые, не падает при изменении тактовой частоты для экономии энергии? А ты вообще в курсе, что 5% — это по меркам тактовых генераторов сверхточность? А для часов это в понедельник пришёл к началу первой пары, а в пятницу — через полчаса после начала четвёртой, думая, что пришел к началу первой. И точный даже по своим меркам тактовый генератор может себе позволить только тот комп, который работает настолько медленно, что не нуждается в принудительном охлаждении, но при этом и задача годами тянуть аккумулятор, просыпаясь на несколько секунд в месяц для простой регулярной задачи, перед ним не стоит тоже. Обычный же тактовый генератор спокойно уходит за другой номинал. Попробуй как-нибудь путать то часы с минутами, то минуты с часами, а потом напиши, придёшь ли ты хоть куда-то дважды вовремя даже в один день. Да, это делается принудительно, то есть это как бы и не погрешность, а переключение. Вот только софт об этом знает только системный, для прикладного и инструментального софта и даже для части системного это погрешность. И она настолько огромна, что по часовым меркам лишает само значение смысла. Но для тактового генератора это средняя точность, никакому софту не мешает.
Показать полностью
7 апреля в 18:32
Ирокез
А по-русски?
А это и есть по-русски(кроме расширения файла), странно, что ты ничего не понял. Хотя не, наверное даже и не странно, ты же прекрасно сперва подтверждаешь вещи, а потом с чистой совестью утверждаешь, что "все не так". Эталонная каша...
Процессор выполнил такую-то операцию, софтина не знает, как он это сделал и за какое физическое время. Операция выполнена, результат сохранён в память или в регистр, потом он оттуда прочитан и использован для другой операции.
Это только один частный случай, и работает он в том случае, если процесс в чужую память не залез, к примеру, или кто-то еще наоборот не залез в эту память. В таком случае что там будет прочитано - один Тзинч знает...
А теперь про тайминги - это только часть проблемы. Вот ты отправил регистр на запись, думаешь, он записался моментально? На старой машине можно было, как вариант, пропустить сколько-то тактов, и считай, можно читать. Оно, может, и неправильно так делать, но так тоже писали. И вот ты ускорил тактовую проца и памяти, и время записи по факту и предполагаемое время задержки в программе разъехались. Хорошо, если оно будет читать позже, а если раньше? Что оно там начитает? По нормальному стоило бы блочить чтение, пока запись не завершится, и отслеживать по сигналу, а не по задержке, но это сейчас все такие умные... И то иногда выдают перлы, в микроконтроллерах, к примеру, там сейчас ближе всего программирование к большим компам времен 90хх, без осей, мешающих тянуть руки туда, куда не надо.
А теперь представь свою архитектуру псевдо-железа. Хорошо, если не разъедутся никакие критичные тайминги внутренних операций при масштабировании нанометров "в лоб". А если нет? Были сигналы синхронные, а после перестройки один ускорился на 20%, условно, второй на 22%. Как думаешь, это добавит стабильности или глюков? Если никто на эту синхронность и не рассчитывал - то все ок, а если нет? В результате что-то будет работать, а что-то приобретет новые, платформенно-специфичные глюки...
Показать полностью
8 апреля в 06:02
С тебя, врунишка, полный разбор твоего текста с цитатами всех соблюдённых правил и сканами соответствующих страниц учебника. Правилам русского языка он не соответствует, то есть написан по-не русски. И я не могу подобрать к нему язык, по правилам которого он написан. А что он значит на неизвестном языке? Может, при переводе: «Я тебе не про разные эмуляторы. Давай я еще раз разжую вопрос:
Вот у нас эмулятор один, одной версии, и два гипотетических .rom'а, почему может один работать, а второй нет, ведь систему команд (и не только) эмулятор эмулирует? И никаких разных эмуляторов, разных форматов или версий, а разница почему-то есть. А на железе работали обе, почему?» получится: «Теминатор коленом проскрипел пятую симфонию Бетховена. Джон с детства ненавидел это произведение, поэтому зажал уши, а потом выстрелил Терминатору в голову из советского противотанкового гранатомёта»?
8 апреля в 06:03
Хотя не, наверное даже и не странно, ты же прекрасно сперва подтверждаешь вещи, а потом с чистой совестью утверждаешь, что "все не так". Эталонная каша...
Цитату в студию.
8 апреля в 06:32
Это только один частный случай, и работает он в том случае, если процесс в чужую память не залез, к примеру, или кто-то еще наоборот не залез в эту память. В таком случае что там будет прочитано - один Тзинч знает...
Нет. Даже в многозадачной системе переключается на другой поток того же или другого процесса сам процессор, а не память. И перед этим он должен завершить текущую операцию, она неделима на логическом уровне. При этом за соблюдение всех таймингов отвечает его автоматика самого процессора, разработанная под его тактовую частоту, а не под частоту другого процессора. А следующая операция — новый частный случай, если в нём снова справиться с задачей получения или правильной записи числа, то дальше уже не имеет значения, за какое время это сделано. В памяти и в регистрах правильные значения? Всё, остальное никого не касается. А переходные процессы и все необходимые подтверждения (если предусмотрены) он выждал. Сделать это — задача уже не самая простая, но она решена. Как именно? Софта это не касается, хоть мелом на доске все числа пиши за любое фактическое физическое время. И если норма позволяет засунуть в кусок кремния 80486, то это ещё не значит, что можно сразу засунуть в него 80486, 80486 в любом случае сложнее, чем 80386, а 80386 в любом случае сложнее, чем 80286, даже если у них у всех одна норма, а усложнять надо постепенно. И если в тот же кусок кремния можно засунуть пентиум, то это ещё не значит, что в него можно засунуть пентиум из будущего.
1. Гарри не знает всех команд пентиума. А если он их сочинит, то их не угадают бакалавры Интелла. Они-то маглы.
2. Если процессор выпустила на рынок магловская фирма, то весь софт для этого процессора постепенно напишут программисты, а пока обойдёмся софтом для старых процессоров и тем крос-софтом, который для данного процессора написан при разработке самого процессора. Но если секретный процессор сделал маг, то софта для этого процессора нет и кроме написанного Дадли и самим Гарри никогда не будет.

А теперь что здесь решено магией:
1. Гарри не пробовал ошибочные решения, так как может заранее предсказать результат испытаний своего девайса.
2. Гарри думал быстрей всех сотрудников одной фирмы. Одной фирмы, а не всех программистов, чьи задачи перед Гарри кто-то ещё должен поставить, потратив на это не один человеко-век чистого времени.
3. Гарри реализовал готовую конструкцию заклинанием, обойдя технологические ограничения, но не ограничения самих готовых чипов, физика результата не нарушена ни в одном явлении.

И что достигнуто за счёт того, что он работал один:
1. Гарри не тратил время на чтение внутренней документации, чтоб понять, что конкретно сделал коллега и как это отражается на взаимодействии разных частей проекта. Вся декомпозиция в одной голове, принятые решения уже известны при работе над любой другой подзадачей.
2. Гарри не решал подзадачи, которые потом оказались вообще не нужны коллеге, делающему другую часть.
То есть планирование было идеальным.

Но даже так один проект предпочтительней переписывания всего софта. Поэтому сначала «за кадром» 80286, который он никому не показал, потом 80386, потом 80486, а пентиум будет потом, после того, как этот процессор сделают в Интелле. Гарри мог бы и райзеноподбное или итаниумоподобное нечто сделать к выпуску, а то и на курсе на третьем, но задача выжать из этого процессора толк слишком сложна и для Гарри, и для всего Интелла, и для всего АМД, это задача для всех программистов планеты, без труда которых запускать можно будет только старый софт и свой софт.
Показать полностью
8 апреля в 06:52
Кстати, про драйвера. У него не MS DOS, а UNIX, там для всего именно настоящие драйвера. Для работы любой периферии ему достаточно переписать именно их и заново уложиться в тайминги портов. А периферии у него сравнительно мало. И драйверов мало. Это не «вдруг Дадли или Колин притащит дискету с софтиной, считающей редуктора, или с новой игрушкой, а она у меня даже под DOSBOXом не заработает», а «принтер у меня будет ровно один и не сразу, драйвер к нему тоже нужен один». На разработку драйвера под целевую периферию он пойти может, а отказ от совместимости на уровне системы команд даже Интелл потянул только в той нише, в которой было заранее известно, что старый софт или вообще не нужен, так как комп в каждом случае покупается под конкретный свой и/или заказной софт, или будет запущен на соседнем сервере. Но частоты при этом спокойно повышают и даже динамически понижают даже на персоналках, а кнопку турбо спокойно делали мифической, когда она вообще была. Кстати, а почему это кнопка, а не клавиатура и не панель перемычек? Одной кнопкой можно выбрать частоту только из двух вариантов. И каким образом операционная система работала на обеих частотах? Для неё-то и для драйверов частота важна и именно операционная система сейчас на самом деле переключает частоту, а кнопка турбо была просто модной.
Показать полностью
8 апреля в 07:47
И чтоб пользоваться софтом, написанным мной, тебе пришлось бы работать на КМК. Косвенно же ты им давно пользуешься: стрелки КМК делаются из стали, продувку которой моделирует мой дипломный проект. Глюков я с января 1995-го нашёл и исправил больше, чем ты думаешь. И достаточно, чтоб знать, чем они отличаются от твоих фантазий. Проблема всегда была в значениях или величин, или указателей, иногда в том, что разные части одной и той же софтины написаны для разных файловых форматов с одним и тем же расширением и одним и тем же назначением, например, функция сохранения файла пишет бинарное представление температур в некоторых точках, а функция загрузки файла ждёт текстовое представление тех же точках, из-за чего опят же читались не те значения, а вместо части значений в памяти оставался мусор. Причём, если обе функции писал я, то формат был один, а если одну функцию писал по моей спецификации Миша Оборин, а другую — я сам, то начинались глюки из-за старой спецификации, потом приходилось объяснять Мише, что спецификация устарела, а формат уже стал полностью бинарным, после чего Миша тоже исправлял глюки. Но никогда проблема не была в частоте. Из-за другой частоты может измениться только время счёта и всё, что на него завязано от темпа процессов в игре до циклограммы сигналов, отправляемых в другой чип или вообще во внешний девайс. Миша Оборин использовал на хлебокомбинате не целиком мою софтину, а функцию, реализующую модифицированный из-за недопонимания алгоритм шагающих квадратов, которую вставил в свою софтину. Тоже всё отлично работает, хоть алгоритм и модифицирован по ошибке. И тот алгоритм даже опубликован в центральной печати (только я не стал уточнять, что в основе не идея, а ошибка, но даже некоторые ошибки можно использовать). Ошибка была в том, что я почему-то думал, что алгоритм шагающих квадратов должен сглаживать изолинии. Первая реализация брала точки строго между центрами ячеек, но соединяла их, рисуя на изолиниях странные вихлюшки, вторая была уже исправлена и действительно сглаживала изолинии за счёт дважды двойной линейной интерполяции. А что отладил ты? Свалить-то всё на частоту проще, а ты попробуй найти глюк в тексте программы и исправить его. А из-за частоты проблема бывает ровно в двух случаях:
1. Если драйвер или часть самой системы, обслуживающая порт или сразу подключенную через этот порт периферию, не соблюдает тайминги протокола.
2. Если конкретный электронный узел не попадает в тайминги другого узла, так как ещё не доделан под свою настоящую частоту.
Вот только у Гарри все чипы на моменты демонстрации компов хоть кому-то уже доделаны, а программную реализацию протокольных таймингов при настоящих драйверах можно исправить. Ну ещё можно вообще не справиться с генерацией колебаний заданной амплитуды на некоторой частоте или не пропустить их.
Показать полностью
8 апреля в 10:03
Ирокез
С тебя, врунишка, полный разбор твоего текста с цитатами всех соблюдённых правил и сканами соответствующих страниц учебника.
"Докопайся до орфографии", часть вторая, дополненная. Как только тебе неудобно ответить на вопрос - обосри вопрос. Ок, принято.
Забавно смотреть, как у тебя вообще логика работает, хотя разбирать ту кашу, что ты выдал - это жесть. У тебя в коде так же? Или с твоим кодом никто не работает, а кто работает - застрелились, поэтому ты уверен, что "никто не жаловался"?
У тебя сперва:
реальность сложней, чем тебе кажется.
А потом Гарри буквально хопа, и быстренько магией решил то, над чем толпа(!) магловских работников годами(!) работала, причем у них получалось не с первого раза. А у тебя почти "повозил лицом по клавиатуре, вжик, магия и готовый продукт получился, причем сразу идеальный". Ты сам-то прикинь хотя бы, что бы ты сказал тому, кто скажет, что твою годовую работу щас "вжик и готово" повторит?
8 апреля в 13:46
И объясни, как винда вообще работает.
1. Заранее частоты не знает никто.
2. Разработка одной версии системы у мелкософта занимает до двух лет.
3. Если система написана через полгода после процессора, то ей уже не хватает ни быстродействия, ни частоты.
8 апреля в 13:46
Забавно смотреть, как у тебя вообще логика работает, хотя разбирать ту кашу, что ты выдал - это жесть.
Кашу выдал ты.
8 апреля в 14:19
Ирокез
Кашу выдал ты.
Теперь начинаем детский сад с "Ты! -Нет ты!"(с)
И объясни, как винда вообще работает.
Это тебе к мелкомягким надо обращаться, но они тебе не расскажут, ибо коммерческая тайна. Кое что довели до пользователей(чтобы хоть как-то работать могли), поболее до программистов(им еще софт писать), еще поболее до своих программистов и разработчиков дров, а ВСЁ, подозреваю, не знает никто(так чтобы всё в одной голове, имею в виду).
1. Заранее частоты не знает никто.
Да, да, совсем никто, JEDEC, разрабатывающий стандарты памяти, не знает, разработчики материнок тоже не в курсе, какие процы смогут, а какие нет на них работать, совсем никто ничего не знает. Так, магией очередную версию надуло и той же магией она вуаля, работает. Бред.
2. Разработка одной версии системы у мелкософта занимает до двух лет.
Бред, даже комментировать не хочется. Напоминает одного ныне покойного оппозиционера с его "чиновникам тачку не дороже 2 миллионов рублей". Почему именно два, а не три, не пять, не полтора, почему всем одинаково - а хрен его знает, так захотелось.
3. Если система написана через полгода после процессора, то ей уже не хватает ни быстродействия, ни частоты.
Еще один бред и отсебятина. Не хватает для чего? Для функционирования? Или для реализации хотелок? На второе производительности никогда не хватит, сколько бы ее не было.
Показать полностью
8 апреля в 14:27
Но это все вообще ерунда. Давай проведем мысленный эксперимент:
Дано - ты попаданец во времена Поттера, перед тобой рабочий 386(железный, 100% натуральный) с тогдашним софтом. За сколько времени ты напишешь тупо "hello world!", чтобы оно без ошибок завелось? Совершенно простая задача. Вот только, подозреваю, она все равно займет больше времени, чем ты выдал Гарри на разработку магического аналога(всего компа, а не новичковой программки). Не, я могу понять желание не возиться с проблемами, а щелчком пальцев получить готовый результат, но так оно в реале не работает и никогда не работало.
8 апреля в 20:01
Я не Чарлз Петзолдт. Да и сможет ли вообще 80386 масштабировать надпись Hellow Windows 95 под произвольный размер окна, говорить «Хэллоу виндоус найнти фаев» при каждом клике мышью и ещё по куче других событий, которые я даже не помню и правильно обрабатывать наступление любого из этих событий посреди фразы? А редактор схем вязания я перепишу за лето. Справился бы и за час (потратив несколько месяцев на написание), но первая версия написана под Windows 7 и с тогдашними системами не совместима, поэтому просто взять исходник и скормить его старому компилятору не получится. Причём, я даже не буду знать тактовую частоту. И он будет работать. А при возвращении в моё время он будет работать под DOSBOXом на любой машине от 80386 до райзена. Также, как мой дипломный проект (модель свободно-вынужденной конвекции в агрегате АКОС) работал дома на K600 300 МГц и на заводе на компьютерах, даже типы процессоров которых мне не известны. Также, как моя модель литья электрошлакового литья работала и дома на машине с четырёхядерным процессором с тактовой частотой 2400 МГц, и в институте машинах с тактовыми частотами от 1700 МГц. Также, как моя софтина для паспортистки работала и на моём Pentium 100 МГЦ, и на пашином Pentium MMX 225 МГц, и в кабинете на Pentium с неизвестной частотой. Также, как работает сама Windows 95 одной и той же версии на любых Pentium и Pentium MMX. И ты меня-то с магом не равняй. Я магл и работаю не в одну тысячу раз медленнее только из-за тестирования каждой ошибки, ещё в три раза из-за необходимости вести записи о том, что где в проекте валяется. Что ты отладил? Ответа нет. Разбор твоего же текста с цитатами всех соблюдённых правил языка? Опять не нравится, сидишь на игноре. Но свалить всё на одну частоту ты горазд. Тебе же лень разбираться в кодах операций, в регистровом файле, в количестве тех же самых частот одновременно на одной и той же машине, в особенностях операционных систем, проще всё на частоту свалить. Тычу тебя в реальность, начинается каша и попытки спрятать её за неизвестным языком. Даже боты не бывают настолько тупыми, но претензий на руководство заводом (чтоб решать, какую софтину избегать) девать некуда. А почему из 35-ти эмуляторов каждая из 8-ми игр играет на каком-то одном и ни на одном не играют сразу две? При одной и той же частоте. Почему из 40-ка эмуляторов только 35 вообще запустились сами до попытки загрузить в них игры? Почему сама винда не падает, динамически меняя частоту? А про математические сопроцессоры ты слышал хоть раз? Соседний 80486 мог быть вот нифига не таким же. И дело не в особенностях экземпляра, а в конфигурации. С 80486 DX на 80486 SX софт не переносился, так как 80486 DX имел сопроцессор, а 80486 SX — нет. А про разные дисплейные адаптеры при одинаковых центральных процессорах? А про отсутствие ожидаемой звуковухи? И без неё софтина не работает, хоть ты тресни пополам. А про строгий порядок установки, удаления и повторной установки прилад и драйверов на Windows millennium? А про то, что определённый HDD и мастером работать не может, и слейвом может работать в паре с другим HDD, но не в паре с третьим HDD. А ещё один HDD работает только матером на втором шлейфе. А ещё один HDD работает хоть мастером, хоть слейвом в паре с любым мастером, но только на первом шлейфе, из-за чего пришлось при трёх HDD CD воткнуть на первый шлейф, а не на второй. Твоей мифической полной копии до частот не бывает. Бывают компьютеры, собранные из чипов одних серий, и старые команды, реализованные на другой частоте и на участке кристалла меньшего размера, а для полной копии даже только старого процессора в новом не бывает места, не говоря о полной копии всего компа. А бо́льшая часть неожиданной несовместимости сидит в разных версиях системы. Глюки же горизонтального переноса сидят обычно на конвейере в сочетании с защитой от отладки. А вот на итаниуме мой редактор схем вязания работать не будет, для этого надо для итаниума же и компилировать и опять переписать под другую систему, которой нет ни на современных домашних машинах, ни на старых. И которую я не знаю, поэтому не перепишу. И оптимизация — это вылавливание тактов, теряющихся на делении и умножении вместо сдвига, на порядке одних и тех же операций в коде, на бесполезной пересылке переменных из регистра в память и обратно... Худший случай при оптимизации — это когда ожидаемый результат не достигается на другом машине, а вместо этого оптимизированная софтина вдруг начинает там работать медленнее. Это называется «сам себя перемудрил».
Показать полностью
8 апреля в 20:39
Ирокез
Просто нет слов. Как можно в таком моем кратком коментарии увидеть что-то свое? ХЗ
Да и сможет ли вообще 80386 масштабировать надпись Hellow Windows 95 под произвольный размер окна, говорить «Хэллоу виндоус найнти фаев» при каждом клике мышью и ещё по куче других событий
Где это было в "задании"? Там было "Hello world!" - первое и примитивнейшее задание из любого варианта обучения по программированию. Как говорится - "задача - проще не придумаешь, но надо же с чего-то начать?" Но не, это слишком сложно для программиста, надо усвистать в дебри.
которые я даже не помню
Как и многое другое, но вспомнишь же, хотя это потребует какого-то времени. А Гарри у тебя "не знал, но сделал моментально и без ошибок" гораздо большее.
И ты меня-то с магом не равняй. Я магл и работаю не в одну тысячу раз медленнее
Где в каноне сведения о чудовищной инженерной производительности "как тысяча магглов"?
Что ты отладил? Ответа нет.
Если не отладил, то и не человек, да?
А про математические сопроцессоры ты слышал хоть раз?
Я их даже видел, и 387, и 487, правда, уже в развалах старья и не использовал, понятное дело. Использовать личный комп начал с 486 DX4-100(уже на момент, когда он устарел, но что поделать, я не олигарх), чужие - застал БК-0010, ДВК-2 и Электронику УКНЦ. Спектрум видел, но не использовал.
Показать полностью
8 апреля в 20:59
Где это было в "задании"? Там было "Hello world!
То есть «Программирование для Windows 95» Чарлза Петзолдта ты даже не читал. Но почему-то считаешь, что эта софтина проще приличного графического редактора. Начинать, блин. С самого сложного во всём двухтомнике. Только из-за того, что кому-то пришло в голову воткнуть его во вторую главу. Вот автоматический перенос слов и выравнивание по ширине — действительно задача на три часа. Печать делается за 17 минут с делением таблицы на страницы и автоматическими колонтитулами. А реально самое простое — это тест попадания. Просто потому, что там все события понятны интуитивно и не подлежат зубрёжке. А понятность задачи обязательна для её решабельности. То есть чтоб задача не выскакивала вообще за иерархию сложности. Можешь даже просто перечислить, что должен хеловин делать? Я не могу, для меня уже это слишком сложно. Особенно, если учесть вопросы вида «Если хеловин начал говорить, изменился размер окна, пользователь ткнул мышью ещё раз, а в другом экземпляре тоже произошло событие, на которое он тоже должен заговорить, разделяя тот же динамик, но там событие — не клик мышью. Что должны сделать оба экземпляра?». Не так-то там всё просто на самом деле. Пятнадцать версий бродилки пишутся школьником за вечер, построение графика функции, введённой с клавиатуры, — минут за 40 тем же школьником. Примитивный графический редактор — за два часа всё тем же школьником. Арканоид — первокурсником за неделю. Косой настолько, что его игрок не понимает, но сама игра не падает. Замена перебора ящиков на вычисление номеров строки и столбца, содержащих ящик, в который попал шар, приведёт игру в порядок. Язык-пародия на Forth создаётся первокурсником за субботу от первого символа в спецификации языка до последнего символа в реализующем его интерпретаторе. Толку от того моего интерпретатора не было никакого, чисто одноразовое развлекалово для себя. И даже сам написал на этой пародии ровно одну кривоподелуху только для теста интерпретатора, после чего повторно интерпретатор даже не запускал. Но у тебя же всё просто: тактовая частота не совпадает и можно даже не пытаться запустить. А какая магия отвечает за запрет исполнения на другой частоте? И что ты отладил?
Показать полностью
8 апреля в 22:24
Ирокез
Ты поехавший или просто читать не умеешь? Какой нахрен "хеловин"? Какой нахрен динамик? "Hello world!" - это тупо вывести саму надпись, в консоль, на графический экран, даже, извернувшись, на семисегментные индикаторы можно. Всей сложности - разобраться, как в данном конкретном случае это делается. Задача посильна даже восьмибитному микроконтроллеру, не говоря про комп (любой, который способен отображать хотя бы текст)
Вот, если не путаю, на сях:
The Canonical Hello World

This is the Hello World you typically see in programming books.

#include <stdio.h>

int main() {
printf("Hello World!\n");
}
на чем там надо было писать на 386, я уже не помню, наверняка даже на башскрипте можно было, на чем автоэкзек.бат сделан был. В юниксе - ХЗ, я только с более свежими линуксами сталкивался, и не особо глубоко...
Куда тебя понесло - уму не растяжимо...
9 апреля в 05:59
А где мне было прочитать про вывод тупо надписи в консоль? Телепаты сидят на www.gamedev.ru. И что прочитал ты? У Петзолдта надпись центрируется огромным шрифтом, в окне, плюс софтина ещё и говорит на каждое из кучи событий, которые я не смог даже запомнить, ты даже этого тупо не знаешь, так как читать не умеешь. Но если тупо саму надпись, то мне нужен любой транслятор любого императивного языка, уже установленный на целевой машине, уже установленный там же и подходящий к компилятору линкер, уже установленный там же текстовый редактор, бумажный документ, в котором написано, как скормить исходник транслятору и объектный файл — линкеру и как запустить текстовый редактор и пять минут времени, считая с изучением, описание языка не требуется, время расшифровки азов языка с самого транслятора входит в эти же пять минут. Текстовый редактор, транслятор и в случае компилятора линкер должны быть стабильны. И я гарантирую, что эта кривоподелуха запустится на целевой машине и на всех машинах с более поздними процессорами той же линейки и совместимыми операционными системами. Если вместо транслятора императивного языка подсунешь ассемблер, то нужны книжки по ассемблеру и по системным функциям и от месяца до трёх месяцев времени, но переносимость результата гарантирую и в этом случае в пределах одной линейки процессоров уже целиком и совместимых систем и при любой оптимизации на низком уровне. И на главный вопрос ты тоже не ответил — не привёл за руку ошибающегося мага. Не цитату фанфика или оригинального текста Роулинг, а самого мага. Реального и способного сначала получить премию Гудини, а потом доказать, что маг может ошибаться. А отсюда нет и доказательств того, что маг может не справиться с написанием Windows 95 заново вместо пятисот лет (которые нужны маглу) за два месяца, а любого драйвера — за минуты. Но даже если маг любую понятую программу будет писать за доли секунды, то и тогда весь софт всё равно потянет на века, а с ним на века потянет и разработка любого процессора из будущего или процессора со своей системой команд. Интелл имеет одно важное преимущество — под их процессоры пишет сразу много людей, имея возможность распараллелить не только само написание софта, но и изучение задач, а приличная часть софта пишется вообще под свои задачи и тоже параллельно. Поэтому интелл может развивать системы команд, а в некоторых нишах даже создавать полностью новые ни с чем несовместимые системы команд. А секретный одиночка таких возможностей не имеет.
Показать полностью
9 апреля в 06:25
Процессор всегда ждёт только выполнения им же самим предыдущей операции, ждать чего-то ещё он тупо не умеет. Вот сама операция может включать в себя ожидание реакции других чипов и выжидание таймингов циклограммы, но это внутри отдельно взятой команды, а не снаружи её и на физическом, а не логическом уровне. Так вот, если эта самая циклограмма ускорена в 400 раз, а все остальные чипы отвечают тоже быстрей, то тупо прогнать цикл, посчитав в регистровом файле, не дёргая всю память, карусельный инекремент (x=sin(arcsin(ln(exp(x))))+1), и вывести результат можно в те же 400 раз быстрей. Как ускорить — вопрос отдельный, Интелл именно этим не один год занимается. Но по условию он уже ускорил, теперь карусельный тест выполняется быстрей. Для этого вовсе не надо разбираться, почему система думает пять секунд и только потом выделяет полтора килобайта памяти, почему рост кучи не компенсируется ростом частоты и с кучей других подобных вопросов, не надо искать узкое место в обращениях по мелочам к диску, не надо выбирать правильный размер кэша, не надо переделывать весь конвейер, не надо выбирать между одним ядром с максимальной тактовой частотой и четырьмя ядрами с частотой несколько ниже, не надо знать, что такое когерентность кэша. А весь номинально совместимый софт должен просто работать хоть как-то, он и будет работать хоть как-то. Не обязательно быстрей, карусельный инкремент не зря называется диким тестом: он выдаёт дичь вместо реальной оценки скорости счёта, так как измеряет только быстродействие в отрыве от того, сколько операций нужно для решения даже простейших пользовательских задач или отклика системы на некоторые запросы к ней. Вот только Дадли никто не объяснил разницу между быстродействием и скоростью счёта, он не знает, почему Pentium 100 МГц с 8 МБ оперативной памяти на каждое нажатие кнопки отвечает миллисекунд за двести, а за время ожидания отклика Pentium MMX 225 МГц с 32 МБ оперативной памяти в тех же самых версиях тех же программ можно выпить кружку кофе и написать две-три простейшие программы. Поэтому и тесты у него столь же неадекватны, как и подход Гарри к разгону компов. Причём, приложениям для MS DOS можно подсунуть программу-посредник между ними и системой (сейчас самый популярный посредник из притворяющихся MS DOSом называется DOSBox), а вместо сразу печати можно прямо из них сохранять файлы и потом печатать через любую приладу для UNIX, которая может прочитать файлы того же формата и распечатать их через настоящий драйвер. Недоступны остаются сторонние спецприложения вроде измерялки температуры пятью внешними термометрами сопротивления. Но ты видишь 10 ГГц и думаешь, что не работает сам ЦП. Читать научись, чудик, там чёрным по жёлтому написано, что от 80386 у него только система команд, а сам процессор другой, с другой нормой и независимой схемой. Почему настолько маленький другой процессор с нормой 3 нм не может работать на 10 ГГц? Этого не скажут даже в самом Интелле, а для какого-то процессора это возможная частота. Только в реальных условиях никому не нужен 80386 с тактовой частотой 10 ГГц, лучше как раз четырёхядерный райзен с тактовой частотой 2400 МГц. Но к нему софт не один год писали и не два человека. Предсказамус не равен гению, а никогда не ошибаться на уровне постановки задач может даже не каждый гений, магия же память и предсказания ещё обеспечивает, может быть, обеспечивает тупо разгон, но не обязана обеспечивать гениальность. Зачем ему весь софт? На это не ответит даже сам Гарри. А если не гоняться за всем софтом, а решать свои задачи попроще, то сразу же появляется возможность отказа одиночки от совместимости хоть с чем-то. И почему бы тогда не сделать несовместимое подобие Raspberry Pi 3B на Cortex-A53 с тактовой частотой 1,2 ГГц, а перед этим — нужное количество промежуточных MISC-процессоров? Самоделкину не нужна совместимость с другими ардуинами на уровне исполняемого кода, ему нужен удобный инструмент для решения его задач и баланс цены, памяти, быстродействия и энергоэффективности, а целевой софт ему как раз и надо писать самому, именно для этого всё и затевалось, если же софт свой, то все исходники доступны для перекомпиляции на что угодно, лишь бы только не вляпаться в несовместимость на уровне API, пока она есть можно посреди каждого проекта тасовать несовместимые ЦП в парах с компиляторами и даже не замечать этого. Хоть каждый час на другой ЦП компилируй, только после релиза придётся заморозить и исполняемый код, и аппаратное обеспечение. И вот теперь действительно до частот в каждом режиме тактового генератора, а сами переключения должны быть предсказуемы для целевого софта, так как иначе поплывут циклограммы управления из-за того, что ЦП будет или не успевать в принципе, или торопиться в самых неожиданных местах, стабилизировать которые по генератору опорной частоты или по модулю часов реального времени в голову не пришло. Можно даже загнать точность тактового генератора до параметров часового кварцевого генератора, но с другим номиналом и вообще не связываться с отдельным генератором опорной частоты, тогда можно минутные УАРТ-посылки на стандартных скоростях по несколько сотен тысяч бит в каждой гонять, а на пропорционально меньших — месячные. А во время разработки предсказуемым должно быть быстродействие, а не частота, это не совсем одно и то же, такты не обязаны совпадать с операциями и даже могут не иметь фиксированного коэффициента пропорциональности операциям для всех архитектур и систем команд, даже на одном процессоре растактовка может быть ещё и неравномерной. По-английски-то Гарри всё равно пишет от руки, а в Хогвартсе — на пергаменте. И читает с листа или из бумажной книги. А посчитать в консольке по какой-то формуле, по-своему оформить ввод и вывод и подёргать напряжения на пинах можно и без офиса, бухагтерских пакетов и даже браузера. Но для хвастовства перед Дадли такой комп уже не подойдёт, первый же вопрос о совместимости и Дадли будет ржать до вечера.
Показать полностью
9 апреля в 09:34
Ирокез
Второй раз спрашиваю - ты поехавший? Как ты код пишешь вообще, если ты даже по-русски читать и писать не умеешь? И не по-русски тоже, судя по тому что как минимум дважды переврал фразу из задания. Поделить текст на абзацы? Да нахрен это надо, давай скорее поток сознания выльем. И ты мне еще втираешь про правила русского языка...
Мне настолько лень продираться через этот поток сознания, что я сваливаю.
9 апреля в 12:04
Какое правило русского языка я нарушил? А вот ты их действительно не соблюдаешь.
9 апреля в 12:23
Ирокез
А вот ты их действительно не соблюдаешь.
Исключительно в твоей интерпретации? И не собираюсь.
Какое правило русского языка я нарушил?
Не правило языка, но хороший тон написания текста, который не в лом будет читать - где разделение на абзацы? Какая главная мысль того потока сознания, что ты вывалил? Вот если попросить тебя написать конспектик твоего же поста, на пару-тройку строчек - что там будет написано? ХЗ, я не уверен, что ты сам понял, что написал. Одно, второе, третье, "смешать, но не взбалтывать"(антицитата)
Из моих придирок к твоей идее я главную мысль вывести могу: ты сперва утверждаешь, что вот они сложности(и описанное - это только часть проблемы), но в реализации Гарри их магическим образом сразу нет(как и многого другого заодно). Ты обесцениваешь любые усилия любых людей кроме себя, утверждая, что их можно заменить щелчком пальцев необразованного в этой сфере мага-подростка. Хотя свои усилия ты очень сильно ценишь.
10 апреля в 04:45
То есть ты признаешь, что как раз ты не умеешь писать по-русски. Ол комплит. А какого чёрта пишешь? Ты не на уроке.
10 апреля в 10:24
Ирокез
Я смотрю, ты маразмом не страдаешь, а наслаждаешься... Написать две строки, чтобы выглядело, как бессмысленный поток сознания - это надо уметь...
11 апреля в 17:24
Не я, а ты. Ты утверждал, что я не умею писать по-русски. Как только я спросил про правило, ты сразу признал, что я-то как раз умею, а ты не в состоянии это понять, так как сам не умеешь. И продолжаешь нести свой бред.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть