Перейти к содержимому

logic

Пользователи
  • Публикации

    287
  • Зарегистрирован

  • Посещение

  • Победитель дней

    13

Все публикации пользователя logic

  1. чужим софтом не пользуюсь, но с подобной ситуацией сталкивался, прошивая один из моих биосов после lua bios он крашился, так как в eeprom-data был адрес загрузочного диска, а биос ожидал там увидеть адрес монитора, по сути любая программа может работать некорректно если не стереть eeprom-data, да и гораздо удобнее поместить данные в файл, чем занимать драгоценное место в основном разделе eeprom, например если в eeprom-data ожидается сериализованая табличка, то в файл можно сразу поместить пустую табличку "{}"
  2. забыл ссылку уставить лол бывает мой косяк, оставил, ну так вот, иногда хотеться выложить файлом чтобы другу отправить PS. и мог нормально в лс сообщить о отсутствии ссылки? что за хейт? да можно через верстак но это не значит, что программа не нужна
  3. и так идея подобной утилиты напрашивалась давно но реализовать решил только сейчас общем, в чем суть, есть стандартная утилита flash в openOS, но она просто прошивает файл в основной раздел eeprom проблема это утилиты в том, что она не стирает eeprom-data что может привести к некорректной работе некоторых программ аж установить eeprom-data полмолчания, уж подавно нельзя, так что я решил сделать продвинутый вариант программы которая позволяет делать полные дампы eeprom, в файл формата eeprom команда для установки: mkdir /usr/bin; wget https://raw.githubusercontent.com/igorkll/eepromUtil/main/forOpenOS.lua /usr/bin/eeprom.lua -f формат является обычной серилизованной табличкой содержашей следуюшию информацию основной код данные eeprom label состояния readonly
  4. ну вот тебе и ответ, почему я сделал такое решения
  5. да, а теперь попробуй вызывать os.sleep(0) только каждые 512 интераций(подсказка "i % 512 == 0")
  6. задержка будет очень ощутима, говорю по личному опыту, вызов каждые 512 итераций норм решения кстати "поидеи" пишется как "по идее", даже мне безграмотному это режет глаз, сорян
  7. os.sleep(0.2), раньше вызывался по таймеру на computer.uptime теперь вызывается каждые 512 инструкций интерпретатора моего языка программирования brown, который я сейчас пишу
  8. к сожаления пример кода привести не могу так как я там уже все пофиксил, увеличив частоту сборки мусора))) ну это я знаю логично, но что делать если мне в цикле нужно сплитить строку, и использовать подстроки? настолько долгую что на сервере 5 секунд 0 tps O_O(я да, я уже собираюсь использовать это в своих целях)
  9. что создает мусор в lua? как исправить столь долгую сборку мусора? какие операции с памятью не создают мусор?
  10. я просто подумал, ты ты понял не правильно, я выгружаю библиотеки/hdd функции, как только надобность в них отпала, но только если верно одно или несколько из этих условий: оперативной памяти менее 400кб доступно менее половины оперативной памяти если не одно из этих условий не верно, авто выгрузка отключена и hdd не будет сильно шуршать
  11. ты не так понял слово "кэширования", так не хеш типо hd5 а кещ в ОЗУ, того что раньше подгружалось с жесткого диска постоянно жесткий диск при должном объёме ОЗУ после обновления почти не будет скрежетать так как работает кеш hdd функций в ОЗУ, а автовыгрузка библиотек отключена, но при нехватке ОЗУ ос включает авто выгрузку библиотек, а hdd функции долго в ОЗУ задерживаться не будут(собственно там им и не место изначально было, но скрежетания при каждом действии самому надоело) хорошое предложения, я бы и раньше оставил но побоялся, что это тут запрошено
  12. в самом начале написания, я не знал как реализовать выгрузку библиотек и по этому создал много разных файликов с обычными lua функциями, и подгружались они напрямую с hdd в момент использования для вызова используется библиотека calls, но потом я узнал как пользоваться mode v в мета таблице, и сделал кеширования в память этих hdd функций, они выгрузиться после того как отработают а так же написал авто выгрузку библиотек, но выгружаться будут только те библиотеки, которые дали на это добро ну... там все просто как грабли, есть память, библиотеки и вызовы calls не выгружаться, если меньше половины, ты выгружаться однако функциональность выгрузки я еще не залил на github, она появиться с версии liked 8, подождите 10 минут только что залил
  13. спасибо огромное за моральную за моральную поддержку да, идея сыроватая, но позволяет сэкономить очень много оперативной памяти, хоть и ценой шума hdd, меня он сам слегка напрягает, но в следующим обновлении я сделаю выгрузку опциональной и опция эта будет включаться автоматически, при недостатке оперативной памяти а еще сделаю вызов через метатаблицу, чтобы было удобнее программисту (мне ) а идею мертвой не считаю, я уверен найдет свое применения где не будь, надеюсь что если кто-то вдохновиться то укажет авторство реализацию сильно плохой тоже не считаю, вроде норм сделал, просто внутренней жабке жалко оперативки описания поправлю, упрошу для понимания, и исправлю орфографические ошибки, кой их у так много ну.. во много благодаря тому что я 24/7 в open computers
  14. эксперементальным путем выяснил, что используя метод use робот ставит блоки не только из руки но из первого слота своего интенторя, причем не зависимо от выбранного и приоритетьнее самой руки для которой казалось бы метод use и предназначен, и если аккуратно стать в перед робота, и использовать use то блок из руки поставиться на расстоянии один блок от робота, а если робот будет ставить тем же use из первого слота инвенторя, то так не пракатит и вернеться false, неужели первый слот инвенторя у робота работает как левая рука?
  15. к чему столь предвзятое отношения? я же четко и ясно написал, что ос еще не готова, попробуй ее сейчас и ты увидишь разницу, swiftOS тоже далеко не готовая, но ее ты грязью не поливал
  16. да, но тексту тоже места нужно
  17. ну есть багулины, с кем не бывает, разжалую до alpha многооконность некто и не заявлял, заявлял мульти мониторность и многопоточьность баг с пейнтом повторить таки не удалось кстати а выложил ос я сырой потому необходимо отловить мелкие баги и неточности, и отсутствия необходимый функций
  18. установка через дискету потому что, так ставяться реальные ос, например планшет без интернет карты, да можно воткнуть в зарядник и так поставить, но вдруг на реальном компе не будет интернета? ладно, так уж и быть, сделаю установщик чисто для openOS в дополнения к этому я тоже не художник, как смог, так и нарисовал обои, потом добавлю еще, ос не готова от слова совсем PS: я с телефона пишу, тут форматирования текста сложно сделать
  19. преписачька BETA совсем уже не очем не говорит... я стремился как можно быстрее выложить ос по этому так, а ПО без входа в режим разработчика устоновить таки можно, с дискеты скопировать, или от туда прям открыть
  20. тут такое дело, я решил оперативку секономить... ну и засунул штук 20 функций на hdd))) они подгружаються только в момент использования, и по этому хард жужжит, зато первая планка рада
  21. гайд не нужен, я баг поправил, а обзор есть там уже
  22. ты начал ставить как только я исправил баг)) это визуальный баг, введи там индекс диска из списка
  23. PRERELEASE система вышла из бета, и вошла в пререлиз, убедильная просьба, все кому не лень хорошо протестировать likeOS и liked, о багах и ошибках репортить в тему, в лс тоже можно, то тогда другим людям не будет что почитать)) так что лучше в тему создания прошивки для робота на ядре likeOS скачиваем файлы likeOS добавляем файл main.lua(это будет основной файл прошивки) так же можно добавить файл реестра по умолчанию(например на случай, если нужно запретить работу recovery) /system/registry.dat так же можно добавить свой логотип, который будет отображаться при загрузке и printText, для этого скопируйте файл /system/core/logo.lua в /system/logo.lua и отредактируйте его как вашей душе угодно выводить состояния можно методом printText, если нужен более продвинутый режим, то используйте api graphic для понимания масштабов PRERELEASE чекаем коммиты: https://github.com/igorkll/likeOS https://github.com/igorkll/liked фишки ос оболочка отдельно от ядра ос, вы можете поставить только ядро и добавить туда автозагрузочный скрипт, а можете поставить дистрибутив liked много поточность мульти мониторность(относиться скорее к дистрибутиву liked) очень малый расход оперативной памяти, зачёт того что многие функции операционной системе лежит на hdd и подгружаться только в момент использования оптимизированные функции getDeviceInfo и getKeyboards(потому что ос использует их очень часто) авто выгрузка некоторых библиотек liked сможет работать на планке t2,5 даже с двумя мониторами этот gui дистрибутив который использует api graphic ядра для работы с графикой в liked предусмотрен dev mode для создания собственных приложений, для его активации задержите стрелку вверх в магазине liked есть irc клиент! как работает мульти мониторность дистрибутив liked выводит рабочий стол только на мониторы начиная с уровня 2 на разным мониторах ос будет работать почти как разным компьютеры для работы не требуется несколько видео карт, хотя это желательно вы сможете запустить разные программы на разных мониторах ос сама разберётся какую gpu к какому монитору подключить, и когда подбиньдить отличия dev mode от user mode dev mode при переименовании файла расширения не переходит от пред идущего при создании текстового файла ему автоматически не присваивается расширения txt вы можете присвоить расширения папке вы можете указать расширения при переименовании файла вы получаете доступ к корню диска вы получаете возможность заходит внутрь пакетных приложений вы получаете возможность редактировать lua скрипты user mode вы не можете указывать расширения сами, оно везде присваивается автоматически при переименовании расширения переходит от старого имени вы не можете изменить расширения установка ос: для начала необходимо создать установочную дискету, запустив команду wget https://raw.githubusercontent.com/igorkll/likeOS/main/installer/openOS.lua /tmp/asd -f && /tmp/asd в openOS затем необходимо загрузиться с дискеты на том устройстве на которое желаете поставить likeOS - liked так же вы можете загрузиться туда через улититу install обычный openOS, просто установить дискету как обычную, но вместо установки компьютер после выбора дискеты туда загрузиться выберите online mode/offline mode(первый загружает ос из интернета, второй с самой дискеты) выберите дистрибутив(liked это графический дистрибутив, core only это чистая likeOS которая нечего не выведет на монитор а просто крашнеться с ошибкой computer halted) выберите диск согласитесь подождите ос установлена предупреждения внимания подгруздка библиотеки thread может привести в увеличению расхода энергии! у ос очень большое потребления энергии в целом, планшет высаживает на щитаные минуты рекомендации liked на скорость рендера, очень сильно влеяет уровень процессора, и видеокарты, но не монитора, по этому по возможности лучще будет установить видеокарту t3 даже в планшет/компьютер с вторым монитором, и процессор t3 фишки дистрибутива liked возможность поставить иконку на любую папку(создайте картинку с именем icon) смена обоев рабочего стола смена цветовой палитры монитора показ реального времени в углу в планах сеть библиотека likenet создана программа для перебрасывания файлов и папок между устройствами (частично реализовано в виде программы чат) проверка на вмешательства в системные файлы возможность поставить обои отдельно для конкретной папки клиент для ocelot online структура файловой системы /init.lua - инициализационный файл, скоро будет содержать recovery menu для восстановления любого устройства с likeOS на основе(если recovery menu не будет отключено в реестре(реестр скоро будет добавлен)) /system - файлы дистрибутива /system/core - файлы ядра /system/autoruns - автозагрузка дистрибутива(для скриптов не требующих взаимодействия) /system/main.lua - тоже автозагрузка, но предназначена для программ выполняемых в бесконечном цикле /systen/bin - программы дистрибутива /system/lib - библиотеки дистрибутива /system/calls - hdd функции дистрибутива /system/core/boot,lua - загрузчик ос структура _ENV(может быть сложно для понимания новичкам, сложно для понимания новичкам, читать не обязательно) _ENV в большинстве ситуаций личная, а _G общая, исключения hdd функции в которых _ENV и _G это одна таблица, и так же исключениям является рабочий стол liked который делит _ENV между рабочими столами на разных мониторах соответственно глобалы созданные таким образом (value = 2) будут личными, а таким (_G.value = 2) общими функция printText функцию не будет работать если в реестре есть ключ disableLogo! данная функцию выводит строчку на экран c использования логотипа ос выводит изображения на все подключённые мониторы, однако использует не api graphic а прямую запись в мониторы функцию выполняется долго, так как "рисует" одной видеокартой функция НЕ будет работать если вы переконфигурируете графическую системму идеально подойдёт для вывода состояния устройства прошивка которого создана на базе likeOS core реестер: нужен для быстрого сохранения хранения параметров на жесткий диск, которые в последствии смогут быть использованы в других программах или же самой ос например добавив ключ реестра disableRecovery вы отключите возможность войти в recovery, а кличем disableLogo запретите работать функции printText редактирования реестра осуществляется с использования библиотеки ядра registry, самый простой способ использования, это использовать ее как таблицу и писать значения прямо в таблицу библиотеки, а она сама запишет это на жесткий диск RECOVERY MENU это меню есть в ядре likeOS в следствии чего его можно будет использовать почьти во всех дистрибутивах для входа в меню нужно нажать R при старте это меню можно отключить добавив в реестер(lua табличка на жестком диске(/data/registry.dat)) пару ключ значения (disableRecovery = true) в нем можно стереть данные прошить afpx архив(главное чтоб он лежал не на сис. диске и имел расширения afpx) запустить lua script, api из opencomputers + gpu. заранее сконфигурированная уже лежит в _ENV посмотреть логи системы документация(пока что не полная): api calls calls.call - вызов функции лежащей на hdd calls.load - погрузка функции лежачих на hdd calls.loaded - кеш функций, сам не заполняется, но может быть использован в некоторых случаях calls.paths - таблица с путями по которым идет погрузка api package _G.require - подключить библиотеку package.loaded - кеш библиотек package.paths - тиблица с путями по которым идет подгрузка библиотек api graphic graphic.findGpu(screen) - ишет gpu для нужного экрана и подкючает ее, искать gpu нужно заного после кажного прерывания, так как она может быть "украдена" graphic.createWindow(screen, x, y, sizeX, sizeY):windown- создает НЕ буферизированое окно на нужном экране window:clear(color) - залить окно нужным цветов window:write(str) - запись данных в окно window:read(x, y, sizeX, background, foreground, preStr, crypto) - стения данных из окна, если ввод был отменен вернет true window:uploadEvent(eventData:table):eventData:table - загружает event в окно и возврашает измененный ответ или nil window:set(x, y, background, foreground, data) - записать строку window:fill(x, y, sizeX, sizeY, background, foreground, char) - заливка window:copy(x, y, sizeX, sizeY, offsetX, offsetY) -- копирует участок окна window:setCursor/window:getCursor тоже есть, и управляют функцией write все цвета нужно брать из таблицы gui_container.colors иначе их поведения будет неправильным(актуально для liked(gui_container это главная системная библиотека liked)) интерфейс liked
  24. пожалуйста, но прости если запутал, эта ос ставиться не так, так как этот способ меня осенил когда я ставил винду на новый ноут(в реальной жизни), я просто ответил в этой теме, и я захотел чтобы ос в игре ставилась так же как и в жизни
  25. а я идеальный процесс установки вижу так: запускаешь утилиту создания установочного диска на подходящей ос создаёшь установочную дискету/ставишь установщик на диск загружаешься туда с помочью биоса и либо ставишь ос на диск и установщиком, после чего установщик с него пропадет, или ставишь ос на другой диск спойлер: моя новая ос так и будет ставиться
×
×
  • Создать...