Я портировала утилиту Fetch на ReactOS
Если вы не верите, что я это сделала - то, вот вам полный скриншот:
Оглавление:
В этом лонге я вам расскажу как я перенесла знаменитую утилиту на ReactOS, что такое ReactOS, про утилиту Fetch и про "кухню" написания кода. В этом лонге также будет исходный код - позже вы поймёте почему.
Учитывайте, что я не умею программировать и никогда не программировала.
Что такое Fetch?
На самом деле с таким названием существуют как минимум две подобные утилиты - ScreenFetch и Neofetch. Fetch-like утилиты консольные, то есть работают без GUI и в терминале. Fetch-подобные утилиты слева выводят ASCII-логотип операционной системы, справа выводят информацию о компьютере.
Fetch-подобные утилиты доступны на современных системах. Есть на MacOS:
Есть на FreeBSD:
Есть на DOS:
Есть на KolibriOS:
Есть и на Windows 10/11:
На современных Windows 10 и Windows 11 утилита Neofetch доступна из коробки. По крайней мере мне не надо ничего делать, а neofetch у меня есть на Windows 10 (я использую ванильный и официальный Windows 10 LTSC).
На дистрибутивах Linux утилита Neofetch обрела сумасшедшую популярность. Каждый третий пост в Reddit в разделе LinuxPorn демонстрирует информацию о своей системе на Neofetch.
Мне кажется, ReactOS - единственная ОС, в которой нет утилиты Fetch. И я решила портировать утилиту Fetch на ReactOS.
Что такое ReactOS?
Если описать коротко, ReactOS - это урезанная Windows XP с открытым исходным кодом. Цель ReactOS: полноценная поддержка программ, игр и драйверов Windows XP. Разработка ReactOS идёт с начала 2000-х.
Кто-то из вас спросит "Чего добились ReactOS за много лет?". На самом деле и да и нет. У ReactOS есть хорошие достижения:
- Полная поддержка тем оформления Windows XP
- Появилась рабочая кнопка "свернуть все окна" на панели задач. Привет Windows 10.
- Тайлинг на уровне Windows 7 (до Windows 7 тайлинга в Windows не было).
- В последней версии 0.4.15 наконец-то начал работать звук в виртуалке
- Поддержка файловой системы NTFS на уровне чтения
- Добавлен LiveCD в ReactOS, что позволяет установить/загрузить ReactOS с флешки.
Не всё так хорошо в ReactOS. Даже на старых компьютерах с помойки ReactOS очень плохо работает, про ReactOS на RTX-ПК просто забудьте. 75% или 95% игр и программ не работоспособны на ReactOS.
Провал с ИИ
Теперь переходим к кухне разработки. Изначально я хотела (в качестве эксперимента) использовать ИИ-чатботы для написания утилиты для ReactOS.
Сначала я использовала ГигаЧат и AlisaGPT, от Сбер и Яндекс соответственно. Оба вышеуказанных ИИ-чатбота написали полную фигню, которая не работает. Поэтому после первой попытки я их использовать в программировании перестала.
В начале эксперимента я считала ChatGPT лучшим ИИ для программирования. Потому что я смотрела видео ютубера DepoSit, ChatGPT написал код, который скачивает все карты из мастерской CS:GO. То, что он задумал, явно уровнем выше HelloWorld. Вот его видео:
Но и с ChatGPT что-то пошло не так. Код, который написал ChatGPT, не что не собирается в ReactOS, он не запускался. Плюс ChatGPT написал непонятную тягомотину.
Я разочарована в ИИ для написания кода. Теперь понятно, почему среди разработчиков ReactOS ии аля ChatGPT не стал популярен.
Как я кодила?
Так как я не умею программировать, то для того чтобы понять кодинг - я зашла на сайт Метанит. Потому что Метанит даёт базовые знания про язык Си, при этом не надо пиратить книги про программирования (я не сторонница лицензий если что). Какую-то базу я освоила.
Как я писала выше, многие Windows-приложения без проблем работают на ReactOS. Одно из них - IDE Code:Blocks. Данное IDE настолько хорошо и без проблем работает в ReactOS, что доступен для скачивания в официальном менеджере приложений ReactOS. Именно это IDE я и использовала.
Ещё одна важная причина почему я использовала Code::Blocks - это тот факт, что в комплекте Code::Blocks из коробки есть компилятор MinGW. MinGW - это порт компилятора GNU GCC, который компилирует как минимум половину линукса и UNIX. MinGW используется для компиляции и сборки ReacOS из исходного кода.
Так работоспособность ReactOS на реальных компьютерах плохая, то я использовала эмулятор. В данном случае виртуальная машина VirtualBox 7.0. У VirtualBox самый низкий порог входа, потому что: VirtualBox - бесплатный, а VMWare - платный. Плюс VirtualBox может освоить даже самый глупый пользователь ПК, в отличии от QEMU.
Весь код, который я писала, он в одном единственном файле. Все используемые в коде .h-файлы - это стандартные файлы из компилятора. Скажу проще: я не использовала никаких внешних/дополнительных .h или .c-файлов, весь функциональный код написан в одном файле.
Исходный код
Так как весь функциональный и работающий код написан в одном файле. А засорять всякие гитхабы мне не хочется. То я могу смело вывести код на ДТФ. Тем более такая возможность есть.
Вот сам исходный код.
Результат
Код полностью рабочий на ReactOS. Работает утилита без проблем.
Это мой первый опыт в кодинге, при чём интересный опыт. Мой эксперимент по программированию оказался удачным. Надеюсь, вы оцените.