Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Рыбачь в мире, пережившем апокалипсис. Люби мутантов, ищи артефакты, участвуй в рейдах и соревнованиях. Изготавливай снаряжение, развивай навыки, поддерживай союзников и раскрывай загадки этого мира.

Аномальная рыбалка

Симуляторы, Мидкорные, Ролевые

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
4
dimond9999
dimond9999

Винда на макбук⁠⁠

1 день назад

Хочу просто поделиться, есть у меня старенький макбук 2011, система стояла Сьера, уже ничего из нового не поддерживала. Захотелось мне ее помучить и поставить что нибудь по новее, получилось что поставить могу только БигСюр, скачал, распаковал на флэшку, и решил установить на другой жесткий диск, раскрутил и поставил в макбук старый диск от моего РС с виндой, и этот гад без проблем загрузился и показывает мне рабочий стол виндовс 11. Я так и не понял как это с такой легкостью все подгрузилось.

[моё] Windows Macbook Mac Os Установка Текст
14
184
DmitriitheFals
Лига Сисадминов
Серия Кудахтеры

Импортозамещение в ИТ в РФ. Итоги 2025 или 4 года импортозамещения⁠⁠

1 день назад

Для лиги лени. Не произошло. И не планировалось.

Особенно в русскоязычном сообществе мне нравится то, что и про импортозамещение "вообще", и про переход на опенсорс, рассказывают люди, не способные выйти из vi, считающие query execution plan – ругательством, а FORCED PARAMETERIZATION – призывом демонов.
Мне же иногда пересылают ссылки на телеграм и форумы, причем такие, что по прочтении у меня глаз дергается, и начинаются флешбеки из 2015 года, рассказы одного Ильи.
Писать про это скучно, читать тоже, и вообще, «who cares where they come down? That's not my department!» says Wernher von Braun. Но, напишу. Раз в квартал можно.

Рассказы и приказы про импортозамещению идут с середины 2000х, начиная с планов, что в 2008 в России возьмут и везде перейдут на Linux. Скоро 20 лет, как переходят.

Начну с самого начала. С разработки «общей схемы» своего кремния.
Его почти нет. Почему «почти»? Потому что ядро Эльбруса, каким бы ущербным с точки зрения производительности, при использовании в гражданском секторе, оно не было, его все же разработали, и даже произвели. Дальше начинаются не озвучиваемые проблемы с мостами, QPI, и так далее. Разработчиков наградить, производство наградить, связистов не наказывать.
Не ядром единым жива вычислительная техника. Нужны контроллеры для Interconnect, нужны ASIC \ FPGA для сетей, нужны видеокарты, нужны дисковые контроллеры, нужны SSD контроллеры, и так далее, вплоть до SFP модулей.  
В мире такой разработкой занимается может по 5, может по 10, фирм по каждому направлению. Занимаются очень давно, еще до времен массовых слияния и поглощений.
Скажем, слияния тех же Burroughs Corporation и Sperry в 1986. Или AMD - Xilinx. Или делают что-то комплексное, например Apiary: An OS for the Modern FPGA.
В России этим тоже занимались. При советской власти, то есть с середины 70х развития почти не было.
Что нужно, чтобы такие люди и разработки были? Да почти ничего. В мире есть 100-200 (просто 100-200) человек, на 10-20 дизайн бюро, которые этим занимаются. 200 человек, отобранные из, условно, миллиарда населения Китая и миллиарда объединенного населения Европы и США. Всего то нужно отобрать 200 из 2.000.000.000. И немного их учить, лет так с трех. Желательно учить не учителями по $300, и не в стандартной школе. И немного передавать им производственный опыт, что было сделано, и почему. Мелочи.

Затем теоретическую схему надо переложить на кремний. Что с ним, за исключением отсутствия производства расходных материалов, производства полуфабрикатов, и производства самих станков и запчастей к ним в РФ?
Есть Микрон, и есть линии 180 и 250 нм на нем. Годятся, чтобы делать чипы для паспортов, банковские карты, карты для метро, сим карты, и так далее. Раньше, давно, могли делать первые серии Эльбрусов. Сейчас - уже не могут. Почему – потому. Автор фразы «Птичка упала за террикон» находится в местах, не столь отдаленных. Про связь какой-то птички и ASML догадайтесь сами.

Что в наличии? Есть линии, от ASML и STMicroelectronics. Громко рекламируемый ребрендинг белорусского Интеграла на 350 нм списан на склад, пока не сгниет. Как сгнила купленная еще 2006 линия AMD Fab 30 (Дрезден).

Дальше готовые чипы нужно усадить на материнскую плату, которую тоже надо спроектировать. Современные платы, а не те, на которых деды нынешних экспертов в школе играли в «Ну погоди» - это 22-26 слойные платы, которые тоже надо спроектировать, произвести, и установить на них не только чипы, но и микрокомпоненты. Про микрокомпоненты раньше в школе рассказывали – индуктивности, конденсаторы, все это. Вручную такой сборкой почти не занимаются, для этого станки есть. Еще лет 10-15 назад, бывало, и вручную ставили. Производство микрокомпонентов в РФ и вызывало грусть, и вызывает. Не само производство, а качество (и его отсутствие), и подход к поставкам, номенклатуре, итд.

Можно сказать, что «российского» в импортозамещенном железе столько же, сколько в Москвиче-3.

Закончив с железом, перейду к софту.
Пропущу такие интересные вещи как сети, межсетевые экраны, NGFW и управление ими, а точнее AI анализ трафика, системы хранения данных, и прочее железно-программное. И их возможности, и цены. Даже ролик с рассказом испанца (Хуан Хойя Борха) пропущу.

На замене софта начинается просто праздник.

Есть две большие группы людей.
Одни не могут выйти из vi, и воспринимают Excel , как тетрадь в клеточку.
Другие используют формулы, макросы, VBA, подключаемые внешние источники, AI аналитику, и теперь Python, и все внутри Excel.

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

Одни не могут пару лет купить SSD на терабайт, потому что им дорого.
Другие плачут, что 8 терабайт оперативной памяти не хватает для In-memory.

То же самое везде – Tivoli Directory Server против Samba, VIOS против KVM, Pure против Ядро, и так далее.

Первым можно хоть сейчас заменить Excel на Лексикон.Мегатаблицы.
Вторым предлагают вместо Caterpillar D11 купить отвал на джип.

Caterpillar D11

Caterpillar D11

Отвал для снега

Отвал для снега

Пропущу специализированный софт, все эти REVITы и солидолы.

Самое сладкое начинается в управлении всем этим софтом, а точнее процессами, стоящими за этим софтом. Начинаются требования не к самому софту, "чтобы работал", а к процессам, которые обсепечивает этот софт.

На все вышеперечисленное накладывается четыре фактора

Фактор первый. Смена технологического лидерства, а точнее новый передел мира. Сделка века Газ-Трубы от 1970 года закончилась. Если кто прогуливал историю, то 1 февраля 1970 года между СССР и ФРГ (капиталисты, не путать с передовым социалистическим ГДР) была подписана сделка, определившая историю Европы на 40 лет.
Европа получала газ из Сибири (и нефть, и много чего еще).
СССР получал поставки бесшовных труб большого диаметра (не умели их делать в СССР), технологии их производства, и много чего еще. В том числе технологии турбин для газоперекачки, к ним системы управления, плюс поток валюты, плюс командировки для элиты (номенклатуры) для обмена опытом.

Сейчас в Старой Европе все сложно. Настолько сложно, что достаточно посмотреть рейтинг АфД.
Производство уезжает от дорогих кадров, дорогого социального обеспечения, и налогов на поддержку всяких дармоедов, и людоедов, в Китай.
В том числе поэтому в Европе мало что можно купить. Мерседес можно. Airbus можно. Линию нельзя.

Фактор второй. Смена технологического уклада, переход от остатков четвертого технологического уклада в шестой. Паровозы, то есть автономные домашние сервисы, типа внешних USB дисков, еще ездят, но все уже централизовано, хранится в сети, и предоставляется по запросу. Если работает, а не опять упало, потому что индус, которым импортозаместили разработчика в Cloudflare, опять накосячил.
Поэтому стащить не получается.

Фактор третий. Смена поколений. 30 лет назад, когда уже не молодой Ричард Мэттью Столлман выступал за «даешь опенсорс бесплатно в массы», и проекты были попроще, и нагрузки поменьше, и код почище, и трава получше, и из Южной америки поставлялись экологически чистые продукты, а из Европы – лучшее из Грибоедова (Clavicipitaceae и Strophariaceae).

Сейчас продукты стали сложнее, нагрузка на работника повыше, и желания заработать «для себя» - побольше. Уже много лет идет отмирание опенсорса. Часть продуктов закрывается, часть переписывается с ноля (и не делается при этом лучше), часть меняет лицензии.
Разработчики уходят - Brendan Gregg announced he has resigned from Intel.
В большом ИТ идет индусозамещение.

При этом персонажи, которые уже освоили выход из vi, и даже сделали один раз
git clone https://github.com/Hello/world.1
говорят, что это же так просто, склонировали себе продукт на пару миллионов строк и переписали. Конечно просто. Взять и склонировать. И хотя бы прочитать. Включая зависимости.
Тот же KVM:
150 тысяч строк кода (и это не ядро, это сам KVM)
90 тысяч строк тестов
Это только один модуль.

Теперь сейчас еще и половину настроек k8s переписывать, для перехода с Ingress NGINX на Gateway API. Я сегодня планировал искупаться и поплавать, ну поплавал максимум в бассейне, сижу, читаю, и плачу. В перерыве плачу с бывшими коллегами, потому что у меня то только k8s, а у них еще и «импортозамещение». Истории в нем – одна удивительнее другой, а уж какие планы, ой.

Фактор четвертый. Уход с рынка ряда коммерческих продуктов

14 сентября 2022 года Microsoft обьявила про завершение жизненного цикла Exchange 2019.
14 октября 2025 года история Exchange offline закончилась, теперь только Exchange SE по подписке. Заменять его нечем в РФ, и нечем в мире.
2 октября 2025 года закончилась поддержка offline VMware by Broadcom, теперь только по подписке, и задорого. То же самое Broadcom устроила с FC коммутаторами. Чрезвычайно уважаемые люди еще тогда предвидели - будет как в Computer Associates и UCC-7 - CA-7.
Заменять Broadcom тоже нечем.

Ряда продуктов просто не существовало, и не существует, в опенсорсе. Знающие люди мне уже давно насовали ключевых слов, типа SpaceWalk:Satellite(CentOS:RHEL),  AptcacherNG, Foreman и Katello, но это очень не то же самое, чем русифицировать salt stack и назвать это импортозамещением, и не имеющим аналогов убийцей SCCM (ранее System Center Configuration Manager, теперь  Microsoft Configuration Manager).

Итоговые ошибки внедрения и тестирования «типа импортозамещения» просто не выносят из изб. Такой .. тяги и коричневых потоков не было с 6 июля 2012 года, если вы понимаете, о чем я.

Прорыв реальных новостей

Прорыв реальных новостей

О каком импортозамещении и переходах "на опенсорс" речь, если только за последний месяц случились React2Shell CVE-2025-55182 и Grafana CVE-2025-41115, какой там "контроль кода".
И это в масссово используемых продуктах, уже повсеместно.

Нельзя просто так взять продукт для малого и очень малого бизнеса, хоть  Samba Server, хоть Postgres SQL, с их врожденными ограничениями, и натянуть на хотя бы среднего размера инфраструктуру. Ирония в том, что ограничения указаны прямо в документации, причем в документации на русском:

Максимальное количество столбцов таблицы дополнительно уменьшается в связи с тем, что сохраняемый кортеж должен умещаться в одной странице размером 8192 байта. Например, если не учитывать размер заголовка, кортеж, состоящий из 1600 столбцов int, будет занимать 6400 байт и поместится в странице кучи, тогда как 1600 столбцов bigint займут 12800 байт и в одной странице не поместятся. Поля переменной длины, например типов text, varchar и char, могут храниться отдельно, в таблице TOAST, когда их значения достаточно велики для этого. При этом внутри кортежа кучи должен остаться только 18-байтовый указатель. Для более коротких значений полей переменной длины используется заголовок из 1 или 4 байт, и само значение сохраняется внутри кортежа в куче.

Теоретически каждая таблица может хранить до 2^32 отделённых значений. Более подробно такие значения описаны в Разделе 66.2. Данное ограничение вызвано использованием 32-битных OID для идентификации каждого такого значения. В реальности же лимит значительно ниже, поскольку как только всё пространство для OID занято, найти свободный OID становится сложно, что замедляет работу операторов INSERT/UPDATE. Обычно это происходит только с таблицами объёмом в несколько терабайт.

Приложение K. Ограничения PostgreSQL

Заключение

Построишь? Куплю.

Построишь? Куплю.

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

Литература

У истоков российско-германского энергетического взаимодействия (70-е годы ХХ века)
Приложение K. Ограничения PostgreSQL
IBM Tivoli Directory Server for IBM i (LDAP)
Exchange Server 2019 and 2016 end of support roadmap
Apiary: An OS for the Modern FPGA.

Показать полностью 8
[моё] Windows IT Импортозамещение Microsoft Опыт Linux Программа Автоматизация Длиннопост Политика Негатив
220
11
DmitriitheFals
Лига Сисадминов
Серия Кудахтеры

Linux Sematary или еще один продукт покидает здание⁠⁠

2 дня назад

Похоже, лично мое клатбисче используемых проектов* в этом году пополнится Ingress NGINX – проект все, Ingress NGINX Retirement: What You Need to Know. Предлагается переход на Gateway API, сколько всего придется переделать, переписать и переставить – пока даже не представляю.

автор - kadabrus

автор - kadabrus

Интересно даже не это, а то, сколько заброшенных или забрасываемых проектов выявляется каждый год. И замены им нет, и не будет.
И даже не это интересно, как то, что разработчики Ingress NGINX два года пытались найти кого-то, кто бы помог в разработке опенсорса. Но нет, использовать можно, сказать бесплатным разработчикам ВЕЗИ МЕНЯ ТВАРЬ «давайте чините» можно, самим делать – нет.

На первом месте в моем личном каталоге «проблем от заброшенных компонентов» – Apache Log4j. 4 года назад (9 декабря 2021 года) в проекте, который теоретически должен был быть 100 раз просмотрен и проверен, потому что использовался везде, нашли огроменную дыру, Log4Shell (CVE-2021-44228). Куда смотрело все сообщество?

На втором месте – огроменная дыра в Linux под названием EternalRed (она же SambaCry), она же CVE-2017-7494. Дыра существовала с 2010 года, обнаружена была только в 2017, и то, не «обнаружена»,  а была проэксплуатирована с огромными последствиями. Куда смотрело все сообщество?

На третьем – свежая огромная дыра, размером с дверь ангара, в grafana - CVE-2025-41115. 10 из 10. Куда смотрело все сообщество?

Если говорить только о заброшенных проектах, то я до сих пор скучаю по заброшенному 10 лет назад RatticWeb. Не видел ничего лучше с тех пор. Мне особо не нужно, мне и Hashicorp Vault хватает, коллеги хвалят teampass, но все равно не то.

Что тут сказать?

Меняется вся модель opensource. «Давно», даже «очень давно», во времена победившей сексуальной революции и зарождения опенсорса, продукты были куда проще, а времени куда больше, так что продукты как-то писались и эксплуатировались.
Сейчас? Недавно у коллег (не в РФ) случились эффективные менеджеры, которые волевым способом продавили переход на новый, свежий Ceph.
Проработал Ceph полтора месяца и свалился, с потерей данных.
Смешно во всем этом даже не то, что Ceph свалился, и не то, что Ceph до сих пор тормозное и дорогое (отдельные сервера, отдельные сети, отдельные люди) решение, а то, что одной из причин стало

Support for GlusterFS is dropped

As GlusterFS is no longer maintained upstream, Proxmox VE 9 drops support for GlusterFS storages. Setups using GlusterFS storage either need to move all GlusterFS to a different storage, or manually mount the GlusterFS instance and use it as a Directory storage.

Drop support for GlusterFS starting with PVE 9, as it is unmaintained.
Proxmox Roadmap - Proxmox VE 9.0

Так и живем.

* отсылка к  pet sematary, правильное написание Pet Cemetery, книга и кино.

Показать полностью 1
[моё] Windows IT Kadabrus Linux Ingress Nginx
6
user11337556

Как установить игры на второй ССД Диск?⁠⁠

2 дня назад

У меня 2 диска в ПК, 1 диск основной ссд м2 там винда и все нужные важные файлы, но памяти не хватает на то что хочу скачать, а также есть 2 диск (D:) ССД обычный, все подключено исправен как пишется в управлении дисками, но игры не скачиваются туда почему то. Я хотел спросить нужно ли что то делать или создавать какие то папки в этом диске чтобы туда загружать игры или можно как то еще решить эту проблему?

Компьютерная помощь Компьютер Windows Компьютерное железо Текст
16
13
Limertinis

Как я решил проблему с зависанием и низким качеством ВК видео!⁠⁠1

2 дня назад

Как я решил проблему с Зависанием видео ВК. Я уже отчаялся победить её.

Да возможно это топорно, и криво. Но это работает. Я не программист, я обычный Шофёр. Единственное что я загуглил, это как заблокировать один из серверов ВК. И это помогло!

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

Оказалось очень легко. Лично у меня, хост сервер Content host: vk163-2.vkuser.net, всегда портит видео, он крайне нестабилен и медлителен.

Просто идём в C:\Windows\System32\drivers\etc выбираем файл hosts, в свойствах "безопасность", выбираем пользователя(Себя то бишь) и даём все права на изменение этого файла.

Далее открываем его блокнотом, внизу, с НОВОЙ строки(а лучше отступить на одну пустую) пишем 127.0.0.1, затем нажимаем ТАБ(1 раз!) и вносим адрес: vk163-2.vkuser.net. Сохраняем файл(если сохранения не происходит, или файл говорит, что можно сохранить отдельно только в загрузки, значит вы не дали себе ПОЛНЫЙ доступ, попробуйте ещё раз всё проверить и дать его Именно своем пользователю). Перезапускаем Браузер. и всё забываем все эти глюки как страшный сон.

P.S. Возможно у Вас будет какой то «свой» сервер. Узнать точный адрес "глючного" сервера, можно через файл диагностики(на видео правой кнопкой мыши жмём, внизу будет Данные для диагностики, далее копируем их в блокнот, и находим строку Content host: тут и будет адрес.

P.S. Иногда бывают проблемы с Клипами. Видимо из-за их расположения на этих серверах. Но не критично. Обновил страницу, и клипы идут с другого сервера
P/P/S/ Прошло 2 месяца с момента написания данного текста, и всё же больше нет проблем. Видео всегда в 4к можно смотреть без подключения к глючным серверам. Так что если у вас подобная проблема, ищите виновный сервер, и в блок его!!!!!!! Клипы работают штатно! Всё в порядке!

Показать полностью
Программирование Баг Компьютерная помощь Windows Спроси Пикабу Текст
5
153
Блог компании
Timeweb.Cloud
Timeweb.Cloud
TECHNO BROTHER

Программирование для Windows 1.0 в 2025 году⁠⁠

3 дня назад

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа "мышь".» — вы точно знаете, откуда это

Приветствую всех! Буквально неделю назад прошло сорок лет с момента выхода первой релизной версии Windows. Именно в тот день в 1985 году началась история ныне повсеместно распространённой ОС.

И вот, узнав об этом, я подумал: а что, если попробовать запустить эту ОС и узнать, как предполагалось писать софт для неё? Именно этим мы сейчас и займёмся. Заодно и узнаем, насколько это было проще или сложнее, нежели сейчас.

❯ Суть такова

Уверен, если вы интересуетесь историей ОС, то хорошо знаете, что вообще такое Windows 1.0 и что она собой представляла. Хотя Windows 1.X были не полноценными ОС, а графическими оболочками под DOS, для них существовал SDK, позволяющий писать оконные приложения. Тем не менее, из-за высокой по меркам тех лет сложности разработки самих приложений было не так уж и много.
Особой популярности система тоже не заполучила, поскольку имела значительные системные требования и малое количество софта. Очень многие из тех, у кого в те годы был ПК, про этот продукт вообще ни разу не слышали. В общем, это самая подходящая платформа, под которую сейчас стоит попробовать что-то написать. Этим-то мы и займёмся.

❯ Обзор оборудования

Как известно, я пишу про железо, а не только про софт, поэтому запускать то, что получится, будем на настоящем ПК.

Намного более аутентичного для такой системы PC XT у меня нет, поэтому для запуска был вытащен вот такой промышленный одноплатник. Конечно, можно было бы взять и просто плату на 286 или 386, но этот девайс лежал у меня уже больше полугода и всё ждал, когда я сделаю с ним что-то интересное. Так что сейчас будем пробовать с ним.

Это ROCKY-328E-M4. На борту процессор 386SX-40 (точнее, SoC Ali M6117C, объединяющая процессорное ядро и чипсет Ali M1217), четыре мегабайта памяти, IDE, флоппи-контроллер, в данный момент ненужный Ethernet, панелька под DiskOnChip и стандартные для любого ПК интерфейсы. Когда-то давно он работал на одном неназванном предприятии и управлял какими-то устройствами при помощи плат дискретного ввода-вывода и платы последовательных портов. Впрочем, про эти модули поговорим как-нибудь в другой раз, а сейчас будем рассматривать его просто как обычный ПК.

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

Встроенного видео на плате нет, поэтому для запуска понадобится ещё и видеокарта.

Это довольно популярная в своё время плата на чипе Realtek RTG3105i. Особых причин выбрать именно её у меня нет: просто когда-то она досталась мне вместе с этим промПК.

Всё вместе втыкается в кросс-плату.

У меня она вот такая, от Advantech. Конкретно эта сделана под размер обычной материнки типа AT. Даже предусмотрен разъём DIN-5 для клавиатуры с отводом от него для подключения к процессорной карте.

❯ Что нужно, чтобы начать писать софт под Windows 1.X?

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

  • Образ MS-DOS 3.0.

  • Дистрибутив Windows 1.X.

  • Компилятор. В моём случае Microsoft C 4.0.

  • Windows SDK. Тут я решил использовать версию 1.03.

Изначально я хотел использовать SDK 1.01 и Microsoft C 3.0, но...

...во всяком случае, я пытался.

То ли ему чего-то не хватает, то ли устанавливается он не так просто, как мне думалось, но ни одна программа им не собралась. Поэтому выбор был сделан в пользу того, на что имелась документация. Никаких PDF, никакой онлайн-справки в те годы не было, все мануалы были бумажными. Так уж вышло, что на Microsoft C 4.0 и Windows SDK 1.03 их сканы имелись в наличии.

Ну что, приступим?

❯ Эмулятор

Как я уже упомянул, собирать всё будем в эмуляторе. Им стал 86box (пришедший на смену почившему PCem). Как его поставить, описывается тут.

Создал виртуалку с процессором 386SX и чипсетом как у моей платы (дабы, если что, заранее обнаружить, что что-то пошло не так, и это решить).

Далее добавляем винт, а в разделе контроллеров выбираем «PC/AT Floppy Drive Controller» и «[ISA16] PC/AT IDE Controller (Dual-channel)».

В BIOS указываем параметры жёсткого диска. Загружаем в дисковод образ DOS и перезагружаемся.

Далее выполняем стандартные действия для установки DOS: размечаем диск при помощи fdisk, форматируем при помощи format, делаем его загрузочным при помощи sys и копируем остальные файлы. На этом загрузочная дискета нам больше не понадобится. Компьютер теперь будет запускаться с винта.

Процесс установки Windows 1.0 особых сложностей тоже не вызывает, так что показывать его я тут не буду. При установке надо указать следующие параметры: мышь — Microsoft Mouse (Bus/Serial), видеокарта — EGA with Enhanced Color Display or Personal Computer Color Display, принтер — не используется.

Запускаем ОС командой win и убеждаемся, что картинка цветная, мышь шевелится, а стандартные приложения нормально открываются.

❯ Компилятор

Теперь очередь компилятора.
Установочной программы у него нет. Поэтому всё придётся копировать самому. На системном диске создаём папки BIN, INCLUDE, TEMP, LIB. В BIN копируем всё содержимое первой дискеты, ещё несколько экзешников со второй и link.exe с третьей, в INCLUDE — всё с расширением *.H и *.INC, в LIB — всё с расширением *.OBJ и *.LIB, TEMP оставляем пустой. В INCLUDE создаём папку SYS и копируем туда содержимое одноимённого каталога на третьем диске. Дискеты 6, 7 и 8 для первого запуска можно пока не трогать.

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

Поэтому продолжим установку, для чего создадим в корне системного диска ещё два файла.

Первый, AUTOEXEC.BAT, следующего содержания:

PATH C:\WINDOWS;C:\BIN;C:\INCLUDE;C:\LIB
SET INCLUDE=C:\INCLUDE
SET LIB=C:\LIB
SET TMP=C:\TEMP
SET TEMP=C:\TEMP

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

Второй, CONFIG.SYS, вот такой:

FILES=20 BUFFERS=40

Это файл конфигурирования системы. Здесь мы задали число максимально возможных открытых файлов и число максимально возможных дисковых буферов.

Если у вас не чистая установка DOS, то прописываем эти параметры и имена переменных в соответствующих файлах.

После этого тестовая программа (из комплекта компилятора) должна будет собраться и запуститься. Отлично.

❯ SDK

Теперь нужно установить Windows SDK. Поставляется он опять таки на нескольких дискетах.

Вставляем диск номер два и выполняем следующие команды:

C:
copy A:\INSTALL.BAT C:\INSTALL.BAT
CD \
INSTALL \BIN \WINDOWS \INCLUDE \LIB

После этого начнётся установка.

Тут всё просто, вставляем очередную дискету и ждём, пока скопируются файлы.
На этом установку SDK можно считать законченной.

❯ Ставим Windows

А пока что отвлечёмся от установки инструментария и произведём ещё одну установку Windows.

На этот раз создадим загрузочную дискету с Windows 1.03, установив систему на чистый образ и добавив на оставшееся место DOS. Туда же чуть позже закинем собранные приложения.

Собираем тестовый стенд.

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

❯ Пишем первую программу

Ну что же, время попробовать что-нибудь собрать. В составе SDK есть и какие-то примеры кода. С них-то и начнём.

Находим папку HELLO и копируем её на жёсткий диск. Теперь заходим в неё и выполняем команду:

make hello

После этого через примерно пару минут приложение должно будет собраться. Если не собралось — проверяем, правильно ли установили компилятор и SDK.

Можно даже попробовать запустить свежесобранный экзешник и убедиться, что приложение действительно требует для работы Windows.

Поэтому заходим в Windows, запускаем, и, если всё получилось, на экране должно будет появиться примерно следующее:

Отлично!

❯ Что же тут происходит?

Взглянем на исходник этого приложения.

Файл достаточно внушительной длины (больше полутора сотен строк). Тем не менее, там можно встретить много того, что есть и в куда более свежих программах для Windows на Си.

Вообще, первые версии Windows были просто оболочками, не имели никакой многозадачности, а целью их создания было не выпустить полноценную ОС, а облегчить работу с DOS. Несмотря на это, кое-что из появившегося в них либо претерпело значительное развитие и используется и до сих пор (например, GDI, много позже ставший GDI++ и использующийся и сейчас, появился с самых первых сборок Windows), либо ушло в историю, но оставило свой след (например, параметр hPrevInstance, использовавшийся в Win16 и всегда равный NULL в Win32).

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

❯ Тесты на ПК

Теперь попробуем запустить тестовый стенд.

Насаживаем перемычку между контактами PS_ON и землёй на кросс-плате, запуская тем самым блок питания. Через несколько секунд компьютер проходит POST и начинает загружаться. Можно набирать WIN и пробовать запускать софт.

Всё успешно работает!

И ещё одно приложение — показ фигуры заданного мышкой размера.

❯ Утилиты

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

Первая из них — это редактор шрифтов.

Следом идёт редактор иконок.

В Windows 1.0 нет ни рабочего стола, ни панели задач. Единственное место, где видны эти иконки, так это при сворачивании приложения. Снизу видны открытые HELLO.EXE, MS-DOS Executive и калькулятор.

Вот так выглядит процесс редактирования.

И, наконец, самое важное. Это редактор диалогов.

Весь интерфейс программы создаётся в нём и сохраняется в виде двух файлов — ресурсов и заголовков.

❯ Что же в итоге?

Несмотря на то, что программирование под Win16 по сути умерло, некоторые порой всё же пробуют что-то написать. Кому-то это надо из любви к ретрокомпьютерам, кому-то — ради того, чтобы оживить какой-то древний, но очень нужный и приносящий очень много денег софт.
Но всё же если вдруг вас так и тянет попробовать что-то написать под древнюю ОС, то рекомендую начать опыты с Windows 95 или 98. Под них куда больше документации и примеров кода, а инструментарий намного более удобен.
Такие дела.

❯ Ссылки

  • Win16 for Fun and (Probably No) Profit

  • Building Win16 GUI applications in C

  • Win16 Retro Development

  • Win16 Programming Resources

  • Готовая установка Microsoft C для разработки софта под Windows 1.X


Материал получился очень объемным, но весьма интересным. Все иллюстрации не влезли. Но их можно изучить в

оригинальной статье.


Написано при поддержке Timeweb Cloud.

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Реклама ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 24
IT Программист Windows Программирование Программа Электроника Microsoft Timeweb Telegram (ссылка) YouTube (ссылка) Reddit (ссылка) Длиннопост Блоги компаний
18
4
gummybeer
gummybeer
IT-юмор

Run!⁠⁠

3 дня назад

Windows 10 и переводчик не переводчик.
извиняюсь за фото с экрана, но такие "гуртовщики мыши" и прочие трудности перевода это казалось осталось в 90-х.

Run!
Показать полностью 1
[моё] Трудности перевода Windows Windows 10
10
5
Вопрос из ленты «Эксперты»
artplrap

Как установить винду после линукса?⁠⁠

3 дня назад

Раньше у меня был установлен виндовс 11 на ssd nvme2(для удобства буду называть просто м2) и на флешке был образ 11 винды, с которой я и устанавливал на м2. Образ этот я ставил через руфус и он полностью был рабочий и официальный.

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

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

Через ventoy пробовал, там пускало на экран установки, но он ругался на драйвера. Примерно следующее: "нет драйверов, выберите необходимый и продолжите"

*Дополнение в вентой: новая ошибка(на 2 фото) и больше не пускает. Secure Boot выключал и включал.

Я не нашел нужных драйверов и просто обновил биос материнки.

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

Что делать в такой ситуации?

Показать полностью 2
Вопрос Спроси Пикабу Компьютер Windows Linux Linux и Windows Компьютерная помощь Текст Длиннопост
30
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии