LINUX.ORG.RU

Подготовка к 40-летию проекта GNU

 ,


1

3

27 сентября проекту GNU исполняется 40 лет! На странице юбилея опубликован календарь праздничных мероприятий, которые пройдут в швейцарском Биле (Biel/Bienne).

GNU — свободная операционная система, основанная Ричардом Столлманом, использующая в качестве ядра Linux, Libre-Linux, ядро GNU/Hurd (не доделано). Существует также проект Debian GNU/kFreeBSD с использованием ядра ОС FreeBSD.

Проект представляет из себя набор системных утилит и библиотек без которых представить работу современного Linux почти невозможно.

Это:

  • GCC (GNU Compiler Collection): gas, gcc, g++, gfortran, gnucobol, gccgo, gccrs и др. — компиляторы различных языков программирования;
  • GNU Bash — интерпретатор командной оболочки;
  • GNU Make — утилита сборки Makefile;
  • Glibc — стандартная библиотека языка Си;
  • GNU Net (бета) — анонимная компьютерная оверлейная сеть;
  • GNU Bison — библиотека для создания статических анализаторов по данному описанию грамматики;
  • GNU Autotools — набор утилит для автоматической конфигурации сборки программ из исходных текстов;
  • GNU PG — софт для шифрования;
  • GNU TLS — библиотека для шифрования;
  • GNU Emacs — отличнейший расширяемый текстовый редактор, написанный на Emacs Lisp;

и многое другое!

>>> Подробности

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 6)

GCC (GNU Compiler Collection)

Не нужно, есть LLVM/Clang.

GNU Make

Не нужно, Есть Ninja поверх CMake/Meson.

Glibc

Не нужно. Есть Musl libc.

GNU Net (бета) — анонимная компьютерная оверлейная сеть;

Не нужно. Что это вообще?

GNU Autotools

Не нужно x9000. Есть CMake/Meson/Jam/GN/… .

GNU Emacs

Не нужно. Есть простые редакторы (Kate и т.п.) и нормальные IDE (Qt Creator и т.п.).

Вывод: большая часть GNU не нужно.

X512 ★★★★★
()

... ядро GNU/Hurd (не доделано).

Символично.

Mischutka ★★★★★
()

Glibc — стандартная библиотека языка Си;

каждый раз как первый ору с фанатиков. нет там большой Г. какие же вы наркоманы

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

Не нужно, Есть Ninja поверх CMake/Meson.

Автомобиль не нужно, есть ноги.

Газ не нужно, есть дрова.

Лампочка не нужно, есть солнышко родимое.

Магазины не нужно, есть земля-матушка.

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

Дело в том, что Капитан Очевидность говорит, что было бы ядро идеальным - оно бы использовалось повсеместно.

Ненастоящий какой-то капитан. Дохрена примеров, когда годные решения (годные не значит идеальные, идеала вообще нет) закапывались в угоду порешавшему рыночку. OS/2, PalmOS, BeOS.

hobbit ★★★★★
()

Антилопе гну 40 лет
Как быстро время летит

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

каждый раз как первый ору с фанатиков. нет там большой Г. какие же вы наркоманы

Подумай о своём психическом здоровье, если ты внезапно орёшь в голосину, когда видишь в текстах Glibc вместо glibc, QT вместо Qt, Systemd вместо systemd и др.

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

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

Подумай о своём психическом здоровье, если ты внезапно орёшь в голосину

Я щас вижу в магазинах или документах, что пробелы пропущены или запятые. Понятно-то понятно. Что человеки вроде работают в высокотехничных сферах, а уже не могут пробелы ставить.

С одной стороны нескучно. С другой навевает мысли о халатности, низкой компетентности тех, кто это пишет. Коронавирус по голове стукнул? Идиократия наступила? Слишком торопят? Связаны ли невнимательность в текстах с врачебными ошибками, не чревата ли толератность к ним негативными пследствиями?

DanilaZabiakaa
()
Последнее исправление: DanilaZabiakaa (всего исправлений: 2)
Ответ на: комментарий от EXL

Но ведь Haiku всё ещё собирается GCC…

Недоработка, требующая исправления. У меня однажды получалось собирать саму систему с помощью Clang/LLD: https://discuss.haiku-os.org/t/why-mergeobjectfromobjects1-rule-is-needed/9326/21.

А отладчик GDB из проекта GNU всё ещё важен для Linux.

В составе проекта LLVM есть отладчик LLDB.

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

Ненастоящий какой-то капитан. Дохрена примеров, когда годные решения (годные не значит идеальные, идеала вообще нет) закапывались в угоду порешавшему рыночку. OS/2, PalmOS, BeOS.

Это и значит что не годные.

Про годность легко судить, сидя на современной ОС, на современном оборудовании, тряся стариной.

А добро пожаловать в 90-е, когда ты должен был быть знатоком прерываний, областей памяти, и прочей безусловно важной хрени, чтобы настроить работу звуковухи через референсный драйвер (если он был, лол) в OS/2, в то время когда твой сосед на своей J3QQ4 просто втыкал звуковуху и вставлял дискету.

Никогда не видел тв-тюнеров с надписью designed for OS/2, зато видел их полно для винды.

ОС - это не только ядро, ОС - это еще и договориться с производителем оборудования о поддержке своей ОС. Потому что драйвера для всего, ты сам не напишешь, и уж тем более для оборудования которое еще не вышло.

Это кстати одна из причин по которой FreeBSD сегодня около плинтуса. Никому не нужна система, где поддержка технологии (например WiFi ac) появляется через несколько лет после ее внедрения.

И многое многое другое, которое сегодня кажется само собой разумеющимся, а тогда вбивало очередной гвоздь в крышку гроба неудобной системы.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)
Ответ на: комментарий от X512

cmake не самодостаточен, его надо собирать, а собирать его весьма долго, да мало того, он даже компиляцию производить не может, зачем-то требуя make или ninja. Излишнее переусложнение.
Даже autotools при всех его недостатках (он объективно говно) запускается на системе с одним только shell и говорит что делать.
meson - долбанное клоунство с непонятными зависимостями, если и делать систему сборки на питухоне, пусть это будет лучше waf.
на ninja кто-нибудь мейкфайлы писал? зачем вообще эти все костыли?
Был бы толк в генераторах для make/ninja если бы оно могло работать на относительных путях - т.е сгенерировал makefile, забандлил вместе со всеми библиотеками и перетащил его на билдноду, прописав пути к компиляторах. Но этого нет - в эту херню пишутся абсолютные пути делая весь процесс генерации совершенно бессмысленным.
Так что cmake и meson - действительно ненужно вместе с gmake и ninja
musl - clown libc который даже нельзя задетектить макроснёй нормально, притащил в себя все недостатки glibc, да ещё и жырнее

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

lldb уже может выводя массивы не делать newline под каждый элемент?

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

на ninja кто-нибудь мейкфайлы писал?

Для этого есть gn от Google. Экспериментально используется в llvm-project.

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

cmake не самодостаточен, его надо собирать, а собирать его весьма долго, да мало того, он даже компиляцию производить не может, зачем-то требуя make или ninja. Излишнее переусложнение.

Если нужна самодостаточность, то можете взять систему сборки Muon совместимую с Meson. Для сборки самого Muon не требуется ничего кроме компилятора C99. Даже без Make можно обойтись.

А вот для Autotools требуется жирный Perl (который кстати тоже не нужен). Так что место этому копролиту на свалке истории. Он уступает сковеменным решениям по всем показателям включая портируемости и числу зависимостей.

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

Наверное потому, что и Ninja родом оттуда. :)

Но я за tup, жаль, что мало где используется.

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

Autotools даже сам с собой не совместим. В репозиториях лежат разные несовместиммые версии Autotools которые требуются разному софту.

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

А вот для Autotools требуется жирный Perl

