Существует ли Ядро Linux API, аналогичный Windows WINAPI, в особенности для того, чтобы создать приложения GUI?

Я перемещаюсь от программирования окон (Программированием окон, которое я означаю использовать Windows API) к программированию Linux.

Для программирования Windows опция, которую мы имеем, является Win32API (MFC является просто оберткой C++ для того же).

Я хочу знать, существует ли что-то как Linux API (эквивалентный WINAPI), который выставляется непосредственно программисту? Где я могу найти ссылку?

С моим небольшим знанием библиотеки POSIX я вижу, что это переносит часть Linux API. Но что относительно того, чтобы создать приложения GUI? POSIX не предлагает это. Я знаю, что существуют тонны сторонних инструментариев Виджета как gtk, QT и т.д., Но я не хочу пользоваться библиотеками, который инкапсулирует Linux API. Я хочу изучить использование "Ядра Linux API".

Если существуют somethings, которые я должен знать, сообщите. Любой программист, который знаком с обоими программированием Windows & Linux, отображает терминологию мира Linux так, чтобы я мог быстро идти дальше.

Любые ресурсы (книги, учебные руководства, ссылки) высоко ценятся.

6
задан Ciro Santilli 新疆改造中心法轮功六四事件 4 February 2015 в 11:21
поделиться

7 ответов

Думаю, вы ищете то, чего в действительности не существует. В отличие от Win32 API, здесь нет «Linux API» для создания приложений с графическим интерфейсом пользователя. Наиболее близким из возможных вариантов является протокол X , который представляет собой довольно низкоуровневый способ создания графического интерфейса пользователя (он гораздо более подробный и архаичный, чем, например, Win32 GDI). Вот почему существуют такие оболочки, как GTK и Qt, которые скрывают детали протокола X.

Протокол X доступен для программ на языке C, использующих XLib .

9
ответ дан 8 December 2019 в 13:45
поделиться

Также есть документация для двух различных настольных платформ: Gnome и KDE, которые могут помочь вам в этом.

-1
ответ дан 8 December 2019 в 13:45
поделиться

Вы должны понимать, что Linux очень проста в отношении того, что в нем содержится. «Ядро» Linux API - это POSIX и glibc. По умолчанию Linux НЕ является графическим, поэтому в нем нет основной графической библиотеки. На самом деле, Windows может быть урезана, чтобы не было графики и, следовательно, не было таких частей Win32 API, как GDI. Вы должны это понять. Linux очень легкий по сравнению с Windows.

Для Linux существует два основных набора графических инструментов: GTK и Qt. Я сам предпочитаю GTK, но я бы исследовал оба. Также обратите внимание, что GTK и Qt существуют для Windows, потому что они просто оболочки. Если вы посмотрите на код протокола X, скажем, xterm , вы поймете, почему никто не пытается на самом деле создавать графические приложения поверх него.

О, еще SDL довольно хорош, он довольно прост, но он хорош, если вам просто нужен фреймбуфер для окна. Он переносится между Linux и Windows и очень прост в освоении. Но пока это будет продолжаться только ..

4
ответ дан 8 December 2019 в 13:45
поделиться

Linux и win не так уж сильно отличаются, как кажется.

В обеих системах существует ядро, которое не является графическим.

Просто Microsoft не документирует это ядро ​​и публикует API, который ссылается на различные компоненты.

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

Итак, самый низкий уровень GUI - это X Window System , и он имеет библиотеку самого низкого уровня под названием Xlib . Как вы заметили, поверх этой работают различные библиотеки.

2
ответ дан 8 December 2019 в 13:45
поделиться

Получите посмотрите Каир . Это что-то примерно похоже на GDI + и находится под капотом некоторых из немногих используемых программ с графическим интерфейсом для Linux, например Firefox или Eclipse (SWT). Он оборачивает для вас большую часть нацистских и древних вещей Linux в хороший API, который работает на большинстве установок Linux, не блокируя вас целыми подсистемами, такими как GTK или QT.

0
ответ дан 8 December 2019 в 13:45
поделиться

Я недавно слышал о Mortadelo, клоне Filemon, но еще не проверил его сам:

http://gitorious.org/mortadelo

-121--2464024-

Я бы настоятельно рекомендовал взглянуть на QT/C + + UI фреймворк , возможно, это самый полный инструментарий пользовательского интерфейса для любого

Мы используем его на работе, разрабатывая кроссплатформенные приложения, которые работают на windows, osx и linux.

Он также работает на смартфоне Nokia с операционной системой Maemo , которая недавно была объединена с ОС Intel Moblin Linux, которая теперь называется MeeGo.

2
ответ дан 8 December 2019 в 13:45
поделиться

Это будет звучать безумно, поскольку вы спрашиваете о «серьезных» вещах, таких как C ++ и C (и «ядро API Linux» ), но вы можете подумать о создании чего-то другого. Например:

  • Java Swing (многим он нравится! Другие ненавидят его и называют устаревшим)
  • Mono GTK # (C # или VisualBasic или что угодно, многие люди говорят, что это круто, но это не так. не так много людей)
  • Adobe AIR (ActionScript, вы можете его ненавидеть)
  • Titanium (совершенно новый и непроверенный, но, по крайней мере, вызывает много шума в мире iPhone)

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

Извините, если этот ответ совсем не то, что вы ищете. "Настоящие" ответы в Linux - это "выберите набор инструментов", что тоже не является ответом:)

1
ответ дан 8 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: