Некоторое время назад я поставил на один из своих компьютеров 16 ГБ памяти. На нём стоит материнка Foxconn P55MX с Core i5 750. Можно было бы и заменить этот старый CPU, но он пока нормально работает и делает всё, что мне нужно.

Вот что интересно. Материнская плата официально не поддерживает 16 ГБ RAM. Спецификации на вышеупомянутой странице указывают, что поддерживается максимум 8 ГБ. На плате только два слота, поэтому у меня возникло подозрение, что планки 8 ГБ просто были редкостью в то время, когда вышла материнская плата. Я всё равно решил попробовать. Во многих случаях материнские платы поддерживают больше RAM, чем официально заявляет производитель.

Я убедился, что установлена последняя версия BIOS (версия 946F1P06) и вставил две своих планки по 8 гигабайт. Затем загрузил Ubuntu 16.04, и всё работало отлично. Я решил, что моя теория о том, что плата поддерживает больше памяти, чем заявлено в документации, оказалась правильной, и забыл об этом. Мне нравилось работать с дополнительной RAM и я был счастлив, что игра окупилась.

Но несколько месяцев спустя я попытался загрузить Windows 10. В основном, компьютер работает под Linux. Лишь иногда нужно загрузить Windows, чтобы что-то проверить. Тогда-то и началось самое интересное.

Когда появился GRUB, я выбрал в меню Windows 10 и нажал Enter. Экран загрузки Windows ненадолго появился, а затем меня сразу приветствовал синий экран смерти.



Стоп-код: ACPI_BIOS_ERROR. Я много погуглил и выяснил, что суть в какой-то проблеме с ACPI-таблицами в BIOS. Среди прочего, таблицы ACPI сообщают операционной системе, как настроить оборудование. Попытка загрузки с установочного USB-накопителя Windows привела к той же ошибке. Так что, думаю, Foxconn не врал. Этот компьютер действительно не поддерживает 16 ГБ оперативной памяти. Возврат к 8 ГБ привёл к успешной загрузке. Тесты RAM тоже прошли отлично, так что дело не в плохой планке памяти.

Я попытался связаться с поддержкой Foxconn насчёт исправления BIOS, но не получил ответа. Адрес электронной почты указан на их сайте, но он не работает. Возможно, Foxconn больше не занимается материнскими платами. Похоже, они также не оказывают поддержки.

В этот момент обычный человек просто сдался бы, смирившись с 8 ГБ памяти или купив новый компьютер. Но я не хотел так легко сдаваться. Я знал, что теоретически компьютер может использовать 16 ГБ, потому что он отлично работал в Linux. Поэтому я начал изучать ACPI и экспериментировать с настройками BIOS.

Я нашёл интересный раздел BIOS, где можно играть с некоторыми настройками памяти. Одним из параметров была «функция переназначения памяти» (Memory Remap Feature). Она была включена. В документации по BIOS говорится, что опция позволяет «перекрывать память PCI» для мэппинга выше общей физической памяти. Поиск в интернете указал, что его нужно включить при загрузке в 64-разрядной ОС. Просто ради эксперимента я её отключил, и Windows реально загрузилась! Однако сказала, что может использовать менее 4 ГБ оперативной памяти. Но это было приятно: у меня появился способ попасть в Windows без необходимости физически удалять планку памяти.

В Ubuntu то же самое. С отключённой функцией переназначения памяти она ограничила меня менее чем 4 ГБ RAM. На данный момент я был уверен, что происходит какая-то проблема с отображением памяти. Я решил подробнее изучить ошибку ACPI_BIOS_ERROR и её причины — и наткнулся на этот отличный документ для отладки драйверов Microsoft, который объясняет проверку ошибок ACPI_BIOS_ERROR.

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

После соответствующей правки реестра я снова включил функцию переназначения памяти в BIOS и загрузил Windows. BSOD теперь показал четыре дополнительных кода в верхнем левом углу:



Прекрасно! Таким образом, параметр 1 равен 0x0000000000000002. В документации Microsoft написано, что параметр 1, равный 0x02, означает проблему с обработкой списка ресурсов для корневых шин PCI. Поскольку параметры 2, 3 и 4 выглядят как сумасшедшие значения, это, наверное, указатели. И если тут одни указатели, Microsoft говорит, что проблема в том, что область декодирования PCI перекрывается со списком областей памяти, возвращаемых интерфейсом BIOS E820.

Окей. Информации много, но можно с чего-то начать исследование. Я нашёл информацию, как вызов E820 BIOS предоставляет информацию об областях памяти. Затем вернулся в Linux и просмотрел всю информацию о запуске ядра с помощью команды dmesg, уделяя особое внимание E820 и ACPI. Вот что нашлось:

BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x00000000cf77ffff] usable
BIOS-e820: [mem 0x00000000cf780000-0x00000000cf78dfff] ACPI data
BIOS-e820: [mem 0x00000000cf78e000-0x00000000cf7cffff] ACPI NVS
BIOS-e820: [mem 0x00000000cf7d0000-0x00000000cf7dffff] reserved
BIOS-e820: [mem 0x00000000cf7ed000-0x00000000cfffffff] reserved
BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reserved
BIOS-e820: [mem 0x0000000100000000-0x000000042fffffff] usable

Позже я увидел это:

acpi PNP0A08:00: ignoring host bridge window [mem 0x400000000-0xfffffffff
window] (conflicts with System RAM [mem 0x100000000-0x42fffffff])
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000dffff window]
pci_bus 0000:00: root bus resource [mem 0xd0000000-0xdfffffff window]
pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfed8ffff window]
pci_bus 0000:00: root bus resource [bus 00-ff]

Ага! Видите предупреждение о конфликте? Я бы его не заметил, но после установки памяти Linux начал выводить это сообщение при каждой загрузке. Я попытался загрузиться в Linux с отключённой функцией переназначения памяти в BIOS. В этом случае пропала последняя область e820 с 0x100000000 до 0x42fffffffff, и, таким образом, сообщение о конфликте также исчезло, а в списке появился ещё один «корневой ресурс шины» с окном главного моста с 0x400000000 до 0xfffffffff.

Итак, что получается. Linux работает с 16 ГБ, потому что замечает конфликт и игнорирует конфликтующий диапазон PCI, который предоставляет ACPI, в то время как Windows с отвращением поднимает руки и выблёвывает синий экран: «У вашего BIOS проблема!» Не могу винить Windows. Действительно, существует перекрытие, поэтому можно понять, что она путается.

В этот момент я не был уверен, стоит ли продолжать. Последние 768 МБ памяти с 0x400000000 до 0x42fffffffff сопоставлены с началом огромной области пространства памяти, которую материнская плата использует для PCI. Ясно, что если материнская плата ожидает там PCI, может произойти что-то действительно плохое. Таким образом, материнская плата поддерживает только 15,25 ГБ RAM, правильно?

Но… в Linux всё работает просто отлично, без поддержки этой дополнительной области сопоставления PCI! Что, если как-то изменить таблицы ACPI, чтобы большой диапазон PCI начинался с 0x430000000 вместо 0x400000000, то есть сразу после окончания физической RAM. Тогда конфликт бы исчез, а большая часть окна сопоставления PCI по-прежнему осталась доступной.

Вызов принят.

Я начал копаться в таблицах ACPI. К счастью, Linux позволяет очень легко делать дампы. Есть специальные инструменты для этого, но таблицы можно легко найти в sysfs:

/sys/firmware/acpi/tables

Вот они все. Меня также обрадовало, что в GRUB есть возможность заменить ваши таблицы ACPI новыми версиями. Поэтому если выяснить, какая таблица задействована, можно установить новую версию этой таблицы с помощью GRUB. Теоретически, Windows будет счастлива этим.

Среди других инструментов, я использовал iasl, чтобы разобрать различные таблицы ACPI и найти значение 0x400000000 для замены. Скорее всего, это значение с обратным порядком байтов (little-endian) и размером 64 бита, так что я запустил binwalk для поиска по всем файлам таблиц:

binwalk -R '\x00\x00\x00\x00\x04\x00\x00\x00' *

В таблице OEMB нашёлся один результат. Следующее 64-разрядное слово после него было 0x1000000000, чуть больше, чем конечный адрес в сообщении конфликта окна главного моста. Очень многообещающая зацепка. Таблица OEMB является специальной, поскольку в соответствии со спецификациями ACPI это не стандартная таблица. Linux жалуется на недействительную контрольную сумму, но я не думаю, что это имеет значение. Полагаю, вы догадываетесь, что я сделал дальше.…

Я сделал копию таблицы OEMB, заменив байт 0x00 непосредственно перед байтом 0x04 на 0x30, чтобы изменить значение на 0x430000000 (помните, что это обратный порядок). Эту изменённую копию я поместил в файл /boot/oemb.dat. Затем использовал GRUB для замены таблицы OEMB моей копией, временно вставив следующую команду в список команд загрузки (ввод буквы 'e' в GRUB после выбора Ubuntu):

acpi --exclude=OEMB /boot/oemb.dat

Идея в том, что она говорит GRUB загрузить все таблицы ACPI, кроме таблицы OEMB, а затем загрузить содержимое /boot/oemb.dat и добавить его в качестве дополнительной таблицы. Это эффективно заменит старую таблицу OEMB новой таблицей OEMB.

Хорошо, я загрузил Linux и…

acpi PNP0A08:00: ignoring host bridge window [mem 0x400000000-0xfffffffff
window] (conflicts with System RAM [mem 0x100000000-0x42fffffff])

Проклятая ошибка никуда не делась. WTF? Я предположил, что диапазон PCI фактически определён где-то ещё, но я нигде не видел, чтобы определялось конкретное значение. Я убедился, что исправленная таблица OEMB действительно загрузилась, и вернулся к исследованию.

На этот раз я решил использовать iasl для декомпиляции таблицы DSDT. Отслеживание показало, что таблица DSDT должна содержать метод под названием _CRS, который отвечает за создание этой таблицы.

iasl -d DSDT

В файле .dsl я действительно нашёл метод _CRS, связанный с шиной PCI, и он выглядел довольно сложным. Таблица DSDT содержит фактический код, поэтому значения таблицы искать непросто. В моем случае метод _CRS оказался довольно сложным. Я интерпретировал код насколько смог и понял, что метод _CRS загружает информацию из другой таблицы в памяти, начиная с 0xCF78E064. Я снова посмотрел лог загрузки Linux в dmesg и нашёл это:

ACPI: Early table checksum verification disabled
ACPI: RSDP 0x00000000000F9820 000014 (v00 ACPIAM)
ACPI: RSDT 0x00000000CF780000 000044 (v01 012110 RSDT0821 20100121 MSFT 00000097)
ACPI: FACP 0x00000000CF780200 000084 (v01 012110 FACP0821 20100121 MSFT 00000097)
ACPI: DSDT 0x00000000CF780460 006FE7 (v01 946F1  946F1P06 00000000 INTL 20051117)
ACPI: FACS 0x00000000CF78E000 000040
ACPI: APIC 0x00000000CF780390 00008C (v01 012110 APIC0821 20100121 MSFT 00000097)
ACPI: MCFG 0x00000000CF780420 00003C (v01 012110 OEMMCFG  20100121 MSFT 00000097)
ACPI: OEMB 0x00000000CF78E040 000082 (v01 012110 OEMB0821 20100121 MSFT 00000097)
ACPI: HPET 0x00000000CF78A460 000038 (v01 012110 OEMHPET  20100121 MSFT 00000097)
ACPI: GSCI 0x00000000CF78E0D0 002024 (v01 012110 GMCHSCI  20100121 MSFT 00000097)
ACPI: DMAR 0x00000000CF790100 000090 (v01 AMI    OEMDMAR  00000001 MSFT 00000097)
ACPI: SSDT 0x00000000CF7917C0 000363 (v01 DpgPmm CpuPm    00000012 INTL 20051117)

Ага! Он загружает информацию из таблицы OEMB. Моя догадка была верна с самого начала. Так почему же не сработала замена таблицы OEMB?

Я снова посмотрел на лог dmesg после замены таблицы OEMB. Чего я не понимал, так это того, что если вы пытаетесь изменить таблицы, то GRUB перемещает большинство из них, включая OEMB, в другую область памяти. Проблема в том, что таблица DSDT жёстко закодирована на просмотр адреса 0xCF78E064 для таблицы OEMB. Поэтому-то новая таблица не видна системе, она по-прежнему смотрит на исходную таблицу. Ух.

Первым порывом было изменить DSDT, чтобы перевести её на новое расположение таблицы OEMB, но я чувствовал, что в перспективе это плохая идея, потому что новые версии GRUB могут изменить местоположение в памяти, где хранится пользовательская таблица OEMB.

Я остановился на другой идее. В GRUB есть эквиваленты команд write_byte, write_word, write_dword и read_. Что если GRUB на лету будет изменять исходную таблицу OEMB? В наше время BIOS'ы сжатые. Вероятно, таблицы загружаются в RAM, поэтому теоретически можно изменять значения.

Так я и сделал. В качестве временного теста я добавил следующую команду в последовательность загрузки GRUB:

write_byte 0xCF78E0B5 0x30


Она заменяет байт 0x00 непосредственно перед байтом 0x04 на значение 0x30, преобразуя 64-разрядный начальный адрес PCI этого конечного диапазона в 0x0000000430000000. Я не обновлял контрольную сумму таблицы OEMB, потому что Linux и так скулил, что контрольная сумма неверна, поэтому, очевидно, ему всё равно.

Я перезагрузился в Linux и с тревогой проверил лог dmesg для PCI.

PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000dffff window]
pci_bus 0000:00: root bus resource [mem 0xd0000000-0xdfffffff window]
pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfed8ffff window]
pci_bus 0000:00: root bus resource [mem 0x430000000-0xfffffffff window]
pci_bus 0000:00: root bus resource [bus 00-ff]

Успех! Окно 0x430000000-0xfffffffffff появилось как новое допустимое окно в списке, и предупреждение о конфликте исчезло. После проверки, что Linux всё ещё работает нормально, я попытался загрузиться в Windows с тем же хаком.

Сработало! Теперь я могу загрузиться в Windows с 16 ГБ RAM, если использовать GRUB в качестве загрузчика с вышеупомянутой командой write_byte. Загрузчик Windows 10, очевидно, не будет работать. И если я когда-нибудь переустановлю Windows, вероятно, придётся временно вытащить одну планку RAM, чтобы загрузился установщик. Но это работает!

Чтобы навсегда добавить исправление в GRUB, я создал файл /etc/grub.d/00_patchbios следующего содержания:

# This file patches the BIOS in my Foxconn P55MX motherboard to work
# properly when I have 16 GB of RAM installed. It's a nasty hack.
# Basically, the BIOS is hardcoded in the OEMB ACPI table
# to have a PCI address range from 0x400000000 to 0xfffffffff, but
# that overlaps with 16 GB of RAM being installed, because the RAM
# uses up (among other ranges) 0x100000000 to 0x42fffffff.
# This patch changes the table to actually list a PCI range of:
# 0x430000000 to 0xfffffffff
echo "write_byte 0xCF78E0B5 0x30" 

Затем сделал скрипт исполняемым и запустил sudo update-grub. Теперь патч автоматически применяется при запуске GRUB.

Честно не знаю, насколько это безопасно. Действительно ли материнская плата аппаратно запрограммирована смотреть на эти адреса для PCI или что-то ещё. Знаю только, что она проходит мои тесты RAM. Поскольку Linux отлично работает с 16 гигабайтами RAM, меня эти вопросы не слишком беспокоят. Возможно, если установлено больше карт PCI/PCIe или что-то ещё, то возникнут проблемы, но в моём случае, похоже, всё в порядке. Очевидно, что ваша система может отличаться, и этот хак нельзя напрямую применить на других материнских платах, потому что таблица ACPI у каждого BIOS немного отличается.

Думаю, это был весёлый опыт, чтобы поделиться с миром! Надеюсь, вы что-то узнали из этого поста. Конечно, я и сам многому научился в процессе.

Комментарии (147)


  1. aik
    29.04.2019 11:42

    Из забавного — приносили мне на прошлой неделе компьютер, на котором винда утверждала, что у неё установлено 16 гигабайт памяти, но при этом доступны для использования только два. В реальности стояло два.

    Ещё винда любит отрезать память со словами «зарезервировано для оборудования». Обычно это встречается на 32хбитных ОС в районе 2-2,5 гигабайт. Хотя ОС и способна использовать 3,25-3,5, но в реальности использует только два. Иногда лечилось заменой того девайса, который с памятью мутил, но чаще проще 64хбитную ОС поставить было.
    Но пару недель назад встретил такое «зарезервировано» на 64хбитной ОС с 8 гигабайтами. Там проблемы были с модулями памяти, после их замены «зарезервировано» ушло…

    Так что приколов с памятью и windows в этой жизни довольно много.


    1. Sabubu
      29.04.2019 13:50

      Я тоже с таким сталкивался, Линукс (32-битный) на том же железе без проблем и без дополнительной конфигурации перебросил занятые PCI-шиной адреса на адреса выше 4 Гб и 100% памяти стало доступно.

      А вообще, ограничения памяти в чипсетах и материнках сильно напоминают то ли попытку сегментирования рынка, то ли запланированное устаревание. Почему они ставят предел вроде 16 Гб, если без особых затрат можно повысить его до 128-256 Гб? Такая материнка еще 10-15 лет служить будет.

      Или другой пример: ноутбук, выпущенный примерно 10 лет назад, имеет в чипсете ограничение на 4 Гб (при этом продавался с 1 или 2 Гб, то есть резерв для расширения совсем маленький). Иначе, как злонамеренностью, это объяснить нельзя, так как памяти сейчас надо много, и если можно было бы расширить ее до 16 Гб, была бы полноценная девелоперская машинка не хуже макбука, только в 5-6 раз дешевле. Всего-то, нужно несколько адресных линий. Видимо, производители хотят, чтобы мы покупали их брендированный хлам вместо старой проверенной техники. Ведь новые процессоры не сильно быстрее старых, хотя и намного дороже. Только не разбирающийся в технике или любитель разбрасываться деньгами их будет покупать.


      1. aik
        29.04.2019 13:58

        Хочется 256 гигабайт — берите серверную материнку. Плюс поддержка модулей памяти большой ёмкости удовольствие тоже не бесплатное.

        На счёт же ограничений… Пару раз встречал материнки на 945 чипсете, где только 2 гигабайта памяти поставить можно было. 4 слота под память, материнка нормально работает с модулями на 2 гигабайта, в биосе их видно — но память выше двух гигов в ОС не отдаёт. А другая аналогичная просто не запускается, если больше двух гигабайт поставить.
        С 815 чипсетом тоже приколов достаточно было. Одна мать не запускается, если больше поставить, другая включается, показывает логотип производителя и уходит в перезагрузку. А третья пишет «у вас стоит больше 512 памяти, работать не буду».


        1. take
          29.04.2019 14:59

          Хочется 256 гигабайт — берите серверную материнку. Плюс поддержка модулей памяти большой ёмкости удовольствие тоже не бесплатное.


          А как же работа в кафе или на на газоне под деревом? Или там вечерняя ламповая тишина дома в кресле и в тапочках? )


          1. aik
            29.04.2019 15:07

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


            1. vvzvlad
              29.04.2019 15:21

              Как вы изящно сами вбросили тезис о конкретном объёме памяти, а потом на него же и сослались, типа, нафига вам 256 гигабайт под деревом?


              Выше-то речь шла о поддержке таких объемов(а касательно ноута(который и подразумевалось использовать под деревом) — вообще про 16гб), а не о использовании их.


              1. aik
                29.04.2019 15:25

                Был задан вопрос — почему 16, если можно 256:

                Почему они ставят предел вроде 16 Гб, если без особых затрат можно повысить его до 128-256 Гб? Такая материнка еще 10-15 лет служить будет.

                На что я ответил, что это серверное железо уже будет. Про ноуты ни слова не было сказано с моей стороны.


                1. vvzvlad
                  29.04.2019 15:28

                  Т.е. вы допускали, что если человек спрашивает про работу в кафе, на газоне или в кресле дома, то он спрашивает про серверное железо?)


                  Хотя да, я тоже люблю принести в кафе свой любимый сервер и там поработать. Шум турбин так расслабляет.


                  1. aik
                    29.04.2019 15:30

                    Ну если он цитирует при ответе мои слова про серверное железо — то у меня даже мысли не возникнет, что он про ноутбуки речь ведёт. Потому что я про ноутбуки ни слова ни написал.


                1. firedragon
                  30.04.2019 07:24

                  Память греется, да и головная боль с подбором совместимой. Я например долго искал односторонний 8 чиповый модуль. При том что бук очень распространенный. Производителю зачастую удобней оттестировать 1 тип памяти и жестко его запаять.


          1. nrgian
            29.04.2019 16:29

            Или там вечерняя ламповая тишина дома в кресле и в тапочках? )
            Современное серверное железо умеет быть тихим, настолько же как и обычное десктопное.


            1. atemik
              01.05.2019 01:03
              +1

              Если железо не топовое, и без нагрузки — вопросов нет. А давайте прикинем, как можно бесшумно охладить парочку 150Вт процов? В E-ATX корпусе, скажем.

              ЗЫ: у меня дома есть пара бесшумных в idle компов, но я знаю, чего это стоило. И это при отсутствии нагрузки.


        1. x67
          30.04.2019 04:25

          Вы еще скажите, что 640 гб памяти хватит любому компьютеру)
          А лучше законодательно запретите иметь на рабочих станциях больше памяти, чем разумно (на ваш взгляд, естественно) — нечего экологию портить тута!
          На самом деле же аналитики, видеоредакторы всех мастей, аудиоредакторы, графические дизайнеры и прочие инженеры могут легко найти достойное применение лишней сотне гигабайт. и не обязательно им нужна серверная материнка — не для сервера же.
          Ограничение же обусловлено другими факторами, основные из которых, полагаю, это статическое общее адресное пространство и расположение памяти в начале, а также экономическая целесообразность тестирования конкретной модели с конкретными объемами памяти.


          1. batman12345
            30.04.2019 13:42
            -1

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


            1. AntonAlekseevich
              30.04.2019 13:52

              Возможно, законодательное ограничение памяти компьютеров заставит наконец программистов оптимизировать программы.

              Я лично против такой инициативы сверху.


              Это ненормально, что программы с ровно тем же функционалом тяжелеют год от года.

              Я соглашаюсь с тем что есть такая проблема и решение её не в установлении ограничений.


            1. MTyrz
              30.04.2019 15:40
              +1

              Нет, сынок: это ты будешь меньше есть!


            1. u010602
              30.04.2019 16:56
              +1

              Заставит программистов? Замечательно! Пролетарские бунты добрались до ИТ сферы. Хотите сказать, сидят зажравшиеся капиталисты программисты с большими зарплатами и о простом человеке оптимизации не думают?

              На самом деле, программисты делают то, за что им платят и то, что заказывают. Если управляющий продуктом считает, что продукт можно выпускать без оптимизаций — он его выпускает. Если исследования показывают, что у клиентов в среднем ОЗУ все больше и больше, то эта память начинает использоваться для кешей и улучшения производительности.

              Вы наверное не знаете, но нет понятия «достаточно памяти», любой (по современным меркам) объем можно освоить. Например можно закешировать в ОЗУ полностью весь объем жесткого диска + рабочая память + денатурализованные наборы данных(если у вас есть телефонная книга с поиском по имени, можно сделать ее копию с поиском по телефону, и хранить обе), для экономии процессорного времени. Конечно-же каждая программа ведет себя так, будто она одна единственная и хочет максимально плавно и приятно работать для клиентов с деньгами, а значит программы буквально борются за ОЗУ, и ОС то-же в этой борьбе (ОС очень хочет кешировать обращения к диску, т.к. когда висит ИО, то висит даже курсор мышки).

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


            1. zorge_van_daar
              01.05.2019 13:11
              +1

              Как правило программы тяжелеют не просто так. Утяжеление является платой за увеличение скорости разработки программистом. Программист пишущий на asm пересаживается за С и пишет гораздо быстрее и с меньшим количеством ошибок. За это получает бОльшие требования к железу. Потом на С++, затем на С#… А потом решает сделать на ПО на кроссплатформенном фреймворке. А затем вообще переписать на JS и завернуть браузер в ЕХЕ. Каждый шаг увеличит требования к железу.
              И получается что если сильно ограничить требования на производительность, то возрастут затраты на ПО, возрастут сроки реализации новых функций (как вы помните — 9 женщин не выносят ребенка за месяц), возрастут требования к программистам (порог вхождения в профессию будет выше, «осиливших» станет меньше), сама индустрия станет медленнее развиваться.
              А про торможение развития железа из-за недофинансирование (доля от потребительского рынка огромна) я вообще молчу. А нам не хватает ни на ИИ, ни на нормальный рейтрейсинг в играх. Я уже вообще молчу, что мы все просто вымрем от недостатка полезных ископаемых из-за растущей вычислительной сложности разведки. Вымрем от супервирусов из-за того, что не можем нормально смоделировать органическую химию.
              Это я все к чему — да, я буду продолжать сортировать пузырьком)


              1. DrPass
                01.05.2019 15:13

                Утяжеление является платой за увеличение скорости разработки программистом.

                Я это слышал тысячи раз, но ни верю ни одному слову в этом утверждении. Я начал работать программистом более 20 лет назад, а учился программировать ещё с начала 1990-х, и могу однозначно сказать: скорость разработки, скорость добавления фич не выросла. Даже наоборот, упала.
                Качественный скачок в возможностях инструментов разработки был в середине 1990-х. К концу 1990-х сформировались мощные и удобные IDE, которые по функционалу практически не уступали существующим. Разве что средства рефакторинга только начинали появляться, и были не из коробки, а как отдельные тулзовины, да метрики ещё не встраивались.
                Поэтому нет, скорость разработки не выросла. Как мне видится, единственная причина утяжеления — очень большой спрос на услуги программистов, из-за чего всем пофигу на качество, надо просто больше софта. Пишет коряво, медленно, но как-то пишет? Годится, берем.


                1. khim
                  01.05.2019 16:59

                  Могу однозначно сказать: скорость разработки, скорость добавления фич не выросла. Даже наоборот, упала.
                  А вот тут странная ситуация, когда обе стороны правы.

                  Собственно, важной вехой было как раз появляения средств рефакторинга — которые сыграли главную, но что характерно и удивительно, негативную роль.

                  Потому что в прошлом веке вы не могли позволить себе каждую неделю пересматривать техзадание. Я хорошо помню в одной книжке описание разработки OLE2. Когда у них уже была версия OLE1, вызывавшая для редактирования объекта другое приложение — и возникла идея, что хорошо бы, чтобы не нужно было уходить в другое приложение, а можно было редактировать «по месту». Они сделали хакнутые версии Word'а и Excel'я (так, что меню Excel'я содержали часть меню от Word'а — они, впрочем, не работали), подхачили запуск (так, что когда человек кликал по объекту, то окно Excel'я возникало в захардкоженном месте — а презентующий, понятно во время презентации двигал текст так, чтобы возникала иллюзия, что всё работет) и так далее.

                  А потом — через год — презентовали всё то же самое… но уже в работающем виде.

                  Вы можете себе представить чтобы фичу реализовывали год в современном мире? И никто не поменял требования к ней за это время? Так чтобы презентация «шоу с понями» и «работающего продукта» (между которыми, повторяю, был год работы) были похожи настолько, чтобы Билл Гейтс спросил: «что же изменилось — ведь код назад вы показывали то же самое»? Это невозможно: за год у вас будет 50 «спринтов», требования перепишут 5, а то и 10 раз — а полученный в результате «высер» потом ещё год будут допиливать.

                  Вот так и получается, что «скорость разработки выросла», а «скорость добавления новых фич» — упала.

                  Ну и это вот, конечно:
                  Это я все к чему — да, я буду продолжать сортировать пузырьком)
                  Когда вы разрабатываете фичу год — вы можете себе позволить подобных деятелей не брать на работу… или уволить через месяц. Когда у вас «спринты» каждую неделю — нет. Вы «завалите» спринт, потеряете кучу денег… оно вам надо? Пусть лучше сидит, «таски» закрывает… а что от такой деятельности этих «тасков» становится только больше… кого это волнует? Видно же: работа идёт, понятно за что деньги платятся… а если вы за пару месяцев сделаете компонент, в котором не будет багов — за что вам платить? «Тасков» нет, в «спринтах» вас не упоминают… бездельник!


                1. u010602
                  02.05.2019 03:51

                  Если рассматривать в разрезе одного продукта и одного человека, то вы правы(для части случаев). НО если посмотреть в целом на всю отрасль, как на добывающую, то количество миллиардов строк кода в год и количество миллионов релизов в год и количество новых продуктов сильно возросло. В том числе благодаря снижению порога вхождения. Те самые «худо бедно пишущие» программисты без нормальных ИДЕ и фреймворков не могут писать в принципе. Можно сказать что скорость ИХ разработки выросла бесконечно (т.к. было 0).

                  Еще пример продукта Старкрафт 1. До его возрождения было выпущено 16 патчей с 98го года по 2008. После возрождения их уже выпустили почти 30 штук за тройку лет. А Старкрафт 2 в принципе обновляется постоянно. Я точно знаю, что выйдя из него, я в следующий раз зайду в другую игру, т.к. он поставит патчи.

                  Или например возьмем онлайн магазин Розетка, они постоянно что-то меняют у себя на сайте. В то время как в 20 лет назад, сайты которыми пользовался я — не менялись вообще годами. Тогда даже баннеры не менялись, т.к. еще не было баннерных сетей, а договоренности на кросс-ссылки действовали годами.

                  Так-же важный момент, что сейчас наполнение контентом не требует навыков программирования, но 20 лет назад это было не так. И если взять суммарно не только код и релизы, а и все изменения в контенте, и сравнить с 00ыми, то различия в темпах будут еще на один порядок больше.


                  1. khim
                    02.05.2019 05:01

                    НО если посмотреть в целом на всю отрасль, как на добывающую, то количество миллиардов строк кода в год и количество миллионов релизов в год и количество новых продуктов сильно возросло.
                    Совершенно не в той пропорции, что увеличилось количество разработчиков. Первую версию BASIC Билл Гейтс и Пол Аллен написали вдвоём — и затратили на это три месяца. Это притом, что машинное время они «урывали» по ночам. Первую версию MS DOS Патерсон, фактически, написал в одиночкуза полгода. Кстати и Линус, в своё время, затратил столько же на первую версию ядра.

                    Сейчас очень мало кто создаёт вещи хотя бы близко сравнимой функциональности за это же время в одиночку. То есть производительность труда «с точки зрения добывающей отрасли» упала — и прилично так упала.

                    Новых продуктов (в сравнении с количеством программистов) выходит мало, очень мало.

                    Можно сказать что скорость ИХ разработки выросла бесконечно (т.к. было 0).
                    Однако скорость разработки людей, которые могут без всего этого обходиться — таки упала. И упала сильно.

                    Я точно знаю, что выйдя из него, я в следующий раз зайду в другую игру, т.к. он поставит патчи.
                    Как по мне — так это недостаток, а не достоинство. Зачем мне другая игра? Я за вполне определённую вещь заплатил и хочу получить именно то, за что заплатил, однако.

                    Я не против подписок (периодические издания изобретены не вчера), но тот факт, что программы сейчас всегда недоделаны и всё время ставят какие-то патчи — меня скорее раздражает. Ещё больше раздражает невозможность взять ту версию, которая мне нравится. Вот какой-нибудь Thurderbird я могу поставить той версии, какую я хочу, а GMail или Clash Of Clans — нет.

                    В то время как в 20 лет назад, сайты которыми пользовался я — не менялись вообще годами. Тогда даже баннеры не менялись, т.к. еще не было баннерных сетей, а договоренности на кросс-ссылки действовали годами.
                    Вы говорите об этом так, как будто это было плохо.

                    Не будем про Розетку — не знаком. Но вот что добавилось за 10 лет существования Хабра? Рюшечек добавили разнообразных — вагон. А вот сделать так, чтобы информация о непрочитанных комментариях не сбрасывалась если браузер вдруг закладку «сбросил», а потом загрузил с сервера — никто не удосужился. Притом что на каком-нибудь LWN — эта возможность была с момента появления отслеживания непрочитанных комментариев.

                    Так-же важный момент, что сейчас наполнение контентом не требует навыков программирования, но 20 лет назад это было не так.
                    Как же быстро люди забывают историю… HyperCard, среда для «программирования без программирования» — это, я извиняюсь, 1987й год.

                    И если взять суммарно не только код и релизы, а и все изменения в контенте, и сравнить с 00ыми, то различия в темпах будут еще на один порядок больше.
                    Ну да: «бурления говён» с тех пор стало гораздо больше. Но это не потому, что разработка ускорилась. А потому что той вещи, которая ограничивала оное «бурление» в прошлом веке (необходимости тратить недели и месяцы на печать и распространение тиража, что было, ко всему прочему, ещё и дорого) — с появлением широкополосного доступа не стало.

                    А вот разработка новых фич — я бы сказал, что замедлилась. Пик был пройден где-то на рубеже веков. Взять Delphi 3й-4й версии или Visual Basic 5й-6й версии и набросать простенькое приложение — можно гораздо быстрее, чем с любым средством современной разработки. Да, оно будет не таким «стильным модным молодёжным» — но это уже другая история. Свою задачу оно будет решать успешно.


                    1. u010602
                      02.05.2019 05:42

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

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

                      Новых продуктов — тьма. Вы просто про них не знаете, и я то-же. Но если зайдете на биржи фрилансеров и посмотрите сколько там заказов — то поймете что продуктов очень много. Я не говорю, что они обладают пользой или новизной, но это продукты. Я работал с людьми, которые во второй команде каждую неделю выпускали «новую» игру для дроида и апстора, натягивали новые текстуры и меняли немного уровни. В школьные годы такие игры писались весь год в виде «курсового».

                      Однако скорость разработки людей, которые могут без всего этого обходиться — таки упала.

                      Возможно, но всегда можно сменить рабочее место.

                      Зачем мне другая игра?

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

                      Вы говорите об этом так, как будто это было плохо.

                      Нет. Я привел пример, не более того.

                      Но вот что добавилось за 10 лет существования Хабра?

                      Я не знаю, и не знаю насколько они прибыльные, что-бы что-то менять. Это-же не магазин, а по сути библиотека с клубом для обсуждения. Что можно изменить в библиотеке? Изменения требуют денежных вливаний, которые потом отобьются. Хабр меняется только для адаптации под новые устройства и для привлечения новых людей.

                      Как же быстро люди забывают историю…

                      При чем тут история. Наличие фантазий в головах узкого круга людей, на отрасль не влияет. Я лично будучи студентом наполнял сайты на ПХП информацией, и не я один. Тогда так было принято, года через 3 начали продвигать ЦМС, но я давно не на вебе и не знаю что там из этого вышло.

                      А на гиперкарде целая одна игра была выпущена?

                      Но это не потому, что разработка ускорилась.

                      Ну как-же не потому, именно потому. Да конечно ускорение интернета стало причиной роста интернет коммерции, но этот самый интернет нужно наполнять кодом, и для этого нужно писать много кода и ускорять создание простых продуктов. Если бы ИТ отрасль не могла обеспечивать бурление, то его-бы не случилось. Если в 2000м году дать всем 100мбит интернет, люди бы не знали что с ним делать.

                      Взять Delphi 3й-4й версии или Visual Basic 5й-6й версии и набросать простенькое приложение — можно гораздо быстрее, чем с любым средством современной разработки.

                      На шарпе накидается еще быстрее, особенно под винформы. Да и под ВПФ довольно быстро, а стили можно подключить готовые.

                      Да, оно будет не таким «стильным модным молодёжным» — но это уже другая история. Свою задачу оно будет решать успешно.

                      Задача приложения — обогащать создателя. Если приложение не будет продаваться, то оно свою функцию не выполняет. Стиль приложения такая-же фича, как и фича «делать работу». Можно крутить саморезы дедовской отверткой, а можно шуруповертом Бош. Но при этом дед подаривший отвертку значительно беднее корпорации Бош. Хотя конечно и то и то работает и функцию выполняет.

                      — Учитывая стиль вашей мысли, мне кажется вы не учитываете реальное положение дел, как оно есть. Вы «архивируете» реальность, выкидываете дубликаты, ненужные детали, оформление. И размер архива у вас не сильно растет, в то время как размер исходных данных растет экспоненциально. Но ваша архив содержит не код и не продукты, а ИДЕИ, и да количество новых идей мизерно, ни чего нового в целом не происходит, но при этом отрасль растет в ширину, и этот рост обеспечивает армия программистов, которые стали писать код намного быстрее чем раньше.

                      А группа лиц, которая писала раньше, ну она архаична по своей сути. Это были мечтатели и исследователи, которые вкладывали свои собственные идеи в свой собственный код и продукт. Сейчас эпоха разделения труда. Идеи генерирует лошадь, у нее голова большая. А все остальные пишут код и скинчики, зачастую ни разу в жизни не пользуясь своим продуктом как продуктом. Некоторые даже не запускают свои творения — пусть тестеры этим занимаются. Через это проходят все отрасли, раньше посуду делали мастера, каждая тарелка была уникальна. Сейчас их делает фабрика, а узоры печатает принтер. И совершенно не важно, о чем там мечтает человек на конвейере, его душа не востребована в производстве современных тарелок. Так и с душами программистов, мы все больше станочники, все меньше творцы.


                      1. khim
                        02.05.2019 06:40

                        НО первая версия бейсика и доса были примитивны. Продукты такого уровня сейчас в принципе не нужны.
                        Серьёзно? Вообще они были сложнее 90%… хмм… как бы без мата… добра, размещённого в Google Play.

                        Я работал с людьми, которые во второй команде каждую неделю выпускали «новую» игру для дроида и апстора, натягивали новые текстуры и меняли немного уровни.
                        Извините — но это не «продукты», а «поделки». Скорее всего — хуже тех, которые Ромеро выпускал для Softdisk'а ежемесячно.

                        В школьные годы такие игры писались весь год в виде «курсового».
                        Не знаю что вы там писали год, но WAD'ы для Doom'а штамповались за часы, а не за дни. Просто тогда никому в голову не приходило пытаться это продавать.

                        Я не знаю, и не знаю насколько они прибыльные, что-бы что-то менять. Это-же не магазин, а по сути библиотека с клубом для обсуждения. Что можно изменить в библиотеке? Изменения требуют денежных вливаний, которые потом отобьются. Хабр меняется только для адаптации под новые устройства и для привлечения новых людей.
                        В том-то и дело, что нет. Я понятия не имею что изменилось за прошедшие 10 лет на Хабре, но я знаю что вкладка с Хабром занимала меньше десяти мегабайт памяти, а сейчас она занимает восемьдесят.

                        А на гиперкарде целая одна игра была выпущена?
                        Нет, конечно. Но только одна стала бестселлером. Что ровно на один бестселлер больше, чем игр-бестселлеров на PHP.

                        Да конечно ускорение интернета стало причиной роста интернет коммерции, но этот самый интернет нужно наполнять кодом, и для этого нужно писать много кода и ускорять создание простых продуктов.
                        Тем не менее, как вы сами сказали, создание игры путём «натягивания новых текстур и небольшого изменения уровней» занимает неделю (да ещё и коллективом из нескольких человек, наверняка) — в то время как 30 лет назад за месяц создавалась новая игра с новыми правилами и новым геймплеем. Где ускорение?

                        Если в 2000м году дать всем 100мбит интернет, люди бы не знали что с ним делать.
                        Почему не знали бы? Знали бы. Вместо того, чтобы качать дистрибутив Linux'а пару месяцев по ночам — его можно было было бы скачать и использовать за час. Но вряд ли бы за год вышло сильно больше версий Linux'а, чем сотня, которая имела место быть.

                        На шарпе накидается еще быстрее, особенно под винформы. Да и под ВПФ довольно быстро, а стили можно подключить готовые.
                        Ну вот не накидывается. Увы. Люди, которые могут накидать в формочки кнопочек в FoxPro, Visual Basic'е, Delphi и прочем — и написать в их обработчиках три строчки… не могут сделать того же в современных IDE. Именно поэтому Visual Basic упал почти до нуля и начал только лишь недавно снова набирать популярность. Потому что, как вы выразились, «скорость ИХ разработки упала бесконечно (т.к. стало 0)» (а разрабочики на Visual Basic.NET, которые десять лет назад начали-таки наконец появляться — это уже другие разработчики).

                        Задача приложения — обогащать создателя
                        Ну если подходить к делу с этой точки зрения… Тогда да: в 80е-90е люди могли сами худо-бедно для себя что-то такое изобразить на FoxPro, VisualBasic'е или, скажем, в Excel'е. Сейчас — им приходится искать фрилансеров и похожие программы заказывать…

                        Но вы вроде ускорение обещали, а не выжимание денег из воздуха?

                        Если приложение не будет продаваться, то оно свою функцию не выполняет.
                        А тот факт что, по разным оценкам, от 90% до 99% приложений делаются не на продажу — вы не учитываете?

                        Но ваша архив содержит не код и не продукты, а ИДЕИ, и да количество новых идей мизерно, ни чего нового в целом не происходит, но при этом отрасль растет в ширину, и этот рост обеспечивает армия программистов, которые стали писать код намного быстрее чем раньше.
                        Но если мы не решаем никаких новых задач — то зачем нужен такой «рост ради роста»?

                        Через это проходят все отрасли, раньше посуду делали мастера, каждая тарелка была уникальна. Сейчас их делает фабрика, а узоры печатает принтер.
                        Не сейчас. В 80е-90е так было. Когда появились средства, позволяющие обойтись без программистов. А потом — произошёл регресс. Причём регресс жесточайший: я вот не знаю ни одного средства, позволяющего сделать веб-приложение так, как программы делалось в Visual Basic'е. Накидав кнопочек и визуально указав что должно происходить при нажатии на ту или иную кнопку.


                        1. u010602
                          02.05.2019 07:30

                          Вообще они были сложнее 90%… хмм… как бы без мата… добра, размещённого в Google Play.

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

                          Извините — но это не «продукты», а «поделки». Скорее всего — хуже тех, которые Ромеро выпускал для Softdisk'а ежемесячно.

                          Ваша или моя оценка их качества не существенны.

                          Не знаю что вы там писали год, но WAD'ы для Doom'а штамповались за часы, а не за дни.

                          Рад за вас, но я не знаю ни что такое WAD'ы ни кто их клепал. В школе писались на паскале простейшие игры в стиле Alien Invaders руками школьников и на это уходили месяцы, конечно не ежедневного 8 часового труда. Но это все было долго и сложно и не все доходили до конца. Сейчас такую игру можно мышкой накидать за одну пару.

                          Я понятия не имею что изменилось за прошедшие 10 лет на Хабре, но я знаю что вкладка с Хабром занимала меньше десяти мегабайт памяти, а сейчас она занимает восемьдесят.

                          Хабр это продукт основанный на целом стеке технологий и куче фреймворков. Хабр не изменился, но то, на чем он основан — изменилось и будет меняться и будет раздуваться. Если же не обновлять зависимости — то будут дыры и не современный вид.

                          занимает неделю (да ещё и коллективом из нескольких человек, наверняка) — в то время как 30 лет назад за месяц создавалась новая игра с новыми правилами и новым геймплеем.

                          Из коллектива там два индуса, один рисует, второй программист. И я не думаю что они работают в поте лица, а большую часть времени компилируют, подписывают, публикуют в апстор и все такое.

                          Насчет игра создавалась за секунды и была бесконечно сложная — можно примеры и пруфы. А то я что-то не помню чтоб игры так прямо массово создавались. А уж про разные геймплеи вообще лучше не начинать. Геймплеев не сильно больше жанров.

                          Знали бы.

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

                          Ну вот не накидывается.

                          Я начинал на делфи, перешел на дот нет. У меня накидывается, у тысяч других разработчиков — накидывается.

                          Про людей которые накидывали и не могут — я таких не знаю. Где они живут? Что они разрабатывают? Нужны ли еще такого уровня задачи и решения? Мне кажется что этот класс задач просто вымер и все.

                          Но вы вроде ускорение обещали, а не выжимание денег из воздуха?

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

                          А тот факт что, по разным оценкам, от 90% до 99% приложений делаются не на продажу — вы не учитываете?

                          Они все на продажу, просто некоторые продаются только заказчику для закрытого использования. Проценты думаю вы взяли с потолка.

                          Но если мы не решаем никаких новых задач — то зачем нужен такой «рост ради роста»?


                          Это приносит бабло, и людям есть за что кормить своих детей. Давайте продолжим рассуждать о тленности бытия, это конечно-же будет по теме этого поста.

                          А потом — произошёл регресс.

                          Нет, просто всем надоели такие приложения и сайты, которые клепали самодельщики, а потом пропадали, и поддерживать ни кто не хотел. Звали программиста, а он говорил — я могу вам написать нормально с 0 + еще возьму денег за миграцию. В итоге это все было бесконечное рабство на самодельных проектах для разработчиков и бесконечная беготня и траты денег для бизнеса, все это эволюционировал в «делать сразу нормально», т.е. по стандартам, т.е. поддерживаемо, т.е. по взрослому. Заодно это все и выглядит лучше.

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


                          1. khim
                            02.05.2019 17:12

                            Если же не обновлять зависимости — то будут дыры и не современный вид.
                            Никакого вида не будет — в этом-то и беда. Вы же сами задавали как бы риторический вопрос «Что можно изменить в библиотеке?»… а когда выяснилось что, да можно таки заставить её жрать ресурсы и тормозить не получив в результате никаких плюсов — придумали оправдание.

                            Насчет игра создавалась за секунды и была бесконечно сложная — можно примеры и пруфы.
                            Про «секунды» никто не говорит. А про то, что Ромеро по контракту выпускал игры ежемесячно «в одно рыло» — прямо написано Masters of Doom.

                            А то я что-то не помню чтоб игры так прямо массово создавались.
                            И точно также будут считать ваши дети лет так через 30. Потому что поделки, о которых вы говорите, точно также «сгинут в лету», как и тысячи игр, созданных в 80е.

                            Про людей которые накидывали и не могут — я таких не знаю. Где они живут? Что они разрабатывают? Нужны ли еще такого уровня задачи и решения? Мне кажется что этот класс задач просто вымер и все.
                            Нет, он вымер. Все эти простенькие сайты булошных и химчисток — это вот оно. Просто если раньше они могли сами, используя Visual Basic, набросать программу, которая им была нужна — то сегодня им приходится заказывать разработку «на стороне».

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

                            Вы же надеюсь не считаете регрессом то, что сейчас ни кто не может себе сделать горшок из глины и запечь его, все идут и покупают готовые.
                            Нет. Потому что времени на изготовления горшка из глины уйдёт на пару порядков больше, чем на то, чтобы заработать деньги на покупку фабричного. Но главный выигрыш — в том, что горшок не изготовляют «на заказ». Вы его идёте и покупаете.

                            А вот когда профессии упраздняются, тогда начинаются кризисы и мятежи.
                            Тем не менее прогресс — это когда писари и продавцы льда исчезают. А в IT — происходит наоборот: мы получаем, фактически, тот же результат затрачивая, с каждым годом, всё больше усилий на это.

                            Это, я извиняюсь, регресс.

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

                            Например «автомат» в автомобиле сократил время обучения и увеличил количество водителей — что, собственно, и означает, что он уменьшил «порог вхождения».

                            P.S. При этом нельзя сказать, что в отрасли совсем ничего не происходит. Скажем современные upscaler'ы позволяют делать вещи, которые в XX веке никто не умел делать. Иначе как руками. Вот только… этим занимается хорошо если 1% индустрии. Остальные же — порождают всё больше и больше кода, жрущего всё больше и больше ресурсов… но не позволяющего, при этом, решать никаких новых задач. И даже не позволяющего старые задачи решать быстрее.


                            1. u010602
                              02.05.2019 18:01

                              Вы же сами задавали как бы риторический вопрос «Что можно изменить в библиотеке?»… а когда

                              Я писал:
                              Хабр меняется только для адаптации под новые устройства и для привлечения новых людей.

                              Это-же и повторил. Обновили движок и он стал больше кушать.

                              А про то, что Ромеро по контракту выпускал игры ежемесячно «в одно рыло»

                              Но я вижу на вики что их было всего 8 в год. И вижу что они далеко не уникальны, например:
                              ваки визард
                              image


                              1. khim
                                02.05.2019 20:43

                                Речь шла про ускорение производства строк кода, продуктов и релизов.
                                Вот только производство строк кода ради призводства строк кода — это какая-то больная экономика. А вот с релизами и продуктами — сильно лучше не стало.

                                А кто называл это прогрессом? И что такое вообще прогресс? Вопрос риторический, он за пределами этого обсуждения.
                                Нет, это вопрос принципиальных. Философы натягивают эту сову на самые разные виды глобусов, но если подходить к делу практически, то прогресс — это выполнение той же работы с меньшим количеством рабочих рук (что позволяет освободившиеся рабочие руки направить на выполнение другой работы).

                                Так вот порождение всё большего и большего количества строк кода, которые требуют всё более быстрых процессоров и больше памяти — мы наблюдаем. А вот освобождения рабочих рук — нет.

                                Не надо разводить коммунизм — типа всем по потребностям. Если-бы работа программистов не окупалась — они бы не получали свои зарплаты и отрасль бы не росла.
                                Так происходит в здоровом капиталистическом обществе, да. Однако последние 10 лет этот механизм сломан: огромное количество предприятий, которым давным-давно пора обанкротится (та же Тесла) продолжают как-то существовать за счёт того, что могут взять денег в кредит по, фактически, нулевой процентной ставке.

                                И, собственно, примерно с того момента, когда это произошло (примерно с середины нулевых) развитие и IT идустрии пошло по пути «раковой опухоли»: рост ради роста без серьёзного положительного выхлопа.

                                Обыватели бухгалтера перестали замечать разницу между железом примерно когда стало 2 гига 2 ядра.
                                А вот теперь — они её снова замечают. Потому что у них офис тормозит банально при наборе текста. И программы для заполнения деклараций работают так, как у будто у них не «2 гига 2 ядра», а C64. Как вы думаете — почему многие бухгалтера десятилетиями отказывались переходить на 8ку? А потому что тормозит! И к СБИС++ у них основная претензия не к градиентам и сглаживанию шрифтов, а к тому, что это чудо запускается две минуты. И те же претензии у большинства пользователей Visual Studio, Reshaper'а и далее по списку.

                                Но при этом в градиенты и шрифты индустрия вкладывается, а в нормальную, быструю работу программ — нет.


                                1. u010602
                                  02.05.2019 20:55

                                  лучше не стало

                                  Стало больше. Лучше это субъективно.

                                  это какая-то больная экономика

                                  Вся экономика, какая-то больна, и люди все какие-то больные, т.к. не роботы и живут свои жизни не ради каких-то конкретных целей, а просто having fun. Пора уже было и привыкнуть.

                                  освобождения рабочих рук — нет.

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

                                  последние 10 лет этот механизм сломан

                                  Не стоит программистам рассуждать про экономические механизмы в таком ключе. У теслы все хорошо, значит сломана ваша модель мира.

                                  претензии у большинства пользователей Visual Studio, Reshaper'а

                                  У меня претензий нет, хотя комп уже древний (3770К).
                                  Бухгалтера просто не хотят платить за апгрейд, тем самым снижают продажи производителям железа, которые в свою очередь стимулируют производителей софта делать софт, который плохо работает на старом железе.

                                  в нормальную, быструю работу программ — нет.

                                  Я ж уже писал что они работают быстро, если железо свежее. Задача заставлять вас покупать а не быть счастливым за 2 бакса.


                                  1. khim
                                    02.05.2019 23:52

                                    лучше не стало
                                    Стало больше. Лучше это субъективно.
                                    У вас есть статистика? Потому что грубые оценки показывают, что роста как раз и нет. По крайней мере за последние 10 лет нету. Скажем количество сайтов с 2000го под 2010й выросло в десять раз. А с 2009го — выросло примерно вдвое. При этом количество разработчиков — выросло в полтора раза. То есть если рост какой-то и есть, то он совершенно мизерный.

                                    Не стоит программистам рассуждать про экономические механизмы в таком ключе. У теслы все хорошо, значит сломана ваша модель мира.
                                    О том, что капитализм сломан я не пишу — об этом Блумберг пишет — а это как раз его специализация.

                                    Теслу я привёл просто как один из очевидных примеров: компания, которая уже 10 лет не может выйти на стабильную окупаемость и производит меньше миллиона машин в год — стоит как треть Тойты, производящей по десять миллионов ежегодно с прибылью.

                                    То есть имеем в чистом виде «пузырь», подпитывающийся «шальными деньгами». А в IT-индустрии имеем вот это вот безумногое порождение строк кода ради порождения ещё большего количества кода.

                                    Бухгалтера просто не хотят платить за апгрейд
                                    А почему они должны платить за апгрейд? Задачи за последние лет 20-30 не изменились, новые версии программ не позволяют их решать быстрее — так почему вдруг возникает нужна в оплате апгрейда? Вы ж не покупете новую подставку для обуви каждый год из-за того, что модельеры выпускают новые ботинки, которые точно такие же, но с более острыми шипами и свинцовой подошвой.

                                    тем самым снижают продажи производителям железа, которые в свою очередь стимулируют производителей софта делать софт, который плохо работает на старом железе.
                                    Извините — но это как раз и есть извращённая экономика, где «хвост виляет собакой». В нормальной экономике это побудило бы разработчиков программ делать то, чего от них хотят.

                                    Я ж уже писал что они работают быстро, если железо свежее.
                                    В том-то и дело, что не работают он быстро даже на свежем железе. Ведь что такое «быстро»? Тут ведь всё просто: 80 миллисекунд.

                                    С такой скоростью работал и Turbo Pascal на древней, как говно мамонта, системе с Pentium II на 350MHz у нас в школе (есть подозрение, что и какой-нибудь IBM PC XT хватило бы, на самом деле) и Visual Studio на чуть более быстрой системе лет 10 назад (как раз когда 2 гига 2 ядра появились).

                                    А вот уже все современные поделки — они не умеют работать быстро! В принципе не умеют! В каком-нибудь интернет банке переход между окнами занимает несколько секунд — а вместо того, чтобы сделать быстро дизайнеры изобретают разные «спецэффекты», чтобы мне было на что посмотреть пока это «чудо природы» занято неизвестно чем.


                                    1. u010602
                                      03.05.2019 00:04

                                      А почему они должны платить за апгрейд?


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

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

                                      Не в нормальной, а в условно идеальной. В реальности есть сговоры, есть монополии и олигополии, есть влияние на массовое сознание через маркетинг и сми.
                                      Так что они делают то, что выгодно делать, а не то, что хотят потребители.

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


                                      Могу только похлопать по плечу и сказать «there, there». Почему так — не всегда есть простой ответ, иногда причины тормозов не тривиальны и возникают в ходе эволюции продукта и смены ТЗ. Это в целом нормально, но потом должна наступить оптимизация, а она стоит денег, на ней можно сэкономить если пипл хавает. Не хавайте, меняйте банк на более итшный. Если вас будет много, вы создадите тренд, если вас будет мало — значит это парит только вашу голову.


                                      1. khim
                                        03.05.2019 01:15

                                        А почему это хорошо? Потому, что это ведет к прогрессу технологий, и если сейчас прорывов нет, это не значит что их не будет.
                                        По моему мы уже пришли к консенсусу: прошедшее десятилетие — это время, когда в IT многие вещи делаются «потому что могут».

                                        Просто вы называете это прогрессом, а я регрессом. Примерно как 60е в автомобилестроении. Когда наблюдался серьёзный регресс: потребление топлива росло, но заметного прогресса ни в скорости доставки, ни в комфорте автомобилей — не было. Вместо этого ресурсы тратились на «красивые обводы» — которые, по большому счёту, никому не были нужны.

                                        70е положили этому конец… современный Bugatti Veyron потребляет меньше топлива, чем Dodge Charger 60х!

                                        Почему так — не всегда есть простой ответ, иногда причины тормозов не тривиальны и возникают в ходе эволюции продукта и смены ТЗ.
                                        Я интревьюировал достаточно кандидатов из «ынтырпрайза» для того, чтобы знать что причина у всего этого — ровно одна: они думают о чём угодно — только не об эффективности написанного ими кода. Всё остальное — вторично.

                                        Это в целом нормально, но потом должна наступить оптимизация, а она стоит денег, на ней можно сэкономить если пипл хавает.
                                        Нет. «Оптимизация потом» не работает. Это всё равно как сначала построить дом, а потом думать как, я извиняюсь, эффективно гавно из унитазов в этом доме отводить. Как канализация должна закладываться на этапе проектирования дома — так и код должен конструироваться вокруг эффективной архитектуры.

                                        Опять-таки как с вышеупомянутыми автомобилями: когда считалось, что достаточно сделать авто, а потом вкорячить туда восьмицилиндовый движок литров так на 5-7 (это в обычную малолитражку, не в какой-нибудь премиум-кар или грузовик), то и получались монстры с потреблением так примерно в 25 литров на 100 км.

                                        Как случился нефтяной шок — так они все и вымерли. Разработчики современных автомобилей об «обводах» тоже думают — но на первых местах всё-таки стоит аэродинамика и прочие «скучные» вещи.

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

                                        Так-то понятно, что «сколько веревочке ни виться, а конец будет». И рано или поздно и DB «крякнет» и, соответственно, регресс в IT окончится.

                                        Вот только есть беда: этот кончик «оттягивали» так долго и так безрассудно, что последствия возврата маятника назад (и, по традиции, перехода в другую сторону) многие могут не пережить. Проход через безработицу в 70%-80%-90% и прочее — кажутся несколько слишком дорогой платой за восстановление равновесия.


                                        1. u010602
                                          03.05.2019 01:34
                                          +1

                                          А мне нравятся машина 60х в США.

                                          они думают о чём угодно — только не об эффективности написанного ими кода.

                                          Если вообще не думать, и писать с 0, то не будет таких тормозов. Жуткие тормоза это всегда наложение многих факторов.

                                          эффективной архитектуры.

                                          Уровней оптимизации много. Само собой менять архитектуру сложно, а значит есть смысл ее продумать сразу. А вот запросы можно отдать ОРМ, а потом оптимизировать только те, что важны и тормозят.

                                          монстры с потреблением так примерно в 25 литров на 100 км.

                                          Прям уж монстры, чуть больше Нивы. Современные 2-3 тонные джипы потребляют так-же и люди не жалуются.

                                          Разработчики современных автомобилей об «обводах» тоже думают — но на первых местах всё-таки стоит аэродинамика и прочие «скучные» вещи.

                                          У азиатских машин, особенно А и Б класса, и во многом из-за ограничений по выбросам в Европе. В США же колесят монстры, с аэродинамикой холодильника.

                                          Например
                                          image


                                          1. khim
                                            03.05.2019 05:25

                                            Если вообще не думать, и писать с 0, то не будет таких тормозов.
                                            Будут.

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

                                            Вы думаете, что компьютер, для которого вы разрабатываете вашу программу имеет гигабайты памяти и сотни гигабайт SSD или жёсткого диска? Ага. Щаз. То, с чем вы работаете — это ускоренная версия вот этого вот:
                                            «Полный фарш», конечно — с вот таким модулем:
                                            И таким флоповодом:и кассетником:

                                            Заметьте: современная версия — она ускоренная… но не увеличенная.

                                            Скажите я издеваюсь? Да вот нифига. Ice Lake 2018го года выпуска имеет ровно столько же кеша первого уровня, сколько имел оперативки C64 в 1982м году. Кеша второго уровня в нём столько же, сколько в показанном выше REU — и доступ к нему такой же медленный, как у C64 к REU (по отношению к скорости процессора, конечно). А доступ к оперативке? Это такие же дикие тормоза как и доступ к флопу 1581 на C64! SSD же имеет такую же скорость, как вот тот вот самый Datasette. Про HDD я вообще молчу.

                                            Для того, чтобы тут что-то вообще работало быстро вам нужно оперировать крошечными объёмами данных и как можно реже использовать ссылки из одного места в памяти в другое.

                                            Все же современные технологии устроены ровно по обратному принципу: нарезать всё на кусочки помельче, а потом ещё раз и ещё. Ну примерно как если бы вы устроили почту где весы находятся в Нью-Йорке, марки клеятся в Сингапуре, адрес проверяется в Сан-Франциско, штамп ставится Кейптауне, а курьер вылетает из Токио. А потом удивлялись бы: а чёй-то у нас посылки на соседнюю улицу долго доставляются. Наверное нужно вложиться в гиперзвуковые самолёты и магнитно-левитирующие поезда.

                                            Нет, ребяты, гиперзвуковые самолёты вам не помогут. Вам просто не нужно посылку 15 вокруг земного шара посылать — и она, внезапно, станет доставляться за пару часов, а не за три месяца.

                                            Самая большая беда всей современной индустрии — в том, что люди не понимают как устроен компьютер, с которым они работают. Не на уровне регистров или команд процессора — это бы чёрт с ним. Они концептуально не понимают вот этого вот всего.

                                            Соотвественно и архитектуру создают дрянную и не работающую. Потом другие люди пытаются ускорить её прикручивая гиперлупы (JIT-компиляторы) и логистические центры (100500 уровней кеширования), но толку от этого немного: 15 витков вокруг земного шара особо быстро всё равно не сделать…

                                            А вот запросы можно отдать ОРМ, а потом оптимизировать только те, что важны и тормозят.
                                            Этим можно разве что перевести продукт из категории «тормозит безбожно, разработчиков хочется просто убить» в категорию «блин, встретил бы я их в тёмной подворотне… убивать бы не стат — но синяками бы они точно не отделались».

                                            В США же колесят монстры, с аэродинамикой холодильника.
                                            Ну это да. Поколение беби-бумеров уже на пенсии, а следующее поколение шока 70х не застало. Ну значит урок будет повторён… жизнь — она такая штука… терпеливая.

                                            НО люди выносят из этого уроки, и учатся надувать пузыри медленно и лопать аккуратно.
                                            Если бы. Вместо того, чтобы лопать их — они научились переводить «воздух» из одного пузыря в другой. Но ведь достаточно очевидно, что этот процесс кончится просто тем, что вместо многократного лопания пузырей получится один огромный бабах. Последний раз пузыри прокалывали как раз в 70е — это хорошо на этом графике видно:
                                            А дальше — 40 лет «воздух» в пузыри только закачивался. А когда вроде как дошли до предела, до нуля… придумали как закачать ещё. Но это не значит, что его туда можно закачивать вечно. Просто если его лопнуть сейчас, то Америка повторит судьбу Великобритании, которой пришлось уйти почти из всех своих колоний. А если оттянуть ещё лет на 20 — то тут и до 1792го года можно доиграться.


                                            1. u010602
                                              03.05.2019 11:38

                                              Ну давайте я еще раз скажу, если отрасль хавает, а вы хотите всех убивать, за кривую архитектуру — то проблема у вас, а не у людей.

                                              Если вы такой умный, почему бедный? Почему ваши продукты не захватили мир используя верную архитектуру и ваше знание ПК?

                                              Вы же понимаете, что это начинает дурно пахнуть комплексом непризнанного гения. А все не признанные гении находятся в разрыве с реальность, им кажется что люди должно быть важно одно, а им на самом деле важно другое.

                                              Про то, что Америка вот вот развалится, я слышу из русскоговорящих дикторов всю свою жизнь, а она все крепче и крепче, и похоже скоро развалятся все остальные.

                                              В США машину продают или выбрасывают через 2-3 года эксплуатации, для них там не проблема выкинуть пикап и купить евро-запорожец с пачкой сока вместо двигателя. Какой именно вы хотите им урок преподать, мне не ясно. Расходы на бензин в 100 баксов или 200 баксов в месяц, при доходе в 4000, не так существенны, как вы думаете, чтоб был эффект шока.

                                              Крайний пузырь был не в 70е. Биткоин в этом году. МММ в 90х. Наверняка были и другие, я просто не слежу.

                                              Ладно это уже дикий офтоп, предлагаю его закрывать. Я ваше мнение не пойму и не приму, уж простите. А давать вам повод лишний раз писать про конец света не хочу.


                                            1. sumanai
                                              03.05.2019 12:00

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

                                              Вот я знаю, и что? Клепаю сайтики на PHP, потому что мне за это платят. Больше скажу — эти сайтики в основном на 1С-Битрикс, который прямо подталкивает к запросам к БД в цикле, чего я, и только я из всей команды, стараюсь избегать. И платят мне меньше, чем тем, кто этой фигнёй не забивает себе голову, потому что они работают быстрее.


          1. atemik
            01.05.2019 01:06

            Ограничение — это исключительно политика Intel и существующие технологии памяти. Как только десктопное железо начнёт понимать Registered модули — планка взлетит. Есть, как обычно, один нюанс — оно чутка медленнее. Ну и Intel надо как-то разводить продукты по сегментам рынка.


      1. DrPass
        29.04.2019 14:18

        Почему они ставят предел вроде 16 Гб, если без особых затрат можно повысить его до 128-256 Гб?

        Начиная с Core первого поколения, контроллер памяти сидит в процессоре, поэтому это уже не ограничение материнки или чипсета. Кстати, потому и у автора статьи получилось — хотя материнка не знала ничего про более ёмкие модули памяти, изначально заложенный запас адресных линий в контроллер памяти Core i5 позволил расширить память больше, чем предполагалось спецификацией.


        1. kdekaluga
          30.04.2019 11:53

          Может же физически не хватать адресных шин на плате. Если плата поддерживает 8 Гб двумя модулями по 4, ей надо только 33 — 3 — 1 = 29 адресных шин. Данная плата поддерживает 8 Гб и одним модулем, поэтому имеет 33 — 3 = 30 адресных шин. Это позволяет ей адресовать и 2 планки такого объема за счет двухканальной работы. Предполагаю, 16 в данном случае — это предел.


          1. DrPass
            01.05.2019 02:22

            Да, 16 — это предел для контроллера памяти Core первого поколения. Но насчет 30 адресных шин вы загнули, модуль DDR3 имеет только 16 адресных шин. И насколько я знаю, заводятся они все, это уже контроллеру памяти отдаётся на откуп, какие из них использовать.


            1. kdekaluga
              01.05.2019 12:53

              Хм, логично, динамическая память адресуется столбцами и строками, поэтому физически шин надо в два раза меньше, забыл.


      1. dartraiden
        29.04.2019 15:32

        если без особых затрат можно повысить его до 128-256 Гб?

        Видимо есть какие-то ограничения на объём памяти в одном канале. То есть, либо надо увеличить количество каналов (что на десктопе означает переход в HEDT-сегмент, ибо у обычного мейнстрим-проца этих каналов два), либо перейти на буферизованную память, что опять же выводит нас из мейнстрима в сегмент серверных процессоров.

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


        1. atemik
          01.05.2019 01:08

          Не только ASUS, банальный Mac Mini 2018 умеет 64Gb на двух каналах по одному слоту. Дорого только очень.


      1. nidalee
        30.04.2019 11:32

        Да ладно, у нас до сих пор такие нелепые вещи, как таблицы совместимости памяти существуют, что уж там говорить о поддерживаемых объемах.


        1. SandroSmith
          02.05.2019 17:32

          Таблицы совместимости — это всего лишь список того, что производитель, условно, протестировал лично и гаранитрует, что оно будет работать. Он достаточный, но не необходимый.


    1. BaLaMuTt
      29.04.2019 14:17

      С зарезервированной памятью в 10-ке можно и с абсолютно исправными модулями памяти столкнуться. Лечится перестановкой модулей между слотами.


      1. aik
        29.04.2019 14:18

        Модули памяти были исправные. И на другой материнке нормально себя вели. А на этой «установлено 8, доступно 4».


        1. AntonAlekseevich
          29.04.2019 15:05

          А в msconfig лазили? Я помню есть там ограничитель на максимальный объем.


          1. aik
            29.04.2019 15:09

            Стояло два модуля по 4 гига, было видно все 8.
            Принесли из магазина новые, воткнули — стало «8 (доступно 4)»
            Воткнули старые — вернулось 8.


      1. Alexufo
        29.04.2019 15:58

        на некоторые ставить нужно еще в порядке убывания, то есть 8-4 Но не 4-8


    1. ROXTON
      29.04.2019 15:31

      Так что приколов с памятью и windows в этой жизни довольно много.

      На материнке Gigabyte Sniper G1 z87 так же была проблема с «зарезервированной» памятью. Пробовал менять планки памяти, менять порядок в слотах, обновлять биос, менял видеокарту, продувал и чистил слоты, переустанавливал систему- в любом случае около 2ГБ оставалось зарезервированным. Сами планки проверял на другой системе- все нормально. Естественно пробовал нагуглить решение- безрезультатно. Дело было в 2014 году, решил что дело в самой материнке,- пришлось смириться что доступно минус 2 гигабайта оперативки, а потом я и вовсе отдал плату родственнику.


      1. SandroSmith
        02.05.2019 17:36

        У меня в похожем случае выяснилось, что эта память выделяется встроенной видяхе. Даже несмотря на наличие установленной дискретной. И изменить это можно было соответствующим пунктом БИОСа.


    1. DistortNeo
      29.04.2019 21:22
      -2

      Ещё винда любит отрезать память со словами «зарезервировано для оборудования». Обычно это встречается на 32хбитных ОС в районе 2-2,5 гигабайт. Хотя ОС и способна использовать 3,25-3,5, но в реальности использует только два. Иногда лечилось заменой того девайса, который с памятью мутил, но чаще проще 64хбитную ОС поставить было.

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


      1. khim
        29.04.2019 22:13
        +1

        Это было сделано из маркетинговых соображений. Особых проблем обеспечить доступ ко всей памяти в 32-битном режиме нет (кроме кривой работы некоторых драйверов в режиме PAE), но куда выгоднее заставить пользователя купить новую версию ОС.
        Офигительная логика. С тем же успехом можнос сказать, что проехать от Берлина в Шанхай на поезде — не проблема, нужно только кое-где заменить ЖД-колею.

        Вы хотя бы представляете какое количество железок за десятилетия поддержки Windows разные производители навыпускали — и какой процент среди них поддерживает PAE? С учётом разного «странного» китайского оборудования?

        Да, действительно, если сделать поддержку PAE во всех драйверах — проблем не будет… вот только сделать это куда сложнее, чем поддержку 64-битных OS: тот факт, что 64-битный драйвер — совсем другой людьми как-то осознётся, а вот то, что проблема в том, что какая-нибудь странная примочка не работает с PAE — они признавать не захотят от слова вообще. И будут обвинять Microsoft во всех грехах.

        Нафик-нафиг. Хотите больше 2GB — ставьте 64-битную OS. PAE — это костыль, который за большие деньги прикрутили к дорогущим машинкам в своё время. Советовать его использовать на дескстопе — это чистой воды вредительство.


        1. catharsis
          30.04.2019 00:51
          -1

          del (тут был вопрос почему в Linux нет проблем с PAE)


          1. khim
            30.04.2019 01:02

            Linux «почему-то» не поддерживает никакого интерфейса, позволяющего создавать бинарные драйвера.

            И теперь вы знаете почему: изменения в железе, зачастую, взаимосвязаны — и другой режим работы CPU может, внезапно, потребовать изменений в исходниках драйверов, написанных для какого-то устройства десятилетней давности и с тех пор не менявшегося.

            Можно долго обсуждать «за» и «против» двух подходов, но в сухом остатке простая вещь: для кучи разных «странных» железок Linux-драйверов нет и никогда не будет — но зато можно использовать PAE. Windows-драйвера есть — но зато поддержка PAE превращается из «небольшой доработки» в логистическую проблему чудовищных масштабов…


            1. catharsis
              30.04.2019 01:14

              как посмотришь на DKMS, вообще непонятно, как Windows удается сохранять бинарную совместимость с когда-то давно для пред-предыдущей версии однажды собранными драйверами.
              > для кучи разных «странных» железок Linux-драйверов нет
              для периферии да, а если вся система странная, Linux завести может быть проще (как например в статье).


              1. khim
                30.04.2019 01:49

                как посмотришь на DKMS, вообще непонятно, как Windows удается сохранять бинарную совместимость с когда-то давно для пред-предыдущей версии однажды собранными драйверами.
                А ей и не удаётся. Я видел драйвера, которые прекрасно работали, скажем, с Windows XP SP1, но не работали с Windows XP SP3 (это было лет 10 назад, когда я обнаружил этот реликт и спросих почему он не обновлён… оказалось, что плата видеозахвата с Windows XP SP3 не работает).

                Однако они стараются.

                для периферии да, а если вся система странная, Linux завести может быть проще (как например в статье).
                Обратная сторона той же медали, собственно.


            1. catharsis
              30.04.2019 01:17

              можно примеры «странных» железок без Linux-драйверов, кроме ноутбуков?
              Работаю с Linux, остальных железок не замечаю


              1. khim
                30.04.2019 01:52

                Любое старьё. Начиная от Win-принтеров, Win-сканеров и Win-модемов и кончая всяким промоборудованием.

                В последнее время скорость компьютеров выросла настолько, что всё это сегодня удаётся повесить на USB шину, так что проблем с драйверами стало резко меньше… но во времена, когда 32-битные OS были актуальны — это было огромной проблемой.


              1. oldschoolgeek
                30.04.2019 11:19

                Внешний USB Wi-Fi адаптер TL-WN822N. Формально драйвер под Линукс есть на сайте производителя, но last time I checked, оный драйвер наотрез отказывался собираться из исходников под дистрибутив Manjaro. Причём, на форуме поддержки производителя были аналогичные жалобы, на который производитель отвечал в духе «не наши проблемы, поддерживаем только те дистрибутивы, которые указаны на сайте».

                Благо, в AUR удалось найти драйвер под похожую железку на том же Wi-Fi чипе, который благополучно собрался из исходников и завёлся с минимальными танцами с бубном.


                1. RussianNeuroMancer
                  01.05.2019 00:30

                  rtl8xxxu должен нормально работать с третьей и четвёртой аппаратными ревизиями адаптера (первая и вторая поддерживались ath9k_htc ещё во времена Linux 2.6.32). Его включили в апстрим начиная с Linux 4.4 (январь 2016 года) но после этого весь 2016 год его активно допиливали. Если судить по github.com/torvalds/linux/commits/master/drivers/net/wireless/realtek/rtl8xxxu то примерно с Linux 4.10 его правили уже по мелочам (не так, как в 2016) так что, я полагаю, как минимум с 2017 года этот драйвер стабилен и никакой драйвер из AUR не нужен.

                  Сверить usb device id можете здесь:

                  github.com/torvalds/linux/blob/307b00c5e695857ca92fc6a4b8ab6c48f988a1b1/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c#L6335

                  github.com/torvalds/linux/blob/307b00c5e695857ca92fc6a4b8ab6c48f988a1b1/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c#L6363


  1. Revertis
    29.04.2019 12:37

    Теперь кто-то должен пойти дальше и пропатчить BIOS на материнке! :)


  1. norguhtar
    29.04.2019 12:39

    Действительно ли материнская плата аппаратно зашита смотреть на эти адреса для PCI или что-то ещё.

    Нет. Во времена DOS BIOS реально как-то использовался и что-то предоставлял. При загрузке же в любую современную ОС, она использует BIOS только как справочник. Все устройства инициализируются ОС.


  1. dmivaler
    29.04.2019 13:04

    Мисье знает толк в извращениях.
    А так, супер изыскания, а главное результат.


    1. Hlaford
      30.04.2019 11:53

      калькуляторщики, они такие


  1. take
    29.04.2019 14:54
    +1

    И все ради того, чтобы завелась ОНА. Лживая, тяжелая, с комплексами )

    Поставил + автору, просто молодец. Сталкивался с такой проблемой на Win7 — пользователь никак не хотел переходить на Linux (у нас почти весь офис на нем), но просил увеличения памяти. Ровно те же грабли. Даже не знаю что проще. Уговорить его перейти на Ubuntu или вот это вот все )


    1. vvzvlad
      29.04.2019 15:22

      Вы не автору поставили плюс, а переводчику :)


      1. DaemonGloom
        29.04.2019 16:50
        +1

        Когда перевод хорош настолько, чтобы казаться оригинальным авторским текстом — это тоже заслуживает плюса за мастерство :)


        1. Occama
          29.04.2019 18:02
          +3

          Я вот, если честно, читал, не посмотрев, есть плашка или нет, но перевод чувствуется =) Тем не менее, разумеется, статья прекрасная, и перевод вполне хорош.


  1. N1ghtwish
    29.04.2019 15:08
    +1

    4-х ядерные процессоры LGA1156 поддерживают 8Гб модули памяти, это известно уже давно. И дело тут не в БИОСе, а в том, что Серверные процессоры, типа Xeon X3440 и 4-х ядерные десктопные (типа i7-860S) основаны на одном и том же кристалле. На платах типа ASUS P7P55D и GIGABYTE GA-H55M-S2, все работает без кастылей из коробки.


    1. powermaster2000
      29.04.2019 21:15

      Подтверждаю. Процессор 1-st Gen Core i7-860, плата ASRock H55M (указанный в Specs MB максимальный объем — 8 ГБ), версия BIOS последняя (2.20), 2 слота под ОЗУ. Установлен максимально поддерживаемый (опять-таки, судя по спекам) данным ЦПУ объем в 16 ГБ (2 x 8 Гб DDR3-1600). MemTest проходит полностью без ошибок (гонял целую ночь), Win7 и Win10 тоже без каких-либо даже намеков на проблемы.


      1. 0lom5zhdovdv
        30.04.2019 05:25

        Я как то дал i7-860 4 модуля по 8Гб, биос на интеловской оригинальной материнке отрапортовал 32Гб, но Windows падала. Мемтест при проверке, когда добирался до «нужного адреса» убивал видеокартинку со спецэффектами. Жаль, что тогда мне не попалась эта статья…


    1. KoToSveen
      30.04.2019 02:51

      P55-UD3L + Xeon X3470
      MB по спецификации поддерживает 16 Гб, CPU — 32Гб.
      Во все 4 слота я воткнул планки по 8Гб.
      При запуске Win10 система начала тормозить, но BSOD'а не было.
      В msconfig — Загрузка — Дополнительные параметры поставил чекбокс «Максимум памяти», значение выставилось «0» после перезагрузки, но в системе из 32 стало доступно 31,2 Гб. Тормоза пропали.


      1. icCE
        30.04.2019 04:15

        Зависит от реализации матери как не странно, а точнее и bios.
        Как вы верно заметили хватает обычно msconfig, что бы понять сколько памяти будет видно в реальности. Мне i7-860 повезло, видно без бубна все 32gb.

        Чаще встречаются владельцы ноутов, которые пытаются поставить много памяти.
        Там и тормоза и BSOD, когда памяти больше 12 gb.
        В итоге опять же хватает подобрать значение в msconfig — например 16128


    1. zevilz
      30.04.2019 18:59

      Случайно не в курсе, как дела с этим на ASUS P7P55D-LE? Сейчас стоит Xeon X3460. Увидел по спецификациям, что он поддерживает до 32гб оперативки, но пока не рисковал затариваться 8гб планками. С одной 8 гиговой проверял, все ок.


  1. chyvack
    29.04.2019 15:24

    пишу этот комментарий с компа i5-750 на материнке ASUS P7P55D + 32ГБ DDR3


  1. Gamliel_Fishkin
    29.04.2019 15:59
    +1

    Слышал мнение, что в винде типа всё работает «искаропки», а в Линуксе требуются танцы с бубном. А вот нет! — Linux тихонько ворчит, но вполне себе работает, а винда без танцев с бубном хлопается в обморок.


    1. DMGarikk
      29.04.2019 16:40
      +2

      а это еще вопрос, хорошо или плохо что линукс ворчит но работает.
      так вот поставит ктонить на важный сервер (ну гипотетически) чтото такое… оно ворчит но работает… а потом бац и рухнет, кто отвечать за это будет?
      А винда более формально, криво? значит никак.


      1. mikechips
        29.04.2019 20:13

        Значит этот "кто-нибудь" нехороший человек, раз ему ворчит, а он игнорирует. Но не следует винить за это Линукс)


        1. SandroSmith
          02.05.2019 17:46

          Затем вернулся в Linux и просмотрел всю информацию о запуске ядра с помощью команды dmesg, уделяя особое внимание E820 и ACPI. Вот что нашлось:

          А вы тоже при кадой загрузке вычитываете все мегабайты verbose логов? Сильно подозреваю, что нет. Рискну предположить, что там можно найти ещё не один десяток таких warning'ов, которые на стабильность не влияют никак.
          Так что тут скорее ситуация не «ворчит», а «тихонько бубнит под нос, из-за кулеров уже не слышно».


      1. Gamliel_Fishkin
        30.04.2019 23:07

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


    1. dartraiden
      29.04.2019 16:44
      +3

      Бывает и наоборот. Например, в некоторых случаях при разгоне по шине официально неразгоняемых процессоров Intel 6 поколения. Если при этом не отключить турбо-буст, ядро Linux впадает в панику и кричит о рассинхронизации ядер процессора. А винда работает.

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


    1. mkovalevskyi
      29.04.2019 16:46

      не все, а все сертифицированное. в этом ее как преимущество, так и недостаток.


    1. aik
      29.04.2019 16:48
      -1

      У линукса обычно больше инструментов для того, чтобы добиться странного.


      1. mikechips
        29.04.2019 20:14

        Это называется кастомизация! :)


        1. aik
          30.04.2019 01:36

          Линукс позволяет всё настроить под себя. И вы будете всё настраивать. (с) анекдот

          Кастомизация в базовых задачах далеко не всегда необходима. Нередко для запуска какого-нибудь несложного девайса надо станцевать танец с бубнами. Но тогда, когда надо именно «добиться странного», у линукса конкурентов немного.


          1. mikechips
            30.04.2019 01:43

            Базовые программы вроде браузера, телеграма, LAMP и phpStorm поставил простыми apt-get'ами. Но вот с остальным возиться было сложнее. Особенно раздражает, что даже нативную игру на Linux запустить сложнее, чем такую же на винде — куча зависимостей, которые надо ставить самому, а иногда догадываться методом Ванги, чего ж не хватает. А с wine виндосовские игры идут на ура!
            Особым весельем было ставить Java и разбираться с версиями. Mama mia...


            А что значит "добиться странного"? Фраза понятна, я о том, чем здесь это отличается от странного на винде?


            1. aik
              30.04.2019 01:54

              Инструментов обычно больше. Можно оставить только самый минимум для этого странного. Windows (не Server) — это всё же обычная десктопная ОС и за пределами этого зачастую чувствует себя неуютно. А линукс можно на любую табуретку поставить, если необходимость будет.


              1. khim
                30.04.2019 02:08

                А линукс можно на любую табуретку поставить, если необходимость будет.
                Windows тоже. Только результат будет… вот тут можно почитать.


                1. aik
                  30.04.2019 02:28

                  У windows iot от настоящей windows только название и логотип.
                  А так это именно что-то странное.


            1. RussianNeuroMancer
              01.05.2019 00:36

              > куча зависимостей, которые надо ставить самому, а иногда догадываться методом Ванги, чего ж не хватает

              Поддерживаемый игрой дистрибутив указан в системных требованиях.


    1. ClearAirTurbulence
      02.05.2019 05:10

      Ну так автор хотел странного. В нормальной жизни все иначе.


  1. devlind
    29.04.2019 17:06

    Есть ли способ, скажем, физически поменять чип оперативной памяти, который распаян на материнке ноута с 8гб на 16? Будет ли это работать?


    1. N1ghtwish
      29.04.2019 18:15

      На каком-то ремонтном канале меняли.


    1. Kobalt_x
      29.04.2019 18:15

      не всегда, если в bios ноута зашиты использования предопределенных профилей (spd/xmp не оч помню какие именно). Исходов может быть два: не заведется вообще(если мать не поддерживает профили из spd) заведется на минимальных частотах и таймингах.


    1. thealfest
      29.04.2019 18:37

      Кроме замены чипов нужно еще перепрошить spd, иначе будет виден старый объем.


    1. JerleShannara
      29.04.2019 19:08

      Если умеете патчить BIOS/UEFI(как выше написали — надо зашитые SPD параметры поправить), чипсет материнской платы умеет этот объём(а то может он аппаратно только 8 может), а на самой материнской плате разведены линии на эти самые 16Гб (к примеру она умеет жить с dual-die памятю и к каждому чипу лезет по две линии CS/CK/CKE), то это вполне себе будет работать.


  1. 3aBulon
    29.04.2019 17:14

    Раз уж тут про память спрошу про память с алиэкспресс «только для АМД». Это почему? И почему она работает на нфорсе чипсетах под Интел(ну так пишут)?


    1. flacoshinobi
      29.04.2019 18:05
      +4

      На некоторых старых AMD чипсетах использовался дополнительный бит адресации. На Intel если и получится запустить, то с вдвое урезанным объемом


  1. ktod
    29.04.2019 17:43

    Еще бы lspci -vvv глянуть, чтоб понять, что там на самом деле с ресурсами.


  1. JerleShannara
    29.04.2019 18:11
    +2

    А это известная грабля. Винды очень и очень сильно верят в правдивость ACPI, единственная более ACPI-упёртая система — это эппловская макось. Кроме того в ACPI вообще есть наборы таблиц и правил под конкретные операционные системы (тоесть Windows 98, 2000, XP, 7 получат совершенно разные таблицы, линуксовая там тоже есть, но она как правило самая ущербная, т.к. линукс спокойно кладёт на ошибки в ACPI). У пользователей и разработчиков coreboot в начале часто возникает вопрос — «А почему у меня линукс прекрасно работает, а винды падают в бсод», на который идёт ответ «Перепишите вашу реализацию APCI»


    1. symbix
      30.04.2019 00:44
      +1

      единственная более ACPI-упёртая система — это эппловская макось

      Ну это как раз легко объяснимо, с чего бы Эпплу не верить самому себе?


      1. JerleShannara
        30.04.2019 17:25

        Зато как у любителей хакинтоша от этого иногда пригорает.


        1. mkovalevskyi
          30.04.2019 18:16

          у любителей — возможно. у тех кто таки понял как это счастье работает — нет )


  1. lazy-fox
    29.04.2019 18:54
    +1

    Со времён разделения памяти на внутреннюю и внешнюю (что бы компьютер можно было отключать не теряя полученную при работе информацию) задавался вопросом о применении библиотечного способа каталогизации раздельно хранимой информации. Linux как то ближе оказался к такой концепции так как «действие — файл», windows — всё же строился как «ось для домохозяек или секретарш».

    Технически всевозможные таблицы строятся от типа устройств, а не от типа и актуальности данных.

    Давно перешёл на NVMe как внешняя память в рабочей станции. Это быстрый свап и расширение памяти хоть до 512 гигов, а для менее актуальных данных есть NAS.

    BIOS вообще давно флешка.
    Всё что на ней записано можно хранить на винте и читать операционкой перед загрузкой. В первой строке дату/время последнего изменения, во второй ID проца и материнки, затем остальная периферия и конфиги. Если в системе окажется несколько винтов — читаем со всех и загрузчиком спрашиваем пользователя откуда грузить.
    Безопасность на уровне модификации загрузчика.
    Сетевую загрузку можно вообще целиком повесить на DHCP.

    В сочетании с LVM и сетевым хранением это могло бы решить множество проблем загрузки и конфигурирования в различных операционных системах.


    1. aik
      29.04.2019 18:58
      +1

      Давно перешёл на NVMe

      Для системного диска не вижу особой разницы с SATA.

      BIOS вообще давно флешка. Всё что на ней записано можно хранить на винте и читать операционкой перед загрузкой

      Так делали когда-то, у меня есть ноут, у которого BIOS Setup был записан в специальном разделе диска. Правда того раздела на винте давно уже нет и попасть в настройки невозможно.


      1. JerleShannara
        29.04.2019 19:10

        Если HP ещё до конца не убили останки компака, то на их сайте можно скачать эти «Три дискеты» для входа в сетап.


        1. aik
          29.04.2019 19:13

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


          1. JerleShannara
            29.04.2019 19:21

            Мда, а это проблема, то железо ещё не умело в загрузку по USB


            1. aik
              29.04.2019 19:27

              Да оно и с компакт-диска не грузится у меня. А usb просто нет.


            1. lazy-fox
              29.04.2019 19:29

              Кстати многие сервера не имеют сидюков и дисководов. Мастхэйв юсби сидиромы, флопы и конечно zalman zm-ve200se. Но сам факт что такое с биосом практиковалось интересен.


              1. JerleShannara
                29.04.2019 20:02

                Compaq этим страдал с 80286 по Pentium 3. И с USB там грузиться научились только к концу этого самого Pentium3.
                Сама утилита настройки у них до первого пня грузилась из под доса, далее на трех дискетах начала распространяться в виде кастрированной Windows 3.1, и вот эта версия уже умела сама поставиться на жесткий диск. Настроек там было нуль, единственное полезное — это в серверах и проф. рабочих станциях управлять raid контроллером (полноразмерные сказёвые лошади, на плате даже была планка для упора в нутро корпуса) нормально можно было только из под неё.


      1. lazy-fox
        29.04.2019 19:23

        Для системного диска не вижу особой разницы с SATA.

        SATA — интерфейс наследует ряд древних ограничений связанных с представлением накопителя как диска. Интерфейсы M2 и PCIe не имеют такого представления и ближе по организации к шине памяти. Системный диск как раз отвечает за время загрузки системы и приложений (видеомотнажа и игр), а в винде это место ещё для свапа и гибернации.


        1. aik
          29.04.2019 19:26

          То-то время загрузки винды на nvme и на sata различается на проценты. А совсем не в разы, как следовало бы ожидать по скорости работы.


          1. lazy-fox
            29.04.2019 19:41
            +2

            Может основное время загрузки — это не потоковое чтение, а всякие там инициализации железа


            1. DrPass
              29.04.2019 22:37

              Именно так, потому и разница в скорости загрузки между SATA и NVMe может и ощутима на тестах, но чисто субъективно вы её вряд ли почувствуете. M.2, кстати, это всего лишь форм-фактор. Накопители M.2 бывают как NVMe, так и SATA.


        1. 5nake
          29.04.2019 20:36

          M.2 — это не интерфейс.
          О каких ограничениях речь?


      1. slonopotamus
        29.04.2019 19:27
        +1

        Для системного диска не вижу особой разницы с SATA

        Пропускная способность и количество IOPS. Потолок SATA 3 — около 600МБ/с и 100K IOPS. SSD давным давно упёрлись в эти ограничения.


        1. aik
          30.04.2019 01:17

          Для системного диска вы эту разницу только в тестах увидите. Большая скорость становится заметна тогда, когда вы начинаете серьёзные объёмы данных обрабатывать, а не просто кэш браузера на диске хранить.


          1. sHaggY_caT
            30.04.2019 07:40

            У моего ПК(TR 1920x) 32gb рам DDR4 3200Mhz (4 планки по 8 гигов). Но 32 мне мало, а когда ПК покупался, RAM как раз стоила дофига (сейчас подешевела). Пробовала складывать swap на обычный NVME, тормозит, да и ресурс диска жалко. Купила optane, теперь когда машина уходит в SWAP на гигов 20, из-за низкого латенси оптейна, это практически незаметно.


        1. Am0ralist
          30.04.2019 10:34

          Но NVMe же вроде как греются и тротлят с падением производительности? А в ноутах ещё и радиатор доставить не получится…


          1. slonopotamus
            30.04.2019 13:02

            Но NVMe же вроде как греются и тротлят с падением производительности?


            1. Вы предлагаете чтобы я искал этому пруфы?
            2. Ну так остужайте их, какие проблемы.


          1. iproger
            01.05.2019 09:31

            Поэтому на них и клеятся наклейки. На новых материках можно посмотреть.


    1. 5nake
      29.04.2019 20:32

      Всё что на ней записано можно хранить на винте и читать операционкой перед загрузкой.

      В BIOS есть, например, код, отвечающий за обнаружение и первичную инициализацию контроллеров. Как вы его собираетесь на винте хранить?)


      1. mkovalevskyi
        29.04.2019 22:52

        хранить-то легко.
        вот с использованием могут возникнуть некоторые проблемы…


      1. lazy-fox
        29.04.2019 23:30

        Если «винт» на шине PCIe, то он уже скорее регистры памяти чем диск за неким контроллером.
        Горячая замена и plug and play как раз позволяют обнаруживать и инициализировать по ходу.


        1. dmitrmax
          30.04.2019 01:19

          Давайте начнём с самого начала. Вот вы нажали кнопку «Вкл» на системном блоке и что происходит дальше?


        1. 5nake
          30.04.2019 02:13

          Хорошо, шина PCIe. Эту шину нужно инициализировать? Или как только мы нажали кнопку включения, то сразу же нам становится известно (откуда?) по каким адресам располагаются устройства подключеные к шине?


          1. lazy-fox
            30.04.2019 15:52

            Нумерацией и конфигурированием всех устройств PCI ...
            занимается хост — «хозяин» шины PCI. Роль хоста, как правило, выполняет центральный процессор, связанный с шиной PCI главным мостом, от которого и начинается нумерация шин. Конфигурирование всех устройств шины возможно только со стороны хоста — в этом заключается его особая роль. Ни с одной из шин PCI ни один задатчик не имеет доступа к конфигурационным регистрам всех устройств PCI, без чего полное конфигурирование недоступно. Даже с нулевой шины PCI задатчику недоступны конфигурационные регистры главного моста, а без доступа к ним невозможно запрограммировать распределение адресов между хостом и устройствами PCI. С других шин PCI возможности доступа к конфигурационным регистрам еще скромнее. Источник


            1. 5nake
              30.04.2019 16:17

              Давайте вернёмся к началу. Что вы имели ввиду под

              BIOS вообще давно флешка. Всё что на ней записано можно хранить на винте и читать операционкой перед загрузкой.
              ?
              Если вы хотите сказать что bios не нужен, тогда объясните, пожалуйста, как открыть winrar.rar загрузить ОС с винта (хм, с какого? у нас их N), про который мы ничего не знаем (не знаем где он, не знаем есть ли он вообще)?
              Как без ПО, которое вшито в ПЗУ BIOS'а, провести self-test, обнаружить все хардварные компоненты, проинициализировать их, считать загрузчик ОС в память и передать ему управление?

              Если вы имели ввиду что-то отличное от «bios не нужен», тогда объясните, пожалуйста, зачем хранить на винте то, что хранится в bios и зачем это считывать ещё раз при загрузке ОС?


              1. lazy-fox
                30.04.2019 17:22

                Давайте вернёмся. Пост целиком:

                BIOS вообще давно флешка. Всё что на ней записано можно хранить на винте и читать операционкой перед загрузкой. В первой строке дату/время последнего изменения, во второй ID проца и материнки, затем остальная периферия и конфиги. Если в системе окажется несколько винтов — читаем со всех и загрузчиком спрашиваем пользователя откуда грузить.

                Идея заключалась в развитии процесса включения компьютера так как BIOS:
                1. выполнял проверку работоспособности устройств
                2. позволял хранить настройки в энергонезависимом ПЗУ
                3. искал и загружал в оперативную память код загрузчика

                Теперь:
                Устройства могут быть не известны биосу и он не может проверить их работоспособность, шины стали plug and play и их устройства инициализируются не биосом. Диски уже не круглые и в них нет секторов, дорожек, блоков… Есть адресная шина и производитель может использовать её как таблицу для хранения информации. Как решать конфликты — дать выбор пользователю. Что делать с безопасностью (воткнет злодей флешку и загрузится) — загрузчик работает от имени системы, но редактируется администратором. В таблице можно определить приоритет загрузки.

                Формально uefi давно заменила bios.

                Загрузчик GPT пишет на каждый физический диск таблицу разделов с guid,
                Существует GUID: BIOS Boot partition (догадайтесь для какой цели).

                И главное bios — по сути микропрограмма. Её цель была выполнить некоторый постоянный код, зашитый на заводе. А автор благодаря гибкости линукса смог подменить результат работы инициализации биоса. С виндой такой фокус было бы устроить сложнее. И я за гибкость. Насколько больше совместимых устройств окажется, если производитель перестанет решать что он истина в последней инстанции. Пусть публикует HCL, сам решу.


                1. 5nake
                  30.04.2019 21:10

                  Устройства могут быть не известны биосу и он не может проверить их работоспособность, шины стали plug and play
                  По-моему здесь противоречие. Устройства известны биосу, как раз благодаря PnP.

                  и их устройства инициализируются не биосом.
                  а чем же?

                  Есть адресная шина и производитель может использовать её как таблицу для хранения информации.
                  Каким образом шину можно использовать для хранения информации? оО

                  Диски уже не круглые и в них нет секторов, дорожек, блоков…
                  Что значит уже не круглые? Куда делись все HDD?

                  Что делать с безопасностью (воткнет злодей флешку и загрузится) — загрузчик работает от имени системы, но редактируется администратором. В таблице можно определить приоритет загрузки.
                  В какой таблице?

                  Формально uefi давно заменила bios.
                  UEFI заменяет BIOS, ок. Но это опять микропрограмма, в ПЗУ. Те же яйца, только круче. При чём тут UEFI? :)

                  Насколько больше совместимых устройств окажется, если производитель перестанет решать что он истина в последней инстанции.
                  Производитель предоставил решение, которое производит первоначальную настройку и инициализацию оборудования (ДО загрузки ОС), запуск ОС и передачу управления. Какая ещё истина в последней инстанции, если есть возможность править ACPI?

                  Определение процессора? Инициализация чипсета? Таблица векторов прерываний? Это кто будет делать? В конце концов кто будет считывать загрузчик с жёсткого диска?
                  Как это у вас должно происходить я так и не понял.


                  1. khim
                    30.04.2019 22:23

                    Оставьте вы это дело. Говорить с человеком с клиповым сознанием — это только время тратить.

                    Правильный вопрос, собственно, прозвучал выше: что происходит, когда вы нажали кнопку и комптютер включился. Вот запустился процессор, никакой программы в нём нет и быть не может (даже микрокод в современные процессоры нужно какждый раз при загрузке загружать, так как КМОП — это, мягко говоря, не то же самое, что NAND), чипсет не работает, память к использованию не готова, где находится оборудование и что с ним можно делать — никто не знает… где возьмутся таблицы и кода, в которые процессор будет смотреть и который он будет выполнять?


                    1. mkovalevskyi
                      30.04.2019 22:32

                      Там же в конце написано — он все сам решит. В принципе, если я правильно понимаю, на заре компьютеро строения, оно как-то так в полуручном режиме и работало.
                      Может у человека ностальгия…


                      1. khim
                        30.04.2019 22:46

                        В принципе, если я правильно понимаю, на заре компьютеро строения, оно как-то так в полуручном режиме и работало.
                        На заре компьютеростроения программу с пульта кнопками набирали. А уже в 60е появилась «флешка». Примерно такая:
                        Там BIOS. Только он IPL тогда назывался…


                  1. lazy-fox
                    30.04.2019 23:50

                    Диски hdd пока не делись, но это вопрос времени. Скоро это будут различные типы микросхем. С различными временем хранения и доступа.


                    Последний вопрос: вставляя флешку во время работы кто её инициализирует?


                    Уверен в ответе не найдем слова bios. Там будет hal и что то о контроллере шины usb. Хотя конечно ваша правда что предложенная схема не распространена (хотя и встречалась как выяснилось). Просто для меня казалось архаичным выделять отдельный камень для этой цели. Помню перепаивал в материнках биосы с интегрированной батарейкой в середине девяностых. Уже тогда она смущала на фоне остальной схемотехники.


                    1. khim
                      01.05.2019 01:31

                      Уверен в ответе не найдем слова bios.
                      Слов BIOS на найдём. Зато найдём слова UEFI, ME (у Intel, понятно, у AMD это будет PSP) — которые могут работать или в SMM или вообще на отдельном ядре (зачем, как вы думаете, AMD потребовалось лицензию в ARM покупать? чипы для мобилок она не делает).

                      А вот уже после того, как всё это отработает — вы получите доступ к HAL и всему прочему.

                      От замены акронимов суть не меняется: ваш компьютер по прежнему контролируется софтом из флешки в первую очередь — а уж потом всё остальное.

                      Просто для меня казалось архаичным выделять отдельный камень для этой цели.
                      Вы так и не объяснили какую вы видите альтернативу. Прикрутить тумблеры и набирать программу для обращения к HDD из тетрадки, как в 50е годы делали? Я боюсь набирать тумблерами мегабайты может долго оказаться…


  1. WeltRogg
    30.04.2019 00:04

    А зачем такая старая мать. Современные и так дешевые, как раз пару недель назад взял с поддержкой 64 и уже 32 поставил, потом еще столько же поставлю. Правда пришлось и все остальное заменить, но это того стоит.


  1. composer_ondo
    30.04.2019 01:50
    -1

    image


  1. Dioxin
    30.04.2019 07:18

    Мы с товарищем недавно решали такую же проблему.
    Все решилось проще — Xeon за 500 руб с али.


    1. BaLaMuTt
      30.04.2019 07:33

      В вашем случае скорее всего какой-нибудь i3 стоял. В случае с i5-750 и другими четырёхядерниками вроде как смысла в замене на Xeon ради увеличения объёма памяти нет.


      1. Dioxin
        30.04.2019 07:35

        Да, трешка стояла. И тем не менее есть подозрение что контроллер ОЗУ в серверном процессоре более продвинутый.


  1. t0_ot
    30.04.2019 07:25

    «Ничего непонятно, но очень интересно».
    P. S. А можно посоветовать литературу по теме Биоса, работы компьютера, запуска ОС и и. д.? Чувствую не хватает мне теории.


    1. DSolodukhin
      30.04.2019 10:37

      Очевидный Таненбаум — Архитектура компьютера.


  1. UNIm95
    30.04.2019 11:06

    А есть возможность «прокачать» поддерживаемый объём для процессора?
    У меня Core i5-460m.
    Согласно ark.intel.com поддерживаемый максимум 8Gb.


  1. 1MK-Ultra
    30.04.2019 11:37

    Не всегда любое сочетание процессор — память — материнка будет работать.