Для autogen.sh - да, для работы configure - нет.
Я не спорю что autotools - никому не нужный мамонт, но в нём хотя бы смысл в генерации мейкфайлов есть. Это было важно когда диски были маленькими и сеть медленной - чтобы на сборочную машину закинуть только сорцы и configure, а оно дальше само, а на локальной генерировать этот configure. В cmake он потерян, хотя сама генерация осталась зачем-то.
А так - да, есть куча других хороших систем сборки, но cmake и meson не понятно к чему вообще. Это какая-то попытка заменить автотулз чем-то похожим, но менее убогим.

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

тормозилла просто привязалась к определённой версии

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

Я не спорю, что технически autotools – шлак.

Но я люблю проекты, которые его используют, потому что с ним просто работать.

./configure && make

Работает всегда и везде.

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

Да, проерять наличие библиотеки, например, через попытку скомпилировать программу выглядят устаревше. Но я ничего более простого и понятного чем Autotools не видел. Ну разве что голый Makefile.

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

Для autogen.sh - да, для работы configure - нет.

Зачем нужен configure без autogen.sh? Если вы собираетесь разрабатывать софт, то вам скорее всего понадобится вносить изменения в файлы сборки, а значит понадобится вызывать autogen.sh. А если вы не разработчик и просто хотите пользоваться готовым софтом, то разумнее взять готовый бинарный пакет. Класть configure в архивы с исходниками выглядит совершенной глупостью.

В cmake он потерян, хотя сама генерация осталась зачем-то. А так - да, есть куча других хороших систем сборки, но cmake и meson не понятно к чему вообще.

Разделение на генератор (cmake, meson, gn) и собственно программу сборки (make, ninja) вполне разумно потому что позволяет каждой программе хорошо решать задачу и не изобретать велосипед с реализацией логики сборки для каждого языка описания сборки.

В cmake он потерян, хотя сама генерация осталась зачем-то.

Генерация нужна в том числе для ускорения процесса сбоки. Сборка с помощью специализированного языка будет быстрее чем с высокоуровневым языком сборки предназначенным для написания человеком.

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

Разделение на генератор (cmake, meson, gn) и собственно программу сборки (make, ninja)

premake5 для этого хорош и прост. Но генерировать ninja до сих пор не умеет.

Совпадение? :)

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

waf
Требует только питухон (даже со вторым работает), не нужен даже make
Умеет проверять библиотеки и флаги компиляции через запуск компиляции так же надёжно, но в отличие от автотулза умеет делать это параллельно
Проверяет актуальность объектников не по времени, а по чексумме, так что в отличие от make не сломается на системах с кривым временем, а так же не повторяет следующий этап сборки если результат предыдущего не изменился - не придётся запускать линковщик если пересобранный объектник оказался таким же.
Единственная проблема с которой сталкиваться - нежелание виндузятников использовать waf из-за необходимости ставить питухон, но и автотулзы у них без стороннего софта не заработают, так что перед автотулзом тут полное преимущество

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

если я хочу скомпилить софт, а не разрабатывать его, очевидно. Предположим что бинарного пакета нет.
Опять же в современных системах сомнительное преимущество, но оно хотя бы есть и генерация опять же обоснована в оличие от cmake.
Про скорость высокоуровневого языка - бред. waf на питоне и в нём сборка тормозит? Разве что на эльбрусе, но это свзяано с крайне медленной реализацией питухона под него, так же могли упереться и в медленный ninja

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

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

Зачем? Что за извращение?

Предположим что бинарного пакета нет.

Очень маловероятно. Это должно быть что-то совсем редкое и никому не нужное.

X512 ★★★★★
()

в швейцарском Биле (Biel/Bienne)

rue de la Source переименовать в rue de la Open-Source :)

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

Зачем? Что за извращение?

А вот хочу перекомпилировать с -O3 -march=native.

И со многими утилитами так и делаю.

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

Смотря для чего. Для утилит компрессии прирост производительности довольно значительный. Например, для zstd:

$ zstd -b9

9#Synthetic 50% : 10000000 -> 3355994 (x2.980), 53.2 MB/s, 1105.3 MB/s

$ zstd-O3-native -b9

9#Synthetic 50% : 10000000 -> 3355994 (x2.980), 55.1 MB/s, 1232.7 MB/s

dataman ★★★★★
()

