Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Отправляйся в Скайдом — волшебную страну, парящую высоко в небе среди пушистых облаков! Всё вокруг сияет яркими красками, а в самом сердце этого чудесного мира тебя ждет увлекательная арена, где можно с удовольствием и пользой провести время, собирая ряды из одинаковых элементов.

Скайдом: три в ряд

Три в ряд, Головоломки, Казуальные

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
12
Timeweb.Cloud
Timeweb.Cloud
IT минувших дней

Искусственный интеллект Джона Маккарти⁠⁠

1 год назад

«Я не считаю, что человеческий интеллект — это нечто такое, чего люди никогда не смогут понять». Джон Маккарти, март 1989 г.

Сегодня исполняется 97 лет со дня рождения Джона Маккарти, одного из людей, которые изменили весь информационный мир. Даже Джон Коннор существует только благодаря Джону Маккарти, ведь именно он придумал само понятие «искусственный интеллект», а драмы в его жизни хватало. Он внёс огромный вклад в развитие робототехники и многие другие системы, например — в распознавание речи. Отдавая дань памяти Джону мы сделали для вас, дорогие читатели, аудиоверсию статьи по старинке, без использования искусственного интеллекта.

Джон Маккарти имел классические американские корни, что логично, ведь он родился 4 сентября 1927 года в Бостоне, в семье ирландского эмигранта и литовки еврейской национальности, тоже переселившейся в США, правда… они ещё были активистами коммунистического движения, так что наша логика начинает несколько страдать. Отец Джона была убеждённым католиком, рыбаком и плотником, а также организатором профсоюзных движений, что стало причиной частых переездов семьи. Мать, профессиональная журналистка, сначала перешла с уровня федерального на уровень коммунистической газеты, а потом ушла в соцработники.

Сам Джон своё ранее увлечение наукой прямо связывал с политическими убеждениями своих родителей. Его любимая книга – совершенно обычная и знакомая многим из нас «100 000 почему» М. Ильина (это псевдоним, настоящее имя писателя – Илья Яковлевич Маршак, он брат Того Самого Маршака). С учётом того, что дело происходило в 1930-е гг. в США, ситуация несколько удивляет. Сам Джон уже ближе к старости отметит: «Я как-то недавно читал про одного китайского не по годам развитого ребёнка, который тоже читал 100 000 почему».

Сам Джон в многочисленных интервью практически не уделяет внимания своему детству, да и вспоминает себя как «рядового школьника», только этот «рядовой школьник» ещё в старших классах получил копии учебников по матанализу, которыми пользовались в Калифорнийском технологическом университете студенты первых двух курсов. Когда он туда поступил, обучение по этим предметам сразу началось на уровне третьего курса. Однозначно «типичный школьник».

❯ Путь к знаниям через страх

В 1948 году случилось одно из значимых событий в жизни Джона Маккарти. Он перешёл в аспирантуру Принстона и посетил симпозиум Хиксона по мозговым механикам (полное название – Hixon Symposium on Cerebral Mechanisms and Behavior). Само мероприятие могло не сохраниться в человеческой памяти, если бы не первая встреча Джона Маккарти и Джона Фон Неймана. Маккарти никогда не был учеником Неймана в привычном нам смысле. В то же время они изредка работали вместе.

Удивительно, но даже для гениев характерны страх и сомнения в себе. Джон Маккарти вспоминал, что он, будучи молодым аспирантом Принстона, пришёл к Нейману в Институт перспективных исследований и поделился с маэстро своими задумками – реакция, в целом, была очень положительной. Джон фон Нейман указал, что нужно учесть для дальнейшей проработки… а Джон Маккарти подумал и решил, что идеи для этого недостаточно хороши. И не стал их записывать. Спрашивается, зачем тогда ходил? Спустя годы сам Маккарти прямо скажет: «Это было глупо с моей стороны». Глупости он в целом любил. Например, прогуливал физкультуру настолько, что оказался в армии США, и лишь в 1948 году закончил учёбу.

Ранние идеи Маккарти были сложны, модель, которую он разрабатывал и пытался объяснить фон Нейману, не могла быть грамотно сформулирована даже её автором. Джону потребовалось более девяти лет, чтобы опубликовать свои наработки, ведь его встреча с фон Нейманом состоялась в 1948 году, а публикация появилась только в 1959 году. В этой публикации Джон смог сформулировать, как заставить мозг изучать конкретные факты и математическую логику. Статья вышла под названием «Программы со здравым смыслом» и, как считал сам Маккарти, сыграла важную роль в начале логического искусственного интеллекта.

К моменту публикации данной статьи уже сложно было найти что-то общее между Маккарти и тем молодым и совсем неопытным Джоном, который был слегка придавлен авторитетом своего статусного коллеги. В 1951 году Джон получил свою Ph.D. в Принстоне под руководством Дональда Клайтона Спенсера, известного американского математика. Успел сам поработать и в Принстоне, и в Стенфордском университете и в 1955 году стать доцентом Дартмутского университета. Этот период в жизни Маккарти имеет особое значение. Именно там и в это время зародился искусственный интеллект.

❯ Дартмутская мастерская – кузница искусственного интеллекта

В прекрасном городе Ганновер (США) шёл летний исследовательский проект [Dartmouth Summer Research Project on Artificial Intelligence] с 18 июня по 17 августа 1956 года. Его второе название – Dartmouth workshop, Дартмутская мастерская. Важно не путать данное мероприятие с серией Дартмутских конференций, до старта которых ещё несколько лет.

К тому моменту сложилось множество названий для области «думающих машин», использовалось название «кибернетика», «теория автоматов», «сложная обработка данных» и ещё ряд названий. Своё название в эту плеяду решил внести Джон Маккарти, недавно ставший доцентом Дартмутского колледжа. Практически сразу после того, как он получил своё новое место работы, Джон начал собирать группу для работы над идеями о мыслящих машинах. Именно он выбрал новое название для области своих действий – «Искусственный интеллект».

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

За спонсорством своей научной тусовки Джон Маккарти обратился в Фонд Рокфеллера. Всего планировалась оплата работы десяти учёных. Вместе с Маккарти был Клод Элвуд Шеннон, учёный весьма широкого профиля, специалист по криптоанализу, порой именуемый «Отец теории информации». Шеннон, без сомнения, достоин отдельной истории, где он будет главным героем, а пока он помогает Джону Маккарти найти деньги для организации семинара 1956 года. Двое учёных встретились с представителем фонда Рокфеллера, а уже 2 сентября 1955 года был официально предложен проект от четырёх человек: «О проведении двухмесячного исследования искусственного интеллекта с участием 10 учёных летом 1956 года в Дартмутском колледже в Ганновере, штат Нью-Гемпшир. Исследование должно основываться на предположении, что каждый аспект обучения или другая черта интеллекта в принципе могут быть описаны настолько точно, что можно создать машину для их имитации: «Мы считаем, что можно добиться значительного прогресса, если тщательно отобранная группа учёных проработает над ними вместе в течение лета». В дополнении к этому предположению стояли четыре фамилии: Джон Маккарти, Марвин Мински, Натаниэль Рочестер, Клод Шеннон.

Именно эту четвёрку наиболее корректно считать организаторами данного форума и сооснователями искусственного интеллекта. Их биографии сопровождали заявку, подтверждая тот факт, что они имеют право просить того, чего просят. Начинал Клод Шеннон, как самый влиятельный учёный из группы на тот период. Шеннону было 40 лет, и подчёркивал он в своей биографии работу над коммутационными схемами, проектирование обучающихся машин, криптографию и теоретические вычисления (машинами Тьюринга). Маккарти выделил среди своих заслуг работу по математической природе взаимосвязей между моделью мозга, его средой и использование языков машинами, которую Маккарти обсуждал с фон Нейманом в рамках представления его знаменитого доклада «Общая и логическая теория автоматов». Мински, товарищ Маккарти по учёбе, сделал упор на то, что «построил машину для моделирования обучения с помощью нейронных сетей», причём это была «не пустая болтовня», Мински настолько впечатлил Шеннона, фон Неймана и Норберта Винера, что они совместно рекомендовали его на должность в Гарварде. Последний из группы, Натаниэль Рочестер, был старшим инженером IBM и её менеджером по информационным исследованиям, управлял первым коммерческим научным компьютером от IBM. Кроме чисто управленческих функций Рочестер написал первый ассемблер в 1951 году, а к началу конференции работал над моделированием нейронных сетей.

У фото, которое вы видите выше, необычная история. Его нередко можно было встретить без упоминания Питера Милнера, который указывался просто как «один неизвестный». Дело в том, что его специализация существенно отличалась от остальных первопроходцев в ИИ. В своей книге 1999 года он прямо писал: «Меня пригласили на встречу компьютерных учёных и теоретиков информации в Дартмутском колледже. Большую часть времени я понятия не имел, о чём они говорят!» При этом работы самого Милнера сильно повлияли на раннее развитие искусственных нейронных сетей, ввиду чего он был приглашён на встречу совершенно заслуженно. Среди учёных существовал огромный интерес к изучению мозга и нейронов для воспроизведения функций и интеллекта.

Список участников, который сохранил Рей Соломонофф, фамилии узнаваемы, учреждения, которые представляют учёные, – тоже

Список участников, который сохранил Рей Соломонофф, фамилии узнаваемы, учреждения, которые представляют учёные, – тоже

В некотором роде это было уникальное собрание. Это не был классический исследовательский проект, у которого есть цель, задачи, некоторая структура. Это был огромный мозговой штурм, позволим себе назвать сие собрание «научным шабашем», который собрал весьма влиятельную плеяду специалистов. Вместо изначальных 10 учёных было 20 человек, которые прибывали на разные сроки, в основном небольшие.

Рэй Соломонофф вёл записки, они оцифрованы, благодаря им у нас есть ещё и полный список участников, т. к. свою копию Джон Маккарти умудрился потерять. Мы не смогли найти общее изображение участников встречи одновременно, так что попытаемся создать для наглядности несколько коллажей, которые охватят их всех.

Вторая достаточно известная проблема с фотографиями, когда вместо Тренчарда Мора (крайний портрет в нижнем правом углу на фотографии), размещают совершенно иного человека, в лучшем случае это будет Питер Милнер с первой групповой фотографии, в худшем – Луи Тренчард Мор, умерший больше чем за десятилетие до проведения собрания.

Искусственный интеллект Джона Маккарти

Искусственный интеллект Джона Маккарти

К сожалению, путанице неплохо так помог фильм от нетфликс «Закодированная предвзятость», куда закралась ошибка с определением личностей, и заметить которую смог только лично присутствовавший там Рей Соломонофф (о чём подробно написал у себя на странице, за что мы ему благодарны). Соломонофф, Мински и Маккарти – три человека, которые провели на «сборах» всё время проведения мозгового штурма.

Пытаться описывать процесс хаотичного общения гениальных учёных между собой – идея, которая обречена на провал. Сам Маккарти был очень пессиместичен и в 1979 году написал о своём детище: «Все, кто там был, были упрямы в стремлении следовать своим идеям, которые были ранее. Никакого реального обмена идеями не было. Люди приезжали на разные периоды времени, хотя изначальная идея строилась на том, что все согласятся приехать на шесть недель. Для меня это было большим разочарованием, потому что это действительно означало, что мы не могли проводить регулярные встречи.

Пятеро участников конференции AI@50 в 2006 году, которые были участниками Дартмутского лета 1956 года: Тренчард Мор, Джон Маккарти, Марвин Мински, Оливер Селфридж, Рэй Соломонофф

Пятеро участников конференции AI@50 в 2006 году, которые были участниками Дартмутского лета 1956 года: Тренчард Мор, Джон Маккарти, Марвин Мински, Оливер Селфридж, Рэй Соломонофф

❯ Краткие итоги, новые начала

Помните, что я говорил о молодом Маккарти, который болезненно переживал собственные (частично выдуманные) ошибки? Взрослый и серьёзный учёный от этого так до конца и не избавился.

При всём пессимизме Маккарти, как минимум появился сам термин «искусственный интеллект», который стал прямым результатом проведения конференции. Кроме того, в самый короткий срок после проведения мероприятия были созданы работы Ньюэлла, Шоу и Саймона по обработке информации (IPL) и их логико-теоретической машине (Moor, 2006).

Артур Сэмюэль в 1959 году ввёл термин «машинное обучение» и создал программу Samuel Checkers-playing, одну из первых в мире успешных программ самообучения. Селфриджа теперь часто называют «отцом машинного восприятия» за его исследования в области распознавания образов. Мы несколько забежим вперёд, но Мински получит премию Тьюринга в 1969 году за «центральную роль в создании, формировании, продвижении и развитии в области искусственного интеллекта». Ньюэлл и Саймон получили ту же премию в 1975 году за вклад в «искусственный интеллект и психологию человеческого познания». Во всех этих достижениях виден след встречи, о которой вспоминали практически все учёные, принявшие в ней участие.

Данная научная встреча не просто так вызывала столь много внимания, это была ступень, после которой изучение искусственного интеллекта было уже не остановить. И создал эту ступень Джон Маккарти, что бы он сам по этому поводу ни думал.

В том же 1958 году по итогам прошедшего мероприятия началась разработка ещё одной вехи периода искусственного интеллекта – языка программирования LISP (англ. List Processing language — «язык обработки списков»). Не станем подробно говорить о технической сути языка, на хабре есть соответствующая статья, ему посвящённая, отсылаем всех туда. Кроме того, есть статья самого Джона Маккарти от 1980 года «LISP – Заметки о прошлом и будущем». В этот же период он участвует в разработке Algol 60 и вносит в язык рекурсию и условные выражения.

Активная разработка LISP началась по окончании конференции, когда Маккарти, Ньюэлл, Сайман и Мински вдоволь наобщались. Маккарти взял у них идею обработки списков, однако они использовали язык IPL, который Маккарти иначе как «ужасным» не называл. Но другие господа не собирались от него отказываться. Не собирались, но отказались, ведь прогресс не стоит на месте. LISP взял у них идею обработки списков, а затем для формы языка взял в качестве модели Fortran. Кроме этого, появляется сборщик мусора, существенно облегчающий работу.

В 1959 году Джон Маккарти написал отчёт, в котором показывал LISP как универсальное вычислительное средство. Для этого он провёл сравнение с машиной Тьюринга, описание которой состояло из шести страниц текста, в то время как сам Маккарти управился в несколько строк.

❯ Как давать советы машине?

В этом маленьком промежутке 1958–1959 годов была создана и опубликована статья «Programs with Common Sense» [полный текст статьи доступен благодаря сайту Джона Маккарти]. Это была одна из первых попыток научить программу понимать математическую логику. Маккарти считал, что возможно давать советы программе, рассказывая о символическом окружении и том результате, который требуется. Для этого нужно научить программу широкому перечню непосредственных логических следствий всего, что ему говорят, и его предыдущих знаний. Ожидается, что это свойство будет иметь много общего с тем, что заставляет нас описывать некоторых людей, как обладающих здравым смыслом. «Поэтому мы будем говорить, что программа обладает здравым смыслом, если она автоматически выводит для себя достаточно широкий класс непосредственных следствий всего, что ей говорят, и того, что она уже знает».

Параллельно Маккарти работал над концепцией букв, в которой он существенно не соглашался с книгой Джерома Брунера «Исследование мышления». Ему не нравилось само понятие «концепции». Маккарти пытался обработать концепцию форм букв: выпуклая ли она? Есть ли в ней отверстие. Через огромный комплекс элементарных концепций можно было бы совершить необходимое множество элементарных комбинаций и создать алфавит, который можно обрабатывать. Однако это требует существенного теоретического понимания, ведь если взять букву, которая состоит из отрезка и трёх других отрезков, перпендикулярных первому, получиться может и заглавная буква «Е», и русская буква «Ш», различия будут лишь в угле поворота. Поэтому идея Маккарти может быть сведена к следующему: «Описание, а не дискриминация». Нужно не манипулировать имеющимися объектами, а максимально описывать те, которые требуются. Без этого не может быть работы робототехники, не может быть эксперимента. Хотя до активного включения в робототехнику ещё осталось несколько лет.

❯ Система разделения времени

В конце 1950-х гг. компьютеры становились существенно мощнее, но оставались при этом невероятно дорогими устройствами. Для предоставления возможности к равноценному использованию мощностей Джоном Маккарти была предложена система Compatible Time-Sharing System. Принял участие Джон и в создании BBN Time-Sharing System. Этот уникальный человек участвовал в разработке всех трёх первых систем разделения времени, в дальнейшем они перешли к облачным вычислениям. Джон инициировал эти разработки на самом раннем этапе.

Меморандум о системе разделения времени, созданный Джоном Маккарти. <a href="https://pikabu.ru/story/iskusstvennyiy_intellekt_dzhona_makkarti_11775533?u=http%3A%2F%2Fjmc.stanford.edu%2Fcomputing-science%2Ftimesharing-memo.html&t=%D0%9F%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%BC%D0%B5%D0%BC%D0%BE%D1%80%D0%B0%D0%BD%D0%B4%D1%83%D0%BC%D0%B0%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B5%D0%BD%20%D0%BF%D0%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20%5B%D0%B0%D0%BD%D0%B3%D0%BB%D0%BE%D1%8F%D0%B7%D1%8B%D1%87%D0%BD%D1%8B%D0%B9%20%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%5D&h=e41c9282067c004d0edf4ed08b736a884a29892e" title="http://jmc.stanford.edu/computing-science/timesharing-memo.html" target="_blank" rel="nofollow noopener">Полный текст меморандума доступен по ссылке [англоязычный материал]</a>

Меморандум о системе разделения времени, созданный Джоном Маккарти. Полный текст меморандума доступен по ссылке [англоязычный материал]

При этом коллега Маккарти Фредкин говорил о том, что разделение времени вполне может быть реализовано даже на самом небольшом компьютере, например RDP-1: «Изобретение Джоном разделения времени и то, как он рассказывал мне о своих идеях, произошло до того, как появился PDP-1. Когда я впервые увидел PDP-1 на Восточной объединённой компьютерной конференции, я понял, что это идеальное недорогое средство для реализации идей Джона».

❯ Создание лаборатории искусственного интеллекта Массачусетского технологического института

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

Джон Маккарти, Марвин Мински

Джон Маккарти, Марвин Мински

  • Джон Маккарти (встречая в коридоре института своего товарища Марвина Мински): «Марвин! Нам нужна лаборатория для изучения искусственного интеллекта!».

  • Марвин Мински: «Джон, это чертовски хорошая идея! Надо её реализовать!».

  • Джон Маккарти: (встречая в том же коридоре Джерри Визнера, который был главой Исследовательской лаборатории электроники): «Эй, Джерри! Марвин и я хотим иметь лабораторию искусственного интеллекта!».

  • Джерри Визнер: «Хорошо. Что вам нужно?».

  • Джон Маккарти: «Нам нужна комната, и секретарь, и перфоратор, и два программиста».

  • Джерри Визнер: «А как насчет шести аспирантов?».

  • Джон Маккарти, Марвин Мински: «Да».

  • Джерри Визнер: «Договорились, у вас будет ваша лаборатория».

Сей перфоманс был связан с тем, что непосредственно в тот момент MIT получил очень хороший контракт от Joint Services, и у организации были хорошие финансовые возможности. Денежные потоки делились между отделами свободно, а у «математиков» появилась потребность пристроить шестерых аспирантов для работы. Фактически случилось чудо, и Мински с Маккарти просто пришли и отобрали организационный вопрос у Джерри Визнера, который пытался придумать, как ему распределить неожиданно свалившиеся ресурсы. Джон Маккарти позже будет вспоминать, что такой подход его откровенно разбаловал.

Джордж Форсайт

Джордж Форсайт

В 1962 году Маккарти с некоторым приключением возвращается в Стэнфорд. В тот момент он бы доцентом кафедры коммуникационных наук на кафедре электротехники. Научная деятельность шла своим чередом, и совершенно неожиданно Джону Маккарти позвонил Джордж Форсайт из Стэнфорда. Этот человек был пионером компьютерной науки, подготовив 17 докторов наук, известных под названием «плеяда Форсайта», каждый из которых тоже подготовил множество выдающихся учёных.

Просто отказать такому человеку Маккарти не мог и сказал, что вернётся в Стенфорд только профессором. И это через год после того, как Маккарти стал доцентом. Наглость? Наглость! Но ведь это был лишь «вежливый отказ», Джон не думал о том, что его заберут. Но Маккарти был нужен Форсайту! Форсайт хотел свою кафедру компьютерных наук. При этом, как позже узнал Джон, Форсайт не был знаком с его научной деятельностью, они были из «разных сфер», но Маккарти сформировал свою репутацию, и она стала приносить деньги! Чертовски большие деньги!

Между Стэнфордом и MIT развернулась целая борьба за будущего профессора. MIT готов был поднять зарплату с 9 до 15 тысяч долларов, но не был готов дать Маккарти должность профессора, не предоставив такую же должность его товарищу Мински, с которыми их ставили в одну научную связку даже с учётом того, что они работали на разных факультетах. MIT даже готов был поднять Маккарти в должности до директора по исследованиям на факультете компьютерных наук, но, как вспомнит Джон, он чертовски не любил расчищать снег на подъездной дорожке и решил уехать в Стэнфорд, приняв их приглашение.

Дональд Эрвин Кнут и Андрей Петрович Ершов

Дональд Эрвин Кнут и Андрей Петрович Ершов

Новый отдел был достаточно солидным, хоть и небольшим. Сам Форсайт – числовой аналитик. Джон Маккарти, ещё один аналитик Джин Голуб. Вместе с ними был «монстр» научной деятельности в сфере информатики – Дональд Эрвин Кнут, которого тоже убедили перейти в Стенфорд, его «искусство программирования» уже в процессе.

На дворе был 1962 год, с тех пор до своего выхода на пенсию в 2000 году Джон Маккарти больше не покидал Стенфорд. Особым его достижением стало создание Стэнфордской лаборатории искусственного интеллекта, она же SAIL.

Работа этой лаборатории была связана с целым рядом компьютерных систем и новейшими достижениями робототехники. Началось всё с того, что Джон Маккарти работал над компьютером PDP-1, занимался разработкой системы разделения времени для BBN, о чём вы уже знаете. Маккарти запросил денег на создание лаборатории робототехники имея описания необходимых ему действий. Он стремился получить компьютер PDP-6, не будучи удовлетворённым компьютером PDP-1, и свою технику получил, вместе с новыми возможностями.

❯ Компьютерная партия Коток-Маккарти

Из «Программы игры в шахматы для компьютера IBM 7090», дипломной работы Алана Котока, научный руководитель Джон Маккарти, Массачусетский технологический институт, 1962 г

Из «Программы игры в шахматы для компьютера IBM 7090», дипломной работы Алана Котока, научный руководитель Джон Маккарти, Массачусетский технологический институт, 1962 г

Прежде чем перейти к работе лаборатории, нужно уделить внимание проекту который длился с 1959 по 1962 годы.

Это была одна из первых компьютерных программ для игры в шахматы, известная также под названием A Chess Playing Program for the IBM 7090 Compute. Эта программа известна тем, что играла свой первый матч между двумя компьютерными программами и проиграла его. Эту программу написала группа аспирантов Джона Маккарти: Элвин Берлекамп, Алан Коток , Майкл Либерман, Чарльз Ниссен и Роберт А. Вагнер. Они добавили альфа-бета-обрезку к minmax по предложению Маккарти, чтобы улучшить генератор правдоподобных ходов, и к 1962 году, когда закончили свою учёбу, смогли научить программу играть на уровне, «сравнимом с любителем, имеющим опыт около 100 игр».

В 1965 году Джон Маккарти посещает СССР и знакомится с компьютером М-2, в лаборатории Александра Кронрода в Московском институте теоретической и экспериментальной физики (ИТЭФ). Между компьютерами была начата шахматная партия по переписке. Советская сторона выиграла матч по переписке , который проводился по телеграфу в течение девяти месяцев в 1966-1967 годах. Программа Котока-Маккарти проиграла матч со счетом три к одному. Через год после игры Александр Кронрод потеряет свою должность (по одной из версий) из-за жалоб на то, что компьютерные ресурсы используются для создания игры. Возможно, «письмо 99» несколько ближе к его проблемам, но это точно другая история.

Маккарти же «свою» партию в шахматы выиграл и продолжил руководить своей лабораторией.

❯ Чем занималась лаборатория?

Синтезировала интеллект из видных учёных. Простите за каламбур, но ответить на такой простой вопрос достаточно сложно. Логичнее всего будет сказать, что она стала точкой концентрации широкого рода научной деятельности, важнейшим из которых стала робототехника. Там ковались именитые учёные. Например, Виктор Шейнман.

Виктор Дэвид Шейнман и его гидравлическая рука

Виктор Дэвид Шейнман и его гидравлическая рука

В 1962 году на базе исследовательской лаборатории началось создание робота. Изначально Маккарти хотел «полного» робота, но очень быстро понял, что ресурсы не позволяют в ближайшем будущем создать механически или программно полного робота. И интерес был перенесён на руку. В тот момент в лаборатории работал аспирант Виктор Шейнман, которого Маккарти именовал «гением». Он занимался проектированием механических рук. В 1965 году лаборатория купила компьютер PDP-6, после чего началось активное сотрудничество с Шейнманом. Удивительно, но роботизированные руки, которые изготавливались во время Второй Мировой войны, оказались никому не нужными, Джон вспоминал, что их просто бросили, и лаборатория начала полностью собственные разработки.

Первая рука, созданная Виктором, была гидравлической, пластиковые трубки под высоким давлением имели шанс создать полноценное орудие убийства в случае аварии. Из-за этого рукой никогда не пользовались, для неё было построено небольшое строение на территории. А использовались руки более слабые и намного более маленькие, которые работали на электричестве. При этом финансирование на них выбивал Маккарти. Первая рука была настолько сложной в управлении, что профессор Дональд Пипер в докторской диссертации назвал её целью «разбивание вещей» и рекомендовал определённые конфигурации связей, которые позволили бы упростить решения для руки.

В 1969 году была создана знаменитая Рука Стэнфорда, полностью электрическая, шестиосевой промышленный робот. Как и предрекал Дональд Пипер, робот существенно расширил сферу своего применения. Под управлением компьютера он научился следовать произвольным траекториям и освоил элементы сборки и дуговой сварки, он имел три оси запястья и тормоза на каждой оси, что облегчило управление при помощи компьютера с разделением времени. Шейнман создавал свои руки для других научных учреждений, среди которых Бостонский университет, SRI, MIT и т. д. Шейнман продолжал заниматься машиностроением вплоть до своей смерти.

❯ Shakey the Robot

В лаборатории было создано множество по-настоящему прогрессивных роботов, каждому из которых можно посвятить отдельную статью. Например, робот Шейки. На хабре есть про него достаточно подробная статья. Кроме того, имеется качественный видеоролик, основанный на архивных материалах, который мы также рекомендуем посмотреть, не углубляясь в тонкости робототехники.

Чарльз Розен, Питер Харт, Нил Нильссон - создатели робота. Мы настоятельно советуем ознакомиться с видеороликом, прикреплённым ниже, о создании этой удивительной машины

Чарльз Розен, Питер Харт, Нил Нильссон - создатели робота. Мы настоятельно советуем ознакомиться с видеороликом, прикреплённым ниже, о создании этой удивительной машины

Оригинальный видеоролик, с качественным архивным материалом, посвящённый созданию робота

Shakey показал, что фантастика не так уж далека от реальности. Во-первых, в отличие от Unimate, Shakey мог двигаться. Во-вторых, там, где Unimate должен был быть предварительно запрограммирован для выполнения определённой задачи, Shakey мог выполнять задачи, которые требовали от него динамического планирования, поиска маршрута и перестановки простых объектов. В-третьих, в отличие от Unimate, который не имел взаимодействия за пределами программистов, Shakey мог понимать около 100 слов письменного английского языка. Он переводил эти команды в код, так что непрограммисты могли заставить Shakey выполнить какую-то работу...

ЧИТАТЬ ДАЛЕЕ ↩ (без регистрации и СМС)

Материал получился достаточно объемным и все подробности, к сожалению, не влезли :(

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни;

  • Скрытая сила терминала или почему всем нужно уметь работать через командную строку;

  • Редчайший открытый смартфон на Linux: Neo Freerunner. Каким был прадедушка PinePhone?.

Показать полностью 15 1
[моё] Наука IT Timeweb Искусственный интеллект Терминатор Инновации Электроника Робот Длиннопост Видео YouTube
0
62
Timeweb.Cloud
Timeweb.Cloud
Лига Сисадминов

Скрытая сила терминала или почему всем нужно уметь работать через командную строку⁠⁠

1 год назад
  • Автор текста: TilekSamiev

В фантастическом фильме Стивена Спилберга «Особое мнение» 2002 года представлен футуристический и концептуальный компьютерный интерфейс. Здесь отрывок, в котором Том Круз использует его.

Все согласятся, что интерфейс этого будущего невероятен и желанен. Если призадуматься, что является его самым удивительным аспектом? Много лет назад можно было бы сказать, что это тонкие экраны. Или невероятная сенсорная технология. Сегодня у нас есть и то, и другое! На самом деле, то, что у нас есть сегодня, даже лучше; мы можем отображать на экране более двух цветов, намного лучше, что есть в антиутопическом будущем Филипа К. Дика.

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

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

❯ Вначале была командная строка


Интерфейсы командной строки (CLI) доминировали на заре вычислительной техники. До того, как персональные компьютеры обрели популярность, они были предназначены исключительно для тех, кто выучил команды для работы с ними. Первые компьютеры, такие как машины IBM, Apple и ПК, приветствовали пользователей командной строкой — чем-то таким простым, как C:\>_, ожидая ввода команд.

Такие команды, как dir для просмотра файлов или type для просмотра текстовых файлов, были нормой. Хотя этот подход имел свои преимущества с точки зрения прямого управления, он также был подвержен ошибкам пользователя, особенно при случайном вводе команд, таких как format или rm -rf в Unix.

Затем, массовое производство персональных компьютеров привело к появлению графических пользовательских интерфейсов (GUI). Они представили иконки и разместили большую часть функций, которые можно было бы использовать прямо в UI. Цель состояла в том, чтобы свести к минимуму риск того, что пользователи непреднамеренно повредят систему. Хотя командная строка до сих пор используется программистами, с середины 1980-х годов GUI стал доминирующим режимом потребительских персональных вычислений — в частности, подмножество GUI, известное как WIMP (окна, значки, меню, указатель).

GUI, несомненно, стали прорывом в области UX, когда они впервые появились в Macintosh от Apple в 1984 году. Персональные компьютеры только начинали внедряться среди населения, и их функциональность была незнакома большинству. Начинающему пользователю нужно было понять и изучить, что может делать компьютер, и GUI позволял им делать это с помощью меню, иконок и виджетов. Они преодолевали разрыв между техническими и не-техническими специалистами.

Macintosh OS была революцией. И людей, использующих компьютеры, внезапно стало экспоненциально больше, потому что интерфейс стал более доступным для менее технически подкованной аудитории. Переход от CLI к GUI абстрагировал трудоёмкое вербальное общение между людьми и компьютерами и заменил его визуально привлекательными, дорогостоящими интерфейсами. С абстрагированием командной строки все стало возможным! Как далеко мы могли зайти?

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

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

AutoCAD — яркий тому пример. Программное обеспечение для 2D- и 3D-чертежей впервые было выпущено в 1982 году. Его обширная функциональность привела к сложному пользовательскому интерфейсу, заваленному меню, подменю и подподменю. За эти годы он добавил головокружительное количество сочетаний клавиш, пытаясь помочь своим пользователям ориентироваться в широте и глубине его функций.

Тем не менее, для среднего потребителя командная строка — это загадочное и немного пугающее место. Именно это побудило к попыткам сделать CLI более простым в использовании.

Например, в CLI Cisco был инструмент под названием Context Sensitive Help, который предлагал два типа справки (словесная справка и справка по синтаксису команды) при вводе ?. Ранний текстовый редактор Vim имел командную строку. Он использовал команды типа :wq для сохранения и выхода, что было быстро. А онлайн-IDE, Repl.it, попыталась объединить элементы GUI и CLI в то, что они назвали визуальной командной строкой или CLUI.

Среди сложности GUI появился проблеск надежды в виде Поиска. Google продемонстрировал, что может найти что угодно в Интернете быстрее, чем пользователи находят что-либо на своих компьютерах. Это привело к идее обучения компьютера с помощью естественного языка.

В 2004 году Google перенесла эту концепцию на рабочий стол с помощью инструмента, который позволял пользователям искать как в Интернете, так и на своем компьютере файлы и программы с помощью всего нескольких нажатий клавиш. Внезапно набор текста стал стильным и эффективным способом взаимодействия с ПК, напоминающим командную строку, но более доступным.

2007 год стал поворотным моментом для поиска в интерфейсах программного обеспечения. Excel представил автозаполнение формул, Visual Studio включил поиск файлов, который также выполнял функции командной строки, а Apple расширила свои возможности поиска, представив поиск в меню справки в OS X Leopard.

Благодаря этим инновациям Поиск стал неотъемлемой частью пользовательского опыта. Пользователям больше не приходилось расшифровывать зашифрованные команды, такие как dir; Вместо этого они могли искать нужный инструмент, используя естественный язык.

❯ GUI vs CLI


Но графические интерфейсы работают хорошо тогда, когда количество альтернативных элементов или действий невелико. Графический интерфейс плохо масштабируется — даже поиск записей электронной почты утомителен.

Стандартные графические интерфейсы с их выпадающими меню, кнопками проверки и древовидными списками просто не могут сравниться с диапазоном опций, которые текстовый интерфейс предоставляет без усилий. Всего пятью буквенно-цифровыми символами вы можете выбрать одну из сотни тысяч возможных последовательностей. И выбор любой последовательности происходит так же быстро, как и любой другой последовательности (ввод пяти символов занимает примерно 1 секунду). Попробуйте придумать нетекстовый интерфейс, который мог бы сделать то же самое!

Типичный WIMP

Типичный WIMP

У системы WIMP есть очевидные преимущества. Она упрощает понимание того, как работает компьютер, прикрепляя метафоры физического мира ко всем действиям. Мы настолько привыкли к системам WIMP, что может потребоваться минута, чтобы вспомнить, в какой степени ее основные строительные блоки сформированы: «Файлы» помещаются в «папки», «удалённые» элементы отправляются в «корзину», действия разбиваются на разделы в «меню» панели задач в верхней части окна, а значки, такие как дискета, отражают такие действия, как сохранение файла (возможно, пришло время обновить его).

Использование компьютера с графическим интерфейсом, требующим много перемещений и кликов, как правило, несколько медленнее, чем использование компьютера с командной строкой, но кривая обучения гораздо круче в интерфейсе командной строки, где визуальной метафоры не существует, а каждое действие требует знания определённой команды. Клики, копирование и создание папок на ПК требуют нескольких щелчков или сочетаний клавиш. В командной строке это требует знания таких команд, как cd, cp и mkdir.

Освоение командной строки имеет явные преимущества. Многие программисты утверждают, что система WIMP только замедляет их. Например, графический интерфейс использует больше аппаратного обеспечения компьютера, чем текстовый интерфейс. Гики любят командные строки просто потому, что они хотят знать, что делают. Эту идею овладения командной строкой можно увидеть и в других отраслях, помимо разработки программного обеспечения и оборудования. Блумбергский терминал, широко используемый в финансовой отрасли, имеет не лучший вид, но опытные пользователи, которые освоили эту неэлегантную систему, работает на ней исключительно с помощью клавиатуры.

Блумбергский терминал

Блумбергский терминал


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

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

Подумайте обо всех анимациях, которые среднестатистический пользователь видит за день: переключение между пространствами в Mac OS, разблокировка 1Password, ожидание, пока iOS покажет SpringBoard после нажатия кнопки «Домой», переход в полноэкранный режим из приложения Mac OS или переключение между вкладками в мобильном Safari.

Перейти к видео

Однажды Apple поймёт, что они оставили зияющую дыру в своей стратегии UX и что переключение задач с помощью Cmd + Tab тоже должно быть анимировано. Умножьте длину этой анимации на среднее количество переключений задач в день, на количество пользователей, на их стоимость в секунду, и вы увидите, что миллионы долларов в год в глобальной производительности испарились за одну ночь.

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

❯ Выбирай командную строку


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

Один из самых ранних примеров современной палитры команд принадлежит Джо Скиннеру, создателю Sublime Text, который анонсировал её как часть бета-версии Sublime Text 2 в 2011 году. Это был большой шаг вперед в UX для программистов, уже привыкших к использованию командной строки. Это не только помогло им двигаться быстрее, используя только клавиатуру, но и означало, что им больше не нужно было запоминать все сочетания клавиш. Вместо этого они могли вводить то, что хотели, и палитра команд интеллектуально находила и выполняла нужное действие.

Sublime Text

Sublime Text

Палитра команд обычно состоит из трёх основных элементов: одного сочетания клавиш для вызова палитры, нечеткого сопоставления для поиска команд и способа просмотра прямых сочетаний клавиш для будущего использования. Этот дизайн интерфейса взял лучшее из терминала и графических интерфейсов, объединив их в удобное для пользователя и эффективное решение.

Сегодня концепция палитр команд распространилась на различные программные приложения, став стандартной функцией во многих из них. Такие инструменты, как Photoshop, MS Office, Notion, Nuclino и Deepnote, внедрили палитру команд как средство упрощения взаимодействия с пользователем. Кроме того, голосовые помощники, такие как Siri, Alexa и Google Assistant, по сути, приняли концепцию палитры команд, позволяя пользователям выполнять задачи с помощью голосовых команд, полностью устраняя необходимость в визуальном интерфейсе.

Разработки в области голосовых интерфейсов намекают на возможность расширения этого до палитр команд. А GPT-3 от OpenAI не просто открыл двери для забавных бесед с чат-ботами, которыми можно похвастаться в соцсетях, но и вывел модели обработки языка на новый уровень.

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

Палитра команд Windows

Постепенно, а затем внезапно, как кажется, командная строка вернулась, помогая с ведением журнала, рабочими процессами, сочетаниями клавиш и другими вспомогательными функциями. Теперь мы достигли следующего поколения: командная строка, которая одновременно мощная и доступная; инструмент, который эффективен для технических пользователей без пугающей кривой обучения прошлых десятилетий. Более того, мы видим, как компании извлекают выгоду из этого увлечения скоростью и эффективностью: например, Superhuman, который позиционирует себя как «самый быстрый опыт работы с электронной почтой из когда-либо созданных».

Superhuman, современная альтернатива Gmail, имеет собственную командную строку, активируемую нажатием Command + K. Навигация в приложении разработана таким образом, что движения пользователя естественно быстры. Пользователь вынужден использовать клавиатуру, а не мышь или трекпад. Но Superhuman — это лишь один пример возвращения к CLI. Возможно, наиболее заметным из них является Stripe, которая в ноябре 2019 года объявила о выпуске собственного интерфейса командной строки.

Другие примеры включают:

  • Linear, инструмент отслеживания ошибок и современная альтернатива Jira.

  • Notion и Slack, которые размещают свои основные инструменты за меню с косой чертой (/).

  • Amie, приложение для повышения производительности.

  • Quill, профессиональный обмен сообщениями для групп и коман.

  • Slapdash, который объединяет приложения под одной панелью команд.

Википедия через веб-браузер командной строки

Википедия через веб-браузер командной строки

Существует множество веб-браузеров командной строки. Обычно на ум приходит классический Lynx, а также ELinks. Оба они способны отлично просматривать базовые веб-сайты HTML.
WordGrinder — это текстовый процессор на базе терминала.
Можно создавать и проводить презентации полностью из терминала. Программа называется «tpp» (Text Presentation Program), и она есть практически в каждом репозитории на планете.
Midnight Commander, который также известен как просто mc. Открытый «клон» знаменитого файлового браузера Norton Commander.
cmus — это музыкальный проигрыватель.
То, что можно было бы назвать менеджером окон в графическом рабочем столе, в терминалах называется терминальным мультиплексором — та же идея, более или менее. Существует три терминальных мультиплексора, которые большинство людей склонны использовать: GNU Screen, tmux и Byobu.

Три терминала Windows в Byobu

Три терминала Windows в Byobu

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

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

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

Если вы спросите веб-дизайнера об элементах практического дизайна в современных интерфейсах, он расскажет вам о разборчивости текста, интуитивности и пустом пространстве. Красивые и дружелюбные пользовательские интерфейсы — это хорошо, но истинные ценности хорошего интерфейса — это скорость и эффективность, чтобы сделать их пользователей максимально продуктивными. Успешный интерфейс — это не тот, который хорошо выглядит на неподвижном снимке экрана, это тот, который максимизирует производительность и позволяет продолжать двигаться.

❯ Дорога вперед


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

К сожалению, терминалы тоже не лучшая технология. Хотя они лучше альтернативы во многих отношениях, они не смогли угнаться за какими-либо достижениями последних тридцати с лишним лет. Командная строка, конечно, эффективна, но она утомительна. Она устраняет всю двусмысленность, обнажает все скрытые предположения и жестоко наказывает лень и неточность.

Вот некоторые вещи, из которых терминалы могли бы черпать вдохновение:

  • Насыщенные элементы мультимедиа: изображения, видео, табличные результаты и т. д. Терминалу нужен был ответ на них с 1985 года, но до сих пор его нет.

  • Шрифты. Моноширинный — лучшее семейство шрифтов для программирования, но объективно не оптимален для чтения. Мы должны иметь возможность смешивать шрифты в одном интерфейсе терминала для лучшей читаемости.

  • Пробелы и высота строки: используемые в умеренных количествах, они помогают сделать элементы пользовательского интерфейса более отличительными, а текст — более разборчивым.


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

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

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

Есть будущее, в котором наше программное обеспечение будет делать всё, от регистрации ошибки до погашения кредитной карты, быстро и эффективно, но путь, по которому мы идём сегодня, — это не он.

ИИ кажется естественным следующим шагом для командной строки. Видя, как ChatGPT и ему подобные захватывают мир, начинаешь задумываться: «что дальше?» Станет ли Интернет одной большой палитрой команд, которая содержит все ответы и выполняет все действия? Остаётся просто надеяться, что никто не введёт format или rm -rf.

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо;

  • Сложно о простом. Физический уровень (L1) модели OSI;

  • Модульность и предубеждение | Постройка электросерфа.

Показать полностью 13 1
[моё] Консоли Программа Timeweb Тренд Windows Linux Командная строка ChatGPT Видео Без звука Гифка Длиннопост
46
36
Timeweb.Cloud
Timeweb.Cloud
GNU/Linux

Большое руководство по сетям и шифрованию трафика в Linux⁠⁠

1 год назад

Приветствую! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверное, каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху, когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

Эта часть - вторая, первую вы можете прочитать по ссылке. А в этой части мы рассмотрим что такое прокси и какие типы бывают, что такое VPN, как устроено сквозное шифрование.

И соответственно, в этой статье не будет упоминаться то, про что я уже писал в первой. Начнем, господа присяжные заседатели!

❯ Прокси

Прокси-сервер — это промежуток между клиентом и сервером. Он обеспечивает скрытие IP-адреса, поэтому сторонним лицам намного сложнее отследить местоположение пользователя. Также он помогает настроить доступ к сайтам — например, к каким-то ограничить, или даже прослеживать и мониторить трафик пользователей. За счет кеширования данных страницы могут загружаться быстрее.

Прокси-сервер действует так:

Клиент -> провайдер -> прокси-сервер -> сервер

То есть провайдер знает, какой у пользователя IP и какой у него запрос, но сервер не будет знать пользовательский IP-адрес.

Прокси-сервер — это машина, которая содержит прокси IP-адреса.

IP-адрес прокси — это индивидуальный IP-адрес, который используется для сокрытия вашего реального адреса.

Прокси-сервер обрабатывает ваши запросы, но скрывает множество идентифицирующей информации. В ее числе исходный IP-адрес, геолокация, откуда пришел запрос, данные операционной системы (ОС) и многое другое. В общем, он помогает предотвратить легкое отслеживание вас третьими лицами. Работа прокси-сервера осуществляется на уровне приложений модели OSI (L7).

Существует много разных типов прокси, которые подразделяются по разным типам протоколов, анонимности, размещения.

Если говорить про типы размещения — то это банально централизованный и децентрализованный прокси. Тут все понятно — при централизованном типе прокси-сервера находится в одном центре, которые обслуживают сразу много клиентов, а при распределенном — прокси-сервера находятся в разных локациях, которое позволяет равномерно распределить нагрузку, и при случае падении одного сервера, другие прокси сервера останутся рабочими (а в централизованном типе с этим возникнут проблемы).

По анонимности и конфиденциальности уже поинтереснее. Есть прозрачный — никаких настроек, весь трафик с клиента сразу маршрутизируется на прокси. Данные пользователя не изменяются, IP-адрес не скрывается. Быстро, экономно но не безопасно. Противоположность прозрачному — анонимный. Он уже изменяет IP-адрес клиента, но он не скрывает, что используется прокси, и сайты могут понять, что клиент использует прокси, но не больше. Еще более безопасным считаются искажающие прокси — они меняют IP адрес в точности как и анонимный, но уже скрывают факт использования прокси, то есть сервер может понять что трафик идет через дополнительный шлюз, но сам клиент остается скрытый. И последний тип — это приватный. Полностью скрывают данные о пользователе и постоянно меняют IP-адрес подключения.

Ну и перед тем, как мы затронем тему типов прокси по протоколу, стоит также рассказать о том, что прокси также могут различаться и по уровню доступности:

  • Публичные — открытые, бесплатные, но могут быть медленными, небезопасными и ненадежными. Если найти какой-то сайт с бесплатными прокси-серверами, то там будут именно эти с вероятностью 90%.

  • Приватные — платные, но быстрее и безопаснее публичных.

  • Выделенный — то есть уже целый высокопроизводительный сервер с выделенными ресурсами. Они позволяют настроить прокси, то есть например сделать возможность использования только одним клиентом или сделать черный список клиентов.

  • Прозрачные — мы уже говорили, просто маршрутизация с порта клиента на порт прокси-сервера.

  • Общие — то есть доступные определенной группе, например сотрудникам компании. Не так надежны как приватные, но обеспечивают баланс между доступностью и производительностью.

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

  1. Прокси это L7, самый высокий уровень сетевой модели OSI, когда как VPN — это L3 или L4.

  2. В VPN могут использовать криптографические алгоритмы для обеспечения шифрования трафика и набор ключей.

  3. Стоимость VPN обычно дороже прокси.

  4. Прокси обычно быстрее VPN

А теперь наконец перейдем к типам прокси по протоколам.

HTTP

Данный тип прокси работает с HTTP-запросами. В основном для базового серфинга - то есть кеширования страниц, настройки доступа к сайтам. Основное применение он находит в корпоративных сетях, для ограничения сотрудников (самый простой пример — блокировка доступа к социальным сетям).

HTTP-прокси существует как звено в цепи между клиентом и сервером. То есть запрос от клиента идет не напрямую на сайт, а через прокси, который уже от своего имени отправляет запрос серверу.

HTTPS

Тоже самое, что и HTTP, но более безопасный. HTTPS гарантирует безопасное соединение между клиентом и сервером, защищает данные от сниффинга. В основном его используют когда важна безопасность и сохранность данных, а не просто веб-серфинг.

SSL

Мы уже обсуждали SSL/TLS протокол выше. Этот тип прокси сервера создает только одно TCP-соединение. В HTTP-proxy создается два соединения — от клиента к прокси и от прокси до сервера. Но SSL работает по другому: после запроса на сервер, прокси создает запрос подключения на сервер и создает TCP-канал.

Преимущество данного типа прокси в том, что его можно использовать как и для доступа к защищенным (HTTPS) и незащищенным (HTTP) серверам.

SOCKS

SOCKS — SOCKets Secure. Специальный протокол для работы с интенсивным трафиком, например потоковая загрузка/передача данных или для P2P.

SOCKS использует TCP соединение, то есть все пакеты гарантированно будут доставлены. При использовании этого типа прокси интернет-трафик маршрутизируется через прокси-сервер по TCP от имени клиента.

SOCKS, как большинство прокси, скрывает IP адрес клиента, гарантируя базовую конфиденциальность.

Установка прокси в несколько шагов

Здесь я рассмотрю прокси-сервер Squid и как его можно установить за пару шагов.

Squid

Squid

Squid — это один из самых популярных HTTP/HTTPS прокси-серверов с возможностью перенаправления и кэширования трафика. Он скрывает IP адреса клиентов, кэширует веб-страницы, да и в принципе довольно быстрый прокси...

ЧИТАТЬ ДАЛЕЕ ↩ (без регистрации и СМС)

Материал получился достаточно объемным и все подробности, к сожалению, не влезли :(

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • 30 лет назад появилась свободная Unix-подобная OC… и это не Linux;

  • История зарождения Linux — как это было?;

  • Редчайший открытый смартфон на Linux: Neo Freerunner. Каким был прадедушка PinePhone?.

Показать полностью 2
[моё] Linux Timeweb Безопасность Программа Информационная безопасность Операционная система Трафик Длиннопост
6
21
Timbus
IT минувших дней

Ответ на пост «Поучительная история технической одиссеи компании Palm, Inc»⁠⁠1

1 год назад

Успел в студенческие годы этак в 2004 г попользоваться Palm tungsten что ли, в те годы этот была просто пушка. На фоне тогдашних телефонов с полифонией экран с весьма приличным разрешением и возможность пользовать функциональные приложения и играть в Worms например была чем-то удивительным. Тогдашний стационарный комп иметь на борту то ли 266, толи 333 МГц и 32 мб оперативки, а это американское чудо располагало немыслимыми 400 МГц и 52 что ли мб оперативки. По общим показателям для эпохи дискет это был суперсовременный гаджет, стильный и крутой. К сожалению, жизнь его тогда была недолгой у меня и он был украден вместе с сумкой... Взамен после летних усиленных подработок был куплен Dell Axim X51v с ещё более лучшим экраном и камнем, с человечьей виндой, вай-фаем и так оно далее,но внешне он был весьма унылым и походил скорее на первые тогдашние страшненькие смартфоны. Тоже принёс много пользы, в основном как электронный словарь, и поныне лежит в ящике стола, достаëтся раз в год для ностальгирования. Всё работает и даже немного держит батарея

Познавательно Гаджеты Техника Timeweb Кпк Palm Os iPhone Blackberry Android Смартфон Mp3 Мобильные телефоны Изобретения Длиннопост Ответ на пост Текст
8
64
Timeweb.Cloud
Timeweb.Cloud
Лига Сисадминов

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо⁠⁠

1 год назад
  • Автор текста: akibkalo

Сегодня я буду рассказывать кратко о странной версии Windows (рука не поднимается сказать «Windows 11», так как это не совсем правда) – релизе zn_release на базе сборки 10.0.25398.1, на которой выходил лишь Windows Server 23H2 (только Core) и Azure Stack HCI 23H2 (тоже только Core).

Итак, для начала благодарности за данный материал форуму MyDigitalLife, где активно обсуждаются варианты вивисекции ОС Microsoft, и особенно xinso, который тестирует каждую сборку каждого издания на каждом языке и делится своим опытом, пускай и довольно своеобразно. Мастер, спасибо тебе за ценный опыт. Тем, кто не хочет читать целиком, в самом конце статьи дана ссылка на конструктор для сборки. Публикация готовых образов будет пиратством, что правилами запрещено, так что если вам будет интересно просто попробовать эту сборку, ставьте лайк и пишите мне в ПМ, дам готовый образ для установки (русский и английский интерфейсы включены в образ, остальные языки в виде дополнительных языковых пакетов).

Если вы не следите внимательно за выходами Windows 11, и не читали мою статью «Все о версиях Windows 11», то можете быть не в курсе, что официально выходили следующие версии:

  • Windows 11 21H2 — на базе сборки 10.0.22000.x ядра co_release (Cobalt);

  • Windows 11 22H2 — на базе сборки 10.0.22621.x ядра ni_release (Nickel);

  • Windows 11 23H2 — на базе сборки 10.0.22631.x того же ядра ni_release (Nickel);

  • Windows 11 24H2 — на базе сборки 10.0.26100.x ядра ge_release (Germanium).

Более того, версия 23H2 особо от 22H2 не отличается, имеет то же ядро и общие обновления. По сути, отличие между ними в пакете, включающим малость нового функционала. Вообще обе версии довольно неудачны в плане производительности и не особо популярны у геймеров.

Версия 24H2 на ядре Germanium сборки 10.0.26100.х в продажу пойдет осенью, сейчас доступна OEM производителям и инсайдерам. О ней мы знаем два интересных факта – она быстрее чем та, что на ядре Nickel, и она не работает на старых компьютерах, процессор которых не поддерживает SSE4.2.

В промежутке между ядрами Nickel и Germanium было еще одно ядро Zink, на базе которого выходили Core издания Windows Server 23H2 с номером сборки 10.0.25398.x. Клиентских ОС на базе этого ядра не выпускалось. Однако, внутри корпорации сборки Windows 11 собирались, более того, файлы для изданий Windows 11 доступны с UUPDump (например Microsoft-Windows-EditionPack-Professional-Package.ESD и Microsoft-Windows-EditionSpecific-Professional-Package.ESD). И эти сборки по тестам быстрее чем и Nickel и Germanium, работают на старых процессорах, да и вообще интересны! Дальше я расскажу, как собирать разные издания Windows 11 версии 10.0.25398.x на базе файлов UUPDump, предложу ссылку на загрузку конструктора для самостоятельной сборки, расскажу о разных тонких моментах.

Перед тем как начинать сборку образа заметим, что хотя Microsoft и не выпускала Windows 11 на базе ядра Zink, в списке изданий, на которые будут ставиться обновления для Windows Server 23H2 по странному стечению обстоятельств входит издание Windows 11 Professional, а значит, и все другие издания на его базе, переключение на которые достижимо сменой серийного номера: Professional Workstation, Enterprise, IoT Enterprise (рекомендую его, там разрешены две RDP сессии без патчей) и другие.

Тут можно увидеть, на какие издания ОС обновления ставятся без модификации

Тут можно увидеть, на какие издания ОС обновления ставятся без модификации

Список тех ОС, которые согласно языку Microsoft попадают под assemblyIdentity name="microsoft-windows-professionaledition", на которые можно будет ставить обновления без их модификации можно увидеть так:

Список изданий на базе Professional

Список изданий на базе Professional

Если в процессе реконструкции Windows 11 на этом ядре вы выберете другое издание, то обновления придётся вручную модифицировать перед установкой. Пример модифицированных обновлений есть в конструкторе в папках 25398.950 и 25398.1009.

Есть, однако, еще один нюанс. Microsoft выкладывает все системные файлы для сборки изданий Windows 11 (в том числе и Evaluation, EnterpriseG, все кроме LTSC), однако, не предлагает языковых пакетов для клиентских ОС.

Разные пакеты изданий (часть), доступных на UUPDump для сборки 25398.1

Разные пакеты изданий (часть), доступных на UUPDump для сборки 25398.1

Языковые пакеты для серверных ОС, разумеется, присутствуют (всё же это издание Windows Server):

А вот клиентских пакетов, увы нет. И создать без них Windows 11 невозможно. Однако, ура, ура, разные сборки в пределах ядра не сильно отличаются друг от друга, и мы можем взять клиентский языковой пакет от сборки 10.0.25393.1 доступной на UUPDump:

Клиентские языковые пакеты (часть) сборки 25393.1

Клиентские языковые пакеты (часть) сборки 25393.1

Слегка модифицировав MUM файлы языкового пакета 25393.1 мы заставим его работать с ядром 25398.1. Все модифицированные языковые пакеты доступны по ссылке на конструктор, данной выше в файле 25398 languagepacks.zip.

Увы, Microsoft, выпуская обновления для Windows Server 23H2 хотя в них и включает возможность установки на Windows 11, но вспоминает лишь английские версии ОС. Если вы соберете русскую версию ОС, установка обновлений зачастую заканчивается неудачно, приходится пользоваться модифицированными обновлениями.

Предлагаемый в конструкторе скрипт 25398.1_Neutral_to_Client_amd64_38in1_26100_License может создать любое издание (в том числе EnterpriseG или LTSC) на любом языке, но я рекомендую при сборке остановиться на английском языке и издании Professional или Enterprise (что делается редактированием файла Create.cmd). Для создания английской версии следует скопировать английский языковой пакет Microsoft-Windows-Client-LanguagePack-Package-amd64-en-us.esd в папку files\lang, скачать языковые пакеты в langFeature\en-us по аналогии с fr-fr и языковые пакеты Features on Demand в FOD\en-us (список для каждого языка есть в файле FOD-Lang.txt).

Рекомендованные мной настройки (модифицируйте файл Create.cmd): TARGET=Enterprise, LANG=en-US, EDGE=without (доставите потом последний вручную), NETFX3=without (будет проще если доставите после). В целом, скрипт может установить и LTSC (TARGET=EnterpriseS), и EnterpriseG и даже Starter. На любом языке. Но только для русского, английского и французского я положил скачанные с UUP файлы. Для других следует положить аналогично и изменить в файле Create.cmd параметр LANG. C .NET Framework я разобрался, в том числе и русифицированной ОС, в образах интегрированы следующие версии (более новое ставится штатно поверх):

Результат работы утилиты DotNetVersions с GitHub

Результат работы утилиты DotNetVersions с GitHub

Я не буду долго дискутировать о процессе, сам скрипт работает более часа на быстром диске, создавая install.wim. Если вам необходим загрузочный ISO образ, то install.wim следует поместить вместо одноименного от Windows Server 23H2 и пересобрать образ. В моем случае скриптом я создал Windows 11 Professional.

Дальше я могу легко сменить издание на Enterprise, просто заменив серийный номер (файлы лицензии в конструкторе взяты от Windows 10 21H2). И могу спокойно установить обновления. Через Windows Update кумулятивные обновления могут не засекаться, однако, если зайти на UUPDump, то можно скачать и установить. На данный момент последнее обновление 25398.1085. На издание Enterprise обновление ставится онлайн без проблем:

Онлайн (из самой ОС) установка последнего кумулятивного обновления

Онлайн (из самой ОС) установка последнего кумулятивного обновления

Далее я добавлю русский язык интерфейса, установив модифицированный языковой пакет. У меня не вышло сделать это онлайн, пришлось загрузиться с установочного образа и добавить его оффлайн, и для тех кто не будет самостоятельно собирать образ, а скачает мой, интегрировал в образ. Для того чтобы изменить все региональные настройки (включая язык интерфейса) на русский, воспользовался тем же dism с ключом /SetAllIntl:ru-RU. Вуаля:

Видно, что на русскую ОС изначальной версии 25398.1 успешно установил LCU 25398.1009

Видно, что на русскую ОС изначальной версии 25398.1 успешно установил LCU 25398.1009

После перезагрузки вижу установленных два обновления – SSU и LCU, которые были в одном MSU пакете

После перезагрузки вижу установленных два обновления – SSU и LCU, которые были в одном MSU пакете

После обновления до LCU 25398.1085 вижу установленных два обновления – SSU и LCU, которые были в одном MSU пакете Windows11.0-KB5041573-x64.msu выпушенном 13.08.2024. Пакет без модификаций.

После обновления до LCU 25398.1085 вижу установленных два обновления – SSU и LCU, которые были в одном MSU пакете Windows11.0-KB5041573-x64.msu выпушенном 13.08.2024. Пакет без модификаций.

Обращу внимание сразу на то, что в кумулятивных обновлениях Microsoft обновляет лишь английский языковой пакет. Если вы поставили любой другой язык, после обновления в Журнале событий пойдут предупреждения о ненайденных языковых пакетах, и система будет переключаться на английский по обновленным пакетам (в первую очередь панель Настройки), для русской версии следует оставаться на 25398.1 или использовать кастом обновления.

Да, это поделка на коленке, её можно и нужно допиливать, что-то может не работать. Например, я не мастер локализации интерфейса, и возможно не включил в образ какие-то штатные компоненты, ответственные за русский язык, - нужно внимательно изучить, возможно, следует несколько модифицировать порядок шагов русификации, я не эксперт по локализации образов, сам всегда пользуюсь англоязычным. Опциональные компоненты ОС не ставятся онлайн, если нужно включить какую-то компоненту, придется делать это оффлайн из Dism. Неудобно. Возможно, кто-то это допилит. Моя задача была показать принцип, дать конструктор желающим.

Согласно отчетам на форуме MDL, многие китайские геймеры, использующие Windows, выбирают именно эту сборку. И в ряде тестов она обходит все остальные. Буду рад услышать комментарии от тех, кто протестирует.

Подписывайтесь, ставьте лайк, запрос за образами в ПМ, и пишите комментарии, чего отдельно хотели бы увидеть в следующих статьях по разным поделкам Microsoft!

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Azure Stack HCI — что такое, как улучшить и пользоваться;

  • Сложно о простом. Физический уровень (L1) модели OSI;

  • Модульность и предубеждение | Постройка электросерфа.

Показать полностью 12
[моё] Операционная система Windows Timeweb Программа Windows 11 Microsoft Длиннопост
15
50
Timeweb.Cloud
Timeweb.Cloud
TECHNO BROTHER

Мой умный свет: или как я разработал свой модуль управления освещением⁠⁠

1 год назад

Автор текста: CyberexTech

Привет, Пикабу!

В этой статье я хочу описать свой опыт разработки такого простого, но в тоже время самого используемого элемента «Умного дома». Речь пойдет о модуле управления освещением. Забегая вперед, хочу сказать, что данный проект был реализован еще в 2021 году, но в настоящее время потребовалась реализация еще одного модуля. Я решил совместить приятное с полезным, дополнительно обновить прошивку устройства и «перепроектировать» данный модуль с помощью современного ПО и само собой — поделиться с вами. Если стало интересно, то добро пожаловать под кат.

❯ Небольшая предыстория


Домашней автоматизацией я занимаюсь давно и застал те времена, когда еще не было доступных микроконтроллеров с беспроводной коммуникацией на борту (типа ESP8266), в основном использовались проводные решения на базе 1-Wire. И мой «Умный дом» не стал исключением.

Каждый начинающий «строитель» «Умного дома» понимает, что первым делом нужно научиться включать и выключать свет, чтобы эффектно удивлять друзей, управляя освещением со смартфона. В те времена это казалось магией :) Вот и я, закупившись на Алиэкспрессе поддельными двухканальными 1- Wire свичами DS2413P, решил реализовать управление светом. В итоге была собрана плата управления на базе купленных свичей и симисторным управлением нагрузкой. Данное устройство надежно проработало аж до 2021 года. Но летом того же года была жуткая гроза и по витой паре интернет провайдера прилетел мощный разряд, который унес в электронный рай сетевую карту сервера, USB 1-Wire адаптер, ну и плату управления освещением с эффектным взрывом симистора. Тогда я подумал, что пора завязывать с проводными решениями ибо гирлянда сгоревших устройств ни на секунду меня не радовала и я принялся за разработку беспроводного модуля управления освещением.

❯ Проектируем аппаратную часть


Условно мы можем разделить модуль на три сегмента:

  • Система питания;

  • Контроллер управления;

  • Система силового управления.


При проектировании принципиальной схемы устройства будем придерживаться «золотого» принципа: чем проще — тем лучше, а значит — надежнее. Поэтому в качестве системы питания будет реализована схема на базе экономичного импульсного преобразователя напряжения LNK306GN, который доказал свою надежность временем и работой в аномальных условиях.

Краткая информация о LNK306GN:

LNK306GN — это понижающий преобразователь с наименьшим количеством внешних элементов.
Серия микросхем LinkSwitch-TN специально разработана для замены всех неизолированных источников питания с линейным питанием и питанием от конденсаторов в диапазоне выходного тока менее 360 мА при равной стоимости системы, обеспечивая гораздо более высокую производительность и энергоэффективность.
Устройства LinkSwitch-TN объединяют в монолитной IC силовой полевой МОП-транзистор с напряжением до 700 В, генератор, простую схему управления включением/выключением, высоковольтный импульсный источник тока, генератор частот, схему ограничения тока и схему отключения при перегреве.

В качестве «мозга» нашего устройства, будем использовать микроконтроллер от компании Espressif Systems ESP8266. А для силового управления нагрузкой, то есть нашими лампочками, будем использовать связку оптопары MOC3052M и симистора BT136-600. Почему не реле? — спросите вы, ну не люблю я реле, они щелкают и габаритные. Ниже можно видеть результат разработки принципиальной схемы устройства. Для разработки схем и печатных плат я использую открытое ПО KiCAD.

Принципиальная схема модуля:

Как я уже говорил ранее, источник питания реализован на высоковольтном импульсном преобразователе LNK306GN, который позволяет максимально упростить схему источника питания. На выходе источника формируется напряжение в 3,3 В, данное напряжение устанавливается обратной связью, которая организована с помощью резистивного делителя напряжения R4 и R5. Данная схема питания не имеет гальванической развязки с сетью, поэтому нужно обеспечить эффективную изоляцию платы для исключения поражения электрическим током. Первоначальный запуск устройства должен выполняться с последовательно подключенной нагрузкой (лампа накаливания 60 Вт) в цепи питания, чтобы исключить повреждения в случае ошибки при монтаже компонентов.

Трассировка платы:

Визуализация печатной платы:

Хочется добавить, что данная плата разрабатывалась с учетом современных реалий, здесь изменен форм-фактор микросхемы LNK306GN на SOP-7 в старой версии модуля используется тип корпуса DIP-7.

❯ Изготовление печатной платы


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

Активация фоторезиста с помощью фотошаблона:

Плата прототипа модуля после монтажа электронных компонентов:

❯ Разработка корпуса


Разработка корпуса устройства выполнялось в открытом ПОFreeCAD. Корпус довольно тривиальный и не содержит сложных элементов.

Визуализация корпуса с моделью платы:

Далее модель корпуса распечатывается на 3D принтере, в качестве материала печати используется HIPS пластик.

Устройство в собранном виде:

AirTag для сравнения габаритов устройства:

❯ Разработка прошивки и описание интерфейса


Разработка микро ПО устройства велась в средеArduino IDE, обновленная версия реализована на моей, ставшей уже базовой, прошивке для умный устройств. Для улучшения пользовательского опыта, в прошивке применены следующие технологии:

  • Captive portal;

  • Multicast DNS;

  • MQTT Auto Discovery;

  • SSDP.


Captive portal— это сервис, на который принудительно перенаправляется пользователь, который выполнил подключение к устройству. Данный сервис работает только в режиме «точки доступа» при первоначальной конфигурации устройства. При отсутствии сетевого соединения или при первоначальной настройке, устройство создает беспарольную точку доступа с именемCYBEREX-Light. При подключении к данной точке доступа, пользователь автоматически будет перенаправлен на страницу авторизации для выполнения первоначальной конфигурации устройства. Для конфигурации устройства необходимо ввести пароль по умолчанию "admin".

Ниже приведены несколько скриншотов веб интерфейса устройства.

Страница входа:

Главная страница с элементами управления:

Конфигурация обмена по MQTT протоколу:

Multicast DNS — данный сервис используется для поиска устройств по доменному имени в локальной сети без использования предварительно настроенного DNS сервера. Другими словами, пользователь может получать доступ к устройству без необходимости ввода IP адреса. Ниже пример использования данного сервиса, где доступ к устройству выполняется с помощью его локального имени 11395386.local.

Страница конфигурации управления устройством через API:

Как вы можете видеть на скриншоте, в устройстве реализован доступ управления каналами модуля по API. Данная функция необходима для прямого взаимодействия с устройством без посредников в виде MQTT сервера или системы «Умного дома». Эту функцию можно использовать для подключения беспроводных выключателей, пример реализации в одном из моих проектов:

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


А еще функция данного API применяется в моей «умной колонке» (статья первая,статья вторая) для управления освещением. Ниже пример кода для реализации прямого управления с помощью «умной колонки»:

Код управления по API | Python:

elif cmd == 'lightON':

try:

contents = urllib.request.urlopen("http://11395386.local/?page=status&apikey=UkFA7").read()

response0 = json.loads(contents)

if response0['c1'] == 'Off1' and response0['c2'] == 'Off2':

text = "Включила свет"

if response0['c1'] == 'On1' and response0['c2'] == 'Off2':

text = "Первый светильник уже включен, включила второй!"

if response0['c1'] == 'Off1' and response0['c2'] == 'On2':

text = "Второй светильник уже включен, включила первый!"

if response0['c1'] == 'On1' and response0['c2'] == 'On2':

text = "Свет уже включен! Но я могу выключить, если попросите!"

if response0['c1'] == 'Off1':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=1')

if response0['c2'] == 'Off2':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=2')

tts.va_speak(text)

except:

tts.va_speak("Сожалею, но возникла ошибка, попробуйте позже!")

elif cmd == 'lightOFF':

try:

contents = urllib.request.urlopen("http://11395386.local/?page=status&apikey=UkFA7").read()

response0 = json.loads(contents)

if response0['c1'] == 'Off1' and response0['c2'] == 'Off2':

text = "Свет уже выключен! Но я могу включить, если попросите!"

if response0['c1'] == 'On1' and response0['c2'] == 'Off2':

text = "Второй светильник уже выключен, выключила первый!"

if response0['c1'] == 'Off1' and response0['c2'] == 'On2':

text = "Первый светильник уже выключен, выключила второй!"

if response0['c1'] == 'On1' and response0['c2'] == 'On2':

text = "Выключила свет!"

if response0['c1'] == 'On1':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=1')

if response0['c2'] == 'On2':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=2')

tts.va_speak(text)

except:

tts.va_speak("Сожалею, но возникла ошибка, попробуйте позже!")

❯ Интеграция в «Умный дом»


Интеграция устройства в систему «Умного дома» реализована с помощью MQTT Auto Discovery.
MQTT Auto Discovery— сервис, позволяющий максимально упростить интеграцию нашего устройства в систему «Умного дома». В моем случае, в качестве системы «умного дома», я использую Home Assistant, поэтому сервис MQTT Auto Discovery адаптирован именно под неё. Ниже код реализации MQTT Auto Discovery в микро ПО устройства:

Код реализации MQTT Auto Discovery | С++:

void send_mqtt(String tops, String data, String subscr){

// Анонсируем объекты для Home Assistant [auto-discovery ]

// Анонсируем объекты один раз при успешном подуключении и при запуске устройства

// if(!annonce_mqtt_discovery){

mqqt_d_annonce("CL1", "c1", "On1", "Off1");

mqqt_d_annonce("CL2", "c2", "On2", "Off2");

mqqt_d_annonce("CL3", "c3", "On3", "Off3");

annonce_mqtt_discovery = true;

// }

// Отправляем данные

client.publish(tops.c_str(), data.c_str());

client.subscribe(subscr.c_str());

}

void mqqt_d_annonce(String namec, String cn, String on_d, String off_d){

String top = String(settings.mqtt_topic) +"/jsondata";

String control = String(settings.mqtt_topic) +"/control";

char jsonBuffer[1024] = {0};

DynamicJsonDocument chan1(1024);

chan1["name"] = namec;

chan1["state_topic"] = top;

chan1["command_topic"] = control;

chan1["payload_on"] = on_d;

chan1["payload_off"] = off_d;

chan1["state_value_template"] = "{{ value_json."+cn+" }}";

serializeJson(chan1, jsonBuffer, sizeof(jsonBuffer));

String top_to = "homeassistant/light/"+cn+"/config";

client.publish(top_to.c_str(), jsonBuffer, true);

}


После успешного подключения устройства к сети и настройки MQTT соединения, в «объектах» Home Assistant появятся объекты нашего устройства, пользователю останется только настроить карточку объектов на панели управления, чтобы иметь возможность управлять данным модулем. Ниже приведен пример кода карточки объектов:

Пример кода карточки объектов:

type: horizontal-stack

cards:

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl1

name: Свет 1

show_state: true

hold_action:

action: more-info

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl2

name: Свет 2

show_state: true

hold_action:

action: more-info

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl3

name: LED

show_state: true

hold_action:

action: more-info

В результате карточка объектов будет выглядеть следующим образом:

Осталось упомянуть о последнем сервисе SSDP.
Чтобы как-то «повелевать» всем зоопарком моих умных устройств, был реализован данный сервис.

SSDP (Simple Service Discovery Protocol) — сетевой протокол, основанный на наборе протоколов Интернета, служащий для объявления и обнаружения сетевых сервисов. SSDP позволяет обнаруживать сервисы, не требуя специальных механизмов статической конфигурации или действий со стороны серверов, таких как DHCP или DNS.
Для моего удобства, я написал мобильное приложение, которое позволяет в три нажатия обнаружить и сконфигурировать устройство без лишних хлопот и похода в роутер. Ниже представлены скриншоты приложения, ссылка на приложение будет размещена в конце статьи.

Приложение для поиска устройств в сети:

❯ Использование аппаратного выключателя


Дабы не исключать классическую схему управления освещением с помощью обычного выключателя, который обычно встраивается в стену, в устройстве также реализован вход (J5) для подключения аппаратного выключателя. Данное решение позволяет без дополнительных переделок интегрировать модуль в существующую систему освещения.

❯ Итоги


Ну что ж, давайте подведем итоги. В итоге у нас получилось простое, но эффективное и относительно компактное устройство для управления освещением, с возможностью работы как в автономном режиме, так и в составе «Умного дома». Данное устройство разрабатывалось, прежде всего, для управления светодиодным освещением, но примененные силовые симисторы позволяют коммутировать осветительную нагрузку до 300Вт на канал, без ощутимого нагрева силовых элементов.

На этом можно и завершить статью. Надеюсь, мой опыт будет вам полезен. Если у вас есть замечания, предложения или вы хотите поделиться подобным опытом, то добро пожаловать в комментарии! Если статья вам понравилась, то поддержите её стрелочной вверх. Всем добра, здоровья и спасибо за внимание!

Ссылки к статье:

  • Проект печатной платы;

  • Исходный код прошивки устройства;

  • Модель корпуса устройства;

  • Мобильное приложение для поиска устройств.

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Azure Stack HCI — что такое, как улучшить и пользоваться;

  • Каждая капля на счету или как я счетчик умным делал;

  • Простое, но очень нужное устройство. Сигнализатор открытой двери холодильника.

Показать полностью 14 1
[моё] Электроника Timeweb Техника Сборка Гаджеты Свет Умный дом Изобретения Arduino Познавательно Инженер Видео YouTube Длиннопост
7
66
Timeweb.Cloud
Timeweb.Cloud
Лига Сисадминов

Сложно о простом. Физический уровень (L1) модели OSI⁠⁠

1 год назад

Автор текста: ProstoKirReal

Приветствую, коллеги! Меня зовут ProstoKirReal, и сегодня я хочу обсудить с вами физический уровень (L1) модели OSI. Понимание этого уровня является основополагающим для всех, кто только начинает свой путь в сетевых технологиях.

❯ Что такое физический уровень?


Физический уровень (Physical Layer) — это первый и самый низкий уровень модели OSI. Он отвечает за передачу необработанных битов данных по физическим средствам связи, таким как кабели и радиоволны. Этот уровень определяет электрические, механические, процедурные и функциональные характеристики для активации, поддержания и деактивации физических соединений между конечными системами.

Для начала необходимо понять, а что же такое бит данных. Я в первые месяцы работы очень часто путался в понятиях бит и байт.

Бит и байт — это две основные единицы измерения информации в компьютерных системах. Разница между ними заключается в следующем:

❯ Бит

  • Определение: бит (bit) является наименьшей единицей информации в компьютерных системах.

  • Значение: может принимать одно из двух значений: 0 или 1. Эти значения часто интерпретируются как «включено» или «выключено», «истина» или «ложь».

  • Использование: используется для представления двоичной информации и операций на уровне аппаратного обеспечения.

❯ Байт

  • Определение: байт (byte) состоит из 8 битов.

  • Значение: может представлять 256 различных значений (от 0 до 255 в десятичной системе или от 00 до FF в шестнадцатеричной системе).

  • Использование: широко используется для представления данных, таких как символы в текстовых файлах. Например, каждый символ в стандарте ASCII кодируется одним байтом.


    Примерное сравнение:

  • Бит: 0 или 1

  • Байт: 8 битов (например, 01101010)


    Для запоминания есть старая шутка:

Штирлиц поругался с посетителем бара и вышел с ним 1 на 1. На выходе он увидел 8 человек с битами. «Один байт равно 8 бит», — подумал Штирлиц

Выше я писал о двоичной и шестнадцатеричной системе. А для чего они?

На двоичной системе общаются между собой различные сетевые устройства, компьютеры и т.д.
А что же делать нам обычным людям? Даже простые данные в двоичной системе выглядят очень громоздко.

К примеру предложение «Hello, world!» выглядит как 01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100 00100001.
Для повышения читаемости таких массивов данных используют шестнадцатеричную систему. К примеру, предложение «Hello, world!» выглядит как 48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21.
Уже читабельнее?

То есть 1 бит – 0, 1 байт – 01001000, в 16-ричной 1 байт – 48.

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

❯ Преимущества шестнадцатеричной системы

  1. Удобство преобразования: простое преобразование между шестнадцатеричной и двоичной системами.

  2. Краткость записи: значительно более короткие записи по сравнению с двоичной системой.

  3. Повышенная читаемость: легче для восприятия и анализа при работе с низкоуровневыми данными.

  4. Принятость в стандартах: широко используется в сетевых и компьютерных стандартах.


Сложно? Еще немного и доберемся до L1.
Еще одно понятие, которое нам будет необходимо для понимания.

❯ Пакет данных


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

Пакет служит нам для передачи информации от компьютера к компьютеру. Вообще это отдельная тема для разговора, после модели OSI займусь написанием статьи про пакеты данных.
Если вкратце, то данные, которые нам необходимо передать по сети, делятся на несколько частей. Далее к этим данным добавляется специальный заголовок (необходимый для передачи пакетов по сети) и этот пакет с данными передается по сети в виде электрических или световых сигналов.

Итак, про L1 уровень.

За преобразование битов данных на первом уровне отвечают сетевые карточки в компьютерах и серверах, за передачу пакетов по сети используются SFP модули в таких сетевыех устройствах, как коммутаторы, маршрутизаторы и т.д.

❯ Основные функции физического уровня


Передача битов: Физический уровень определяет способ передачи битов данных по физическому носителю, будь то медные кабели, оптоволоконные кабели или беспроводные каналы.

Медные кабели передают информацию с помощью электрических сигналов, бывают 1G и 10G медные кабели, типа витая пара. Я был удивлен о наличии 10G меди.

Оптоволоконные кабели передают информацию с помощью световых сигналов.

Беспроводные соответственно передают информацию без проводов, по средством радиоволн.

Модуляция и демодуляция: Преобразование цифровых данных в аналоговые сигналы и обратно.

Модуляция и демодуляция — это процессы, используемые для передачи цифровых данных через аналоговые среды, такие как радиоволны, телефонные линии или оптоволоконные кабели. Эти процессы играют ключевую роль в современных коммуникационных системах, включая интернет, мобильные сети и телевидение.

❯ Модуляция (Modulation)


Модуляция — это процесс преобразования цифровых данных (битов) в аналоговые сигналы, которые могут быть переданы через аналоговую среду.

❯ Демодуляция (Demodulation)


Демодуляция — это процесс обратного преобразования аналоговых сигналов в цифровые данные. Демодулятор принимает модулированный аналоговый сигнал и извлекает из него оригинальные цифровые данные.

❯ Важность модуляции и демодуляции

  • Эффективная передача данных: модуляция позволяет передавать цифровые данные через аналоговые среды, такие как телефонные линии и радиоволны, которые имеют ограниченную пропускную способность и подвержены шуму.

  • Совместимость: благодаря модуляции цифровые системы могут быть совместимы с существующей аналоговой инфраструктурой.

  • Устойчивость к помехам: различные методы модуляции могут быть более устойчивы к различным типам помех и шумов, что улучшает качество передачи данных.

  • Повышение пропускной способности: использование сложных методов модуляции, таких как QAM, позволяет передавать больше данных за один цикл, что увеличивает общую пропускную способность канала связи.


Модуляция и демодуляция — это ключевые процессы, которые позволяют передавать цифровые данные через аналоговые среды, обеспечивая эффективную, надежную и высокоскоростную связь.

Электрические характеристики: определение напряжений, токов и частот, используемых для передачи данных.

Напряжение определяет разницу потенциалов между двумя точками сети. В сетях передачи данных, например, в Ethernet, используются различные уровни напряжения для кодирования цифровых данных. Низкое напряжение может быть интерпретировано как бит «0», а высокое — как бит «1».

  • Ток — это поток заряженных частиц через проводник. В сетях передачи данных, таких как Ethernet, ток используется для переноса информации. Изменения в токе могут интерпретироваться как изменения битовых значений данных. Потребляемый ток также определяется сопротивлением проводников и устройств, через которые проходят данные.

  • Частота определяет скорость, с которой данные передаются через сеть. В сетях Ethernet и других сетях передачи данных частота определяет скорость передачи данных, измеряемую в битах в секунду (бит/с). Например, Ethernet может иметь частоту 100 МГц или 1 ГГц, что определяет максимальную скорость передачи данных по сети.


    Механические характеристики: определение физического соединения, разъемов и кабелей.

    Физическое соединение (Physical Connection): — это способ, которым устройства в сети физически соединяются друг с другом. Физическое соединение может включать в себя различные типы кабелей, разъемов и портов. Например, в локальных сетях (LAN) устройства часто соединяются с помощью кабелей Ethernet.

    Разъемы (Connectors): — это физические интерфейсы, которые позволяют подключать кабели к сетевым устройствам. Существует множество типов разъемов, каждый из которых предназначен для определенных типов кабелей и протоколов. Например:

  • RJ45: используется для подключения витой пары Ethernet.

  • LC/SC: используются в оптоволоконных сетях.


Разъемы обеспечивают надежное и стандартизированное подключение, которое гарантирует совместимость устройств.

Кабели (Cables): — это физические носители, по которым передаются данные. Тип кабеля определяет скорость передачи данных, расстояние, на которое данные могут быть переданы, и среду, в которой кабель может использоваться. Основные типы кабелей включают:

  • Витая пара (Twisted Pair): наиболее распространенный тип кабеля для локальных сетей. Включает неэкранированную витую пару (UTP) и экранированную витую пару (STP).

  • Оптоволоконный кабель (Fiber Optic Cable): используется для высокоскоростных соединений на большие расстояния. Передает данные с помощью световых импульсов.

  • Каждый тип кабеля имеет свои характеристики, такие как пропускная способность, устойчивость к помехам и максимальное расстояние передачи.

❯ Примеры механических характеристик в сети Ethernet

  • Разъем RJ45: используется для подключения кабелей Ethernet к сетевым устройствам, таким как маршрутизаторы, коммутаторы и сетевые карты.

  • Оптоволокно с разъемами LC/SC: используется как для высокоскоростных магистральных соединений и соединений на большие расстояния, так и на небольшие расстояния (как разъемы RJ).

❯ Почему это важно


Механические характеристики важны для обеспечения надежного и эффективного соединения между устройствами в сети. Они влияют на:

  • Совместимость: использование стандартизированных разъемов и кабелей гарантирует, что устройства могут быть подключены и будут работать вместе.

  • Производительность: тип и качество кабелей и разъемов могут влиять на скорость передачи данных и стабильность соединения.

  • Устойчивость к помехам: экранированные кабели и правильные разъемы могут снижать воздействие электромагнитных помех и улучшать качество связи.

  • Физическая защита и долговечность: надежные разъемы и кабели обеспечивают долговечность и надежность физического соединения, что особенно важно в промышленных и коммерческих сетях.

  • Физическая топология: определение расположения и соединения сетевых устройств.

  • Физическая топология сети определяет физическое расположение и соединение сетевых устройств, таких как компьютеры, маршрутизаторы, коммутаторы и кабели. Это важный аспект проектирования и управления сетью, поскольку он влияет на производительность, масштабируемость, надежность и управляемость сети.

Давайте рассмотрим основные типы физической топологии и их характеристики.

❯ Основные типы физической топологии

1. Шинная топология (Bus Topology)


В этой топологии все устройства подключены к одному общему кабелю (шине). Передача данных осуществляется по этому кабелю, и все устройства могут получать эти данные.

Преимущества:

  • Простота установки и низкая стоимость.

  • Легкость добавления новых устройств.


Недостатки:

  • Ограниченная длина кабеля и количество подключаемых устройств.

  • Поломка кабеля приводит к выходу всей сети из строя.

  • Низкая производительность при большом количестве устройств.

2. Звездообразная топология (Star Topology)


Все устройства подключены к центральному узлу (коммутатору или концентратору). Центральный узел управляет передачей данных между устройствами.

Преимущества:

  • Высокая производительность, так как данные передаются через центральный узел.

  • Простота управления и обнаружения неисправностей.

  • Поломка одного устройства или кабеля не влияет на работу всей сети.


Недостатки:

  • Зависимость от центрального узла: если он выходит из строя, вся сеть перестает работать.

  • Более высокая стоимость из-за необходимости в центральном узле и большем количестве кабелей.

3. Кольцевая топология (Ring Topology)


Устройства соединены в кольцо, и каждый узел связан с двумя соседними узлами. Данные передаются по кольцу от одного устройства к другому.

Преимущества:

  • Равномерное распределение нагрузки между узлами.

  • Отсутствие коллизий при передаче данных.


Недостатки:

  • Поломка одного устройства или кабеля нарушает работу всей сети.

  • Сложность добавления новых устройств.

4. Ячеистая топология или сетчатая (Mesh Topology)


В этой топологии каждое устройство подключено ко всем другим устройствам. Существует полносвязная ячеистая топология, где все устройства напрямую соединены друг с другом, и частичная ячеистая топология, где некоторые устройства соединены не напрямую.

Преимущества:

  • Высокая надежность: сбой одного устройства или кабеля не влияет на работу всей сети.

  • Высокая производительность и минимальная задержка.


Недостатки:

  • Высокая стоимость и сложность установки.

  • Сложность управления и обслуживания.

5. Древовидная топология (Tree Topology)


Комбинация звездной и шинной топологий. Устройства соединены в группы, которые, в свою очередь, соединены центральными узлами.

Преимущества:

  • Иерархическая структура упрощает управление.

  • Легкость масштабирования сети.


Недостатки:

  • Зависимость от центральных узлов.

  • Более сложная установка по сравнению с простой звездной топологией.

❯ Почему физическая топология важна?

  • Производительность: различные топологии предлагают разные уровни производительности и могут справляться с разными объемами трафика.

  • Надежность: топология влияет на устойчивость сети к сбоям. Некоторые топологии более устойчивы к поломкам отдельных устройств или кабелей.

  • Масштабируемость: разные топологии по-разному справляются с добавлением новых устройств и расширением сети.

  • Управляемость: некоторые топологии проще в управлении и диагностике неисправностей.

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


Физическая топология сети играет ключевую роль в проектировании, управлении и обслуживании сетевых систем, обеспечивая оптимальную производительность и надежность.

Основные технологии

  • Кабели и разъемы: RJ45, оптоволоконные кабели, коаксиальные кабели.

  • Электрические характеристики: RS-232, V.35, 100BASE-TX, 10BASE-T.

  • Беспроводные стандарты: 802.11 (Wi-Fi), Bluetooth.

Основные стандарты

  • RS-232: стандарт для последовательного обмена данными. (это не разъем как обычно считают, DE-9 это разъем, а RS-232 это стандарт)

  • V.34: стандарт для модемов, который определяет методы модуляции для передачи данных по телефонным линиям со скоростью до 33.6 Кбит/с.

  • 100BASE-TX: стандарт для передачи данных по витой паре на скорости 100 Мбит/с.

  • 802.11: набор стандартов для беспроводных сетей.

Применение физического уровня на практике


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

❯ А что будет с данными если отключить кабель?

Отключение сетевого кабеля и его влияние на уровни сетевой модели


Когда сетевой кабель выдергивается, это затрагивает только физический уровень сетевой модели OSI, но как это влияет на работу протоколов TCP/IP?

Физический уровень (Physical Layer)


Физический уровень отвечает за передачу данных по физической среде, такой как медный кабель или оптоволокно. Когда сетевой кабель отключается, устройства на этом уровне теряют способность передавать сигналы. Этот уровень может распознать, что кабель выдернут, так как электрический или оптический сигнал больше не поступает.

Канальный уровень (Data Link Layer) (подробнее о данном уровне в следующей статье)


Канальный уровень взаимодействует непосредственно с физическим и управляет доступом к среде передачи данных, обнаружением ошибок и управлением потоком. При отключении кабеля сетевой интерфейс, например, Ethernet, сигнализирует об ошибке, такой как «link down». Это событие фиксируется на этом уровне, но не обязательно передается выше.

TCP/IP и вышележащие протоколы


Протоколы стека TCP/IP (такие как TCP, UDP, IP) работают на более высоких уровнях и не имеют прямого доступа к информации о физическом состоянии соединения. Они оперируют виртуальными представлениями сети, предоставляемыми нижележащими уровнями. Поэтому, когда кабель отключается, TCP/IP не узнает об этом напрямую, если информация о разрыве соединения не передается с более низких уровней.

Механизмы обнаружения обрыва соединения


Для того чтобы протоколы верхнего уровня, такие как TCP, могли узнать о разрыве соединения, используются специальные механизмы:

  • KeepAlive: после установления соединения и при включенной опции KeepAlive, TCP начинает отправлять небольшие контрольные пакеты по истечении определенного времени бездействия. Если определенное количество пакетов KeepAlive не получает ответа, TCP считает соединение недействительным и инициирует его разрыв.

  • Тайм-ауты: TCP пакеты имеет встроенные механизмы тайм-аутов, которые позволяют определить, что данные не были доставлены в течение определенного времени. В случае тайм-аута TCP предпринимает попытку повторной передачи данных или разрыва соединения.


Когда сетевой кабель отключается, это сначала обнаруживается на физическом и канальном уровнях сети. Однако, если информация об отключении не передается выше, протоколы TCP/IP не узнают об этом напрямую. Для решения этой проблемы в TCP предусмотрены механизмы, такие как KeepAlive и тайм-ауты, которые помогают обнаружить потерю соединения и принять соответствующие меры. Эти механизмы обеспечивают надежность и устойчивость работы сетевых приложений, даже при физических сбоях в сети.

❯ Заключение


Физический уровень модели OSI является основой для всех остальных уровней. Без надежного физического соединения остальные уровни не смогут выполнять свои функции. Понимание работы физического уровня поможет вам эффективно устранять неисправности и оптимизировать работу сетевых устройств.

В следующей статье мы рассмотрим канальный уровень (L2) и его роль в сетевом взаимодействии.

Спасибо за внимание, и до встречи в следующей статье!

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Будущее хранения данных. Где и на чем будем хранить данные в будущем;

  • Как подготовиться к собеседованию начинающему сетевому инженеру? Базовые знания;

  • Тимоти Джон Бернерс-Ли – человек, который почти создал интернет.

Показать полностью 5
[моё] IT Timeweb Сетевые инженеры Электроника Tcp Техника Rj-45 Гаджеты Длиннопост
15
65
Timeweb.Cloud
Timeweb.Cloud
TECHNO BROTHER

Модульность и предубеждение | Постройка электросерфа⁠⁠

1 год назад

Автор текста: georgy_zenker

Прошлая серия эпопеи с производством электросерфов, закончилась на отвратительном слове — «импортозамещение».

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

Модульный спрямляющий аппарат

Модульный спрямляющий аппарат

Конструктивизм наше все и первые модули были опутаны трубками охлаждения и проводами, как кот запутавшийся в клубке ниток.

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

Первая итерация модуля

Первая итерация модуля

Прошлые годы опыта чему-то нас все таки научили, и доверившись аксиоме «не сошлось в экселе — в жизни точно не сойдется», было принято решение не продолжать разработку своего контроллера, ибо единичные партии чего-либо сложнее палки никогда не будет дешевле любого серийного варианта.

По итогу перебора разных дендрофекальных изделий на основе VESC была найдена достойная замена: проприетарный влагозащищенный контроллер (IP 67), полностью подходящий по параметрам.

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

Примерно в это же время приехал долгожданный мотор 4-й итерации, сделанный в РФ. По размерам он был немного больше своего младшего брата, и засунуть в доску его удалось не сразу.

Впихнуть невпихуемое

Впихнуть невпихуемое

Тестов этого мотора лично я ждал почти 1,5 года и по итогу все вернулось на круги своя: при общем весе доски и райдера больше 130 кг — медленно, но верно шел нагрев и в режиме полного газа, через 20 минут мотор сваливался в перегрев.

Сказать что это было фиаско — ничего не сказать: почти 5 лет и 4 попытки построить действительно подходящий двигатель пошли в известном направлении (я уже молчу про деньги).

Это фиаско, братан

Это фиаско, братан

Но был и план Б — взять погружную версию китайского мотора (который использовали еще на старте эпопеи в 2019 и который перегревался за 5-7 мин (в исполнении с рубашкой охлаждения)), т. е. в итоге должна была получится концепция исключительно на пассивном охлаждении.

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

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

Красный — значит спортивный

Красный — значит спортивный

На первых тестах не удалось нагреть мотор выше 33 градусов (при температуре воды +15).

Когда спустя 2 недели ситуация не изменилась, и даже при весе райдера в 90 кг — температура не росла, у меня было двоякое ощущение: вроде и успех, но ощущения закопанных 5 лет в тупиковую технологию меня вгоняла в ощущения собственной глупости и однобокости мышления. Вы можете сказать: «настоящий инженер бы все посчитал предварительно». Этим я и занимался при проектировании 4-х итераций нашего мотора с около нулевой эффективностью в итоге, а тут несколько тестов все расставил на свои места.

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

Красота-то какая

Красота-то какая

Три раза перекрестившись — еще и подняли ток буста (8 сек) до 300А: не знаю, помог ритуал или погружная конструкция, но все элементы такую нагрузку выдержали, и условный пинок с места получилось обеспечить. Да, это все равно отличается от подрыва бензиновой доски, но уже сильно лучше предыдущей конфигурации

В версии со 108 мм водометом (сейчас 94 мм), надеюсь, получится достигнуть подобного ускорения (пока в разработке).

Водомет вышел за пределы доски, иначе ничего не влезало

Водомет вышел за пределы доски, иначе ничего не влезало

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

Транцевая плита косплей утконоса, как-нибудь потом переделаем

Транцевая плита косплей утконоса, как-нибудь потом переделаем

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

Доски делать не бросаем, но теперь упор больше под прокат, т. к. B2B сектор понятнее и предсказуемее.

История продолжается…

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Каждая капля на счету или как я счетчик умным делал;

  • ХрюХрюКар: как перестать беспокоиться, начать создавать сервисы и обзавестись друзьями;

  • Будущее хранения данных. Где и на чем будем хранить данные в будущем.

Показать полностью 12
[моё] Своими руками Timeweb Техника Сборка Мастерская Гаджеты Самоделки Длиннопост
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии