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

Бильярд 3D: Русский бильярд

Симуляторы, Спорт, Настольные

Играть

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

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

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

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

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

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

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Timeweb

С этим тегом используют

Познавательно IT Техника Электроника Изобретения Гаджеты YouTube Все
242 поста сначала свежее
45
Timeweb.Cloud
Timeweb.Cloud
8 месяцев назад
Лига историков

Деннис Макалистэйр Ритчи. Между Unix и С⁠⁠

  • Автор текста: Baron_Kir

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Создатель.

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

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

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

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Деннис, Джон, Линн, Билл

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Деннис с матерью

Деннис Ритчи был достаточно обычным ребёнком для будущего великого программиста. Его отец работал компьютерным специалистом в фирме Bell Labs, в которой будет блистать его сын до конца своей жизни. Его отец – один из авторов книги «Проектирование коммутационных схем», вышедшей в 1951 году. Книга была посвящена основным методам проектирования коммутационных схем: методам, которые применимы к цифровым компьютерам и другим сложным системам управления, а также к телефонным коммутационным системам. Сложно говорить, насколько работа отца сказалась на пути юного Денниса, но семья внесла свой вклад в его жизнь. Он был старшим ребёнком в своей большой семье (состоящей из матери, отца, двух братьев и сестры) и единственный из детей выбрал путь своего отца.

Деннис учился в старшей школе Саммита, прежде чем поступить в Гарвардский университет. В Гарварде он познакомился со своим первым компьютером, решив изменить свою специализацию (изначально он шёл по направлению изучения физики). Первый компьютер, который увидел Деннис, был им описан как «большая квадратная коробка-кубик». Заканчивал обучение в Гарварде он уже будучи аспирантом по прикладной математике, успешно написавшим диссертацию в 1968 году о «субрекурсивных иерархиях функций».

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Деннис Ритчи в годы учебы в аспирантуре. Его отец, Алистер Э. Ритчи (который также работалв Bell Labs) сидит сзади на мотоциклеДенниса Ритчи BSA 650.

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

Вполне вероятно, что были ещё какие-то сложности у Денниса, о которых мы не узнаем, но очень похоже на то, что он ушёл в коммерческую деятельность и к науке попросту охладел. Как раз в тот год, когда должна была состояться его защита, он вышел на работу в фирму Bell Labs, на тот момент это был Исследовательский центр вычислительной науки Bell Labs, в которой проработал с 1967 по 2007 годы.

На Хабре есть перевод статьи Дэвида Брока, историка технологий и директора Центра истории программного обеспечения Музея компьютерной истории. Это достаточно объёмный текст под названием «Утерянная диссертация Денниса Ритчи». Этот текст примечателен тем, что автор даёт интересный анализ диссертации, её теоретико-математического и прикладного значения, в частности подробно рассказывает о специфических решениях циклических программ и той значимости, которой обладало решение, созданное Ритчи. Мы рекомендуем ознакомиться с оригинальным или переводным текстом, посвящённым найденной диссертации. Это отдельная большая тема, которая требует погружения в сферу математики.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Профессор Массачусетского технологического института Альберт Мейер, который был в одном классе с Деннисом Ритчи

В рамках данного текста мы лишь подчеркнём, что Ритчи отказался самостоятельно публиковать свои научные исследования, но поспособствовал их сохранению в публикации своего знакомого, Альберта Мейера.

Несмотря на то, что Деннис статью о своих диссертационных исследованиях не писал, он, со слов Альберта, прочитал его работу, сделал комментарии и подробно объяснил суть циклических программ, которыми занимался в рамках диссертации. Эта статья называлась «Сложность циклических программ», и с неё начиналась научная карьера Альберта Мейера, она же стала важной чертой в карьере и Денниса Ритчи, только вот с небольшим отличием. Когда Альберт решил продолжить активную совместную работу с Деннисом, у него ничего не вышло, ведь Ритчи был очень занят, работал и поигрывал в Spacewar!

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Алан Коток, Стив Рассел, Мартин «Шэг» Грец играют в Spacewar! в Computer Musuem, Бостон.

К компьютерным играм мы ещё вернёмся, диссертация и научная деятельность Ритчи несколько увлекли нас, но на дворе 1967 год, Деннис заканчивает Гарвард и начинает свой путь к созданию языка программирования С и системы Unix, с которыми будет связана вся его последующая жизнь, а ещё он познакомится с Кеном Томпсоном, с которым будет работать и близко дружить до конца своих дней. И вместе с ним создаст Unix.

❯ Рождение и жизнь Unix

