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

ExOS

Рекомендуемые сообщения

В общем вот и первая программа:

ExDataBase (EDB)  :D 

Эта программа представляет из себя простой и функциональный сервер базы данных. Он использует OpenNet для "общения" с клиентом. Сайчас поддерживается 3 команды:

  • writeData - записывает любые данные с индексом
  • readData - считывает данные с индексом
  • register - создает новый файл данных

Общение производится с помощью OpenNet библиотеки, команды передаются в виде сериализованной таблицы.

Как использовать:

Пример использования команды "writeData"

opennet.sendrec("0ba.f13.4f5", 
serialization.serialize(
  {

    login = "Syabro" --имя файла с данным
    pass = "test" --пароль для доступа к файлу
    command = "writeData" --команда записи
    dataName = "userName" --индекс (название) данных
    data = "Alexandr" --собсно - данные

  }
))

Команда "readData"

opennet.sendrec("0ba.f13.4f5", 
serialization.serialize(
  {

    login = "Syabro" --имя файла с данным
    pass = "test" --пароль для доступа к файлу
    command = "readData" --команда чтения
    dataName = "userAge" --индекс (название) данных

  }
))

"register" - эту команду нужно использовать для создания нового файла

opennet.sendrec("0ba.f13.4f5", 
serialization.serialize(
  {

    login = "Syabro" --имя файла с данным
    pass = "test" --пароль для доступа к файлу
    command = "register" --команда регистрации
    newLogin = "LeshaInc" --имя нового файла
    newPass = "LeshaPass" --пароль для доступа к файлу

  }
))

Функция "sendrec" используется потому что сервер возвращает ошибку или данные.

Список сообщений которые возвращает сервер:

  • "Sucessful register" - возвращает команда регистрации при успешной регистрации
  • "Wrong command" - возвращает если команда не найдена
  • "Wrong password" - возвращает если неправльный пароль
  • команда "readData" возвращает просто данные

Также сервер выводит на экран сообщения о том что были введены команды.

 

В общем как-то так...


Забыл упомянуть: пароль хранится как обычные данные с индексом "pass" так что его можно изменить командой "writeData"

Изменено пользователем Syabro
  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот хрень! Никто не знает как можно редактировать файловую систему жесткого диска робота у которого нет ни клавиатуры ни монитора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

И я хочу присоединиться к разработке) В системе же будет дополнительное api для программ?


Вот хрень! Никто не знает как можно редактировать файловую систему жесткого диска робота у которого нет ни клавиатуры ни монитора?

Или еще, вроде, можно присоединить робота к компу, и с компа редактировать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

И я хочу присоединиться к разработке) В системе же будет дополнительное api для программ?
 Конечно, сейчас там есть GML, моя библиотека и OpenNet библиотека.

 

 

Зачем сериализация?
Для индексации данных

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Zer0Galaxy, не нравится сериализация, вся которая есть и в кк и в ок, вот только почему? Помню там в коде сериализации он делает load и этим можно код исполнять, но я проверял ничего не заметил, отправлял чистый print('hello world') ничего не выполнялось.

P.S Zer0Galaxy, можешь сделать статейку написать, и показать чем она тебе не нравится, или это просто так.

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

opennet.sendrec("0ba.f13.4f5", 
serialization.serialize(
  {

    login = "Syabro" --имя файла с данным
    pass = "test" --пароль для доступа к файлу
    command = "register" --команда регистрации
    newLogin = "LeshaInc" --имя нового файла
    newPass = "LeshaPass" --пароль для доступа к файлу

  }
))
Меня упомянули! :З
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавил еще одно сообщение в сервер "Wrong login" которое возвращается если сервер не нашел файл


Также все файлы хранятся на отдельном от программы жестком диске


+ написал простую форму авторизации через сервер базы данных

DbKCuoOQWeg.jpg

Нужно что бы в файле базы были данны с индексом "ExOSReg" и сами данные "true"

Изменено пользователем Syabro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

ну... я могу сделать не 1 комманду, а список... но как принимать данные...

Придумал!  :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну... я могу сделать не 1 комманду, а список... но как принимать данные...Придумал!  :D

Сябро, реж программы по строкам. Я по своему блютузу даже банк тоторо отправлял.

И добавлением, если её нет, команду получения твоих файлов. Будет тебе хостинг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

в моей апи есть функция которая отправляет файл и получает построчно...

Но мне не нужно резать программы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Упс. Мне почудилось, будто файлы более 8кб у тебя не отправляются. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю, резать программы по строчкам как-то не правильно. А вдруг кто-то запихнет 9 килобайтов кода в одну строку? Лучше по килобайту считывать и отправлять

P.S. кто-то может и по байту в строку положить

Изменено пользователем TC1061
  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
52 минуты назад, MisterFunny01 сказал:

А вообще нахрена писать свою ОС, есть же MineOS

Так-так-так... А кто у нас пару дней назад в чатике мечтал написать свою операционку? Что поменялось за это время?

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, MisterFunny01 сказал:

А вообще нахрена писать свою ОС, есть же MineOS

во первых, чтобы была конкуретность, а во вторых MineOS это не ось, а граф.оболочка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, eu_tomat сказал:

Так-так-так... А кто у нас пару дней назад в чатике мечтал написать свою операционку? Что поменялось за это время?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Fronun сказал:
3 часа назад, MisterFunny01 сказал:

 

во первых, чтобы была конкуретность, а во вторых MineOS это не ось, а граф.оболочка.

 

Эта фраза уже бичом нервов стала, а чертовы доморощенные эксперты-казуисты продолжают лезть изо всех дыр. Элементарная ОСь на платформе опенкомпов состоит буквально из нескольких сот строк кода, реализующих методы работы с файловой системой, позволяющих монтировать физические дисковые носители, грузить библиотеки по предустановленным путям, обрабатывать события и имитировать многозадачность. Все остальное - это графическая оболочка, в моем случае состоящая из десятка тысяч строк кода, вылизанных до предела, чтобы уложиться в строгие рамки ресурсов, выделенных под каждую виртуальную машину в кубаче. Интерфейс майноси с базовым прикладным софтом по типу проводника/настроек/пикчредакторов/магазинов/IDE мы писали с большой командой товарищей около четырех с фигом лет, постоянно его совершенствуя.

 

Эксперимента ради я решил отвязать майнось от опеноси, сделав ее полностью независимой. Это заняло несколько часов. Ценой нескольких, мать их, часов, а также нескольких написанных либ суммарным объемом в две сотни строк  майнось стала полностью удовлетворять определению "операционная система", загружаясь с очищенного от скверны жесткого диска и собственного EEPROM. Результат лежит на отдельном репозитории, законсервированный до лучших дней:

 

https://github.com/IgorTimofeev/MineOSStandalone

 

А теперь скажи мне, умник, не кажется ли тебе странным, что вся "ось" пишется на коленке за несколько часов, а "граф. оболочка" - пускай и не годами, но в значительно большие сроки? Может быть, термин "ось" переоценен, и основу современной интерфейсной операционной системы составляет все же графическая оболочка c прикладным софтом? Эх, мяу

  • Нравится 4
  • Спасибо 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...