а новость о подготовке к подготовке была? что-то я пропустил.

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

Вывод: большая часть GNU не нужно.

Неправильный вывод. Эволюция показывает, что разнообразие нужно, иначе одна проблема снесёт вам весь мир.

Andrew-R ★★★★★
()

Не нужно, есть LLVM/Clang.

Здесь не оценивается нужность или ненужность per se, а празднуется юбилей. Роль GNU в истории ПО гигантская. Без свободного сишного компилятора не было бы ни Линукс, ни свободных BSD. И никакого лулвээм тогда не было, когда GNU уже историю творил.

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

Справедливости ради подавляющее большинство дистрибутивов собирается GCC, а не LLVM.

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

Ты сам-то по своей ссылке ходил?

Debian GNU/kFreeBSD не является официально поддерживаемой архитектурой. Этот перенос был выпущен в составе Debian 6.0 (Squeeze) и 7.0 (Wheezy) как технологическая проба и первый отличный от Linux перенос. С Debian 8 (Jessie) он более не входит в число официальных выпусков.

Jessie, на минуточку, релизнули 8 лет назад.

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

Прав хватит. Но в некоторых дистрах /sbin, /usr/sbin отсутствуют в PATH юзера, поэтому получишь ENOENT

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

Да, вероятно.

Однако на сайте GNU сказано, что что-то там пытаются ковыряться. Понятное дело, что это ни в коей мере не может сравниться с Linux, но все же.

https://www.gnu.org/software/hurd/hurd.html

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

На фиг он?

make был в *NIX, make есть в *NIX и make будет в *NIX, вопреки всем продвигателям сомнительных программных решений.

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

Для истории не важно, что было бы, если бы. В параллельной реальности разрешаю праздновать юбилей GNU с PCC на борту вместо GCC.

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

Ну и не только в *nix, на винде он тоже иногда используется (правда не gmake, а nmake)

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

Во-первых GCC это не только gcc.

Во-вторых GCC оптимизирующий бэкенд компиляторов.

В-третьих роль GNU не преувеличена. Даже если не рассматривать социальную часть (лицензию GPL), что, кстати, крайне неверно, то реализация различных программ из проекта GNU позволила создать полностью свободную ОС. Если бы RMS кинулся писать не Hurd, а монолитное ядро, то он бы решил проблему раз и навсегда, и никакой «эмулятор терминала» Линуса Торвальдса был бы на фиг не нужен.

Но история сложилась иначе и сейчас мы видим людей, которые восхваляют Linux, хотя это просто ядро. Ядро студенты во многих вузах пишут в качестве практической работы. Да, Linux большое ядро, с большой поддержкой и большим финансированием, но это по прежнему всего лишь ядро.

GNU написал не одно ядро, он написал компилятор, интерпретатор командной среды, зоопарк библиотек, текстовый редактор, кучу прикладного софта, в общем сделал несопоставимый объем работы в сравнении с тем, что сделал Линус к выходу первых версий Linux.

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

Тем что использует убогие Autotools, не умеет нормальную кросскомпиляцию (без сборки отдельного компилятора для каждой архитектуры) и содержит больше багов чем в Clang.

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

Если бы RMS кинулся писать не Hurd, а монолитное ядро, то он бы решил проблему раз и навсегда, и никакой «эмулятор терминала» Линуса Торвальдса был бы на фиг не нужен.

Была бы вместо Линукса BSD и всем бы было даже лучше.

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

А что такого, что он использует autotools? Он же их не навязывает проектам, которые его используют. А по багам - не субъективно ли?

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

Возьми любой не самый свежий дебиан. Или какой-нибудь sailfish os или ещё что-то не очень хорошо обновляющееся. Или Linux4Tegra. Там это везде да рядом. Софтины свежей нет, пытаешься собрать, а у них там meson или cmake. Ставишь cmake, а он древней версии и уже требуется новее. В итоге либо потратишь полчаса-час на сборку системы сборки, либо переделываешь билдскрипты под старую. Я вот буквально недавно таким занимался т.к кому-то понадобился билд под 8 дебиан.

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