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


Фотография

Сетевой интерфейс для OpenOS

network interface

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 Онлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 27 Ноябрь 2016 - 22:25

Привет всем! Вчера произошёл интересный момент, Дмитрий Бачило https://www.youtube....IertLkNDDITDoBQ выпустил перевод фильма Revolution OS (Всем рекомендую смотреть), фильм об GNU, в начале был момент интервью с создателем ядра Линукса Линусом, так вот он сказал, операционная система должна упрощать разработку ПО, сегодня зашёл товарищ Программист135 выпустил тему ДНС, я естественно полез читать код и меня натолкнуло на мысль увидев строку кода -  modem.send(dns_server, 19178, "dns_request", dns_address)  , все мы понимает что она делает, я увидел очень узкое место всей библиотеки, а именно работа только с один способом передачи данных, самое просто и нативное, такую библиотеку нельзя использовать в OpenNet или других сетях без переделки, а лучше иметь программу сразу под несколько сред передачи данных, но поддерживать много версий тоже не хочется, а тем более мы программисты и должны всё автоматизировать и упрощать, тут возникла мысль связанная с словами Линуса, так как я знаком с разработкой сетевых приложений под реальные ОС я знаю что ОС очень, очень упрощает работу с ней, скрывая протоколы и всю нативность у себя в ядре, почему бы не сделать более простую но тем не менее эффективную доработку OpenOS которая будет управлять разными протоколами. Мне интересно выслушать чужие мнения.

 

https://www.youtube....MfLRlX0&t=1556s


Сообщение отредактировал NEO: 27 Ноябрь 2016 - 22:28


#2 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 27 Ноябрь 2016 - 22:41

Моё первое мнение - большие полотна текста, где код идёт вперемешку с пояснениями и ссылками, и всё разделено только запятыми, а-ля "поток сознания" - меня пугают.  :)

 

А вообще, что ты имеешь ввиду под "разными протоколами"?

Сначала наверное надо стардартизировать способы передачи данных. Тогда и появится возможность объединить их в какой-то библиотеке.



#3 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 27 Ноябрь 2016 - 22:45

Моё первое мнение - большие полотна текста, где код идёт вперемешку с пояснениями и ссылками, и всё разделено только запятыми, а-ля "поток сознания" - меня пугают.  :)

 

А вообще, что ты имеешь ввиду под "разными протоколами"?

Сначала наверное надо стардартизировать способы передачи данных. Тогда и появится возможность объединить их в какой-то библиотеке.

Я уже как - то начинал что - то подобное писать.

Что - то похожее на сокеты, но только там можно определить протокол. А ядро само создаст сокет и будет соответственно его для каждого протокола по своего обрабатывать. А конечная программа будет только send и receive вызывать.


Сообщение отредактировал NEO: 27 Ноябрь 2016 - 22:46


#4 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 27 Ноябрь 2016 - 22:55

По сути, ты собираешься воскресить и документировать OpenNet, а потом написать над ним обёртку. =)



#5 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 27 Ноябрь 2016 - 23:02

По сути, ты собираешься воскресить и документировать OpenNet, а потом написать над ним обёртку. =)

Не только для OpenNet.



#6 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 27 Ноябрь 2016 - 23:31

Не только для OpenNet.

 

Для OpenNet и обычной передачи данных через модем. А других протоколов у нас вроде и нету.



#7 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 29,82%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 28 Ноябрь 2016 - 01:17

