Относительно Надежности
у меня нет ничего работающего на облачном сервисе, но я хотел бы решить проблему надежности.
я уверен, что у команды Amazon есть намного больше опыта и ресурсов, доступных для выполнения мощного веб-сайта, чем я. Они снизились в течение нескольких часов на прошлой неделе, но я полагаю, что в целом их время работы будет лучше, чем если бы Вы или я имели бы самостоятельно с нашим текущим уровнем опыта и ресурсов.
Одним из важных решений является то, как вы собираетесь взаимодействовать с X-сервером. Вы можете использовать привязки Xlib для выбранного языка или привязки более высокого уровня XCB . (Если вы ненормальный , вы можете открыть сокет для X-сервера напрямую.)
Чтобы узнать, как должен себя вести оконный менеджер, есть два документа, которые определяют соглашения и политики: EWMH и ICCCM 1 . Соответствие этим требованиям означает, что ваш оконный менеджер будет вести себя хорошо в GNOME, KDE, XFCE и любой другой среде рабочего стола, которая приходит вместе, хотя просто игнорировать их, безусловно, легче с первой попытки.
Оконный менеджер не обязательно должен быть огромным , сложный клубок C. Успешные оконные менеджеры были написаны на языках высокого уровня, таких как Lisp, Haskell и Python, и даже некоторые из них на C остались небольшими и удобочитаемыми. XMonad , написанный на Haskell, довольно долго оставался менее 1000 строк. StumpWM (Common Lisp) и DWM (C) оба весьма минималистичны. Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.
1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
Haskell, Python и даже некоторые на C остались маленькими и удобочитаемыми. XMonad , написанный на Haskell, довольно долго оставался менее 1000 строк. StumpWM (Common Lisp) и DWM (C) оба весьма минималистичны. Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
Haskell, Python и даже некоторые на C остались маленькими и удобочитаемыми. XMonad , написанный на Haskell, довольно долго оставался менее 1000 строк. StumpWM (Common Lisp) и DWM (C) оба весьма минималистичны. Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
написано на Haskell, довольно долго оставалось меньше 1000 строк. StumpWM (Common Lisp) и DWM (C) оба весьма минималистичны. Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
написано на Haskell, довольно долго оставалось меньше 1000 строк. StumpWM (Common Lisp) и DWM (C) оба весьма минималистичны. Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
Вы могли бы прочитать их исходный код, чтобы получить некоторое вдохновение относительно того, как разработать WM.1 Элайджа Ньюрен написал:
НЕ ИДТИ И ЧИТАЙТЕ ЭТИ ВЕЩИ. ОНИ ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО СКУЧНЫЕ. Если вы это сделаете, вы, вероятно, в конечном итоге выспитесь, вместо того, чтобы взламывать Metacity. ; -)
Если вдуматься, в документации Metacity есть что сказать о том, как он взаимодействует с окнами и какие расширенные свойства он поддерживает.
tinywm на языке C может оказаться полезным для начала работы.
Хотя технически возможен другой язык и набор библиотек, я думаю, что лучшим выбором языка будет C, а также библиотеки Xlib или XCB. Большинство оконных менеджеров для X используют это, и здесь уже есть большой импульс и зрелость для этих конкретных библиотек.
Некоторые документы, представляющие интерес:
1229] ICCCM - соглашения и интерфейсы для связи между X-приложениями и оконным менеджером.
Какой язык лучше всего для этого?
Какой язык вам удобнее всего. Существует множество примеров успешных оконных менеджеров на разных языках. Qtile и xmonad - хорошие примеры, написанные на Python и Haskell соответственно.
Где взять ресурсы для обучения?
Я бы посмотрел на некоторые из существующих окон менеджеры. Их очень много, поэтому по крайней мере некоторые из них должны иметь читаемый код. Вот Исчерпывающий список оконных менеджеров для Unix .