Страницы

Поиск по вопросам

Показаны сообщения с ярлыком gnu. Показать все сообщения
Показаны сообщения с ярлыком gnu. Показать все сообщения

среда, 26 февраля 2020 г.

Где найти свежую документацию по gnu c?

#c #gcc #gnu #c11


По запросу в Гугле - выдает страницу https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html
в которой ничего не говориться о c 11, на официальном сайте я ничего подходящего не нашел. 

Где можно найти актуальный мануал по gnu c 11?
    


Ответы

Ответ 1



Официально этот документ называется так: INTERNATIONAL STANDARD ©ISO/IEC ISO/IEC9899:201x Найти его можно, например, здесь: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1539.pdf

Ответ 2



Прочтите, пожалуйста, вот этот документ. Особое внимание обратите на данный абзац: By default, GCC provides some extensions to the C language that, on rare occasions conflict with the C standard. See Extensions to the C Language Family. Some features that are part of the C99 standard are accepted as extensions in C90 mode, and some features that are part of the C11 standard are accepted as extensions in C90 and C99 modes. Use of the -std options listed above disables these extensions where they conflict with the C standard version selected. You may also select an extended version of the C language explicitly with -std=gnu90 (for C90 with GNU extensions), -std=gnu99 (for C99 with GNU extensions) or -std=gnu11 (for C11 with GNU extensions). Ссылку на описание GNU C extensions на всякий случай оставляю здесь: https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html

пятница, 3 января 2020 г.

Роль организации GNU

#cpp #unix #gdb #gnu


Не могу понять роль организации GNU. Переводится как некий проект ***not Unix. Эм...ну
если not Unix, то почему тогда их проект gdb это отладчик под Unix системы?
    


Ответы

Ответ 1



Проект GNU (англ. The GNU Project) — проект по разработке свободного программного обеспечения (СПО), является результатом сотрудничества множества отдельных проектов. Проект был запущен программистом и сторонником СПО Ричардом Столлманом 27 сентября 1983 года в Массачусетском технологическом институте. Изначальной целью проекта было «разработать достаточно свободного программного обеспечения, чтобы можно было обойтись без программного обеспечения, которое не является свободным». Текущая работа проекта GNU включает в себя разработку программного обеспечения, повышение осведомлённости, проведение политических кампаний и раздачу новых материалов. Пожалуй, в контексте твоего вопроса, интереснее всего фраза является результатом сотрудничества множества отдельных проектов Манифест Лицензии Программы. Уверен, тебя заинтересует список. Философию происходящего в этом проекте хорошо иллюстрирует существование нежно мною любимой LibreJS. дополнение к Firefox, позволяющее отказаться от выполнения несвободного JavaScript-кода. По мнению Ричарда Столлмана, проблема с JavaScript состоит в том, что код загружается без ведома пользователя, не давая возможности оценить степень его свободности перед загрузкой и воспрепятствовать выполнению проприетарного JavaScript-кода. Определение применяемой в JavaScript-коде лицензии производится через указание на сайте специальных меток или через анализ наличия упоминания лицензии в комментариях к коду. Кроме того, по умолчанию допускается выполнение тривиального JavaScript-кода, известных библиотек и кода с сайтов, занесённых пользователем в белый список.

Ответ 2



Про название. В старом *nix-мире обычной практикой было, что кто-то брал какую-то программу, немного изменял её или писал совместимую, но немного отличающуюся. В итоге новую программу нужно как-то было называть. Обычно или добавлялось пару букв, характеризующих улучшение по этой схеме именования до сих пор сохранились, например, syslog-ng, aircrack-ng (Next Generation), vim (Vi IMproved), или имя автора: ksh (Korn SHell). За отсутствием повсеместного доступа к интернету и за тем фактом что написание софта под себя было нормой таких вариантов накапливались десятки и в каждой сети были свои. В 80-е был распространён редактор TECO (тико) и по аналогии свои редакторы многие программисты хакеры называли свои поделия такой-то-тико и сякой-то-тико, но один умный хакер решил пошутить и назвал свой редактор tint (Tint Is Not Teco). Шутка многим пришлась по вкусу и отчасти даже стала традицией именования. Ричард Мэттью Столлманом (rms) — один из тех толстых весёлых парней, кто в принципе любит пошутить и кому эта шутка в том числе нравилась. Когда он начал искать имя для своей свободной UNIX-подобной операционной системы он решил придерживаться шаблона «что-то не UNIX», но ни один из 26 возможных вариантов «?INU» не являлся словом и название получалось не такое уж интересное. В итоге волевым решением он сократил его на одну букву и получил классическое «GNU's Not Unix», которое с одной стороны следовало традиции, а с другой имело за собой шлейф вторых прочтений, среди которых «не UNIX от GNU» и «не UNIX от гну» итп. Вольный пересказ лекции самого rms.

вторник, 24 декабря 2019 г.

Можно ли и как совмещать лицензии GPL 2+ и MIT?

#лицензирование #gnu


Я пишу Open Sourse проект под лицензией GNU GPL 2+, используя в проекте инструменты,
которые распространяются по лицензии MIT. Это, собственно, сам фреймворк, на котором
разрабатывается проект и отдельные модули с программным кодом.

Можно ли и как совмещать эти две лицензии?

В своих проектах я держу папку LICENSE, в которой находятся оригинальный текст лицензии
GNU GPL 2+ и ее текст на русском. При первом запуске проекта первым делом я всегда
вывожу окошко, что мол, приложение распространяется под такой-то лицензией, с текстом
которой можно ознакомиться и "бла-бла-бла"... В библиотеках своего проекта также указано,
что они распространяются под лицензией GNU GPL 2+.

Достаточно ли будет указать в том же окне, при первом запуске проекта, что программа
написана с использованием таких-то инструментов с лицензией MIT? Или же мне снабжать
каждый модуль, который я использую в проекте шапкой текста лицензии MIT?

Хотелось бы уточнить эти моменты.
    


Ответы

Ответ 1



Что такое MIT лицензия? Так называемая "лицензия MIT" это обобщённое название двух лицензий X11 и Expat. Их единственное различие состоит в наличие одного абзаца в X11, который запрещает рекламировать X Consortium без его разрешения, а в Expact он соответственно отсутствует. Что разрешает данная лицензия? В принципе всё, при условии что текст лицензии будет включен во все распространяемые копии или значительные части ПО. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Можно ли совмещать GNU GPL и MIT лицензии? Да. MIT является совместимой с GNU GPL. Cписок совместимых лицензий с GNU. Как совмещать? Просто гарантировать, чтобы в используемых Вами инструментах и библиотеках под лицензией MIT присутствовал текст самой этой лицензии. Каких-либо дополнительных действий в виде отображения их в окне приветствия Вашего проекта не требуется. Однако, Вы можете упомянуть об используемых библиотеках в файле LICENSE в корневом каталоге проекта. Например в проекте GIMP-2.8 помимо основного файла COPYING с лицензией GNU GPL v3, присутствует файл LICENSE в котором даётся пояснение, что некоторые библиотеки проекта (а именно libgimp) имеют другую лицензию отличную от GNU GPL v3 (естественно, совместимую с ней): The GIMP application core, and other portions of the official GIMP distribution not explicitly licensed otherwise, are licensed under the GNU GENERAL PUBLIC LICENSE -- see the 'COPYING' file in this directory for details. ... 'libgimp' and the other GIMP libraries are licensed under the GNU LESSER GENERAL PUBLIC LICENSE -- see the 'COPYING' file in the libgimp directory for details. Отказ от отвественности Данный ответ написан не юристом и служит лишь для ознакомительных целей. Для более развёрнутой консультации предпочтительнее обратиться к специалисту. P.S. В качестве бесплатной альтернативы можно изучить исходники других известных проектов под GNU GPL v2+, в которых используются библиотеки под MIT лицензий и посмотреть каким образом они подошли к данному вопросу.

четверг, 5 декабря 2019 г.

Команда для вывода топ 10 приложений, использующих ОЗУ системы

#linux #bash #terminal #gnu


Желаемо в terminale при вводе top10 выводился список 10 самых память потребляемых
приложений. Наподобие:

1  firefox 1025Mb 
2  chrome  800Mb 
3  apache  600Mb
...
10 nginx   100Mb

    


Ответы

Ответ 1



Как отсортировать вывод - уже показали. Но только оно решает немного другую задачу:) Решим задачу правильно. Для начала выведем то, что нас просили ps -e -o rss,command | awk '{arr[$2]+=$1}END {for (i in arr) print i"\t"arr[i]/1024"Mb"}' | sort -k 2 -n -r | head | nl Разберем по "пайпам" (палочкам). вначале выведем список процессов и сколько памяти они скушали. потом awk магия поможет нам сделать "group by". Это нужно потому, что некоторые процессы (например, хром) любят разбиваться на сотни мелких процессов. И вроде память не кушают, а памяти нет. Также awk преобразует это в мегабайты потом sort все нам красиво отсортирует по колонке с памятью. head отберет 10 толстых и nl добавит счетчик. Последний шаг. Хочется, чтобы команда top10 была доступна. Воспользуемся псевдонимом (алиасом): alias top10='ps -e -o rss,command | awk '"'"'{arr[$2]+=$1}END {for (i in arr) print i"\t"arr[i]/1024"Mb"}'"'"' | sort -k 2 -n -r | head | nl' Теперь в эмуляторе терминале доступна команда top10, но после перезапуска эмулятора терминала, она пропадет. Для того, чтобы она не пропадала, нужно добавить наш новый алиас в конфигурационный файл вашей оболочки (bash, zsh, fish и т.д.) и обновить его (в зависимости от вашей оболочки), например: source .bashrc или source .zshrc.

Ответ 2



Используйте следующую команду: ps aux --sort -rss Здесь вы можете узнать больше об использовании памяти в Linux

Ответ 3



Если вас интересует сколько памяти освободится, если убить процесс, то вам нужна величина USS ("Unique Set Size"), а не RSS ("Resident Set Size"), показываемый ps/top. USS может выводить smem утилита: smem --sort=uss --reverse --abbreviate --columns="name uss" --no-header | head | nl Пример вывода: 1 thunderbird 356.6M 2 compiz 343.2M 3 firefox 318.6M 4 emacs 279.5M 5 calibre 158.1M 6 yandex_browser 154.0M 7 chromium-browse 150.5M 8 dropbox 125.4M 9 yandex_browser 125.4M 10 yandex_browser 92.1M

Ответ 4



ps axo pid,rss,cmd --sort=-rss | head -n 11 | tail -n +2 "-" перед rss, отсортирует по убыванию; -n 11 потому что выведет шапку первой строкой и только потом 10 процессов -n +2 чтобы вывести со второй строки

среда, 17 июля 2019 г.

при очередной загрузке Ubuntu появилось меню GNU GRUB

Всем привет! При очередной загрузке Ubuntu 16.04 появилось меню GNU GRUB В нем выбираю первый пункт, этот выбор приводит к:
Подскажите, как мне вернуть работоспособоность системы.


Ответ

Почему появился этот экран?
Во время работы OS были обнаружены ошибки на диске (ошибки файловой системы). И система "просит", чтобы вы провели сканирование диска 'fsck' вручную. Это нормальная ситуация, OS пытается избежать потери данных.
Как решить?
можно подключить диск к другому серверу и протеcтировать можно использовать Ubuntu LiveCD использовать RecoveryMode или Single user mode
Важно! Причиной возникающих ошибок может быть неисправность диска и в первую очередь нужно убедиться, что диск исправен.
Если это ваша основная система - выполните резервное копирование диска или ключевых данных.
p.s. Подобные ситуации сильно напрягают поначалу, но помогают лучше разобраться в логике работы и понять алгоритм восстановления системы.

среда, 16 января 2019 г.

Роль организации GNU

Не могу понять роль организации GNU. Переводится как некий проект ***not Unix. Эм...ну если not Unix, то почему тогда их проект gdb это отладчик под Unix системы?


Ответ

Проект GNU (англ. The GNU Project) — проект по разработке свободного программного обеспечения (СПО), является результатом сотрудничества множества отдельных проектов. Проект был запущен программистом и сторонником СПО Ричардом Столлманом 27 сентября 1983 года в Массачусетском технологическом институте. Изначальной целью проекта было «разработать достаточно свободного программного обеспечения, чтобы можно было обойтись без программного обеспечения, которое не является свободным».
Текущая работа проекта GNU включает в себя разработку программного обеспечения, повышение осведомлённости, проведение политических кампаний и раздачу новых материалов.
Пожалуй, в контексте твоего вопроса, интереснее всего фраза
является результатом сотрудничества множества отдельных проектов
Манифест
Лицензии
Программы. Уверен, тебя заинтересует список.

Философию происходящего в этом проекте хорошо иллюстрирует существование нежно мною любимой LibreJS
дополнение к Firefox, позволяющее отказаться от выполнения несвободного JavaScript-кода. По мнению Ричарда Столлмана, проблема с JavaScript состоит в том, что код загружается без ведома пользователя, не давая возможности оценить степень его свободности перед загрузкой и воспрепятствовать выполнению проприетарного JavaScript-кода. Определение применяемой в JavaScript-коде лицензии производится через указание на сайте специальных меток или через анализ наличия упоминания лицензии в комментариях к коду. Кроме того, по умолчанию допускается выполнение тривиального JavaScript-кода, известных библиотек и кода с сайтов, занесённых пользователем в белый список.

вторник, 27 ноября 2018 г.

Можно ли и как совмещать лицензии GPL 2+ и MIT?

Я пишу Open Sourse проект под лицензией GNU GPL 2+, используя в проекте инструменты, которые распространяются по лицензии MIT. Это, собственно, сам фреймворк, на котором разрабатывается проект и отдельные модули с программным кодом.
Можно ли и как совмещать эти две лицензии?
В своих проектах я держу папку LICENSE, в которой находятся оригинальный текст лицензии GNU GPL 2+ и ее текст на русском. При первом запуске проекта первым делом я всегда вывожу окошко, что мол, приложение распространяется под такой-то лицензией, с текстом которой можно ознакомиться и "бла-бла-бла"... В библиотеках своего проекта также указано, что они распространяются под лицензией GNU GPL 2+.
Достаточно ли будет указать в том же окне, при первом запуске проекта, что программа написана с использованием таких-то инструментов с лицензией MIT? Или же мне снабжать каждый модуль, который я использую в проекте шапкой текста лицензии MIT?
Хотелось бы уточнить эти моменты.


Ответ

Что такое MIT лицензия?
Так называемая "лицензия MIT" это обобщённое название двух лицензий X11 и Expat. Их единственное различие состоит в наличие одного абзаца в X11, который запрещает рекламировать X Consortium без его разрешения, а в Expact он соответственно отсутствует.
Что разрешает данная лицензия?
В принципе всё, при условии что текст лицензии будет включен во все распространяемые копии или значительные части ПО.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Можно ли совмещать GNU GPL и MIT лицензии?
Да. MIT является совместимой с GNU GPL. Cписок совместимых лицензий с GNU.
Как совмещать?
Просто гарантировать, чтобы в используемых Вами инструментах и библиотеках под лицензией MIT присутствовал текст самой этой лицензии. Каких-либо дополнительных действий в виде отображения их в окне приветствия Вашего проекта не требуется. Однако, Вы можете упомянуть об используемых библиотеках в файле LICENSE в корневом каталоге проекта.
Например в проекте GIMP-2.8 помимо основного файла COPYING с лицензией GNU GPL v3, присутствует файл LICENSE в котором даётся пояснение, что некоторые библиотеки проекта (а именно libgimp) имеют другую лицензию отличную от GNU GPL v3 (естественно, совместимую с ней):
The GIMP application core, and other portions of the official GIMP distribution not explicitly licensed otherwise, are licensed under the GNU GENERAL PUBLIC LICENSE -- see the 'COPYING' file in this directory for details. ... 'libgimp' and the other GIMP libraries are licensed under the GNU LESSER GENERAL PUBLIC LICENSE -- see the 'COPYING' file in the libgimp directory for details.
Отказ от отвественности
Данный ответ написан не юристом и служит лишь для ознакомительных целей. Для более развёрнутой консультации предпочтительнее обратиться к специалисту.
P.S. В качестве бесплатной альтернативы можно изучить исходники других известных проектов под GNU GPL v2+, в которых используются библиотеки под MIT лицензий и посмотреть каким образом они подошли к данному вопросу.