RccHD
-
Публикации
142 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Сообщения, опубликованные пользователем RccHD
-
-
Помню как поиграл в одиночном режиме и как-то вообще скучно стало. Без паблик сервера в кубаче совсем делать нечего
-
Смысл может быть в получении опыта, например.Очень странное это занятие -- искать смысл в игре майнкрафт. Лучше уж признаться себе, что смысл только воображаемый
-
Большинство программ, которые запущены под OpenOS, должны завершать работу поймав событие 'interrupt'.
Наверное, я ничего не забыл. К майнкрафту уже 2 месяца не притрагивался
-
event.push('interrupt')
-
Смысл всё это иметь будет только при нескольких компах, потому что задержка уходит на процессор, а не видяху. Но нужен способ передачи данных. Модемы, например, работают с задержкой в 1 тик.Можно сделать передачу фреймов через дискеты + enderstorage. Читерно, но это самый лучший и эффективный способ передавать картинку.
Если функционал системы не подразумевает взаимодействия с пользователем ( примером такой системы может быть стриминговый сервис ), то можно упаковать сразу несколько кадров в один файл и передать его по дискете. Да, из-за этого будет задержка, но зато полноценные 30фпс с несколькими компами подключенными к одному монитору.
-
пока мы тут сидим на русскоязычном ОС-форуме, там создают англоязычные форумы МайнОС
(хотя глягул, у них там что вообще? серверное ядро или что?)
https://minecraft.gamepedia.com/Programs_and_editors/MineOS
Комплекс программ для запуска игрового сервера Minecraft
Никакого отношения к OpenComputers и местным "операционкам" не имеет
-
Этот сайт имеет отношение к MineOS? https://discourse.codeemo.com/
У них прямо в лого написано 'MineOS' и текстурка из майнкрафта -
Недавно наткнулся на пост о довольно интересном соревновании для роботов-пылесосов

http://codeforces.com/blog/entry/55882
Примечательно то, что в том соревновании кодят как раз на Lua.
Как думаете, может стоит когда-нибудь провести такое соревнование на серверах computercraft? Это было бы очень крутым событием, которое может привлечь новых игроков в игру на сервере. Особенно если сделать пафосный видос об этом соревновании на YouTube.
Для еще большего пафоса можно поставить огромный монитор(3х3 монитора) на спавне и транслировать все туда.П.С. Если надо будет организовать такое соревнование, я готов. Это не трудно ( на первый взгляд, конечно ).
Видео с одного из раундов:
-
1
-
-
Ты ОС не запустил. Чтобы эти команды работали, нужно запускать /WinOS/init.lua сначала- Не запускает команды



Букв не видно из-за проблем совместимости версий OpenOS. Попробую пофикситьПрочитав пост полностью, оказалось что нужно было инициализатор OS запустить командой /WinOS/init.lua , вбив ручками и запустив, появилось окно что и на скрине ниже, только было всё чёрное, ну я немного потыкал по клаве и нажав enter, отобразился красный текст (часики в углу работают норм)

Какая у тебя версия OpenOS?
-
Кто пробовал установить? Хочу feedback!
Может я выложил нерабочий инсталлятор или ОС не запускается, и даже не узнаю об этом. -
-
В этой теме будет обсуждение жутких багов, которые вы найдете в операционке WinOS(Да, я решил дать такое название)
Ссылка на "Процесс разработки данной ОС"Вот немного подробностей об получившейся "операционке":
Фичи
1. Возможность запускать 99% программ, которые изначально были написаны под OpenOS
2. Конфиг-менеджер(про него ниже)
3. Сервисы(подробнее ниже)
4. Возможность запуска нескольких программ одновременно. Каждая из программ будет запущена в виртуальном изолированном окружении
5. Есть переключение рабочих столов
6. Тайловый оконный менеджер
Вспомогательные программы
/usr/bin/workspace
Использование:workspace <N : число>
Пример:
workspace 3
Описание:
После выполнения "workspace N" менеджер окон переключится на рабочий стол N, либо пользователю будет сообщено, что рабочего стола с номером N не существует
/usr/bin/split
Использование:split <опция: v или h> <N: число>
Примеры:
split v 50
split h 33
Описание:
Эта утилита позволяет поделить текущее окно на 2 части.
Если указана опция v (по вертикали):
Окно будет разделено на 2 окна.
Первое окно будет иметь ширину N%, а второе окно -- (100 - N)%
Высота созданных окон будет равна высоте окна до выполнения команды split ( т.е. не изменится )
Если указана опция h (по горизонтали):
Окно будет разделено на 2 окна.
Первое окно будет иметь высоту N%, а второе окно -- (100 - N)%
Ширина созданных окон будет равна ширине окна до выполнения команды split ( т.е. не изменится )
Сервисы в WinOS
Сервис -- это программа, которая работает в фоне и делает что-то важное ( или не важное ).
Главное отличие серсиса от обычной программы -- сервисы имеют полный доступ к глобальным переменным. Сервисы могут использовать GPU, event, component напрямую, в то время как программы запущенные стандартным способом будут иметь доступ к имитированным(подмененным) версиям компонент компьютера.
Сервисы в WinOS нужны для различных менюшек, таймеров, слушателей событий и прочих программ, которые по каким-то причинам должны иметь прямой доступ к компонентам компьютера.
Программы-сервисы должны быть расположены в директории /WinOS/service/
Пример сервиса topbar.lua:-- /WinOS/service/topbar.lua local computer = require("computer") local event = require("event") local fs = require("filesystem") local gpu = require("component").gpu local process = require("process") local state = { title = "WinOS: ", workspace = 1 } local function draw() local w, h = gpu.getResolution() local workspaceIndex = state.workspace local manager = WinOS.manager -- менеджер окон local workspaceName = manager.workspaces[workspaceIndex]:sub(1, 8) local sec = computer.uptime() local ws = "[#"..tostring(workspaceIndex)..":"..workspaceName.."]" local mem = "Free mem: "..tostring(math.floor(computer.freeMemory() / computer.totalMemory() * 100)) local function timeFormat(v) local s = tostring(math.floor(v)) if s:len() == 1 then return "0"..s else return s:sub(1,2) end end local time = "Uptime: "..timeFormat(sec / 60)..":"..timeFormat(sec % 60) -- рисует простенькую панель -- на ней будет отображено номер и название текущего раб. стола -- а также % свободной ОЗУ и время работы компа gpu.setBackground(0xddaaaa) gpu.setForeground(0x441111) gpu.fill(1, 1, w, 1, " ") gpu.set(2, 1, ws) gpu.set(w - #time - 1, 1, time) gpu.set(w - #time - #mem - 4, 1, mem.." | ") end local ltime = 0 while true do local timer = computer.uptime() if timer > ltime + 0.1 then -- перерисовка каждые 100мс local oldbg = gpu.getBackground() -- BUGFIX local oldfg = gpu.getForeground() -- BUGFIX xpcall(draw) gpu.setBackground(oldbg) -- BUGFIX gpu.setForeground(oldfg) -- BUGFIX ltime = timer end local e = {event.pull(0.3)} -- Обновить внутреннее состояние панельки -- при событии 'WinOS_workspacechange' if e[1] == "WinOS_workspacechange" then state.workspace = e[2] end end
Конфиг-менеджер в WinOS
Менеджер конфигов нужен для того, чтобы пользователь мог поменять поведение или внешний вид системы. В настоящей момент менеджер конфигов позволяет менять основные цвета системы, а также дает возможность регистрировать сочетания клавиш для выполнения каких-либо действий.
Дефолтный конфиг в WinOS. Расположение файла /WinOS/config.lua-- /WinOS/config.lua local computer = require("computer") local myconfig = { -- Отступ 1px для /WinOS/services/topbar.lua paddingTop = 1, -- отступ сверху экрана paddingBottom = 0, -- снизу paddingLeft = 0, -- слева paddingRight = 0, -- справа focusedWindowBorder = 0x7799bb, -- цвет рамки выбранного окна windowBorder = 0xddaaaa, -- цвет рамки невыбранного окна -- имена рабочих столов workspaces = {"Main", "Games", "?????", "Special"}, onstart = function() -- Системная библиотека сервисов local service = require("WinOS.core.service") -- Запустить сервис topbar service.run("topbar.lua") -- topbar.lua будет запущен в фоне -- расположение файла: -- /WinOS/service/topbar.lua end, onevent = function(e) -- Обработчик нажатий клавиш local currentWindow = WinOS.manager.focusedWindow local kb = require("keyboard") local ctrl = kb.isControlDown() local k_R = e[1] == "key_up" and e[4] == 19 local k_G = e[1] == "key_up" and e[4] == 34 -- <Ctrl + G> чтобы Вкл/Выкл виртуальную GPU if ctrl and k_G then currentWindow.gpu_enabled = not currentWindow.gpu_enabled -- Если gpu_enabled == false, то изображение на внутреннем холсте этого окна не будет отрисовываться. -- -- Можно использовать эту настройку для уменьшения потребления ОЗУ, -- а также для того, чтобы другие программы работали быстрее WinOS.manager.updateView() end -- <Ctrl + R> чтобы "убить" текущую программу -- вместо нее будет запущен терминал if ctrl and k_R then currentWindow.kill() currentWindow.runTerm() currentWindow.gpu_enabled = true -- Включить виртуальную GPU WinOS.manager.updateView() end end } return myconfig
Установка тестовой версии системы
Чтобы установить WinOS v0.0.1, запустите инсталлятор с pastebin
( я скопипастил инсталлятор от ECS и поменял имена переменных
)pastebin run Df9a2c01
Во избежание различных ошибок связанных с проблемами совместимости, в стандартную поставку тестовой версии WinOS включена OpenOS 1.6.7
Минимальные требования при установке:
1. Любая версия OpenOS
2. 2МБ оперативной памяти
3. Интернет-карта
4. Монитор и gpu третьего уровня
5. все то, что нужно для работы с OpenOS ( питание к компу, клавиатура и пр. )
6. Новая версия мода OpenComputers
Чтобы запустить WinOS напишите в консоли/WinOS/init.lua
Недостатки текущей версии WinOS
1. Очень сырая реализация
2. Много скрытых багов
3. Есть проблема связанная отрисовкой контента всех окон одновременно.Так как нет возможности определения оптимального момента для перерисовки изображения на экране, отрисовка присходит в цикле 15 раз в секунду.
Из-за этого ОЗУ компьютера расходуется пилообразным образом. За секунду накапливается много мусора в виде неиспользуемых переменных(около 650кб для самого большого разрешения экрана). Однако сбощик мусора успевает все "почистить".
Если в момент пикового потребления ОЗУ запустить "тяжелую" программу, которая использует много оперативки, то сначала будет сделана сборка мусора, а только потом будет запущена программа.
Однако иногда бывают сбои: если на компе запустить отрисовщик-рандомайзер ( заполняет весь экран рандомными пикселями ), то сборщик мусора не успеет освободить ОЗУ, и произойдет краш.
Вывод: не стоит запускать отрисовщики-рандмайзеры ( особенно во весь экран ).
4. Пока не реализована возможность убрать окно с экрана, чтобы остальные окна заняли свободное пространство.
5. Пока еще не реализована возможность использования нескольких клавиатур и нескольких GPU
6. Баги! Тысячи их!
7. Из-за того, что используется виртуальная GPU ( буфер ), операция gpu.copy работает от 2 до 6 раз медленнее
Однако все остальные операции, наоборот, работают в 1.5-2 раза быстрее ( из-за оптимизации отрисовки через буфер изменений )
Обращение к критикам с форума
Критика приветствуется. Однако не забывайте предлагать какие-то идеи.
Воспринимайте beta-версию WinOS как экспериментальную разработку, а не как полноценную операционную систему, которую я рекомендую всем использовать. (но лично я точно буду использовать WinOS при игре на серверах)
Картиночки:
Включение и выключение GPU:
Удобство при отладке и редактировании программ. Разделил экран на области, запустил редактор кода и интерпретатор Lua -- и вот тебе IDE

На всякий случай продублирую команду для скачивания инсталлятораpastebin run Df9a2c01
-
11
-
1
-
-
Все как всегда круто.
Я поражаюсь, как тебе не лень так много времени уделять своей ОС
-
1
-
-
Вечером выложу тестовую версию. В ней скорее всего будут баги и недоработки. Вы сможете потестить и написать сюда свои впечатления
-
"manis di depan dibelakang busuk"
-
Кстати. Вот вопрос:
Как вы отнесетесь, к тому, что операционка тратит ОЧЕНЬ много оперативки? Но зато работает при этом быстрее, чем могла бы
Работает нормально на компе с 2МБ.
На компе с 1МБ может работать, но при запуске хотя бы одного графонистого приложения(например flappy bird) на весь экран, может вылететь.
Идеальнее всего запускать ее на сервере с 4МБ(особенно, если хотите запускать "тяжелые" приложения в кол-ве более двух штук на 1 рабочий стол)-
1
-
-
Ну мог бы выложить уже то, что готово и работает, тогда бы народ мог потестить и предложить что-нибудь.
На выходных сделаю инсталятор и опишу, как пользоваться основными командами ОС
Это будет что-то вроде "раннего доступа"
Не обещаю, что ОС будет очень удобной в раннем доступе :P
Но потестить вы все сможете
-
1
-
-
Всё, рип ОС.
Неет, не рип. Просто я занят и пока нет мотивации/желания
Сама ОС уже готова. Осталось только косметику и простенькое GUI доделать, чтобы всем нравилось.
Я бы уже выложил ОС, так как работает она нормально.
Не выкладываю, потому что сейчас она никому не нужна(сервера не работают) и мне лень делать user-friendly интерфейсы
-
Так как пока никому не нужна эта операционка, разработка заморожена.
У меня нашлись дела поважнее.
Когда откроются сервера и оживет форум, допишу эту ерунду и выложу
-
1
-
-
Мне за 3 дня нужно успеть допилить оконный менеджер, пофиксить пару багов, и сделать менеджер пользовательских конфигов
Наверное успею
А я балду 3 дня пинал

Зато отдохнул от кодинга и могу допилить и выложить операционку
-
1
-
-
Мне за 3 дня нужно успеть допилить оконный менеджер, пофиксить пару багов, и сделать менеджер пользовательских конфигов
Наверное успею
-
Еще есть вариант назвать операционку 'S-OS'
Мне совершенно не хочется придумывать модноеКрасивоеХипстерское название для операционки. Потому что это майнкрафт-операционка, а в майнкрафте ничего особо значимого не может быть по определению

Это ж игра
-
В маркетинговых целях(для привлечения внимания хомячков), нужно писать цифру 2.0 или даже 3.0
'WinDOS 2.0'
Чтобы думали, что это новая версия и до этого была 1.x
-
'WinOS' -- нормальное название. Отражает суть

RSA
в Сетевые технологии
Опубликовано:
Раз уж ты взялся писать алгоритм RSA, то неплохо было бы сначала изучить другие более простые алгоритмы.
Я имею в виду алгоритм возведения в степень
Твоя реализация работает очень медленно (за линейное время), что в итоге будет причиной зависаний компа на целые минуты, а то и часы.
Вот, смотри сам: https://ideone.com/v48E18
Считаю нужным предложить правильную реализацию, которая работает за логарифмическое время (в миллионы или даже в миллиарды раз быстрее)
Вот: https://ideone.com/RyGdbH
P.S. сравни время работы двух реализаций на ideone. (У меня показывает 0.71s VS 0.00s)
P.S.S. подробнее об алгоритме возведения в степень тут: http://e-maxx.ru/algo/binary_pow