LINUX.ORG.RU

Linux API

 , , , ,


2

3

Можно ли отнести библиотеку Gtk+ к использованию API системы Linux?
Преподаватель дал задания по API ОС. Все пишут на WinAPI. Я выбрал Linux. Какую библиотеку посоветуете использовать/изучать?
Спасибо за ответы!

Дополню: Работа с GUI и файлами. Далее пойдут работы по процессам, а также программно узнать: что за версия ОС, имя пользователя, объём внешней/внутренней памяти и т.д.

POSIX загугли. Ещё LSB.

anonymous ()

Спроси преподавателя. Приймет он задание или нет - зависит от его мнения по этому вопросу, а не ответов на ЛОРе

vertexua ★★★★★ ()

Нет, нельзя. И это хорошо.

Я бы, наверное, повертел файлами. Может, сокетами, если надо посложнее.

gavlig ★★★ ()

Как бы Gtk+ кроссплатформенный. Но я не думаю, что преподаватель будет предираться, если сдавать будете на Linux. А так, наверное POSIX API подойдет на 100%, но он не включает GUI.

Dead ★★★★ ()
Ответ на: комментарий от TRomario

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

anonymous ()
Ответ на: комментарий от TRomario

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

gavlig ★★★ ()
Ответ на: комментарий от hibou

Да что ты говоришь! А ну-ка, попробуй без ioctl настроить вебку! Не, вебка — плохой пример. Ее можно напрямую навелосипедить через libusb. А вот попробуй с тв-тюнером PCI-ным! Или еще проще: настрой консоль, чтобы эха не было.

Eddy_Em ☆☆☆☆☆ ()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от powerguy

GTK — говно. Лучше уж пусть ТС на опенгле пишет. И польза будет. А от GTK никакой пользы не будет.

Хорошо хоть, не культи.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от TRomario

Требуется работа с GUI.

Тогда гугли Linux Standard Base (LSB). Её можно принять в качестве аналога вендового апи. И в ней таки есть гуй, gtk и qt.

anonymous ()
Ответ на: комментарий от Eddy_Em

Лучше уж пусть ТС на опенгле пишет.

Эдик, ты забодал. Хочешь гуй на опенгле, возьми и запили сам уже, нечего на школоту сваливать.

anonymous ()
Ответ на: комментарий от Eddy_Em

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

Дело в том, что в новых драйверах ioctl не рекомендован.

hibou ★★★★★ ()

по теме:


пиши про GTK+

Эдика ( Eddy_Em) не слушай (точнее слушай его внимательно, но не слушай в момент когда он говорит про GTK+)..

а преподу скажи что user_id_68054 — дал добро! :)

user_id_68054 ★★★★★ ()
Ответ на: по теме: от user_id_68054

Мне хотя и GTK+ тоже симпатично, если взглянуть здраво. Зачем ТСу линукс?

С GTK+ ему будет сложнее собрать свою программулину под винду. Или под мак. Это не невозможно. Просто нафига всех на линукс перетягивать? С Qt ему будет легче. Да и вакансий по Qt сейчас больше.

hibou ★★★★★ ()
Ответ на: комментарий от hibou

И как ты будешь общаться с модулем ядра, если «ioctl не рекомендован»? И кто это вдруг ioctl'ы перестал «рекомендовать»? Неужто у Линуса крыша поехала?

Eddy_Em ☆☆☆☆☆ ()
Ответ на: по теме: от user_id_68054

Ты ему еще glib посоветуй... И будет он в этом жутком нагромождении структур структур с массивами структур колупаться... Фу!

Eddy_Em ☆☆☆☆☆ ()

Преподаватель дал задания по API ОС. Все пишут на WinAPI. Я выбрал Linux.

Понятия Linux API, в том смысле, который ты имеешь ввиду, нет.

Linux - это ядро оперативной системы. Оперативная система - это какой-нибудь дистрибутив GNU/Linux а-ля Debian. Там ядро Linux, библиотеки и программы GNU и прочие ништяки.

У Linux таки есть API. Но на нём ты гуй не сделаешь.

Есть POSIX. Это стандарт, который в той или иной мере поддерживают много оперативных систем, внезапно даже венда. В нём есть стандартная библиотека C. Там есть функции для работы с файлами.

Есть Linux Standard Base. Это стандарт, который стараются поддерживать дистрибутивы GNU/Linux. Он дополняет POSIX. В нём есть библиотеки GTK+ и Qt, на которых можно сделать GUI.

anonymous ()
Ответ на: комментарий от Eddy_Em

Эдик, кончай буянить! В ioctl, если мне память не изменяет, лишь 2 числа определяют устройство. И оба до 255. Причем первое число - это вообще семейство устройств, насколько я помню. Т.е. диапазон чисел еще меньше. Число комбинаций считать не надо, сам посчитаешь? Ну так вот, комбинации эти уже давно кончились.

Взамен есть псевдо-фс ядра.

hibou ★★★★★ ()
Ответ на: комментарий от hibou

С GTK+ ему будет сложнее собрать свою программулину под винду. Или под мак.

а проще всего ему будет перетягивать свою програмулину на Венду, если он будет использовать WinAPI! :)

почему GTK+ ? ответ: потому что GTK+ более линуксовее чем Qt. :)

в свою очередь Qt — более кросплатформенее чем GTK+. да, признаю это. (но так уж это важно ли?)

если софт не кросплатформенный — это не должно обязательно означать что этот софт плохой. существует дофигища разного софта, который хоть и имеет версии под Windows, но эти версии являются сильно упрощёнными (сравнивая их с Linux-версиями). и линуксоиды даже не особо-то жалуются на это :) .. а вендузятники просто не пользуются этим софтом (и кому в итоге нужна такая кросплатформенность?)..

а кстати, угадайте, почему клановые-прокуренные-вендузятники — используют в основном не кросплатформенный линуксовский софт, а родной WinAPI-софт? например: qip, uTorrent, foobar, [...] ?

вообще кросплатформенность — это прикольная сказачка для заманивания программистов :) [ведь в этой сказке говорииться что программисту не придётся изучать каждую операционную систему в отдельности! фантастика!] .. но на деле чтобы получить реальное конкурентное приемущество — требуется создавать программы, специализированные для конкретного семейства операционных систем.

так-что пусть пишет про GTK+ :-) ..

user_id_68054 ★★★★★ ()
Ответ на: комментарий от hibou

Ты что-то совсем запамятовал. Первое там — файловый дескриптор. Затем идет числовой идентификатор операции и вспомогательные поля (какая-нибудь информация, например).

И комбинации кончится не могут: ну-ка посчитай, сколько должно их быть, чтобы int переполнился!!! И это для одного модуля! Для другого модуля ведра будут свои числа. И т.д.

Ты никогда модули не писал что ли?

Взамен есть псевдо-фс ядра

Чавой-то? Типа в /sys выкладывать псевдоинтерфейсы? Тоже вариант. Даже удобней, т.к. можно из баш-скрипта железкой рулить. В embedded-линуксах так и делают: ты из баша можешь спокойно дрыгать GPIO.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от user_id_68054

Жалко, что нет нормальной свободной гуебиблиотеки. GTK под второе попадает, но пролетает с первым. Motif пролетает со вторым. Культи с обоими пунктами в пролете. OpenGL, к сожалению, тоже еще не полностью подходит для "нормальной"; да и на чистых xlib замучишься гуйню рисовать.

В общем, проще сказать "гуйня — для слабаков" и юзать в своих велосипедах только CLI. Ну, если картинку какую показать, то открывать OpenGL окно; а если чего-нибудь дергать, то веб-морду нарисовать. Это намного шустрей и проще будет.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от user_id_68054

Помрет же от анорексии: блевать будет больше, чем съел...

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от user_id_68054

а кстати, угадайте, почему клановые-прокуренные-вендузятники — используют в основном не кросплатформенный линуксовский софт,

Потому что прокуренные вендузятники на венде сидят давным давно и винапи тогда считалось круто. Современные вендузятники внезапно пишут на сишарпе и винапи в глаза не видели.

qip

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

почему GTK+ ? ответ: потому что GTK+ более линуксовее чем Qt. :)

Почему? Из-за того, что не умеет толком другие платформы? Нет, это уродство всё равно не нужно. Qt лучше.

anonymous ()

man 2 intro, Xlib Programming Guide.

Deleted ()
Ответ на: комментарий от anonymous

> почему GTK+ ? ответ: потому что GTK+ более линуксовее чем Qt. :)

Почему? Из-за того, что не умеет толком другие платформы?

да, потому что толком не умеет под другие плаформы..

и ещё потому что в нём вся боль-и-слёзы линуксоидов... столько отписалось на форумах об их глюках — и представляешь что будет если теперь об этом все позабудут? :)

этож, блин — наши традиции! щаз под подвезди оконные декорации на клиентской стороне, и CSS (с постоянными изменениями). нужно дальше всё это обсуждать и обсасывать! а для этого нужно чтобы кто-то писал на этой библиотеке..

user_id_68054 ★★★★★ ()

Можно ли отнести библиотеку Gtk+ к использованию API системы Linux?

нет

Преподаватель дал задания по API ОС.

POSIX

Какую библиотеку посоветуете использовать/изучать?

Стандартную твоего ЯП для начала.

Работа с GUI и файлами. Далее пойдут работы по процессам

Используй для гуйни что хочешь, в api линукс ни один из вариантов не входит. Пользуй стандартную библиотеку и POSIX.

а также программно узнать: что за версия ОС, имя пользователя, объём внешней/внутренней памяти и т.д.

Прочитать из procfs, следование букве задания, не?

erfea ★★★★★ ()
Ответ на: комментарий от anonymous

Тебе про трольтех напомнить?

А еще культи на говноплюсах.

А еще это говно жутко вырвиглазное. Qt2 (и даже 3) выглядели намного лучше.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от user_id_68054

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

anonymous ()
Ответ на: комментарий от Eddy_Em

И при чем здесь она? Я про GUI говорил, а ncurses — CLI.

разумеется CLI и GUI это разные вещи.

но в данном вопросе этой темы — я предполагаю что CLI (CLI или TUI) или GUI можно считать примерно одним и тем же.. :-)

так что предлагаю расширить понятие GUI, временно, тут..

user_id_68054 ★★★★★ ()
Ответ на: комментарий от Eddy_Em

Тебе про трольтех напомнить?

Не, трольтех не достаточно давно помер. Напомни мне про Наполеона с Кутузовым.

А еще культи на говноплюсах

Всем по феихуа.

А еще это говно жутко вырвиглазное. Qt2 (и даже 3) выглядели намного лучше.

Гтк2 было аналогично по вырвиглазию. Но оно сдохло.

Гтк3 ещё вырвеглазние и архитектурно уг со своими клиентскими декорациями.

anonymous ()
Ответ на: комментарий от anonymous

Гтк3 ещё вырвеглазние и архитектурно уг со своими клиентскими декорациями

Согласен. Поэтому и говорил выше, что GTK — дерьмо. Потому как GTK2 уже отправили в deprecated, а GTK3 — такой ужас, что уже почти на культи походить стало!

Но культи еще хуже. Если забыть про с++, то хотя бы глянь на размер. На тормоза. Qt жутко перегружена всяким ненужным хламом. И это из-за попыток ее разработчиков родить ненужное — кроссплатформенную гуебиблиотеку.

Не нужна кроссплатформенность.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Чувак, я не просто так помню. Мог ошибиться в деталях, но смысл помню. Вот тебе цитата из LDD:

The first versions of Linux used 16-bit numbers: the top eight were the “magic” number sassociated with the device, and the bottom eight were a sequential number, unique within the device. This happened because Linus was “clueless”(his own word); a better division of bit fields was conceived only later.

Писал я дрова когда-то.

hibou ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.