Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Что такое стек
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Darti
В ближайшем будущем хочу разобраться с USB и Ethernet. Пока почитываю литературу, параллельно смотрю на примеры. Возник один вопрос, который мешает двигаться дальше. Во всяких апнотах и т.п. часто упоминается понятие "стек", например ethernet stack, bluetooth stack, usb stack. При этом часто рисуют картинку, на которой стрелочки от железа к программной части, нечто вроде модели OSI. Внятного объяснения я найти не могу, какие то общие размытые слова, как будто употребление этого термина должно быть мне понятно в рождения. В микроконтроллерах с понятием стека вроде сложностей нет, для меня это просто кусок оперативы, куда складываются временные данные. Как же это применяется относительно интерфейсов не понятно.
Сергей Борщ
https://ru.wikipedia.org/wiki/Стек_протоколов, в англоязычной версии расписано более подробно.
AlexandrY
Цитата(Darti @ Oct 22 2015, 09:43) *
В ближайшем будущем хочу разобраться с USB и Ethernet. Пока почитываю литературу, параллельно смотрю на примеры. Возник один вопрос, который мешает двигаться дальше. Во всяких апнотах и т.п. часто упоминается понятие "стек", например ethernet stack, bluetooth stack, usb stack. При этом часто рисуют картинку, на которой стрелочки от железа к программной части, нечто вроде модели OSI. Внятного объяснения я найти не могу, какие то общие размытые слова, как будто употребление этого термина должно быть мне понятно в рождения. В микроконтроллерах с понятием стека вроде сложностей нет, для меня это просто кусок оперативы, куда складываются временные данные. Как же это применяется относительно интерфейсов не понятно.


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

ЗЫ.ИМХО.
MrYuran
Цитата(Darti @ Oct 22 2015, 09:43) *
Как же это применяется относительно интерфейсов не понятно.

Примерно так же.
Данные проходят сначала упаковку сверху вниз, а на другом конце распаковываются в обратном порядке.
AlexandrY
Цитата(MrYuran @ Oct 22 2015, 10:34) *
Примерно так же.
Данные проходят сначала упаковку сверху вниз, а на другом конце распаковываются в обратном порядке.


Не знаю, не знаю... В моем софте данные приходят сбоку. biggrin.gif
Да у понятие "упаковка" тоже метафора. Если имеется в виду сжатие, то это не верно в общем случае. Сказать "концентрация" тут тоже будет технически не верно.
Сергей Борщ
Цитата(AlexandrY @ Oct 22 2015, 10:43) *
Если имеется в виду сжатие, то это не верно в общем случае.
Здесь имеется ввиду изначальное значение слова "упаковка":

Цитата
-Подсудимый, за что Вы убили женщину?
-Еду я в автобусе, подходит кондуктор к женщине, с требованием купить билет. Женщина открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, достала кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку, открыла кошелек, достала деньги, открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, положила туда кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку.
- И что?
- Контролер ей дал билет. Женщина открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, достала кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку, открыла кошелек положила туда билет, закрыла кошелек, открыла сумочку, достала кошелочку, закрыла сумочку, открыла кошелочку, положила туда кошелек, закрыла кошелочку, открыла сумочку, положила туда кошелочку, закрыла сумочку. «Возьмите сдачу», раздался голос контролера. Женщина… открыла сумочку…
ViKo
Стек - это "мешок" (ну, пусть "куча"). Стопка. Наложил всякого одно на другое, и в обратном порядке достаешь. Так и с протоколами - есть верхний уровень, есть пониже, есть еще пониже. И обратно.
AlexandrY
Цитата(Сергей Борщ @ Oct 22 2015, 11:39) *
Здесь имеется ввиду изначальное значение слова "упаковка":


Или перепаковка?

Цитата(ViKo @ Oct 22 2015, 11:51) *
Стек - это "мешок" (ну, пусть "куча"). Стопка. Наложил всякого одно на другое, и в обратном порядке достаешь. Так и с протоколами - есть верхний уровень, есть пониже, есть еще пониже. И обратно.


Да, но можно взять и подменить в стеке один протокол другим, но нельзя один и тот же протокол положить последовательно два раза.
Вообщем метафора на общепринятый аппаратный стек вообще не похожа.

Я бы стеки предложил называть системами протоколов.
zltigo
QUOTE (AlexandrY @ Oct 22 2015, 10:34) *
Что интересно, в русском языке стек ассоциируется с упорядоченной структурой. Но в английском это может означать просто стог, кучу, кипу.

Хоть в английском, хоть в русском, хоть китайском значение слова зависит от контекста, так что рассказывать про "стога" и "кучи" не надо - непрофессионализм sad.gif.
QUOTE
Т.е. когда англичане пишут стек протоколов, то это означает просто кучу тематически связанных разнородных протоколов.
....можно взять и подменить в стеке один протокол другим,

Нет не "кучу" а взаимоувязанную последовательность протоколов. Если где то начинается "разнородность" и необходима стыковка таких разнородных, то тогда говорят о том, как инкапсулировать. Но как и до, так и после это будут разные стеки или элементы стеков.
QUOTE
Т.е. по сути ничего не означает, там может быть какая угодно архитектура и вообще что угодно.

Нет.


QUOTE (AlexandrY @ Oct 22 2015, 10:43) *
Не знаю, не знаю... В моем софте данные приходят сбоку. biggrin.gif

Да хоть через анус. Нашли чем - "удивить" sad.gif.
ViKo
Контактные площадки на печатной плате тоже стеком описываются. Просто стопка, без умничания.
Darti
Если тупить то уж до конца. Меня путают многие фразы. Например "возьми USB/Ethernet стек используй в своем проекте". Создается впечатление, что речь идет о прослойке (считай библиотеке???), которая не зависит от платформы??? Т.е. мое понимание сей фразы, захотел я такой поднять свой проект с usb CDC например (без разницы что, просто пример), хм выбрал контроллер который мне подходит, взял стек(куча связанных библиотек?????), настроил платформозависимую часть(GPIO, скорости и т.п. ?) и хопа все завелось? Правильно ли я понимаю??? Зачем тогда в каждой статье, в которой описывается сей термин обязательно упоминается физический уровень? Какое отношение к этому всему он имеет?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.