Как и любая другая система, Unix не появилась на пустом месте. Её корни уходят в 1957 год, к Виктору Высоцкому, создателю внутренней операционной системы BESYS, которая в дальнейшем идейно переродилась в Multics в 1964 году. Это был единый проект между MIT, General Electric и Bell Labs. А к 1969 году Bell Labs из проекта вышла, т. к. Multics не приносила коммерческого успеха. И вот тут начинается новый этап нашей истории…

Multics, технология разделения времени, позволяющая нескольким людям одновременно использовать один компьютер, была изобретена достаточно давно. В целом она была удобна, например позволяла звонить на компьютер с удалённых терминалов, а затем читать электронную почту, редактировать документы, выполнять вычисления и так далее. Этот проект глобально принадлежал AT&T, в нём работал целый ряд сотрудников Bell Telephone Laboratories, включая Томпсона и Ритчи. Самое главное – система была для них привычна. Однако, после начала коммерческих трудностей, когда AT&T перестала спонсировать проект, менеджеры Bell Labs начали сворачивать систему. Как воспоминал Ритчи, это был удобный интерактивный вычислительный сервис, который сформировал определённое сообщество и… исчез!

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Радд Канадей

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Малкольм Дуглас Макилрой

В этот момент Ритчи и Томпсон пошли на интеллектуальное хулиганство, они попросту проигнорировали своё непосредственное руководство и начали разрабатывать собственную систему. Кроме Ритчи и Томпсона в разработке участвовали Радд Канадей и Дуглас Макилрой.

Они начали писать проект файловой системы, Томпсон сначала делал ставку на GE-645, но после полного отказа от Multics эта идея заглохла.

Причём она не просто «заглохла» в теории, она умерла на практике. Томпсон успел разработать большую часть дизайна. Ритчи внёс идею о файловых системах, которая позже будет реализована. Томпсон создаст симуляцию производительности предполагаемой конструкции файловой системы и поведения подкачки страниц программ. Более того, он дойдёт до написания ассемблера для машины и элементарного ядра операционной системы, величайшим достижением которого, как вспоминал Ритчи, было набрать приветственное сообщение. Сложность машины была такова, что даже простое сообщение уже было довольно заметным достижением… однако, в тот момент стало известно, что срок службы GE-645 начал исчисляться месяцами, и работу остановили. И тут снова заговорили компьютерные игры!

Томпсон работал над Space Travel, игрой, в которой симулировались все основные тела Солнечной системы вместе с космическим кораблём, который мог летать вокруг них. Но игра невероятно дорого обходилась, и Томпсон стал искать варианты для её изменения. Таким вариантом стал мини-компьютер PDP-7 от Digital Equipment Corp. Игра была переписана для запуска на нём. Через год, когда жена Томпсона уехала к своим родителям с их новорождённым сыном, Томпсон полностью посвятил себя программированию. Он писал суть кода будущей Unix для PDP-7.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Man Men: Томпсон (ken) и Ритчи (dmr) являются авторами первого руководства по Unix или страниц «man», одна из которых показана здесь.Первое издание руководства было выпущено в ноябре 1971 года.

Само название стало профессиональной шуткой. Новая операционная система поддерживала только одного пользователя (Томпсона), он увидел в ней специфическую версию Multics [Multiplexed Information and Computer Services] и окрестил её Unics [Uniplexed Information and Computing Service], которая стала позже Unix. Разработка Unix имела единственную движущую цель — «сделать вычисления настолько простыми, насколько это возможно».

Изначально код писался для GE-645, к концу 1969 года Томпсон смог написать код операционной системы на самом PDP-7. Однако компьютер уже устарел, нужно было финансирование. Томпсон и Ритчи решили продолжить свои хулиганские действия.

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

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Joseph Frank Ossanna

Ещё шесть месяцев разработка велась на PDP-7 из-за отсутствия необходимой периферии, а позже система была перенесена. Вместе с этим, Джозеф Оссанна помог перенести текстовый форматировщик roff. Unix начал свои первые шаги на практических испытаниях.

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

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Unix Engine: Ранние версии Unix работали на миникомпьютерах PDP-11 компании Digital Equipment Corp.

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

Система предлагала интерактивную среду, которая к тому моменту позволяла разделять время. Пользователям были доступны языки программирования включая BASIC, Fortran, скрипты команд Unix, язык ассемблера и B. B, потомок BCPL (Basic Combined Programming Language), будет превращён в C, который Ритчи создал, одновременно работая над Unix. Первая редакция Unix позволяла программистам вызывать 34 различные низкоуровневые подпрограммы, встроенные в операционную систему, все они до сих пор доступны и активны в современных системах Unix и Linux. Первая версия содержала всего 4200 строк кода в своей основе и занимала 16 КБ основной памяти при запуске.

Одним из наиболее широко признанных вкладов Unix в культуру операционных систем и командных языков является конвейер, используемый в конвейере команд. Каналы появились в Unix в 1972 году, намного позже того, как версия системы PDP-11 была введена в эксплуатацию, по предложению (или, возможно, по настоянию) Макилроя, давнего сторонника неиерархического потока управления, характерного для сопрограмм. Прорыв конвейера Unix заключался в том, что он построен из одних и тех же команд, постоянно используемых в симплексном режиме, что потребовало невероятного выхода за рамки привычного программирования своего времени.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Кен Томпсон (сидит) печатает, а Деннис Ритчи наблюдает в 1972 году, вскоре после того, как они с коллегами из Bell Labs изобрели Unix.

При этом, Unix осталась лишь исследовательским проектом Bell Labs, да ещё и не совсем официальным. Лишь в 1973 году авторы решили, что система готова, и представили её разработку и реализацию на симпозиуме Ассоциации вычислительной техники. Этот доклад был опубликован в 1974 году в Communications of the ACM. Его появление вызвало множество запросов на копии программного обеспечения. Кажется, успех! Греби деньги лопатой, но не всё так просто.

Дело в том, что разработка находилась под крылом AT&T. Корпорация являлась монополистом во всех вопросах, связанных с телекоммуникациями и телефонными сетями, особенно в рамках междугородней связи. Её положение было прямо подчёркнуто законодательством, и ей было запрещено продавать сторонние продукты. Unix продавать было попросту невозможно.

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

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

Выглядело это фантастически: люди отправляли магнитные ленты с новым ПО или исправлениями системы, сформировалась группа пользователей Usenix, которые были центром обмена. Эти группы были международными! В Австралии университет Нового Южного Уэльса и Сиднейский университет создали свою версию Australian Unix Share Accounting Method, более стабильную и более производительную. К середине 1970-х гг. движение приобрело размах, пользователи передавали свои улучшения в Bell Labs, для улучшения системы, но тут зашевелились юристы AT&T, который попытались вмешаться в процесс работы.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Джон Лайонс

Учёный из университета Южного Уэльса Джон Лайонс в 1977 году опубликовал одну из самых известных книг Lions' Commentary on UNIX 6th Edition, with Source Code. Комментарии Лайонса к 6-й версии UNIX, с исходным кодом Она содержала аннотированный список центрального исходного кода для Unix. Через два года юристы по какой-то не совсем понятной причине решили разобраться с данной книгой и запретить её публикацию. Что же могло пойти не так?

Полностью свободное сообщество Unix со всем своим максимализмом отказалось учитывать решение юристов и книга пошла в самиздат. Подобную популярность и нарочно было не вызвать, очень плохие фотокопии книги были даже у создателей Unix. Забавно, но для создателей «класть» на своих юристов тоже стало совершенно обычным явлением. В промежутке между 1975 и 1979 годами были собраны ключевые проблемы, которые требовали первоочередных изменений. Юристы посчитали, что это будет поддержка продукта (которую осуществлять нельзя), и в итоге совершенно неожиданно (!) формальному руководителю сообщества Usenix абсолютно анонимно попала в руки магнитная лента с исправлением всех актуальных проблем версии. Причём место, где он «нашёл» ленту удивительно близко располагалось к офису Bell Labs, которая совсем не занимались поддержкой своего продукта.

К концу 1970-х гг. Unix продолжала оставаться полуофициальной системой, только уже представленной во всей компьютерной индустрии, от лабораторий до айти-компаний. После 1990-х Unix начала сдавать свои позиции, потеряв эффективность в условиях существенного роста требований к ОС. Далее был целый ряд судебных разборок между гигантами рынка, которые приостановили развитие свободного ПО. Удивительно, что эти разборки происходили над Unix, изначально создаваемой и поддерживаемой фактически вопреки воле власть имущих, бескорыстно или, как минимум, без цели озолотиться.

❯ Язык программирования С

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Та самая «Белая книга»

Мы много говорили про Unix, но у Денниса Ритчи было две любимых игрушки: Unix и «С». Их развитие было переплетено, но мы решили их разделить. Поэтому снова отправляем вас 1972 год, когда, со слов Ритчи, ковался «С», ведь язык появился в 1969–1973 годах, параллельно с ранним развитием операционной системы Unix; наиболее творческий период пришёлся на 1972 год. Второй всплеск развития языка был в период с 1977 по 1979 годы, когда на практике была продемонстрирована переносимость системы Unix и вышла книга «The C Programming Language», она же «Белая книга» или «K&R» (Керниган и Риччи). Чуть позже язык был официально стандартизирован комитетом ANSI X3J11, после чего язык стал одним из самых распространённых и «оторвался» от системы Unix.

Через многие годы Деннис Ритчи пошутит в своём интервью, отвечая на вопрос «кого он больше любит, маму или папу, Unix или С?»: «Конечно С, ведь он был более прибыльным творением. Книга «The C Programming Language» (на 2011 год) все ещё приносит гонорары. Unix – творение очень многих людей, а С – куда более «моё» детище».

Изначально в 1986 году Uniх, как вам известно, писался не на самом PDP-7. Вместо этого использовался набор макросов для ассемблера GEMAP на машине GE-635. Постпроцессор генерировал бумажную ленту, читаемую PDP-7. Эти ленты переносились с машины GE на PDP-7 для тестирования, пока не были завершены примитивное ядро Unix, редактор, ассемблер, простая оболочка (командный интерпретатор) и несколько утилит (вроде команд Unix rm, cat, cp).

Ассемблер PDP-7 Томпсона превзошёл даже DEC по простоте; он оценивал выражения и выдавал соответствующие биты. Не было ни библиотек, ни загрузчика, ни редактора связей: весь исходный код программы представлялся ассемблеру, а выходной файл – с фиксированным именем, – который появлялся, был непосредственно исполняемым.

Вскоре после того, как Unix впервые запустился на PDP-7, в 1969 году Макилрой создал первый высокоуровневый язык новой системы: реализацию TMG МакКлура. TMG – это язык для написания компиляторов (в более общем смысле, TransMoGrifiers) в стиле сверху вниз, рекурсивного спуска, который сочетает в себе контекстно-свободную синтаксическую нотацию с процедурными элементами.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Томпсон и Ритчи

Испытанный подвигом Макилроя в воспроизведении TMG, Томпсон решил, что Unix нуждается в языке системного программирования, и создал свой собственный язык, который назвал B. B можно представить как C без типов; точнее, это BCPL, сжатый в 8 Кбайт памяти и пропущенный через мозг Томпсона, по словам самого Денниса Ритчи.

В системе PDP-7 Unix только несколько вещей были написаны на B, кроме самого B, потому что машина была слишком маленькой и слишком медленной, чтобы делать что-то большее, чем эксперимент, переписывание операционной системы и утилит полностью на B было слишком дорогим шагом. Томпсон и Ритчи раздумывали об использовании Fortran, PL/I или Algol 68, но отказались от этого по двум причинам. Первая – им не хватало ресурсов. Вторая – было веселее делать всё самостоятельно:

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

В том же году Ритчи начал расширять язык B, добавив символьный тип, а также переписал его компилятор для генерации машинных инструкций PDP-11 вместо потокового кода. Так начался переход от B к С, который пока выглядел лишь как слегка расширенный язык B, получивший название NB, от «new B». NB существовал так недолго, что не было написано его полного описания.

Решение составило решающий скачок в эволюционной цепочке между бестиповым BCPL и типизированным C. Оно устранило материализацию указателя в хранилище и вместо этого вызвало создание указателя, когда имя массива упоминается в выражении. Правило, которое сохранилось в сегодняшнем C, заключается в том, что значения типа массива преобразуются, когда они появляются в выражениях, в указатели на первый из объектов, составляющих массив. Что ещё важнее, новый язык сохранил связное и работоспособное (хотя и необычное) объяснение семантики массивов, одновременно открывая путь к более полной структуре типов. Второе нововведение, которое наиболее четко отличает C от его предшественников, – это более полная структура типов и особенно её выражение в синтаксисе объявлений.

Схема композиции типов, принятая в C, во многом обязана Algol 68, хотя, возможно, она не появилась в форме, которую одобрили бы приверженцы Algol. Центральным понятием, которое Деннис Ритчи позаимствовал из Algol, была структура типов, основанная на атомарных типах (включая структуры), составленных в массивы, указатели (ссылки) и функции (процедуры).

После создания системы типов, соответствующего синтаксиса и компилятора для нового языка Деннис решил, что появившийся язык заслуживает нового имени, он решил следовать однобуквенному стилю и назвал его C. Далее был целый ряд изменений 1973 года, но самым важным было введение препроцессора, отчасти по настоянию Алана Снайдера и в знак признания полезности механизмов включения файлов, доступных в BCPL и PL/I. Его первоначальная версия была чрезвычайно простой и предоставляла только включенные файлы и простые замены строк: #include и #define макросов без параметров.

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Брайан Керниган выступает на церемонии памяти Денниса Ритчи в Bells Labs.

К началу 1973 года основы C были завершены. Язык и компилятор были достаточно сильны, чтобы позволить Ритчи и Томпсону переписать ядро Unix для PDP-11 на C летом того же года. В 1978 году Брайан Керниган и Деннис Ритчи опубликовали « Язык программирования C». При написании книги соблюдалось чёткое разделение труда: Керниган написал почти весь пояснительный материал, а Ритчи приложение, содержащее справочное руководство и главу об интерфейсе с системой Unix.

В 1973–1980 годах язык немного разросся: структура типов приобрела типы unsigned, long, union и enumeration, а структуры стали почти первоклассными объектами (не хватало только нотации для литералов). Написание ядра Unix на языке C дало авторам достаточно уверенности в полезности и эффективности языка, после чего было принято решение перекодировать утилиты и инструменты системы, а затем перенести самые интересные из них на другие платформы.

Именно переход на другие платформы станет одной из наиболее важных степеней в жизни и Unix, и языка С. В 1978 году авторы начали переносить систему Unix на компьютер Interdata 8/32. Перенос завершился успехом и этот успех оказался заразительным. И его повторили Том Лондон и Джон Райзер, перенеся Unix на DEC VAX 11/780, этот «зверь» был заметно популярнее и стал шире использоваться, вместе с ним, естественно, шире использоваться стал и сам С. Далее были System III и System V, серия релизов BSD Калифорнийского университета в Беркли.

После этого началась эпоха использования С в проектах с государственным и коммерческим регулированием, что потребовало получения официального стандарта. Макилрой инициировал этот процесс, и сертификация закончилась к 1989 году. X3J11 также ввел множество небольших дополнений и корректировок, например, квалификаторы типов const и volatile, а также немного иные правила продвижения типов. Тем не менее, процесс стандартизации не изменил характер языка. Таким образом, ядро языка C почти не пострадало от процесса стандартизации, и стандарт появился скорее как лучшая, тщательная кодификация, чем как новое изобретение.

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

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

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

❯ Признание, заслуги, память

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

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

Ритчи и Томпсон получают Национальную медаль США в 1998 году от Билла Клинтона.

Есть смысл назвать лишь самые основные. 1982 год, Ритчи и Томсон получили Премию Эмануэля Пиора за выдающийся вклад в развитие информатики и систем обработки информации. Через год –премия Тьюринга за их разработку общей теории операционных систем и в частности за создание Unix. 1989 год, опять совместная премия C&C Prize, награда вручается NEC «за выдающиеся достижения в исследовании, разработке или пионерской работе в областях полупроводников, компьютеров, телекоммуникаций и связанных с ними технологий». Ещё через год, опять совместно с Томпсоном, Ритчи получает медаль Ричарда Хэмминга «за создание операционной системы Unix и языка программирования C». Спустя девять лет, 27 апреля 1999 года, Ритчи и Кен Томпсон вместе получили Национальную медаль США за достижения в области технологий и инноваций 1998 года от президента Билла Клинтона за изобретение операционной системы UNIX и языка программирования C, которые привели к огромным продвижениям в компьютерных аппаратных, программных и сетевых системах и стимулировали рост промышленности в целом, закрепив таким образом лидерство Америки в информационном веке.

В 2003 году опять совместная награда – Премия Гарольда Пендера, высшая награда факультета инженерного дела и прикладной науки Пенсильванского университета. Вручается выдающемуся инженеру за значительный вклад в образ жизни общества. Не могу не перечислить некоторых «коллег» по премии Пендера: Роберт Кан, Винтон Серф, Джордж Данциг, Дэн Скотт, Герберт Саймон, Морис Уилкис, Клод Шеннон, Джон Мокли, Джордж Эккерт… Хотелось бы перечислить всех, но это не имеет смысла. Ритчи и Томпсон получили не просто «признание», их признание в профессиональном мире было настолько существенным, насколько это может быть для «технаря», когда тебя ставят в один ряд с основоположниками современного цифрового мира, это дорогого стоит.

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

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

Деннис Макалистэйр Ритчи. Между Unix и С Познавательно, Timeweb, Программа, IT, Биография, Unix, Факты, Длиннопост

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

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

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

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

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

  • Как Kodak у Polaroid патенты украл;

  • Гэри Килдалл — изобретатель, предприниматель, легенда.

Показать полностью 18
[моё] Познавательно Timeweb Программа IT Биография Unix Факты Длиннопост
3
29
Timeweb.Cloud
Timeweb.Cloud
8 месяцев назад
Лига Сисадминов

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS⁠⁠

  • Автор текста: akibkalo

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Недавно я описал простой процесс загрузки последнего Microsoft Office с сайта Microsoft и его активации для Windows 10/11. До этого рассказывал более технические детали, оказавшимися читателям интересными, но сложноватыми. Один из вопросов, регулярно задаваемых в комментариях, был про Microsoft Office для Mac. Сейчас я расскажу, как иметь последнюю версию и не думать про активацию, поговорим о том, что делать тем, у кого давно установлена версия 2016, 2019 или 2021, следует ли думать про 2024 и как обновляться. Также в конце статьи расскажу о способе решения проблем с Microsoft Office, позволяющем чинить неработающую инсталляцию. Данная статья не техническая, в ней много картинок и рассуждений о том, когда, что и как устанавливать. Не пропагандирую ни решения Microsoft Office, ни его пиратства, просто рассказываю, как установить его при желании, без всяких торрентов.

Итак, для начала о версиях Microsoft Office для Mac. Исторически версии для Mac выходили на год позднее версий для Windows и несли в своем названии год выпуска, отличный от того, что у Windows версии. Например, Office 2004 для Mac (версия 11.0) вышел в мае 2004, на год позднее чем Office 2003 для Windows (тоже версия 11.0), вышедший в октябре 2003. Office 2008 для Mac (версия 12.0) вышла через год после Office 2007; Office 2011 для Mac (версия 14.0) через полгода после Office 2010. Далее для Windows Microsoft переключился на Click2Run технологию, и версии для Mac стали выходить практически одновременно и нести то же имя, что версии для Windows. Начиная с Office 2016 внутренняя версия продукта замерла на 16.x и на Windows и на Mac, продукт обновлялся, получал новые возможности и исправления, и в зависимости от купленной вами лицензии вы получали тот или иной набор возможностей.

Сейчас существует три издания Office для Mac:

  • Office Home & Student – Excel, PowerPoint, Word;

  • Office Home & Business – Excel, Outlook, PowerPoint, Word;

  • Standard LTSC – Excel, Outlook, PowerPoint, Word.

Везде есть также OneNote и OneDrive, но смысл приложения имеют лишь при наличии подписки. Сам OneNote не развивается с Office 2019, пока его включают в пакет как есть, возможно в будущем исключат. Хотя Microsoft уже делал заявление, что по крайней мере еще одна версия после Office 2024 будет продаваться и без подписок. Что не может не радовать.

Начиная с версии 16.21 в каждое издание входит Teams и (внимание) Defender. Если ранее у вас был установлен Office без Teams, то при обновлении он не установится, а при установке с нуля будет добавлен. На сайте Microsoft доступен Office и без Teams. Если загруженный вами файл инсталлятора называется Microsoft_365_and_Office_16.хх.хххххххх_BusinessPro_Installer.pkg – это версия с Teams, а Microsoft_365_and_Office_16.хх.хххххххх_Installer.pkg – версия без Teams. После установки Office можно просто удалить Teams, он не появится более при обновлениях.

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Если вам не нужны Teams, Defender, OneNote и OneDrive, уберите их из списка при установке

Как я рассказывал в большой статье про установку Office 2024 – на Windows сейчас бинарно нет разницы между Office 2016, 2019, 2021 или 2024. Установив Актуальный канал обновлений, вы будете ежемесячно обновлять свою версию, вне зависимости от купленной лицензии и файлы исполняемых модулей и библиотек у установленных Word 2016 и Word 2024 могут вообще не отличаться, я это отлично демонстрировал следующей картинкой (и забегая вперед скажу, что и для Mac ситуация похожа):

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Так выглядит ситуация под Windows - одна версия 17628.20110 для 2016/2019/2021/2024/365, исполняемые файлы одинаковы, но возможности у приложений разные.

Итак, на Windows версия продукта определяется лишь лицензией, а бинарно продукты совпадают, у них одно обновление на всех, смена лицензии с 2016 на 2024 (если продукт установлен в актуальном канале) добавит возможности, контролируемые лицензией. А как же оно сейчас происходит на Mac? Есть ли разница между Office 2019, 2021, 2024 и Microsoft 365 для Mac? Выпускаются ли для них разные обновления, или, как и под Windows, всё определяется лицензией? Как обновить установленный продукт, если он сам более не получает обновления версий? Как его активировать, если при первом запуске он от вас хочет что-то непонятное? Именно об этом основной разговор ниже.

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

К версии 16.х для Mac, равно как и для Windows, относятся все Microsoft Office, начиная с 2016. При этом 2016 и 2019 уже не обновляются, замерев на какой-то версии. А новые версии Office могут требовать более новую версию MacOS, чем у вас установлена. И ваша старая лицензия для Office 2016/2019 не годится для последних версий продукта, ибо она уже считается неактуальной. Давайте сначала пройдём по списку старых ОС, и определим, что устанавливать, если вы более не планируете (или не можете) обновлять саму ОС.

❯ Какую версию и откуда загружать? Чем активировать?

Политика официальной поддержки Microsoft для офисных продуктов на Mac – 5 лет, на последней и двух предыдущих версиях MacOS. На данный момент это Sonoma (14.x), Ventura (13.x) и Monterey (12.x). С выходом Sequoia (15.x) обновления Office перестанут приходить на Monterey.

Самая старая версия MacOS, поддерживаемая Microsoft Office 2016, это Yosemite (10.10.x), для установки на неё годится Office 2016 Suite 16.16.27. Просто загружаете с сайта Microsoft, устанавливаете и пользуетесь. Если у вас установлена MacOS High Sierra (10.13.x), вы можете загрузить и установить Office 2019 Suite 16.43.0.

Для MacOS Mojave (10.14.x) устанавливается Office 2019 Suite 16.54. Для Mac OS Catalina (10.15.x) доступен Office 2019/LTSC 2021 Suite 16.66.1, для MacOS Big Sur (11.x) – Office 2019/LTSC 2021 Suite. Для MacOS Monterey (12.x) доступна Office 2019/LTSC 2021 Suite 16.78.3 – это самая старая версия MacOS, поддерживающая Office 2019. Если вы загрузили Office для установки по этой ссылке, вам потребуется Volume License Serializer 2019 (ISO образ тут) или Volume License Serializer 2021 (ISO образ тут) (все предыдущие ссылки имели Serializer в комплекте).

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Office 2019 VL Serialzer поддерживается версиями 16.43 - 16.78

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Office 2021 VL Serialzer поддерживается версиями с 16.66

Начиная с MacOS Sonoma (14.x) и версии Office 16.55 доступна установка Office с родной поддержкой Apple Silicon. Последняя версия офисного пакета для текущих ОС всегда доступна прямо с сайта Microsoft. Volume License Serializer для Office 2021 доступен в по ссылкам в конце предыдущего абзаца.

Последняя версия Microsoft Office всегда доступна по этой ссылке.

Версии до 16.55 на Apple Silicon запускались через транслятор, а более новые уже нативно.

Начиная с версии 16.87 вы можете активировать Office 2024, используя Volume License Serializer 2024 Preview (с сайта Microsoft) если у вас установлена Mac OS не ниже чем Monterey. Так как сам Office 2024 в продажу еще не пошел, нет и финального VL Serializer, но устанавливаемая версия полностью функциональна, через несколько месяцев вам будет необходимо загрузить LTSC Serializer 2024 с финальной лицензией и установить его. Сам Office переустанавливать не придётся.

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Office 2024 LTSC Preview Serialzer поддерживается версиями с 16.87

❯ Зачем вообще обновлять Office?

Часто слышу вопрос, зачем его обновлять. Во-первых, как сказано выше, политика поддержки всего 5 лет, через два года закончится поддержка Office 2021. Кому оно важно? Вам. 13.10.2020 прекращена поддержка Office 2016 для Mac, а 10.10.2023 закончилась поддержка Office 2019. Вместе с окончанием поддержки перестали подключаться к облачным сервисам Outlook и OneDrive, более не ставятся обновления, даже при наличии критических уязвимостей. Office 2021 для Mac перестанет поддерживаться 13.10.2026. Береженого Бог бережет, лучше уж иметь последнюю версию. Office 2021 и Office 2019 отличались всего в нескольких настройках (функция LET в Excel и АвтоСохранение в облако, как пример). Для Office 2024 тоже припасено несколько нововведений при той же версии продукта – та же поддержка Python в Excel, поддержка динамических массивов, дополнительные опции в Outlook при создании встреч и опции поиска с ИИ.

❯ Как заменить лицензию?

Если у вас сейчас установлен Office и вы хотите его обновить до 2024, то сначала просто используйте AutoUpdate для установки последней доступной версии, затем удалите лицензию при помощи Microsoft Office License Removal Tool.

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

После него ваш офисный пакет будет просить подписку при запуске:

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

Так что установите Volume License Serializer – финальный 2021 если обновляетесь с 2019, или Preview 2024, а затем обновитесь из AutoUpdate. К концу октября будет и финальный, замена лицензии будет выполняться аналогично.

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

❯ Что делать, если Office не запускается или работает некорректно?

Бывает, что в результате каких-то действий ваш продукт начинает работать некорректно или вообще не запускаться (всё же это Microsoft 😊). Идеальный инструмент для решения проблем с Office для Mac это утилита Office Reset с одноименного сайта.

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

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

❯ Краткое резюме

Если вы быстро долистали до конца, хотите установить Office 2024 на свой Мак, то скачивайте последний инсталлятор, и Volume License Serializer (финальный 2021 или Preview 2024), в конце октября будет финальный Serializer 2024, я внесу правки в статью и отпишусь в комментариях.

Установка Microsoft Office 2024 на Mac или обновление до последнего, поддерживаемого версией MacOS Microsoft office, Timeweb, Windows, Mac Os, Программа, Приложение, Компьютерная помощь, Длиннопост

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

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

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

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

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

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

  • Винтон Серф – человек, который придумал интернет.

Показать полностью 10
[моё] Microsoft office Timeweb Windows Mac Os Программа Приложение Компьютерная помощь Длиннопост
3
12
Timeweb.Cloud
Timeweb.Cloud
9 месяцев назад
IT минувших дней

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

Сам Джон своё ранее увлечение наукой прямо связывал с политическими убеждениями своих родителей. Его любимая книга – совершенно обычная и знакомая многим из нас «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 года в Дартмутском колледже в Ганновере, штат Нью-Гемпшир. Исследование должно основываться на предположении, что каждый аспект обучения или другая черта интеллекта в принципе могут быть описаны настолько точно, что можно создать машину для их имитации: «Мы считаем, что можно добиться значительного прогресса, если тщательно отобранная группа учёных проработает над ними вместе в течение лета». В дополнении к этому предположению стояли четыре фамилии: Джон Маккарти, Марвин Мински, Натаниэль Рочестер, Клод Шеннон.

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

❯ Shakey the Robot

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

Искусственный интеллект Джона Маккарти Наука, IT, Timeweb, Искусственный интеллект, Терминатор, Инновации, Электроника, Робот, Длиннопост, Видео, YouTube

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

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

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

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

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

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

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

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

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

  • Автор текста: TilekSamiev

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

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

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


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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

❯ GUI vs CLI


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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

Типичный WIMP

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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


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

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

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

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

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

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


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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

Sublime Text

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

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

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

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

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

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост
Скрытая сила терминала или почему всем нужно уметь работать через командную строку Консоли, Программа, Timeweb, Тренд, Windows, Linux, Командная строка, ChatGPT, Видео, Без звука, Гифка, Длиннопост

Написано специально для 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
9 месяцев назад
GNU/Linux

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

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

Приветствую! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на 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 и как его можно установить за пару шагов.

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

Squid

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

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

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

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

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

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

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

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

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

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

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

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

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

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

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

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

  • Автор текста: akibkalo

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

Сегодня я буду рассказывать кратко о странной версии 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 сессии без патчей) и другие.

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

Клиентские языковые пакеты (часть) сборки 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 я разобрался, в том числе и русифицированной ОС, в образах интегрированы следующие версии (более новое ставится штатно поверх):

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

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

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

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

Неизвестная Windows 11 23H2 сборки 10.0. 25398.1 на базе Windows Server 23H2. Для геймеров и на старое железо Операционная система, Windows, Timeweb, Программа, Windows 11, Microsoft, Длиннопост

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

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

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

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

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

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

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

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

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

В этой статье я хочу описать свой опыт разработки такого простого, но в тоже время самого используемого элемента «Умного дома». Речь пойдет о модуле управления освещением. Забегая вперед, хочу сказать, что данный проект был реализован еще в 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.

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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


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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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


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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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


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

  • Captive portal;

  • Multicast DNS;

  • MQTT Auto Discovery;

  • SSDP.


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

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Как вы можете видеть на скриншоте, в устройстве реализован доступ управления каналами модуля по 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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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


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

❯ Итоги


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

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

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

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

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

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

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

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

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

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

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

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

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

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

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

Показать полностью 14 1
[моё] Электроника Timeweb Техника Сборка Гаджеты Свет Умный дом Изобретения Arduino Познавательно Инженер Видео YouTube Длиннопост
7
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии