The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Представлен модуль ядра, способный в разы ускорить OpenVPN, opennews (??), 21-Сен-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


26. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  –1 +/
Сообщение от Аноним (22), 21-Сен-21, 22:19 
может лучше сразу написать микроядро которое поднимает впн на голом железе?
Ответить | Правка | Наверх | Cообщить модератору

31. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +2 +/
Сообщение от Аноним (16), 21-Сен-21, 22:38 
Покупайте уже железные VPNы
Как будто все такие нищебpоды
Ответить | Правка | Наверх | Cообщить модератору

47. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Аноним (-), 21-Сен-21, 23:12 
Эти что ли? http://global.drfone.biz/ru/vpn/vpn-hardware.html
Так там тоже ОС )))
Ответить | Правка | Наверх | Cообщить модератору

107. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Аноним (16), 22-Сен-21, 10:21 
Кто то перевëл https://www.virtuallocation.com/vpn/vpn-hardware.html
Ответить | Правка | Наверх | Cообщить модератору

135. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Аноним (128), 22-Сен-21, 12:41 
У всех сертификаты от майора имеются? ;)
Ответить | Правка | Наверх | Cообщить модератору

171. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Аноним (-), 22-Сен-21, 14:58 
Официально притащенные ДА
Ответить | Правка | Наверх | Cообщить модератору

108. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +2 +/
Сообщение от Аноним (16), 22-Сен-21, 10:27 
https://en.wikipedia.org/wiki/Programmable_logic_device
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

94. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Василий (??), 22-Сен-21, 08:46 
В российском Континенте под капотом FreeBSD + OpenVPN. Собираются переходить в 4 версии на Linux + OpenVPN. Нет никаких "железячных" VPN.
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

104. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Онаним (?), 22-Сен-21, 09:43 
"Железные" VPN'ы уже давно тоже ни фига не железные. Не все, но большинство.
Но да, тем, кому commodity cpu для их VPN не хватает, есть смысл наконец перестать кроить.
Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

32. Скрыто модератором  –2 +/
Сообщение от Аноним (32), 21-Сен-21, 22:39 
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

76. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +4 +/
Сообщение от Ordu (ok), 22-Сен-21, 03:24 
Микроядро -- это ещё больше переключений контекста.
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

117. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-21, 11:00 
а вот тут поподробней
Ответить | Правка | Наверх | Cообщить модератору

127. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Ordu (ok), 22-Сен-21, 11:43 
> а вот тут поподробней

Микроядро -- это что? Менеджер памяти плюс переключалка процессов. Всё остальное сервисами, то есть отдельными процессами, каждый со своим адресным пространством. Чем больше адресных пространств, тем больше переключений между ними.

Ответить | Правка | Наверх | Cообщить модератору

129. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-21, 11:57 
а с коих пор один процесс лезет в адресное пространство другого процесса?
Ответить | Правка | Наверх | Cообщить модератору

132. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Аноним (128), 22-Сен-21, 12:30 
Не лезет, а просит другого с помощью IPC выполнить что-либо.
Ответить | Правка | Наверх | Cообщить модератору

146. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-21, 14:00 
> Не лезет, а просит другого с помощью IPC выполнить что-либо.

а теперь поподробнее про механизмы IPC в микроядрах

Ответить | Правка | Наверх | Cообщить модератору

133. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Ordu (ok), 22-Сен-21, 12:35 
> а с коих пор один процесс лезет в адресное пространство другого процесса?

Я где-то сказал, что он лезет? Не, они обмениваются данными и сообщениями между процессами. Прокидывая их из одного адресного пространства в другое. И это оказывается необходимым, потому что задачи, выполняемые софтом, более дробно побиты по разным адресным пространствам.

Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

149. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-21, 14:05 
> Я где-то сказал, что он лезет?

"Чем больше адресных пространств, тем больше переключений между ними."

что значить переключение? и кто переключает?

https://en.wikipedia.org/wiki/Context_switch

по ссылке я не нашел упоминание про микроядро.

> Не, они обмениваются данными и сообщениями
> между процессами. Прокидывая их из одного адресного пространства в другое. И
> это оказывается необходимым, потому что задачи, выполняемые софтом, более дробно побиты
> по разным адресным пространствам.

прочтите ссылку выше, там описано, что значить "контекст" и собственно его переключение.


Ответить | Правка | Наверх | Cообщить модератору

163. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Ordu (ok), 22-Сен-21, 14:35 
> что значить переключение? и кто переключает?

На первый вопрос ты сам чуть ниже ответил, непонятно, зачем меня спрашивал. А на второй ответа нет. В том смысле, что непонятно о чём вопрос. Если процесс делает read, а read затем добавляет операцию чтения в список ожидания, чтобы потом когда драйвер tcp/ip, в свою очередь, дождётся драйвера сетевушки, который в свою очередь дождётся прерывания, чтобы потом передавать данные по цепочке обратно, то кто во всех этих ситуациях переключает контекст? Единственный верный ответ, который мне приходит в голову -- CPU, ведь именно CPU занят сохранением значений регистров и восстановлением их. Но ответ хоть и верный, он выглядит бессмысленным в данном контексте.

> по ссылке я не нашел упоминание про микроядро.

И что? Я контексты могу переключать не вылезая из юзерспейса, более того я делал это, потому что это очень занятная задачка -- будет нечем заняться, очень рекомендую. Только переключения оказываются софтварными и контексты самодельные, но так даже интереснее. Переключения контекстов сами по себе, микроядро само по себе. Ты бы ещё статью по C открыл, и попытался бы там найти упоминаний микроядер.

> прочтите ссылку выше, там описано, что значить "контекст" и собственно его переключение.

А ты сходи и почитай собрание сочинений В.И.Ленина. Не пойду я читать про переключения контекстов -- чего я не знаю про них? Я их переключал софтварно, я переключал самодельные контексты, я переключал их инструкциями x86, я постоянно вызываю их переключения дёргая юниксовые сисколлы, зачем я буду читать статью о них? Чем это поможет данному разговору? За кого ты себя мнишь, указывая тут мне, что мне делать, и не приводя, при этом, никаких обоснований этим указаниям?

Мы о чём вообще говорим сейчас? Ты не потерял тему разговора случаем? Я, совершенно определённо потерял, для меня выглядит так, что ты сам с собой вдруг начал разговаривать -- рецидив бредового состояния? Что именно тебе непонятно? Откуда берутся переключения контекста при использовании микроядра? Или тебе непонятно, что такое переключение контекста? Или тебе непонятно, что такое микроядро?

Ответить | Правка | Наверх | Cообщить модератору

179. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от n00by (ok), 22-Сен-21, 15:55 
>> по ссылке я не нашел упоминание про микроядро.
> И что?

Он не умеет искать. На странице 18 вхождений подстроки "Kernel". Внизу перечислены варианты.

Kernel    Architectures: Exokernel * Hybrid * Microkernel * Monolithic * vkernel * Rump kernel * Unikernel

Ответить | Правка | Наверх | Cообщить модератору

187. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 22-Сен-21, 17:43 
> Он не умеет искать. На странице 18 вхождений подстроки "Kernel". Внизу перечислены
> варианты.
> Kernel Architectures: Exokernel * Hybrid * Microkernel * Monolithic * vkernel *
> Rump kernel * Unikernel

ага умник, а сколько букв "м" ?


Ответить | Правка | Наверх | Cообщить модератору

210. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от n00by (ok), 23-Сен-21, 09:03 
>> Он не умеет искать. На странице 18 вхождений подстроки "Kernel". Внизу перечислены
>> варианты.
>> Kernel Architectures: Exokernel * Hybrid * Microkernel * Monolithic * vkernel *
>> Rump kernel * Unikernel
> ага умник, а сколько букв "м" ?

Господин профессор информационных наук, а туфли Вам не почистить до блеска? Ой, Вы в кедах?

Тогда тема нашего урока: "работа с гипертекстовыми документами".

Слово "Microkernel" отличается цветом -- это называется "ссылка". Тыкаем туда мышкой. Читаем, видим два вхождения подстроки "context switch". Ищем ответы на остальные вопросы. Если таковые остаются, формулируем новые, показывая, что хоть что-то поняли. Может кто и ответит.

А тема "общее и частности" выходит за рамки нашего курса. Всего доброго.

Ответить | Правка | Наверх | Cообщить модератору

205. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Sw00p aka Jerom (?), 23-Сен-21, 02:09 
>На первый вопрос ты сам чуть ниже ответил, непонятно, зачем меня спрашивал.

Спрашивал чтобы понять, в курсе вы, что значить "контекст", его "переключение" и кто "переключает". Сделал вывод, что не в курсе, и поэтому указал ссылку где об этом можно прочесть. Ибо знающий не писал бы, "Микроядро -- это ещё больше переключений контекста.".

А теперь по статье построчно:

Вопрос: что такое "контекст" и "переключение контекста"

Ответ: In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point. This allows multiple processes to share a single central processing unit (CPU), and is an essential feature of a multitasking operating system.

Дополнение: The precise meaning of the phrase “context switch” varies. In a multitasking context, it refers to the process of storing the system state for one task, so that task can be paused and another task resumed. A context switch can also occur as the result of an interrupt, such as when a task needs to access disk storage, freeing up CPU time for other tasks. Some operating systems also require a context switch to move between user mode and kernel mode tasks.


Вопрос: В каких случаях происходит "переключение контекста"

Ответ: Когда имеет место быть - Multitasking, Interrupt handling, User and kernel mode switching (тут надо выделить слово mode)


Вопрос: "Цена переключения"

Ответ: Context switches are usually computationally intensive, and much of the design of operating systems is to optimize the use of context switches. Switching from one process to another requires a certain amount of time for doing the administration – saving and loading registers and memory maps, updating various tables and lists, etc. What is actually involved in a context switch depends on the architectures, operating systems, and the number of resources shared (threads that belong to the same process share many resources compared to unrelated non-cooperating processes).

Дополнение: For example, in the Linux kernel, context switching involves switching registers, stack pointer (it's typical stack-pointer register), program counter, flushing the translation lookaside buffer (TLB) and loading the page table of the next process to run (unless the old process shares the memory with the new).

Дополнение: Furthermore, analogous context switching happens between user threads, notably green threads, and is often very lightweight, saving and restoring minimal context. In extreme cases, such as switching between goroutines in Go, a context switch is equivalent to a coroutine yield, which is only marginally more expensive than a subroutine call.


> А на второй ответа нет. В том смысле, что непонятно о
> чём вопрос.

Думаю прочли дополнение ответа первого вопроса выше, вот там часто мелькает слово task, так вот вопрос был в том, кто управляет этими tasks и делает "context switch".

> то кто во всех этих ситуациях переключает контекст?

это и был собственно вопрос

> Единственный верный ответ, который мне приходит в голову -- CPU

Приходит или вы это прочли где-то? Если прочли, то ссылку в студию.

> ведь именно CPU занят сохранением значений регистров и восстановлением
> их.

Нет, не всегда, читаем по ссылке раздел Switching cases параграф Interrupt handling


> И что? Я контексты могу переключать не вылезая из юзерспейса, более того
> я делал это, потому что это очень занятная задачка -- будет
> нечем заняться, очень рекомендую. Только переключения оказываются софтварными и контексты
> самодельные, но так даже интереснее.

Вот поэтому я вам ссылку указал где поясняется, что подразумевается под понятием "context switch", а то что вы делаете там из юзерспейса - называйте как хотите. Даже банальный вызов функций в одном процессе есть своего рода "context switch".


> Ты бы ещё статью по C открыл, и
> попытался бы там найти упоминаний микроядер.

Ваше же утверждение "Микроядро -- это ещё больше переключений контекста."?, по ссылке выше про микро-ядро ни слово.


> зачем я буду читать статью о них? Чем это поможет данному разговору?

Внесет ясность в вопрос ```Истинно ли данное утверждение - "Микроядро -- это ещё больше переключений контекста."?```

> За кого ты себя мнишь, указывая тут мне, что мне делать, и
> не приводя, при этом, никаких обоснований этим указаниям?

На утверждение "Микроядро -- это ещё больше переключений контекста." жду пояснений, так и написал в коменте "а вот тут поподробней".


> Мы о чём вообще говорим сейчас? Ты не потерял тему разговора случаем?

Перед тем как давать пояснения по поводу сделанного утверждения "Микроядро -- это ещё больше переключений контекста.", необходимо сначала пояснить, что есть "контекст", "переключение контекста" и собственно кто этот "контекст переключает". После этих пояснений, должны последовать закономерные пояснения по поводу "микро-ядра", и в итоге должны получить пояснения по сделанному изначально утверждению.

> Я, совершенно определённо потерял, для меня выглядит так, что ты сам
> с собой вдруг начал разговаривать -- рецидив бредового состояния?

Это все лишнее, сконцентрируйтесь на вопросах.

> Что именно тебе непонятно?

выше все описано


Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

206. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +1 +/
Сообщение от Ordu (ok), 23-Сен-21, 03:49 
>> Я, совершенно определённо потерял, для меня выглядит так, что ты сам
>> с собой вдруг начал разговаривать -- рецидив бредового состояния?
> Это все лишнее, сконцентрируйтесь на вопросах.

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

Ответить | Правка | Наверх | Cообщить модератору

214. "Представлен модуль ядра, способный в разы ускорить OpenVPN"  +/
Сообщение от Совершенно другой аноним (?), 23-Сен-21, 10:20 
Справедливости ради, одной из причин, по которой не особо взлетели микроядра, это и были лишние накладные расходы на системные вызовы и переключение контекстов. Для примера можно посмотреть работу прикладной программы с сетевой файловой системой.

В linux с ядерным nfs, прикладная программа говорит open() на какой-то сетевой файл, происходит системный вызов (1с), далее начинается беготня по ядру, сначала по коду клиента nfs, потом по сетевой подсистеме, которая обеспечивает протокольную часть, а затем и по драйверной части, если за это время нам понадобилось чего-то ждать, то может происходить переключение контекстов на другой процесс/поток (1п?). Как бы то ни было, всё заканчивается выдачей сформированного пакета через один из сетевых интерфейсов. Затем происходит возврат из ядра, но в данном случае мы его не будем рассматривать.

В микроядерной QNX6 всё немного по-другому. Прикладная программа говорит open() на какой-то сетевой файл. Происходит системный вызов (1с) микроядра, и переключение (1п) на прикладной процесс демона nfs, который внутри себя начинает формировать пакет и далее опять вызывает микроядро (2с), которое переключается (2п) на процесс сетевой подсистемы, который уже выдаёт сообщение через один из сетевых интерфейсов. Аналогично в процессе работы как nfs, так и процесса сетевой подсистемы им может понадобиться чего-то подождать, что потребует ещё одного или более переключений контекста (3п?).

В QNX4 было-бы ещё сложнее - там был отдельный процесс обеспечивающий стек протоколов tcp/ip, а отдельно - сетевая подсистема работающая с сетевыми-же интерфейсами, т.е. системных вызовов и переключений контекста было-бы ещё больше.

В итоге видите, что в linux для открытия файла на nfs требуется один условный системный вызов и половину переключения контекста (может быть, а может нет), в микроядерной QNX требуется два системных вызова и два с половиной переключения. На самом деле всё гораздо сложнее, в обоих случаях и в linux и в QNX могут потребоваться ещё дополнительные системные вызовы и переключения контекста, но по факту, в QNX их количество будет больше, соответственно больше будут и накладные расходы на аналогичные операции.

Аналогично и для простых файловых систем, которые в микроядерной ОС будут отдельными менеджерами и, соответственно, будут требовать отдельные системные вызовы в ядро и переключения контекста процессора на себя.

Ответить | Правка | К родителю #205 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру