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

Рецепт Счастья

Казуальные, Головоломки, Новеллы

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

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

Unix

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

Linux IT Windows Операционная система Гаджеты Программирование Все
142 поста сначала свежее
DoctorOtani
DoctorOtani
8 месяцев назад

Проперженный свитер, аниме и никсы. В чём суть?⁠⁠

Откуда пошло про админов-красноглазиков, патчащих FreeBSD под KDE, лоли, лор и дырявый свитер? Мне 20 лет, и я бородат. Олды помнят. Сам дипломированный админ и эникей

Unix Linux Freebsd Kde Мемы Аниме Олдфаги IT юмор Sudo Текст
15
2
ZeroDayCoding
ZeroDayCoding
8 месяцев назад
Информационные Технологии

Linux — лучшая ОС⁠⁠

Дисклеймер

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

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

Этот текст также есть в видеоформате:

Ссылки на все остальные площадки есть в телеграм канале.

Оглавление

  1. Введение

  2. Что такое ОС?

  3. История Windows

  4. История Unix

  5. История GNU/Linux

  6. Свободное ПО против Проприетарного

  7. Дистрибутивы и какой выбрать

  8. Графическое окружение

  9. Заключение

  10. Источники

Введение

Привет! Здесь я хочу рассказать о том, почему GNU/Linux — это лучшая операционная система на данный момент и почему тебе срочно нужно пересесть с Windows на неё.

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

Что такое ОС?

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

ОС — это одна из самых важных и сложных программ в системе. Она выполняет несколько ключевых задач:

  • Управление запуском и завершением программ.

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

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

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Схема изображает взаимодействие ОС со всеми необходимыми компонентами

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

С 1955 года начали появляться первые ОС, но самые популярные, и до сих пор используемые, системы появились в начале 90-х и разделились на два основных семейства: Windows и Unix.

История Windows

В 1975 году два друга-студента Гарварда, Пол Аллен и Билл Гейтс, разработали интерпретатор языка BASIC для компьютера Altair 8800. Спустя месяц было подписано лицензионное соглашение с компанией MITS, производителем этого ПК, на использование их интерпретатора BASIC в составе ПО для Altair. Так появилась компания Microsoft.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Пол Аллен и Билл Гейтс

В 1980 году Microsoft заключила договор с IBM на поставку операционной системы для нового компьютера IBM PC. Для этого в 1981 году Microsoft наняла Тима Патерсона для завершения адаптации 86-DOS к прототипу IBM PC. Позже компания выкупила права на 86-DOS и переименовала её в MS-DOS. В то же время IBM использовала лицензированную версию MS-DOS под названием PC DOS.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

MS-DOS

Забавный факт: в 1984 году Microsoft разрабатывала ПО для Apple Macintosh

Главной инновацией Macintosh на тот момент был графический интерфейс, который значительно упростил работу с компьютером для обычных пользователей. Билл Гейтс, вдохновившись этой идеей, решил создать графическую надстройку для MS-DOS. В конце 1985 года вышла первая версия Microsoft Windows, которая ещё не была полноценной операционной системой, а лишь графической оболочкой для MS-DOS.

Дальнейшее развитие Windows можно разделить на два направления: Windows на базе MS-DOS и Windows на базе NT (New Technology).

Windows на базе MS-DOS

В это направление входят такие операционные системы, как Windows 95, 98 и Me. Эти ОС не являлись полноценными многопользовательскими и многозадачными системами, как Windows NT. Например, подсистема пользовательского интерфейса и графики оставалась 16-битной, что приводило к низкой стабильности и производительности. Проблемы в 16-битном приложении могли привести к зависанию всей системы.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол Windows 95

Windows на базе NT

Второе направление включает системы с припиской NT (New Technology), такие, как Windows 10 (Windows NT 10.0) или Windows 11 (Windows NT 10.0.22000), а также серверные версии, например, Windows Server 2022 (Windows NT 10.3). Первая версия из этого подсемейства, Windows NT 3.1, была выпущена в 1993 году. Эти ОС полностью 32- или 64-битные и не зависят от MS-DOS даже для загрузки. Они работают на процессорах архитектур x86, x86-64 и ARM.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол Windows 7

История Unix

Другая интересная линия событий происходила в конце 1960-х годов, где консорциум в составе General Electric, MIT и Bell Labs (подразделение AT&T) разрабатывал ОС под названием MULTICS. Позже Bell Labs, в составе которого работал Кен Томпсон, покинула проект, а сам Томпсон разработал свою ОС для компьютера PDP-7 и вместе с Брайаном Керниганом назвал её Unics, по аналогии с MULTICS. Окончательное название — Unix.

Позже совместно с Деннисом Ритчи они перенесли систему на более совершенный мини-компьютер PDP-11. Тогда возникла идея переписать ОС на язык программирования более высокого уровня. Попытка использовать язык "B" не увенчалась успехом, и Ритчи предложил расширить его, создав новый язык — Си.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Кен Томпсон и Денис Ритчи

В 1973 году Unix был переписан на языке Си. Это стало прорывом, так как многие считали, что высокоуровневые языки и ОС несовместимы. Однако этот шаг определил будущее развитие отрасли: язык Си и Unix остаются актуальными по сей день.

В 1977 году Unix был перенесён на новую архитектуру, благодаря Деннису Ритчи. Так появился первый переносимый компилятор Си.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Unix

Компания AT&T из-за антимонопольных ограничений не могла участвовать в компьютерном бизнесе и распространяла Unix на некоммерческой основе, лицензируя код учебным заведениям. Одним из таких заведений был университет Беркли, где была создана одна из самых популярных веток Unix — BSD, разработанная Биллом Джоем в 1977 году.

В начале 1980-х AT&T начала коммерциализацию Unix, создав Unix System 3. В 1984 году с компании были сняты антимонопольные ограничения, что привело к прекращению свободного распространения исходных кодов Unix. Это вызвало юридические споры между AT&T и BSDi, которые продолжались до 1993 года, когда AT&T продала подразделение, занимающееся Unix, фирме Novell. Последняя урегулировала разногласия с Беркли.

Пока разработчики Unix были заняты междоусобными спорами, рынок оказался заполнен множеством дешёвых компьютеров на основе процессоров Intel и ОС Windows.

История GNU/Linux

Когда в 1983 году началась коммерциализация Unix-систем, Ричард Столлман начал разработку своей Unix-подобной ОС с нуля. Он основал фонд Свободного ПО и опубликовал свой идеологический манифест. Проект получил название GNU — рекурсивный акроним фразы "GNU’s Not Unix".

Изначально это была среда разработки с компилятором gcc и набором утилит: gdb (дебаггер), glib (библиотека для Си), coreutils (основные утилиты по типу ls, rm, cat и т.п.), командная оболочка bash и ряд других программ, которые стали базовыми в подобных системах.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Ричард Столлман

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

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

В 1991 году финский студент Линус Торвальдс начал разработку своего монолитного ядра Unix-подобной ОС под названием Linux для платформы i386. Вдохновившись SunOS, он создал своё ядро и публиковал его исходный код, что привлекло множество добровольцев.

Это ядро стало недостающим элементом для проекта GNU, что позволило создать полностью свободную ОС — GNU/Linux.

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Линус Торвальдс

Как отмечает сам Линус, важную роль в популяризации Linux сыграли судебные споры между AT&T и университетом Беркли, что мешало распространению BSD на платформе i386.

GNU/Linux — это самая популярная Unix-подобная ОС, подразделяющаяся на множество дистрибутивов, включая коммерческие. Примеры популярных коммерческих Unix-подобных ОС — macOS на основе BSD и Android на базе ядра Linux.

Свободное ПО против Проприетарного

Линус Торвальдс решил использовать для ядра Linux лицензию GNU GPL, предложенную Ричардом Столлманом. Давайте разберёмся, что это за лицензия и что такое Свободное ПО.

Движение за Свободное ПО началось в 1983 году благодаря Ричарду Столлману, который основал Фонд свободного программного обеспечения (Free Software Foundation, FSF), чтобы продвигать свои идеи в массы.

Что же такое Свободное ПО? В английском языке термин звучит как Free Software. Здесь слово Free означает не только бесплатное, но и свободное в плане свободы использования. Бесплатное ПО может не быть свободным, если оно закрытое и проприетарное, то есть является частной собственностью компании.

Вот четыре главных принципа Свободного ПО:

  • Свобода запуска программы для любых целей.

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

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

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

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

  • Свобода распространять модифицированные версии программы.

Эти принципы реализуются через лицензию GNU GPL и распространяются на всё ПО, созданное с её использованием.

Существует также более распространённый термин — Open Source (открытый исходный код). Он охватывает второй принцип Свободного ПО, но не ограничивается им. Термин закрепили Эрик Реймонд и Брюс Перенс как альтернативу термину Free Software, так как слово "free" может вводить в заблуждение, подразумевая только бесплатность.

Однако, по мнению Столлмана, Open Source не всегда означает свободу. Примером может служить UnRAR — программа для распаковки RAR-архивов, исходный код которой открыт, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Компании, такие как Microsoft, часто используют термин Open Source, избегая понятия Free Software.

Почему стоит переходить на Свободное ПО?

Главная причина — закрытый исходный код проприетарных программ. В таких ОС, как Windows или macOS, пользователи не видят исходного кода и не могут знать, что происходит при работе программы. Приходится верить разработчикам на слово, что ваши данные защищены. Однако закрытые программы могут собирать ваши данные и использовать их в интересах бизнеса. Одним из способов подобного несанкционированного доступа является бэкдор — намеренно встроенный разработчиками способ удалённого управления или доступа к данным. Примером является обязательное обновление в Windows, которое устанавливается независимо от желания пользователя.

По этим причинам закрытое ПО можно считать потенциально вредоносным.

Хотя Свободное ПО имеет свои преимущества, идея Столлмана может показаться слишком утопичной в современном мире. Я поддерживаю мнение Брюса Перенса, одного из лидеров проекта Debian, который считает, что свободное и несвободное ПО должны сосуществовать, и первое должно стать не только альтернативой, но и лучшим выбором.

Есть две дополнительные причины от меня для такого подхода:

  • Свобода выбора любого ПО, будь то свободное или проприетарное.

Например, многие дистрибутивы GNU/Linux распространяют проприетарное ПО через официальные репозитории, оставляя выбор за пользователем.

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

Дистрибутивы и какой выбрать

Операционная система GNU/Linux является свободным ПО и, на мой взгляд, остаётся лучшим выбором среди доступных ОС. Теперь, имея базу в виде GNU/Linux, нужно выбрать дистрибутив.

Дистрибутив — это собранный набор компонентов, включающий в себя:

  • Ядро Linux вместе с предустановленными программами, утилитами и библиотеками от проекта GNU.

  • Пакетный менеджер — инструмент для управления установкой, обновлением и удалением ПО.

  • Опционально графическая оболочка.

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

Среди множества дистрибутивов можно выделить три основных для новичков:

Debian

Один из самых первых и важных дистрибутивов. Сюда входит как сам Debian, так и популярные дистрибутивы основанные на нём. Это например Ubuntu, Linux Mint, Kali Linux.

Менеджер пакетов обычно используется apt (Advanced Packaging Tool), который является надстройкой над более низкоуровневым dpkg.

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

Red Hat

Одна из первых компаний, которая смогла коммерциализировать свободное ПО и продавать свой дистрибутив Red Hat Enterprise Linux по подписке.

Самый интересный для нас дистрибутив на основе Red Hat Linux является Fedora. Разрабатывается Проектом Fedora при коммерческой поддержке самой Red Hat и IBM, а также являющийся тестовым полем для фич, которые в будущем предполагаются к использованию в дистрибутиве Red Hat Enterprise Linux.

Формат пакетов RPM (Red Hat Package Manager) и DNF (Dandified YUM) в качестве инструмента для управления этими пакетами.

Используется также свой метод обновления через каждые 6 - 8 месяцев, поэтому ПО там не настолько устаревшее как в том же Debian, но всё ещё и не самое новое.

Arch Linux

Разработка Arch Linux возглавляется полностью некоммерческим сообществом, в отличие от тех же Ubuntu или Fedora.

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

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

Что выбрать?

Я рекомендую Arch Linux по следующим причинам:

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

  • Гибкость настройки: установка и настройка системы полностью зависят от пользователя.

  • Документация: ArchWiki содержит исчерпывающие инструкции и рекомендации.

Для установки можно использовать скрипт на Python - archinstall, если вы не хотите углубляться в детали на первых порах. Но людям, которые хотят изучать систему GNU/Linux рекомендуется делать это с нуля.

Если выделять различия между другими дистрибутивами, можно отметить следующее:

  • Арч меньше всего захламлён предустановленными программами и говорит тебе - собери свою систему сам.

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

  • AUR - пользовательские репозотории Арч. Это поддерживаемое сообществом хранилище программ для пользователей Arch, не входящих в основной репозиторий. Даёт большой выбор сторонних программ от пользователей, но в то же время и накладывает на вас ответственность, так как они не проходят такую тщательную проверку, как то же ПО из официального источника, поэтому использовать их только на свой страх и риск. Существует система голосов за понравившиеся пакеты и многие хорошие программы из AUR переносятся в итоге в официальный репозиторий.

  • Ну и как уже упоминалось выше - он полностью поддерживается сообществом и не зависит от решений корпораций.

Графическое окружение

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

На видеокартах Nvidia - Wayland может работать некорректно.

Я использую композитор для Wayland'а — Hyprland, и всё работает отлично на видеокарте AMD + 2 монитора.

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

Среда рабочего стола (DE) — это набор программ с общим графическим интерфейсом (например, KDE Plasma, GNOME).

Оконный менеджер (WM) — программа для управления отображением окон. Может быть частью DE или работать отдельно.

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

  • Загруженность системы по средствам ненужных программ на фоне (привет Windows)

  • Плохая работа этих программ между собой и самого интерфейса в целом (хотя казалось бы должна быть максимальная совместимость)

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

  • Ну и самое интересное, как по мне, — это то, что наверное во всех средах рабочего стола используются именно стековые оконные менеджеры, оправдывая это упрощённым переходом с того же Windows, но этим самым не сильно уходя от его концепции.

Здесь мы плавно перешли к различиям оконных менеджеров:

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

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

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол со стековыми окнами

Linux — лучшая ОС GNU, Linux, Unix, Windows, Open Source, Free soft, Microsoft, Arch, Операционная система, Дистрибутив, Информационная безопасность, Apple, IT, Debian, Red Hat, Видео, YouTube, Длиннопост

Рабочий стол с фреймовыми окнами

Также существуют динамические версии, где объединены как стековые, так и фреймовые.

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

Вот две главные причины, почему тайловые окна выигрывают плавающие:

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

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

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

Заключение

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

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

Сам использую Alacritty, поэтому вам его тоже советую. Очень простая настройка в одном toml файле.

С помщью эмулятора терминала вы можете как обновлять систему одной командой с аргументами:

pacman -Syu

Так и устанавливать нужные приложения в одну строчку:

pacman -S firefox

Базовые команды, нужные вам для работы в терминале, а также для работы с pacman.

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

Надеюсь я заинтересовал вас и вы хотя бы попробуете данную ОС и оцените все её преимущества. Дальше остаётся только пробовать и изучать новое.

Спасибо за внимание, получайте новые знания и передавайте их другим!

Источники

  • Программирование. Введение в профессию (А. В. Столяров) — Учебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в т.ч. Linux) в роли сквозной среды для обучения.

История Windows

  • Microsoft (Википедия) — История компании Microsoft, её основатели и ключевые этапы развития.

  • MS-DOS (Википедия) — Информация о MS-DOS, её разработке и использовании в IBM PC.

  • Windows (Википедия) — Подробная история развития операционной системы Windows.

  • Windows 9x (Википедия) — Подсемейство Windows на базе MS-DOS, включая Windows 95, 98 и Me.

  • Windows NT (Википедия) — История развития линейки Windows NT и её отличия от других версий.

  • Краткая история Windows (Habr) — История Windows с 1985 года до наших дней.

История Unix

  • Unix (Википедия) — Основные этапы создания и развития Unix, ключевые фигуры и концепции.

  • MULTICS (Википедия) — Информация о предшественнике Unix, операционной системе MULTICS.

  • BSD (Википедия) — История Berkeley Software Distribution (BSD), её влияние на Unix и развитие отрасли.

История GNU/Linux

  • GNU (Википедия) — История проекта GNU, его философия и основные компоненты.

  • Linux (Википедия) — Информация о разработке ядра Linux и его значении для открытого ПО.

  • Richard Stallman (Википедия) — Биография Ричарда Столлмана, его вклад в движение свободного ПО.

  • Linus Torvalds (Википедия) — Биография Линуса Торвальдса и история создания ядра Linux.

  • SunOS (Википедия) — Информация об операционной системе SunOS, которая вдохновила Линуса Торвальдса.

  • Revolution OS (YouTube) — Документальный фильм о развитии GNU/Linux и открытого ПО.

Свободное программное обеспечение и лицензии

  • Лекция Столлмана о Свободном ПО (YouTube) — Лекция Ричарда Столлмана о философии и важности свободного ПО.

  • GNU General Public License (Википедия) — Лицензия GPL, её история и значение для открытого ПО.

  • Свободное программное обеспечение (СПО) (Википедия) — Понятие, критерии и примеры свободного ПО.

  • Открытое программное обеспечение (ОПО) (Википедия) — Отличие открытого ПО от свободного, принципы и примеры.

Дистрибутивы Linux и пакетные менеджеры

  • Debian (Википедия) — Информация о дистрибутиве Debian и его особенности.

  • dpkg (Википедия) — Пакетный менеджер для Debian и производных систем.

  • APT (Википедия) — Пакетный менеджер для Debian и его функционал.

  • Red Hat (Википедия) — Коммерческая компания и дистрибутив Linux для корпоративного использования.

  • Fedora (Википедия) — Открытый дистрибутив Linux, спонсируемый Red Hat.

  • RPM (Википедия) — Пакетный менеджер для дистрибутивов Red Hat и Fedora.

  • DNF (Википедия) — Современный пакетный менеджер для дистрибутивов, основанных на RPM.

  • Arch Linux (Википедия) — Лёгкий дистрибутив, известный своей гибкостью и минимализмом.

  • Pacman (Википедия) — Пакетный менеджер для Arch Linux и производных.

  • Rolling release (Википедия) — Модель обновления дистрибутивов Linux, включая Arch Linux.

  • AUR (Arch Wiki) — Репозиторий Arch Linux поддерживаемый сообществом.

Современные инструменты и окружения

  • Hyprland (Официальный сайт) — Современное окружение рабочего стола на базе Wayland.

  • Archinstall (Arch Wiki) — Официальный скрипт установки для Arch Linux, упрощающий процесс установки.

Показать полностью 11
[моё] GNU Linux Unix Windows Open Source Free soft Microsoft Arch Операционная система Дистрибутив Информационная безопасность Apple IT Debian Red Hat Видео YouTube Длиннопост
102
45
Timeweb.Cloud
Timeweb.Cloud
9 месяцев назад
Лига историков

Деннис Макалистэйр Ритчи. Между 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
2
user7359809
9 месяцев назад

История операционных систем: от Multics unics Unix: Наследник Minix Linux Показать черновики⁠⁠

Вы правильно заметили взаимосвязь между Multics, Unics, Unix, Minix и Linux. Давайте рассмотрим их основные характеристики и влияние друг на друга.

Multics: Пионер многозадачности

  • Разработка: Создан в 60-х годах совместными усилиями MIT, Bell Labs и General Electric.

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

  • Влияние: Оказал значительное влияние на разработку последующих операционных систем, включая Unix.

Unics: Прототип Unix

  • Разработка: Создан в Bell Labs как упрощенная версия Multics.

  • Основа для Unix: Послужил основой для создания Unix.

Unix: Легенда операционных систем

  • Разработка: Создан в Bell Labs в 70-х годах.

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

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

Minix: Учебный проект с большим будущим

  • Разработка: Создан Эндрю Таненбаумом в 80-х годах для образовательных целей.

  • Влияние на Linux: Послужил вдохновением для Линуса Торвальдса при разработке Linux.

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

Linux: Наследник Unix и Minix

  • Разработка: Создан Линусом Торвальдсом в 90-х годах.

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

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

Взаимосвязи между этими системами:

  • Multics послужил основой для Unics.

  • Unics стал прототипом для Unix.

  • Unix оказал значительное влияние на Minix.

  • Minix вдохновил Linux.

Таким образом, Linux является наследником длинной цепочки операционных систем, начиная с Multics. Ее развитие было существенно повлияно инновациями, внесенными предыдущими системами.

Показать полностью
Unix Linux Текст
14
mashaural
mashaural
11 месяцев назад

О важном⁠⁠

В свете событий, снова задумались о переходе на Linux. Какой дистрибутив использовать?

Linux Windows Unix Текст
89
6
user9168648
1 год назад

Воскрешаем IRC вместе!⁠⁠

Всем пиу-пиу! Да-да, вы все правильно поняли, мы ботаны-некрофилы из космоса и ищем себе подобных. Наша цель - колонизировать ваш загнивающий мир, лишить вас маргинальных потреблятских утех и навязать вам IRC протокол в лучших традициях минимализма, Чучхе и Фредди Крюгера. Кто еще помнит, что такое IRC и чем его занюхивать - милости просим к нашему рисовому амбару. Наш адрес не дом и не улица, наш адрес irc.retronode.org #russian. У нас даже есть веб-клиент для немедленного внедрения в нашу солнечную обитель через приложение типа "браузер". Остальные жрите гумус на ютубах, в телеграмах и прочих пахучих местах, потягивая пивко и лениво почесывая свои потные мудя с искушенным видом капитанов дальнего плавания. Пиу-пиу!

IT Irc Ностальгия Программирование Программист Linux Unix IT юмор Debian Ubuntu Gentoo Текст Ретро Ретро компьютер Ретротехника Ретро-игры
47
27
Timeweb.Cloud
Timeweb.Cloud
1 год назад
IT минувших дней

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

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

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

8 июня исполнилось 69 лет со дня рождения человека, без которого интернет в виде привычной нам «всемирной паутины» мог бы и не родиться. Сегодня мы будем говорить про настоящего «живого классика» информационных технологий, про Тима Бернерса-Ли. Этот человек – настоящий фанат научного прогресса. Отдать то, что мы сейчас называем «интернетом», людям бесплатно — настоящий подвиг, ему не просто так был официально присвоен титул «Сэр». Как истинный рыцарь, он поднимал вопросы ответственности в сети. Вперёд, в историю «сети» и «паука», который её плёл.

Тим Бернерс Ли дал каждому из нас свободный доступ к невероятному количеству информации, он подарил нам свободный интернет. Автор текста также предоставляет возможность свободно выбирать — прочитать текст или послушать его в подкасте, который подготовил автор.


Наша история начинается не с появления на свет младенца, который изменит мир. Она начинается с 1952 года, когда на рождественской вечеринке британской фирмы Ferranti, которая занималась электроникой, встретились Мэри Ли Вудс и Конвэй Бернерс-Ли, два учёных-математика, два опытных практика в работе с первыми компьютерами. Через год они уже вместе работали над компьютером Ferranti Mark 1, в том же году они и поженились. Их ждало 63 года совместной жизни, множество научных открытий и практических достижений, а также статус «дедушка и бабушка интернета». Этот статус они вспоминали с гордостью, ведь в 1955 году родился Тимоти Джон Бернерс-Ли, всего у пары было четверо детей, но сегодня всё внимание посвящено первенцу. О его матери мы рассказали вам вчера, про отца — расскажем позже.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Мэри Ли и Конвей Бернерс-Ли в 1954 году, через год у них родится малыш по имени Тим

Тим Бернерс-Ли с детства тяготел к современным технологиям. Его «первая любовь» – поезда. У него была игрушечная модель железной дороги, но игры у сына двух математиков-программистов-инженеров были специфические. В школе Тим создавал для управления своими поездами отдельные электронные устройства, следил за развитием транзисторных технологий, которые на тот момент были передовыми, новаторскими.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Тим с мамой, кадр взят с CNN, но получить доступ к видео у автора не вышло.

Тима-подростка тянуло к фантастике, ярчайшие впечатления у него оставил рассказ Артура Кларка – ««Ф» — значит Франкенштейн» (Dial «F» for Frankenstein), в котором компьютеры были объединены в сеть, образуя настоящий живой человеческий мозг. На момент публикации рассказа Тиму было всего 10 лет, сама идея объединения компьютеров захватила его навсегда.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

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


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

В 1976 году, по окончании университета, начинается самостоятельный путь Тима. И он далеко не самый простой: первые два года товарища Бернерса-Ли ждёт работа инженером в телекоммуникационной компании (lessey Telecommunication Ltd) города Пул, Англия, он занимался разработкой программного обеспечения, системами распределения транзакций, ретрансляции сообщений. И штрихкодами. Тим позже вспоминал: у них была машина, сканер штрихкодов, с которым нужно было ездить по супермаркету, считывать штрихкоды товаров, а внизу под этой машиной был автомобильный аккумулятор. Сеть оперативно получала информацию о том, сколько у них товара и какой товар раскупается быстрее, и именно этот товар отправляла в конкретный магазин, минуя склад в самом магазине. Это была «компьютерная революция управления супермаркетом». Следующие два года он провёл в компании DG Nash Ltd, там он отвечал за создание многозадачной операционной системы.

В 1980 году Тим впервые работает на Европейскую организацию ядерных исследований (ЦЕРН) и там пишет программу INQUIRE, многие элементы которой появятся во всемирной паутине. В организации он работал всего полгода. Давайте сделаем небольшое отступление, ведь ЦЕРН станет ключевым местом в жизни Тима. Что такое ЦЕРН в 1980 году?

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

До этого фото – ещё 40 лет и невероятное количество работы.

Это огромная корпорация на 10 000 человек, у которых разные задачи, разное оборудование, которые пользуются разным программным обеспечением (настолько разным, что говорить о каком-то едином языке или стиле создания обеспечения не приходилось). Это не одно помещение и даже не один город! Это группа институтов, организаций и учреждений, которая обязана обмениваться информацией, и для этого у неё есть локальные сети, соединённые воедино. А самое главное – уровень подготовки и компьютерной грамотности у этих людей крайне высокий.

Из этих 10 000 сотрудников лишь около 3 000 постоянно работали на ЦЕРН, остальные же совмещали работу сразу в нескольких учреждениях. Кроме того, средний срок работы в учреждении составлял около двух лет. После чего человек уходил, и… терялась часть информации!

Задачу сохранения данной информации и пытался решить Бернерс-Ли, создав программу INQUIRE. Это, говоря очень грубо, своеобразная электронная картотека. В ней «карточки» с гиперссылками внутри. Гиперссылки устанавливали связи с другими карточками, где содержалась наиважнейшая информация.

Например:

  • Где используется этот модуль?

  • Кто написал этот код? Где он работает?

  • Какие документы существуют об этой концепции?

  • Какие лаборатории включены в этот проект?

  • Какие системы зависят от этого устройства?

  • В каких документах об этом говорится?


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

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Звучит замечательно, правда? Особенно в 1980-м году. Однако, были у программы и существенные недостатки. Один из главных – вся информация находилась в рамках одной базы данных, доступа в другие базы данных, вне организации, у INQUIRE не было. Базу данных систематически требовалось обновлять. Этой системой пользовалось совсем небольшое количество учёных, а сам Тим не стремился её «рекламировать», продвигать или иным образом делать доступной всем.

Однако, напоминаю вам, уважаемые читатели, что контракт у Тима Бернерса-Ли был всего на 6 месяцев. Истёк контракт, и он покинул ЦЕРН, но, словно Карлсон, обещал вернуться, проработав три года в фирме Image Computer Systems Ltd, где его работа была связана с программным обеспечением для операционных систем реального времени.

В 1984 году нашего героя приглашают назад в ЦЕРН, и перед ним снова стоит задача систематизации и взаимодействия между различными элементами института, которую он уже пытался решать. Он снова активно включается в работу INQUIRE. Ключевая задача: программа должна стать многопользовательской и кроссплатформенной, получить доступ к внешним ссылкам. Порой можно встретить мнение, что Тим Бернерс-Ли создал гипертекст, но это не так. Он построил на его применении свою всемирную паутину, сделав его не просто популярным, а жизненно необходимым. Но мы вернёмся к первым шагам, которые Тим, уже будучи постоянным сотрудником ЦЕРНа делает по возвращении.

С 1984 года главной задачей Тима Бернерса-Ли стало решение проблемы с изменением информации в реальном времени. Осложнялась работа спецификой самого ЦЕРНа, люди, участвовавшие в разработке, приходили и уходили. Тим разработал для своей программы инструмент для создания распределительных систем (удалённый вызов процедур в реальном времени). Программа Inquire использовалась преимущественно для того, чтобы соединить все сведения о всех участниках проекта. Как потом вспоминал сам Тим:

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

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

На дворе 1989 год. ЦЕРН закончил работы над большим электронно-позитронным коллайдером (LEP англ. Large Electron-Positron collider). Началась работа над Большим адронным коллайдером. Институт испытывал просто невероятную потребность в механизме быстрого, простого и «мобильного» общения.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Электромагнитный резонатор LEP, ныне являющийся экспонатом музея CERN

И вот тут Тим Бернерс-Ли предлагает свою концепцию «всемирной паутины», становится известным, знаменитым, мы получаем интернет и публикуем там фотографии котиков…

Но на практике всё было не так. Тим действительно предложил свою концепцию. Не просто идею, а именно полноценное предложение, у которого ещё не было названия. Это был проект, основанный на гипертексте, целый год Тим писал записки, заметки и предложения, но получал отказы. ЦЕРН отказался работать над проектом Тима Бернерса-Ли. Однако его непосредственный начальник, Майк Сендал, дал негласное добро на разработку этой концепции в рабочее время и на рабочем железе.

Акцент на железе сделан не просто так. В то время выпускался NeXT Computer (и его слегка улучшенная версия NeXTcube). Эти компьютеры физическим лицам продавались за 10 000 долларов, а университетам – за 6 500. С учётом того, что речь идёт про 1990 год, разница, мягко скажем, заметная.

Именно на второй модели, на NeXTcube, работал Тим в ЦЕРНе, и его начальник прямо сказал, что не будет возражать, если Тим купит этот компьютер в своё личное пользование уже у института.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

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

Сделаем ещё одно отступление. Вы же помните о том разнообразном опыте, который приобрёл Тим Бернерс-Ли за время работы в коммерции? И вот тут его опыт оказался крайне важен! Сам Тим вспоминал, что ЦЕРН не хотел покупать программное обеспечение! Сотрудники ЦЕРНа привыкли создавать ПО и модернизировать его, именно этим была вызвана проблема, которую долго пытался решить Тим. Но он сам имел большой опыт работы в индустрии создания ПО и прикладывал огромные усилия для того, чтобы заставить ЦЕРН покупать нужное ПО.

Однако, «свою войну» Тим успехом завершить не смог. Пришлось разрабатывать версии под NeXT, для ПК, для Мак, для ряда рабочих станций и терминалов. ЦЕРН просто не был готов давать деньги на покупку ПО или оборудования без крайней необходимости. «Всемирная паутина» была не первым проектом в своём роде, и остальные потерпели крах внутри самого ЦЕРНа.

Тим пошёл на техническую хитрость. Он создал для своего детища шлюзы к существующим системам. Сама технология шлюзов была прорывной, это зачаток привычного нам интернета. В том же 1990 году Тим создал Язык разметки гипертекста (HTML).

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Всё началось с телефонной книги ЦЕРНа, это была база данных, которая хранилась в устаревшем формате. Человек, который за неё отвечал, Бернд Поллерман, получил от руководства задачу сделать эти данные доступными всем. Тим и Бернд вместе создали первый сервер для хранения гипертекстовой версии данных.

Им помогала Никола Пеллоу, на тот момент студентка-стажёр, которая отвечала за клиентскую часть и разработала интерфейс для первого браузера, в частности занималась портированием браузера на другие платформы… За адаптацию для Macintosh отвечал Роберт Кайо. Роберту Кайо следует посвятить отдельный лонгрид. Тут же мы упомянем лишь то, что он предложит использовать систему гипертекста для документации ЦЕРНа ещё до знакомства с Тимом. Роберта по праву можно называть «сосоздателем» интернета, ведь они вдвоём с Тимом смогли сделать самое важное: оформить все необходимые документы на финансирование своего проекта!

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Слева направо: Роберт Кайо, Тим Бернерс-Ли и Никола Пеллоу, которая в русскоязычном интернете чаще встречается в мужском роде. 1993 год, ЦЕРН.

Всемирная паутина родилась! Но с момента рождения она находилась под угрозой смерти и спас её… Интернет!

Напоминаем вам, уважаемые читатели, что интернет на тот момент существовал уже более 20 лет. ARPANET, NSFNET, многие сотни куда более мелких сетей уже существовали. Уже разработан протокол IRC, существуют чаты. Вовсю работает Интернет (по FTP).

И вот туда, в группы новостей сети Usenet и alt.hypertext, была размещена информация о создании сервера, возможности доступа для пользователей NeXTStep. Тим вспоминал, что в тот момент пользователи Usenet были «яркими и странными», они обладали достаточно высокой компетенций и поддерживали интересный им материал. Проект всемирной сети начал получать существенное количество отзывов, нередко встречалась и критика, например WWW сравнивали с HyperCard (система, основанная на гипермедиа от Эппл). Но HyperCard проиграла войну за популярность, она была ограничена файлами локальных жёстких дисков пользователей, а всемирная сеть – нет. После публикации пошла серьёзная волна поддержки, моральной и интеллектуальной. Люди предоставляли Тиму исходные коды различных необходимых проектов. Как позже он напишет: «Люди Интернета создали Сеть».

В то же время началу практического использования интернета положила Луиза Аддис, библиотекарь Стенфордского линейного ускорителя (SLAC). Эта библиотека впервые создала сайт, основанный на идеях WWW, который существенно облегчил жизнь физикам, работающим над проектом, и предоставил им доступ к огромному количеству актуальной и важной информации. Следующим этапом была работа с библиотеками сообщества физики высоких энергий (HEP).

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Луиза Аддис, Джордж Крейн, Тони Джонсон, Пол Кунц и Джоан Уинтерс в феврале 2000 года.
Люди, которые ввели в библиотеке SLAC всемирную сеть.
Советую прочитать интересный текст про них, кликабельно.

Несмотря на откровенные успехи, как позже вспоминал Тим, их с Робертом подкалывали коллеги, ведь «всемирная паутина» практически не использовалась в самом ЦЕРНе, для которого и создавалась! Учёные не поняли и не приняли пользу сети поначалу. Она просто стала «одной из…».

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Основатель WWW Wizards Луиза Аддис (справа) с Джоан Уинтерс. (Национальная ускорительная лаборатория SLAC)

При этом нельзя сказать, что проекту ставили палки в колёса, скорее наоборот, требовалась версия под виндовс, мак. Просто ресурсов для портирования не выдавали. Тут спасали студенты-волонтёры. Никола Пеллоу ведь была не единственной. Команда студентов из Хельсинского технологического университета разрабатывала браузер под X Window под названием Erwise. Пэй-Юань Вэй, студент из Бёркли, на базе Unix создал интернет-браузер ViolaWWW на собственном языке программирования Viola. Том Брюс, создатель браузера Cello, адаптировал его под Microsoft Windows. В тот момент Майкрософт Виндовс пользовался особой популярностью в кругу юристов, и им тоже потребовался свой браузер, для распространения юридической информации. Ну а для Макинтоша писал уже известный вам Роберт Кайо.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Вот тут начался настоящий рост интернета! Уважаемые читатели, отсюда и далее мы соединяем понятие «интернет» и «всемирная паутина» и продолжим использовать только слово интернет.

Браузер ViolaWWW был очень тепло принят в ЦЕРНе и в Национальном центре суперкомпьютерных приложений (NCSA). Студент Марк Андриссен (ныне этот студент – основатель фонда Andreessen Horowitz) и сотрудники Software Design Group решили сделать собственный браузер для X Window. Он получил название Mosaic. Особой фишкой этого браузера была активнейшая работа с отзывами и мгновенный выпуск патчей под проблемы. В 1993 году именно Mosaic уже был портирован на Майкрософт Виндовс и Макинтош, а потом в конкурентной борьбе выиграл гонку за статус «самого популярного браузера». Интернет на долгое время стал восприниматься именно через Mosaic. Интернет было уже не остановить!

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Марк Андриссен и Джим Кларк. Хорошая статья про создание Mosaic, кликабельно

Вы можете спросить меня, автор, нехороший ты человек, зачем ты нам рассказываешь историю первых браузеров вместо того, чтобы говорить про Тима Бернерса-Ли? Ответ простой. Главная заслуга Тима, интернет, «авторство» которого часто товарищу Тиму приписывают, легко мог «не выстрелить», остаться в качестве технического инструмента. Все люди, энтузиасты и студенты, которые добровольно и бесплатно помогали и создавали первые программы для зарождающегося интернета, тоже, пусть и лишь частично, могут считать себя создателями всемирной сети, и будет неплохо вспомнить о них в день рождения Тима Бернерса-Ли.

Однако вернёмся к Тиму. Интернет был создан. Он был создан свободным и открытом, но не только возможности он давал! Товарищ Бернерс-Ли ещё в 1993-1994 годах начал говорить об опасности интернета.

Например, вопросы анонимности. В 1994 году случилась одна забавная ситуация. В ЦЕРН пришло письмо с просьбой включить в список серверов новый сервер с информацией о крупном университете. Чуть позже – ещё одно письмо с… точно таким-же текстом! После длительной переписки оказалось, что только у одной из сторон есть официальное одобрение от университета, а у второй стороны – просто лучше сервер. В итоге добавили оба сервера, подписав их «University» и «University Underground». Проблема проверки информации была очевидна, и необходимость подтверждения статуса официальной информации не вызывала сомнений.

В том же 1994 году стояла серьёзная проблема по наполняемости интернета информацией. Тим отмечал, что есть страх перед обилием информации сети и трате времени на её поиск, параллельно читая (цитата) «много всякого мусора». Сам Тим приводил в пример, что конкретной информации в интернете может и не быть, например «карты битвы при Гастингсе…. Вы вряд ли там найдёте». Он подчёркивал, что интернет наполняют люди. Уже тогда были подчёркнуты и проблемы с информационной безопасностью и с конфиденциальностью.

Мне кажется очень любопытным дихотомическое восприятие интернета как механизма для объединения/разделения людей. Так, в 1994 году Тим Бернерс-Ли писал:

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

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

С тех пор прошло ровно 30 лет, а воз и ныне там. Актуальность проблем никуда не ушла, Тим продолжал и продолжает над ней работать.

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

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Вик Каллаган приветствует доктора Тимоти Бернерса-Ли (и его родителей) 26 марта 1998 года. Вик в рубашке, Тим в костюме.

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

В 2004 году уже сотрудник Саутгемптонского университета, Тимоти Джон Бернерс-Ли получает из рук ныне покойной королевы Англии рыцарский титул, а уже через год он выпускает вторую книгу под названием «Пройдя семантическую паутину: полное раскрытие потенциала Всемирной паутины». Семантическая паутина – основная современная научная и практическая разработка Тима Бернерса-Ли. Это специфическая версия всемирной паутины, где данные можно будет обрабатывать при помощи специальных программ, т.е. любые приложения вне зависимости от платформы и языка программирования смогут получить доступ к содержанию текстов и их обработке.

С 2009 года Тим работает «на» или «с» правительством Великобритании, тут кому какое слово больше нравится, над публикацией открытых данных в интернете. В том же году он создаёт World Wide Web Foundation, некоммерческую организацию, которая стремится сделать интернет безопасным, в том числе и в вопросах политического влияния. Забегая чуть вперёд, в 2019 году организация смогла «продавить» программу под названием «контракт для интернета», направленную против фейков, политических манипуляций и прочего безобразия. Несмотря на то, что её подписали гиганты индустрии, на практике программа… не то, чтобы выполняет свои функции. В 2012 году при помощи британского правительства Тим создал Институт открытых данных, некоммерческую организацию, направленную на помощь инновационным разработкам, которая, как и ряд иных, созданных Тимом организаций, существует до сих пор.

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

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Сейчас Тим работает над проектом Solid (Social Linked Data), это проект направленный на децентрализацию сети и существенное повышение конфиденциальности пользователей. Проект работает с 2016 года, достиг определённых успехов, мы не станем подробно рассказывать о нём, есть хороший текст на Хабре, который сделает это за нас. Совсем недавно, 12 марта 2024 года Тим Бернерс-Ли написал предупреждающее письмо к 35-летию интернета, где снова говорил о проблемах концентрации власти и уходе от старого «духа» интернета. Как вы уже поняли, эти проблемы совершенно не новы. В рамках проекта Солид Тим предлагает их решить, но… Говорить о том, что он уже смог достигнуть успеха, рано, очень рано.

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

Нередко ставится вопрос о том, а нужен ли этот новый децентрализованный интернет. А если нужен, то зачем? И вот тут вспоминается ситуация, когда создавалась привычная нам всеми всемирная паутина. Когда уже имеющему статус и уважение Тиму говорили: «А зачем тебе это надо? Ведь уже работает то, что есть». Однако, история пошла по известному нам пути, и сейчас мы читаем этот текст в том интернете, который создал Тим, а сделать этот интернет популярным ему помогли многие десятки, а то и сотни людей. Сейчас он создаёт свой «новый» интернет, и, как это обычно бывает при рассказе про живущих ныне людей, мы не знаем, чем закончится его история. Но Тимоти Джон Бернерс-Ли, без всякого сомнения, при жизни вписал себя в цифровую историю человечества.

Список литературы по теме (весь список англоязычный):

  • achievement.org/achiever/sir-timothy-berners-lee

  • ethw.org/Oral-History:Tim_Berners-Lee

  • home.cern/science/computing/birth-web/short-history-web

  • infinite.mit.edu/video/timothy-j-berners-lee (видеоинтервью с расшифровкой)

  • www.digitalriptide.org/person/tim-berners-lee

  • www.famousscientists.org/timothy-john-berners-lee

  • www.w3.org/DesignIssues/TimBook-old (в целом советую к прочтению все заметки 1993-1994 годов)

  • www.w3.org/DesignIssues/TimBook-old/History.html

  • www.theguardian.com/technology/2019/mar/12/tim-berners-lee-on-30-years-of-the-web-if-we-dream-a-little-we-can-get-the-web-we-want

  • www.eurekalert.org/news-releases/937792 (интереснейший текст о том, как в SLAC начали применять всемирную паутину)

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

  • «Бабушка интернета» – Мэри Ли (Бернерс-Ли) Вудс

  • Как Алексей Пажитнов сделал сиквел Тетриса и забыл про него

  • Джон Томсон и его фабрика по производству нобелевских лауреатов

Тимоти Джон Бернерс-Ли – человек, который почти создал интернет Интернет, Web, Timeweb, Unix, Solid, Slack, Ретро, Длиннопост

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

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

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

Показать полностью 18
[моё] Интернет Web Timeweb Unix Solid Slack Ретро Длиннопост
5
Блог компании Партнёрский материал Реклама
practicum.yandex
practicum.yandex
15 дней назад

Python, 1С, тестирование и еще один курс для тех, кто хочет стартовать в IT⁠⁠

Собрали наши курсы программирования для тех, кто хочет освоить новую профессию в IT.

Python, 1С, тестирование и еще один курс для тех, кто хочет стартовать в IT IT, Онлайн-курсы, Программист, Программирование, Обучение, Длиннопост, Блоги компаний

Тестировщик

Сколько учиться: 5 месяцев

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

На курсе вы изучите 12 инструментов, которые потребуются в работе. Например, Python и язык запросов SQL, графический редактор Figma и инструмент для тестирования API Postman. К концу обучения у вас в портфолио будет семь проектов.

Первый модуль можно пройти бесплатно — поймете, подходит ли вам это направление.

Начать учиться бесплатно>>


Разработчик 1С

Сколько учиться: есть базовый курс на 6 месяцев и расширенный — на 8.

1С — язык программирования для работы с продуктами одноименной компании. Он помогает автоматизировать бизнес-процессы и разрабатывать бизнес-ориентированные приложения. В России с 1С работают и большинство компаний, как небольших, так и крупных.

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

Начать учиться бесплатно>>


Python-разработчик буткемп

Сколько учиться: 4 месяца

Курс включает восемь блоков. Первый и второй — знакомство с Python, остальные — более глубокое погружение в тему. Например, бэкенд на Django, изучение алгоритмов и структуры данных, разбор асинхронностей и нюансов работы с Flask.

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

Начать учиться бесплатно>>


Системный администратор

Сколько учиться: 6 месяцев

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

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

Начать учиться бесплатно>>


Чем интенсивнее курс, тем быстрее начинается этап поиска работы. В нашем Карьерном центре мы поддерживаем студентов: помогаем оформлять резюме и портфолио, проходить собеседования, предлагаем вакансии и стажировки от 4000+ партнеров. Стартуйте в IT уверенно!

Реклама ООО «Яндекс», ИНН: 7736207543

Показать полностью
IT Онлайн-курсы Программист Программирование Обучение Длиннопост Блоги компаний
16
138
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
1 год назад

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому⁠⁠

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Обычно Android-устройства принято считать "бесполезными" через 5-10 лет после выхода. Особенно, это касается бюджетных моделей, которые "не тянут" современные сервисы или те девайсы, которые по каким-то причинам физически пострадали в процессе своей жизни. Но пока одни выкидывают смартфоны и планшеты, считая их электронным хламом и засоряя мир, другие стараются найти применение всему подряд и оказывается, что Android-устройства ещё вполне себе могут оказаться полезными. Однако порой необходимо реализовать автоматическое включение устройства при подключения к зарядке и вот здесь многие впадают в ступор - ведь замкнуть кнопку включения зачастую недостаточно! В сегодняшнем материале я расскажу свои кейсы запитывания устройств от блоков питания, а также реализацию автовключения на разных чипсетах. Интересно? Тогда добро пожаловать под кат!

❯ Как и зачем?

Вероятно, читатель спросит мол "зачем 10-летние Android устройства могут быть нужны?". И если немного призадуматься, то можно прийти к выводу, что действительно гаджеты прошлых лет могут быть достаточно полезными во многих сферах, причём не только планшеты, но и Android-смартфоны. И помимо реализации чего-то "стандартного" на манер красивых Android-часов с будильником или, например, мультимедиа станции а-ля iPod, есть ещё множество интереснейших кейсов, в которых можно использовать такие устройства. Я лично собрал для себя несколько:

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

    У Android-устройств перед классическими HMI-дисплеями есть огромное преимущество: наличие 3D-ускорителя и возможность выводить красивые визуалиации и графики, а также анимацию. В будущем проекте со своей машиной - "ВАЗ 2110", я покажу как использовать планшет в таких целях на практике.

  • Сбор данных: у микроконтроллеров слишком маленький объем встроенной Flash-памяти, чтобы хранить какие-то большие датасеты и строить из них статистику. Конечно можно подключить MicroSD... но ведь ко всем сразу не будешь по отдельной флэшке подключать, да и MicroSD отнюдь невечные при постоянной перезаписи данных - и здесь приходит на помощь такой планшет. eMMC обычно значительно более выносливая через MicroSD, с неё можно достать данные (при отсутствии шифрования), а мощный процессор планшета вполне может ещё и обрабатывать приходимые данные и куда-то отправлять. Вполне полезно!

  • Использование как одноплатника: я писал об этом недавно статью. Во многих бюджетных планшетах разведен UART на плате, к которому есть доступ из пользовательского окружения и даже Java-приложений! Таким образом, можно общаться с микроконтроллерами по проводному интерфейсу, или напрямую дергать ножками микроконтроллера реализовав прошивку-прослойку для МК.

  • Нестандартные применения: ну, тут я просто хотел похвастаться своим проектом с превращением планшета в игровую консоль с помощью внешнего микроконтроллера :)

Так что, как мы с вами видим, устройства прошлых лет отнюдь не бесполезны и при определенной смекалке мы можем им дать вторую жизнь и приспособить для работы на каком-нибудь объекте. Понятное дело что что-то серьёзное на них никто вешать не будет, но например панель заказа нямки в чебуречной или что-то на манер ГУ в машине - почему бы и нет?

Однако порой возникает задача реализовать авто-старт устройства при подключении смартфона к зарядке или вообще реализация автономной схемы питания. Автономная схема питания реализуется относительно легко: порой можно кинуть 5В от блока питания на VBat (плюсовой и минусовой контакт АКБ) напрямую. КП у MediaTek, имеют пороговое напряжение на аккумуляторе до 5.5-5.6В и не выгорают. Но это рискованно, если БП плохой и произойдет скачок - есть шанс того, что окажется пробитой обвязка/КП/ключи (вход со стороны USB обычно защищен от такого). Лучше всего использовать DC-DC преоразователь на ~4.2В с током от 1.5-2А.

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

А вот с авто-стартом вопрос интереснее. Всё зависит от реализации этой самой кнопки включения и от чипсета: например, на смартфонах Sony с чипами Qualcomm иногда достаточно лишь сдуть кнопку включения и замкнуть её контакты перемычкой: всё будет работать без каких-либо проблем. Но на некоторых смартфонах, зажатая кнопка включения будет уводить устройство в циклический ребут каждые 10 секунд, что может быть неприемлемо.

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Несколько месяцев назад, читатель под ником @A1f подогнал мне китайский iPhone 7 Plus на Android - всё как я и люблю :) Девайс был рабочий, однако после того, как читатель отдал его в сервис, у него по каким-то причинам потерялось пару винтов, оказалась сломана кнопка включения на шлейфе, а смартфон не заряжался...

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Ну, с зарядкой вопрос я решил быстро: китайские айфоны иногда используют свои "Lighting'и", несовместимые с оригиналом и которые не могут заряжатьоригинальный айфон. Благо в комплекте был пожухлый оригинальный кабель, который я разобрал и припаял всё обратно. Теперь и USB, и зарядка работают нормально!

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост
Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост
Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

С кнопкой вопрос был интереснее: хотя найти такую на шлейфе и кинуть с неё перемычки - дело 5 минут, я лёгких путей не искал и решил сделать автостарт при подключении к зарядке - как и на оригинальном айфоне :)

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

И, как вы уже поняли, просто так поставить перемычку на контакте Power и массу не получится - смартфон будет постоянно уходить в ребут. Поэтому я сдампил загрузчик с помощью SP Flash Tool и начал ковырять его в IDA Pro, благо устройство не требует разблокировки этого самого загручзика. Способ рабочий для многих устройств на MediaTek, в том числе и некоторых 67xx (возможно придется разблокировать загрузчик), а на устройствах с другими чипсетами алгоритм может быть +- похожим, но если нет возможности напрямую вмешаться в загрузчик, можно сделать авто-загрузку патчем boot.img.

❯ Реверсим и патчим

Для реализации автозагрузки, необходимо пропатчить загрузчик. В устройствах на чипсетах MediaTek их два - первый Preloader, который занимается первичной инициализацией периферии и ОЗУ, а второй - lk, который инициализирует дисплей, грузит ядро Linux и передаёт ему управление. В сети уже давно лежат слитый исходный код и Preloader, и lk, так что с их изучением проблем не возникнет, идея общая у всех устройств.

Итак, что-же происходит при включении смартфона? lk определяет так называемый режим загрузки, в зависимости от которого меняется раздел, с которого грузится ядро (boot или recovery), а также параметры передаются ядру (atags). В процессе работы lk и перед загрузкой ядра, перед тем как показать анимацию зарядки, загрузчик проверяет нажата ли кнопка включения - и если да, то быстренько перезагружает устройство в обычный режим.

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Да, всё так легко! Таким образом, нам остаётся лишь пропатчить условие с проверкой кнопки включения, дабы смартфон считал что кнопка нажата тогда, когда она по факту не нажата. В IDA Pro, lk загружается с смещением памяти в 0x0, а найти нужную инструкцию нам поможет зацепка в виде отладочной строки. IDA Pro сразу строит все xref'ы и обращения к строкам, так что найти нужные данные не составит труда. Ищем "[%s] PowerKey Pressed in Kernel Charging Mode Before Jumping to Kernel, Reboot Os" и смотрим все обращения к адресу памяти, с которого начинается строка.

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Чуть выше метода вызова printf, можно найти наше условие, которое начинается с инструкции CMP R0, #0. Сразу после него идёт инструкция BNE, которая бранчит код и продолжает загрузку системы в режиме "зарядки". Нам остаётся лишь заменить её на NOP в hex-редакторе в той-же IDA Pro и система сразу после попытки включится в режиме зарядки уйдет в ребут и перезагрузится в обычном режиме, будто мы просто включили смартфон с кнопки!

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

Прошиваем наш новый lk:

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

И видим, что всё работает! :)

❯ Второй способ

Если возможности пропатчить загрузчик нет, в дело вступает второй способ, заключающийся в патче boot.img - раздела с ядром устройства и ramdisk'ом, в котором содержаться скрипты для инициализации устройства (*.rc). Всё дело в том, что даже при зарядке смартфон загружает ядро Linux, первоначальный рамдиск и в зависимости от режима загрузки запускает либо app_process (главныйй процесс в Android), стартуя загрузку системы, либо специальную программу, которая часто называется charger и находится в /system/bin/ (иногда в самом boot.img).

На смартфонах с разными чипсетами реализация этого способа может сильно отличаться, однако приведу пример с смартфонами Sony Erisson из 2011 года (у меня есть Xperia Play с сломанной кнопкой включения). Там устройство начинает выполнение скрипта init.rc, тот в свою очередь запускает init.semc.rc и на этапе инициализации запускает программу chargemon, которая выводит анимацию зарядки, отключает смартфон, если кабель вытащили и слушает нажатие кнопки включения, продолжая процесс загрузки, если пользвоатель зажал кнопку включения. Соответственно, весь фикс - закомментировать эту строку :)

#exec /system/bin/chargemon

В случае MTK, можно попробовать ещё пропатчить init.rc, дабы он продолжал загрузку системы даже в случае подключения кабеля в режиме зарядки. Способов много, главное проявить смекалку и не бояться разбираться в чём-то непонтяном :)

❯ Заключение

Как видите, ничего сложного в реализации автоматического старта устройства нет. Где-то можно обойтись перемычкой на кнопку включения, где-то патчем boot.img, а где-то и патчем загрузчика. Но тем не менее, это вполне возможно на практике и позволяет делать такие приколюхи, как я со своим китайским айфоном :)

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост

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

Друзья, если у вас есть подобные китайчики и вы не разделяете желания пытаться вдохнуть в них жизнь, но выбрасывать их жалко — можете задонатить их мне :) Как сами видите — девайсы попадают в хорошие руки. Из недавнего — я взял нерабочую, утопленную китайскую копию 14 Pro Max из под СЦ в качестве основного смартфона. Также у меня есть канал в Telegram, куда я выкладываю бэкстейджи статей, различные заметки о ремонте, моддинге, программировании и реверс-инжиниринге и свои мысли, а также ссылки на свои новые статьи и видео. Кому интересно — залетайте!

Автостарт Android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому Опрос, Android, Смартфон, Гаджеты, Покупка, Своими руками, Моддинг, Unix, Linux, Микроконтроллеры, Длиннопост
Интересный материал?
Всего голосов:
Если вы постоянный читатель, смотрите ли вы мой YouTube-канал?
Всего голосов:

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!

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