Jump to content

хмонада

хмонада
Оригинальный автор(ы) Спенсер Янссен, Дон Стюарт, Джейсон Крейтон
Первоначальный выпуск 6 марта 2007 г .; 17 лет назад ( 06.03.2007 ) [1]
Стабильная версия
0.18.0 [2]  Отредактируйте это в Викиданных / 3 февраля 2024 г.
Репозиторий
Написано в Хаскелл
Операционная система с POSIX Совместимость
Платформа Кроссплатформенность ; требуется система X Window и GHC
Размер 56 КБ (исходный код) [3]
Доступно в Английский
Тип Оконный менеджер
Лицензия BSD 3-пункт
Веб-сайт хмонада .org  Edit this on Wikidata
в xmonad Поддержка Xinerama : одновременное отображение на трех экранах.
xmonad в режиме тайлинга

xmonad динамический оконный менеджер ( плитка ) для X Window System , известный тем, что написан на функциональном языке программирования Haskell . [4] [5]

Оконный менеджер

[ редактировать ]

В марте 2007 года была анонсирована версия 0.1. [6] в апреле 2007 г. как 500 строк Haskell [7] (которые с тех пор выросли до 2000 строк). xmonad — это тайловый оконный менеджер , аналог dwm , larswm и StumpWM . Он располагает окна неперекрывающимся образом и позволяет управлять окнами без использования мыши . xmonad упаковывается и распространяется в широком спектре Unix-подобных операционных систем, таких как большое количество дистрибутивов Linux и системы Berkeley Software Distribution (BSD).

Первоначально xmonad был клоном dwm (производным в таких областях, как сочетания клавиш по умолчанию), но теперь xmonad поддерживает функции, недоступные пользователям dwm. [8] [9] такие как макет для каждого рабочего пространства, отражение мозаики, сохранение состояния, зеркальное отображение макета, поддержка GNOME и строки состояния для каждого экрана; его можно настроить, изменив внешний файл конфигурации и «перезагрузив» во время работы. [10] Функции xmonad начали влиять на другие оконные менеджеры листов: dwm позаимствовал «привязки срочности» у xmonad, [11] 4.8 также включена Xinerama поддержка (для дисплеев с несколькими головками ) В версию , а также существуют исправления для повторной реализации макета Фибоначчи в xmonad. [12]

Хаскелл-проект

[ редактировать ]

В 2023 году на странице руководства говорилось:

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

С момента создания xmonad, когда рекламировался небольшой размер кода в 500 строк кода, он вырос примерно до . 2000 строк в 2023 году.

Расширения базовой системы, включая эмуляцию других оконных менеджеров и необычные алгоритмы компоновки, такие как мозаика окон на основе спирали Фибоначчи , были реализованы активным сообществом. [14] и доступны как библиотека. [15]

Наряду с устранением необходимости в мыши, [16] разработчики xmonad активно используют полуформальные методы и создание программ для повышения надежности и обеспечения общего количества строк кода менее 1200, начиная с версии 0.7; Свойства оконного менеджера (например, поведение фокуса окна) проверяются с помощью QuickCheck . [17] Этот акцент делает xmonad необычным во многих отношениях; Помимо того, что он является первым оконным менеджером, написанным на Haskell, он также первым использует Zipper структуру данных для автоматического управления фокусом , а его ядро, как было доказано, безопасно в отношении совпадений с шаблонами . [18] еще больше повышая надежность. Разработчики пишут:

xmonad — это тайловый оконный менеджер для системы X Window, реализованный, настраиваемый и динамически расширяемый в Haskell. Эта демонстрация демонстрирует тот случай, когда программное обеспечение, в котором преобладают побочные эффекты , может быть разработано с той точностью и эффективностью, которую мы ожидаем от Haskell, за счет использования чисто функциональных структур данных, системы выразительных типов , расширенной статической проверки и тестирования на основе свойств. Кроме того, мы описываем использование Haskell в качестве языка конфигурации и расширения приложений. [19]

Код разделен на код, свободный от побочных эффектов, и тонкую оболочку для побочных эффектов. [20] По словам Алехандро Серрано Мена, существует два способа реализации предметно-ориентированных языков для действий в приложениях и библиотеках Haskell : «разработка библиотеки комбинатора » или «создание собственной монады », причем xmonad является успешным примером последнего. [21] xmonad был назван одним из самых известных проектов Haskell в книге по функциональному программированию 2013 года. [5]

Журнал Linux Magazine включил xmonad в список «Мои лучшие ресурсы 2009 года». [22] В 2012 году How-To Geek описал xmonad как обладающий хорошей, но сложной возможностью настройки. [23] и он был включен в список восьми сред рабочего стола для Linux в 2013 году. [24] Лайфхакер пишет, что базовым операциям пользовательского интерфейса xmonad можно научиться с помощью небольшого набора инструкций. [25] Высокий уровень настройки и скорость отметили Network World , [4] и в MakeUseOf xmonad получил положительную оценку по сравнению с Openbox . [26]

В 2016 году Ars Technica заявила, что xmonad и Awesome обладают более продвинутыми возможностями тайлинга, чем Cinnamon . [27] В 2017 году его описывали как мощный, с приложением в качестве диспетчера окон для больших данных . [28] в то время как в статье на opensource.com , с другой стороны, dwm был выбран вместо xmonad. [29] В обзоре TechRadar «Лучшего рабочего стола Linux 2018 года» говорится: «Если есть одна среда рабочего стола, которая выделяется среди всех остальных, которые у нас есть, то это именно эта». [30]

Из-за небольшого количества строк кода приложения Xmonad, использования программирования чисто функционального языка Haskell и зафиксированного использования строгой процедуры тестирования его иногда используют в качестве базового приложения в других исследовательских проектах. Это включало повторную реализацию xmonad с использованием помощника по проверке доказательств Coq , [31] определение xmonad является императивной программой , [32] и исследования управления пакетами , относящимися к дистрибутиву NixOS Linux. [33]

См. также

[ редактировать ]
  1. ^ «Первоначальный импорт: xmonad/xmonad@b2c1430» . Гитхаб .
  2. ^ «Релиз 0.18.0» . 3 февраля 2024 г. Проверено 20 февраля 2024 г.
  3. ^ «xmonad: скачать» . suckless.org . Архивировано из оригинала 26 декабря 2012 г. Проверено 17 декабря 2012 г.
  4. ^ Jump up to: а б Лундьюк, Брайан (15 мая 2013 г.). «10 потрясающих сред рабочего стола Linux, которые вы, вероятно, никогда не видели» . Сетевой мир . xmonad. Архивировано из оригинала 26 мая 2018 года.
  5. ^ Jump up to: а б Олиг, Йенс; Менерт, Ханнес; Ширмер, Стефани (24 сентября 2018 г.). Книга Карри — Изучите функциональное программирование с помощью JavaScript . О'Рейли Германия . п. 177. ИСБН  978-3868993691 – через Google Книги.
  6. ^ Янссен, Спенсер (22 апреля 2007 г.). «Объявить: xmonad 0.1» . Haskell-кафе (Список рассылки). Архивировано из оригинала 30 августа 2021 г. Проверено 30 августа 2021 г.
  7. ^ «Xmonad: тайлинговый оконный менеджер, написанный на Haskell» . ОСНовости . 22 мая 2007 г. Архивировано из оригинала 11 апреля 2008 г. Проверено 23 сентября 2007 г.
  8. ^ «Среды, управляемые с помощью клавиатуры, открывают новое окно» . ОСНовости . 31 мая 2007 г. Архивировано из оригинала 4 июня 2007 г. Проверено 31 мая 2007 г.
  9. ^ «Выпущена xmonad 0.4» . ОСНовости . 19 октября 2007 г. Архивировано из оригинала 22 декабря 2007 г. Проверено 23 декабря 2007 г.
  10. ^ Благодаря сочетанию быстрой перекомпиляции и последующего выполнения нового двоичного файла xmonad; видеть «Еженедельные новости Haskell: 27 апреля 2007 г.» . Еженедельные новости Haskell. 27 апреля 2007 г. Архивировано из оригинала 29 мая 2007 г. Проверено 23 мая 2007 г.
  11. ^ См. обсуждение разработчиков. Архивировано 18 сентября 2018 г. на Wayback Machine в списке рассылки dwm.
  12. ^ Suckless.org: патч для раскладок Фибоначчи. Архивировано 13 апреля 2013 г. на Wayback Machine в dwm.
  13. ^ «Страница руководства xmonad» . xmonad.org. 27 октября 2021 г. Архивировано из оригинала 13 августа 2023 г. Проверено 1 сентября 2023 г.
  14. ^ Пользователи xmonad генерируют значительный трафик в #xmonad. Архивировано 29 декабря 2007 г. на Wayback Machine канале интернет-релейного чата (IRC) и в списке рассылки xmonad; кроме того, существует множество коммитов в библиотеку расширений от неосновных разработчиков (см. страницу статистики xmonad , заархивировано 23 декабря 2007 г. на Wayback Machine ).
  15. ^ «xmonad: предоставленный код» . xmonad.org. 22 мая 2007 г. Архивировано из оригинала 16 сентября 2007 г. Проверено 23 мая 2007 г.
  16. ^ Митчелл, Нил (июнь 2008 г.). «6.5.5». Трансформация и анализ (PDF) (доктор философии). Университет Йорка. Архивировано (PDF) из оригинала 12 сентября 2018 г. Проверено 12 сентября 2018 г.
  17. ^ Ху, Чжэньцзян; Хьюз, Джон; Ван, Мэн (2015). «Какое значение имеет функциональное программирование» (PDF) . Национальный научный обзор . 2 (3): 350–351. дои : 10.1093/nsr/nwv042 . ISSN   2095-5138 . Архивировано (PDF) из оригинала 23 июля 2018 г. Проверено 27 сентября 2018 г.
  18. ^ Митчелл, Нил (9 мая 2007 г.). «Блог Нила Митчелла о Haskell: происходит ли сбой XMonad?» . Архивировано из оригинала 14 мая 2007 г. Проверено 17 мая 2007 г.
  19. ^ Стюарт и Янссен, 2007 г.
  20. ^ Смотритель, Шейн; Бьянкуцци, Федерико (2009). Вдохновители программирования: беседы с создателями основных языков программирования . О'Рейли Медиа . п. 181. ИСБН  978-0596515171 . Архивировано из оригинала 19 сентября 2018 г. Проверено 18 сентября 2018 г.
  21. ^ Мена, Алехандро Серрано (5 марта 2014 г.). Начало Haskell: проектный подход . Апресс . п. 385. ИСБН  9781430262510 . Архивировано из оригинала 24 сентября 2018 г. Получено 24 сентября 2018 г. - через Google Книги.
  22. ^ Заводный, Джереми (6 декабря 2009 г.). «Мои лучшие ресурсы 2009 года» . Журнал Линукс . Архивировано из оригинала 23 сентября 2018 г. Проверено 23 сентября 2018 г. {{cite news}}: CS1 maint: неподходящий URL ( ссылка )
  23. ^ Хоффман, Крис (24 мая 2012 г.). «Как использовать Xmonad, менеджер окон для Linux» . Как компьютерщик. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
  24. ^ Хоффман, Крис (18 мая 2013 г.). «У пользователей Linux есть выбор: 8 сред рабочего стола Linux» . Как компьютерщик. Архивировано из оригинала 13 июля 2017 г. Проверено 24 сентября 2018 г.
  25. ^ Герцен, Джон (8 января 2013 г.). «Я воспитал своих детей в командной строке… и им это нравится» . Лайфхакер . Юнивизион Коммуникейшнс . Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
  26. ^ Штибен, Дэнни (18 сентября 2018 г.). «Нужна новая среда рабочего стола для Linux? Попробуйте Openbox или xmonad» . makeuseof.com . Архивировано из оригинала 23 ноября 2017 г. Проверено 24 сентября 2018 г.
  27. ^ «Обзор Mint 18: «Просто работает». Linux не может быть лучше этого» . Арс Техника . 04.08.2016. Архивировано из оригинала 17 сентября 2018 г. Проверено 17 сентября 2018 г.
  28. ^ Нита, Стефания Лоредана; Михайлеску, Мариус (14 сентября 2017 г.). Практический параллельный Haskell: с приложениями для больших данных . Апресс . стр. 40–41. ISBN  978-1484227800 – через Амазон.
  29. ^ «4 основных причины, по которым я использую dwm в качестве оконного менеджера Linux» . Opensource.com . Красная шляпа . 18 июля 2017 г. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
  30. ^ «Лучший рабочий стол Linux 2018 года» . ТехРадар . ООО «Фьючер» . 15 января 2018 г. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
  31. ^ Свирстра, Воутер (13 сентября 2012 г.). «xmonad в Coq (отчет об опыте) Программирование оконного менеджера с помощью помощника по проверке». В Фойгтлендере, Дж. (ред.). Haskell '12 Материалы симпозиума Haskell 2012 года . ICFP 2012 17-я Международная конференция ACM SIGPLAN по функциональному программированию . Копенгаген, Дания: Ассоциация вычислительной техники . стр. 131–136. ISBN  978-1-4503-1574-6 .
  32. ^ Липпмайер, Бен (май 2010 г.). Вывод типа и оптимизация для нечистого мира (PDF) (доктор философии). Австралийский национальный университет. стр. 45–46. Архивировано из оригинала 27 сентября 2018 г. {{cite thesis}}: CS1 maint: неподходящий URL ( ссылка )
  33. ^ Долстра, Eelco; ЛО, Андрес; Пьеррон, Николя (ноябрь 2010 г.). «NixOS: чисто функциональный дистрибутив Linux» . Журнал функционального программирования . 20 (5–6): 577–615. дои : 10.1017/S0956796810000195 . ISSN   0956-7968 .

Цитируемые работы

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1de3aebc8027566d8112634ceacc6b49__1715583720
URL1:https://arc.ask3.ru/arc/aa/1d/49/1de3aebc8027566d8112634ceacc6b49.html
Заголовок, (Title) документа по адресу, URL1:
xmonad - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)