как по мне надо дополнить ОпенОСь своим средством работы с сетевыми интерфейсами, да бы они имели общий интерфейс доступа но разное внутренне строение, то есть будут определенные базовые методы в каждом интерфейсе, но различные способы передачи, например OpenNET, другой ip2b и т д, это даст возможность писать сетевые приложения, не вдаваясь в специфику реализации того или иного сетевого интерфейса, чтоб для всех приложений они были одинаковы, но и при этом не отнимать саму специфику, например тот-же OpenNet, насколько я щнаю в нем есть метод getIP (или чтото в этом духе) нужно чтоб из специфической программы (например для подключения в опеннет сеть) были доступны все методы, а в сетевом интерфейсе все сводилось к общему стандарту, я совершал попытку замутить чтото подобное, но это были наброски на коленке ( http://pastebin.com/Xwc0VVBa - тут можно сие лицизреть), естественно это такая штука нужна, и ее надо разработать)


Сообщение отредактировал ALeXeR: 28 Ноябрь 2016 - 01:18


#8 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 28 Ноябрь 2016 - 10:10

В принципе, да. Некий общий интерфейс, который с одной стороны могли бы использовать программы, а с другой стороны реализовывать разные имплементации сетей не помешал бы.

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



#9 Оффлайн   Programist135

Programist135
  • Пользователи
  • Сообщений: 111
  • Уровень сигнала: 1,21%
  • В игре: 10 час. 24 мин.
  • ГородСамара

Награды

        

Отправлено 28 Ноябрь 2016 - 16:31

Ну вот, меня эта фразочка немного расстроила..  :unsure: 

такую библиотеку нельзя использовать в OpenNet или других сетях без переделки,


#10 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 28 Ноябрь 2016 - 16:41

Ну вот, меня эта фразочка немного расстроила..  :unsure:

Почему?



#11 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 29 Ноябрь 2016 - 00:28

Сделал первые наброски, тебе такой вопрос, нужна - ли проверка состояния канала?

https://gist.github....5d1e1d0512d5c6d

native.lua нужно положить по пути /bin/net.


Сообщение отредактировал NEO: 29 Ноябрь 2016 - 00:29


#12 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 29 Ноябрь 2016 - 00:51

У меня вопрос собственно. Что это за хрень и почему мне надо 400 строчек кода, чтобы послать сообщение по сети? :P

 

Вооружившить вот это цитатой из первого поста: "операционная система должна упрощать разработку ПО", я реквестирую пример использования этой хрени.


Сообщение отредактировал Totoro: 29 Ноябрь 2016 - 00:52

  • Alex это нравится

#13 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 29 Ноябрь 2016 - 00:52

У меня вопрос собственно. Что это за хрень и почему мне надо 400 строчек кода, чтобы послать сообщение по сети? :P

Я пытался реализовать сокеты.


  • Alex это нравится

#14 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 29,82%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 29 Ноябрь 2016 - 01:22

думаю что сокеты лучше добавить в более высоком уровне адстракции, хотя можно и сшить аккуратно)



#15 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 29 Ноябрь 2016 - 14:07

думаю что сокеты лучше добавить в более высоком уровне адстракции, хотя можно и сшить аккуратно)


В каком смысле?

#16 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 29,82%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 29 Ноябрь 2016 - 18:21

просто зачастую их реализуют на высоких уровнях, образуя потоки, но тут "смотря как смотреть")



#17 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 29 Ноябрь 2016 - 18:36

Осталась какая-то мелочь.

Написать абстракцию полноценных потоков над корутинами, потом над ней абстракцию real-life сокетов, и будет готова сетевая библиотека нашей мечты!

Наконец-то мы сможем сократить эту громоздкую конструкцию:

modem.send(message)

Ура, товарищи!



#18 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 29,82%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 29 Ноябрь 2016 - 19:12

думаю что эту систему стоит реализовать библиотекой (/lib/файл_библиотеки.lua), конфигурационные файлы, содержащщие в себе инфу о списке интерфейсов (/etc/файлы.cfg), и комманду для рабты с ней (чтото в роде ifconfig)

библиотека создаст таблицу с интерфейсами и обьявит методы, эти методы не будут чемто примечательны, просто работа с таблицами, проверки и прочие, например:

 list(type) - вернет итератор для получения интерфейсов по типу если тот указать

 add(name,type,meth, ...) - добавляет интерфейс

 get(name) - получает интерфейс по имени

 set(name,meth, ...) - изменяет интерфейс

ну и многие другие...

 

также было бы не плохо регестрировать листенеры для событий интерфейсов (удаление, сообщение, добавление и т д)

ну и генерировать сигналы при вызовах определенных методов

 

А с самим струкетурой интерйеса надо будет еще подумать



#19 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 213
  • Уровень сигнала: 13,71%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 29 Ноябрь 2016 - 19:20

А зачем?

#20 Онлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 780
  • Уровень сигнала: 4,24%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 30 Ноябрь 2016 - 00:34

Осталась какая-то мелочь.

Написать абстракцию полноценных потоков над корутинами, потом над ней абстракцию real-life сокетов, и будет готова сетевая библиотека нашей мечты!

Наконец-то мы сможем сократить эту громоздкую конструкцию:

modem.send(message)

Ура, товарищи!  -_-

Ну да, только эта строчка ограничивает тебя в радиусе 400 блоков.



#21 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 21 Декабрь 2016 - 16:49

Как дела у революционных сетевых технологий?



#22 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 935
  • Уровень сигнала: 5,93%
  • В игре: 50 час. 55 мин.

Награды

                          

Отправлено 15 Январь 2017 - 22:06

Ну да, только эта строчка ограничивает тебя в радиусе 400 блоков.

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

#23 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 15 Январь 2017 - 22:08

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

 

По моему как-то ловили уже такой глюк. Сообщения нарастали лавинообразно, и начинался апокалипсис.






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных