LINUX.ORG.RU

Начат проект создания новой реализации libc

 ,


0

0

Стартовал проект libposix, нацеленный на создание написанной с нуля альтернативной кроссплатформенной реализации стандартной системной библиотеки libc.

Henrique Almeida, создатель библиотеки Libposix, поставил перед собой цель не зацикливаться на одной платформе и создать унифицированное для всех Unix систем решение, одновременно поддерживающее Linux, *BSD и прочие системы.

Задачами этого проекта являются:

  • Строгое соответствие стандарту POSIX 2008
  • Кросплатформеннность и использование во всех *nix-системах
  • Отсутствие поддержки чего-либо, что выходит за рамки POSIX 2008 (т.е. без поддержки расширений и устаревшего кода)
  • Ясность и документированность кода

Так же, как одну из задач, разработчики ставят «легкость поддержки», что является намеком на сложности, возникающие при взаимодействии с разработчиками libc. Проект уже предложен к развитию разработчикам Ubuntu.

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

★★★★★

Проверено: boombick ()

Ответ на: комментарий от petrucho

>А какой-то значительной цели, которая отличала бы его проект от других реализаций libc я не вижу.

А - то есть надо сначала получить одобрение у партии представив ей программу на трех машинописных страницах?

Достаточніми является желание, а реализация совместимая со всеми платформами под пермиссивной лицензией - это уже великая задача.

>Вообще не ясно что имеется в виду.


Почитай рассылки либс - узнаешь:)

>так он лучше написал бы патчи и реализовал бы недостающие вместо того чтобы реализовывать с ноля вообще всё.


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

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

>> man Epic_fail

> Why?

Долго объяснять, если ты не знаешь, что такое EPIC :)

>> Потому что никому нах не нужна навороченная архитектура, ни с чем не совестимая.

> Значит мы приходим к тому, что прогрессивные решения никому не нужны

Я к этому не подхожу, про тебя - не знаю.

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

Маниловщиной не надо страдать. Расширить адресное пространство и увеличить количество регистров - это насущные задачи, которые x86_64 решила лучше, чем IA64, поэтому x86_64 теперь в каждом десктопе.

tailgunner ★★★★★
()

Не зря я сейчас напился, как знал, что что-то эдакое случится %)

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

>Вот ты интелу взять и разработать новую архитектуру с нуля .
Они пробовали - не получилась.
Точнее то, что получилось сделать по идеям HP(Итаниум) практически мертво.

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

>> пусть бсдшники ей и пользуются
>С радостью.

Ну, начнёте, нам расскажете!

grim ★★☆☆
()

А чем libc не угодил (интересуюсь)?

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

>> man Epic_fail

> Why?


Долго объяснять, если ты не знаешь, что такое EPIC :)
------------------------------------------------------------
Это в лорквотес!

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

>Вот ты интелу взять и разработать новую архитектуру с нуля . Забить на все устаревшие костыли

Оно тоже устареет со временем.

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

>>А какой-то значительной цели, которая отличала бы его проект от других реализаций libc я не вижу. >А - то есть надо сначала получить одобрение у партии представив ей программу на трех машинописных страницах? >Достаточніми является желание, а реализация совместимая со всеми платформами под пермиссивной лицензией - это уже великая задача.

Ну причём тут одобрение партии, я же совсем не об этом. Разрешения действительно спрашивать ни у кого не надо. Я про то, что задача и вправду большая и тут лучше двигаться не революционным, а эволюционным путём. Если твоему сердцу дороги пермиссивные лицензии, то можно взаимодействовать с разработчиками bsd libc, например. Метод "давайте перепишем с ноля" слишком часто заканчивается провалом.

>>Вообще не ясно что имеется в виду. >Почитай рассылки либс - узнаешь:) Да, Ульрих Дреппер тот ещё юморист. Читал. Ну так в любом большом проекте трудно добиться принятия патчей - то одному разработчику что-то не понравится, то другому. И в ядре линукс так же. Это нормальный процесс, хотя Дреппер действительно... перегибает палку. Если не хочешь сторудничать с проектом libc, так есть eglibc или uclibc, вроде с саппортом там получше (что автор libposix опять же признаёт наличием крестика в соответствующих столбцах таблицы).

>>так он лучше написал бы патчи и реализовал бы недостающие вместо того чтобы реализовывать с ноля вообще всё. >Лучше не указывать, людям как им заниматься тем, чем они хотят заниматься добровольно. А то можно договориться до того, что лучше бы Столман патчил внутренюю политику ксерокса - устроился бы менеджером среднего звена и работал бы на благо, а не заводил своих проектов опенсорсных инициатив.

Если бы я хотел поуказывать автору libposix что ему делать, я навряд ли стал бы делать это на ЛОР :) Лично бы ему написал, что ли? Это у меня так, обычное желание пофлеймить на лоре.

Со Столлманом сравнение некорректное в корне. Столлман начал движение free software, предложив миру то, что до него практически не существовало. Это и было то новое, что позволило его проекту выжить, прилечь множество сторонников и дать начало огромному FOSS-движению. Если бы Столлман начал делать в одиночку очередную закрытую операционную систему, то его проект с высокой вероятностью не закончился бы ничем. А почему люди должны потянуться к проекту libposix - мне не понятно.

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

> Хм, если оно станет быстрее glibc, почему бы и нет?

Только без расширений glibc оно не будет drop-in replacement. И создаст дофига трудностей.

Хотя идея иметь негромоздкую libc заманчива.

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

>У линукса уже есть нормальная libc - это glibc.

Нормальная? А почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux (и не факт, что заработает)?

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

Нужно пересобирать ядерный модуль из-за смены ядерного api, причём здесь libc?

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

> почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux

Оно вроде как при апдейте нвидиевский модуль ненароком затирает.

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

>Нормальная? А почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux (и не факт, что заработает)?

Нет, ну не стыдно настолько толсто троллить? Драйвер nvidia поверх glibc работает что-ли?

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

> Уже было, man itanium, вот только амдэшники запилили его своей идиотской x86_64.

Мда, это самая привратная трактовка событий вокруг IA-64.

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

> Оно вроде как при апдейте нвидиевский модуль ненароком затирает.

В модуле строго прописывается полная версия ядра, вообще-то.

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

> Вот бы еще компиллер кроссплатформенный , написанный с нуля. Тогда уж точно все перестанут дрочить на gcc =)

В любом случае gcc еще не скоро выработает свой эроресурс :-)

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

>gcc может быть бэк-эндом для llvm.

вы жжоте, сударь?

llvmщики просто добавили в gcc опцию типа -llvm и он научился гнать llvmный биткод и оссемблер. но частью llvm он от этого не стал.правильнее сказать - часть llvm стала бэкэндом gcc.

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

>мне показалось, что имеется в виду не аппаратная платформа (x86, arm, etc), а программная (Linux, BSD, SunOS).

и как же оно будет работать с таким зоопарком как к примеру epoll/kqueue/и чего там в солярке

и это только одна мелочь

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

>о под BSD лицензией. Напоминает переписывание бздшниками GNU coreutils, да так что бы ls другими цветами по умолчанию раскрашивал.

это можно и конфигом емнип. лучше бы они gcc свой написали. конкуренция была бы. а то пока только одни потуги да пуки

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

gcc - cтрашное уродство. вот к примеру, в одной либлиотеке две функции:

int a(){ foo; } void * b(){ return &a; }

ну ведь студенту понятно, что под -fpic можно узнать адрес где мы сейчас, а адрес а отличается от "где мы" всегда на константу. так нет же - вместо того, чтоб вернуть lea eax, [ebx+константа] это мурло создает место в GOT, куда запишут адрес a и оттуда его хапает.

это всё очень С-ишно конечно - переопределять символы, но на практике weak символов очень мало а гцц этот фокус делает для всех функций. а потом удивляютя, а чего это ++снутные программы так неторопливо стартуют?

я уж не говорю про компиляцию в raw бинарь - там просто неверный код генерится. уж выкинули бы этого уродца и сделали с нуля.

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

>>Маны читать не удобно

>Эээ... Почему?


человеку поди путти приходится запускать, да шрифты подбирать :)

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

> ну ведь студенту понятно, что под -fpic можно узнать адрес где мы сейчас, а адрес а отличается от "где мы" всегда на константу. так нет же - вместо того, чтоб вернуть lea eax, [ebx+константа] это мурло создает место в GOT, куда запишут адрес a и оттуда его хапает.

Патч написали и выслали или его завернули?

sv75 ★★★★★
()

Забавно, посмотрим, что получится. :) Вот только что делать с софтом, завязанным на glibc?..

> документированость

Документированность

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

> EPIC

Explicitly Parallel Instruction Computing? Если да, то это пять! :))

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

> Нормальная? А почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux (и не факт, что заработает)?

Потому что меняются внутренние механизмы *ядра*, не?

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

> На лоре как-то была новость, что дебиан собирается заменять glibc на eglibc. А если заменит дебиан, то заменят и производные дистрибутивы вроде убунту.

Они в тот же день и заменили.

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

>ну ведь студенту понятно, что под -fpic можно узнать адрес где мы сейчас, а адрес а отличается от "где мы" всегда на константу. так нет же - вместо того, чтоб вернуть lea eax, [ebx+константа] это мурло создает место в GOT, куда запишут адрес a и оттуда его хапает.

Мне не очевидно, с какой радости в EBX оказался адрес "где мы сейчас". Может пояснишь?

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

Ну и наконец, wasm.ru там: http://wasm.ru

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

+1.
Всё идёт к тому, что в один прекрасный момент станет Ubuntu ≠ Linux.

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

>Метод "давайте перепишем с ноля" слишком часто заканчивается провалом.

Только у тех кто не осиливает довести его до релиза. Эволюционный путь часто кончается загниванием вследствии невозможности изменить что-либо без переписывания всего с нуля.

>Столлман начал движение free software, предложив миру то, что до него практически не существовало.


Ну да он спал проснулся и подмал - а давай я предложу миру что-то новое.

Он предложил это новое потому, что не смог решить локальную проблему вследствии того, что ксерокс не дал ему исходники драйвера принтера. Столман расстроился. И выходов у него было три - пропатчить свою проблему без исходников, перейти в ксерокс и решать проблему взаимодействия со сторонними разработчиками там (патчить ксерокс) - или написать все с нуля - сделать что-то новое - которое к стати предполагало написание огромного количества велосипедов. Вроде GNU/OS.

То есть он не пропатчил проблему без исходников, и не пропатчил в ксероксе накапав ихнему начальству - а начал свою отдельную песню.

r ★★★★★
()

>о под BSD лицензией. Напоминает переписывание бздшниками GNU coreutils, да так что бы ls другими цветами по умолчанию раскрашивал.
Если я не ошибаюсь, то у них кореутилс нормально работает с юникодом.

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

> Это действительно плюс. Вот ты интелу взять и разработать новую архитектуру с нуля . Забить на все устаревшие костыли

Было уже. Itanium называется. Где-то глубого ... оно.

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

>Мне не очевидно, с какой радости в EBX оказался адрес "где мы сейчас". >Может пояснишь? man position independent code

objdump -d любая мелкая библиотека

там в прологе каждой функции, работающей с глобальными переменными будет что-то вида
push ebx
call _i686_thunk.bx

а этот thunk делает
mov ebx,
esp retn

в еbx будет адрес после call.

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

>Ну и наконец, wasm.ru там: http://wasm.ru

http://www.sandpile.org/ и что?

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

> уж выкинули бы этого уродца и сделали с нуля.

Возьмешься?

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

> там в прологе каждой функции, работающей с глобальными переменными будет что-то вида push ebx call _i686_thunk.bx

Для 64-х бит это малоактуально, слава всем. %rip никто не отменял же?

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

>Не сильно распространено, да. Но вот мертво:
Мертво-мертво.
То что вы принимаете за шевеление - это опарыши.

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

>Нормальная? А почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux (и не факт, что заработает)?

Покормлю.
Для тех, что в танке: В ядре есть опция проверки соответствия версий текущего ядра и ядра, для которого был собран модуль. В "версию" входит не только номер (2.6.30, к примеру), а и конфиг и компилятор, которым оно было собрано. Это гарантирует соответствие ABI, который может меняться при сборке нового ядра (с хоть одно строкой различия), а также при переконфигурации.
Левые модули по дефолту не грузятся.

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

А вобщем... HP ничего не остаётся на насиловать труп, дабы отвлечь заказчиков большого железа от мысли перейти на IBM.

Кстати, POWER похоже остаётся единственной популярной альтернативой для большого железа, так как Оракл остановил разработку сановского Рока а Fujitsu, кажется, отказался от разработки спарков ещё раньше, показ трупа Итаника интел уже 3 года переносит и, несмотря на рекламу и обещания, пересла опять.

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

> Оракл остановил разработку сановского Рока

Ссылку!!111

> а Fujitsu, кажется, отказался от разработки спарков ещё раньше

Недавно Фуджицу демонстрировал SPARC, который собирался всех порвать и по производительности, и по энергопотреблению.

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

>>Метод "давайте перепишем с ноля" слишком часто заканчивается провалом.

>Только у тех кто не осиливает довести его до релиза. Эволюционный путь часто кончается загниванием вследствии невозможности изменить что-либо без переписывания всего с нуля.

Вот чего я не нашёл на libposix.sourceforge.net, так это фразы про то, что развитие libc безнадёжно зашло в тупик и загнило. Не похоже, чтобы это было основным побуждением автора. Да и звучит сомнительно - только в одной той сравнительной табличке, на которую я так часто ссылаюсь, перечислено четыре альтернативных libc, так что все четыре разом зашли в безнадёжный тупик? Ну не верю.

>>Столлман начал движение free software, предложив миру то, что до него практически не существовало.

>Ну да он спал проснулся и подмал - а давай я предложу миру что-то новое.

Спорить о том, что Столлман думал или не думал - довольно неблагодарное занятие. Я способностей к телепатии не проявлял никогда, не говоря уже об улавливании мыслей четвертьвековой давности. Разве что псевдоним "r" означает Richard - тогда разговор может принять интересный оборот. В любом случае, раз уж речь зашла о Столлмане, не могу удержаться и не процитировать его собственные слова: "Developing a whole system is a very large project. To bring it into reach, I decided to adapt and use existing pieces of free software wherever that was possible. For example, I decided at the very beginning to use TeX as the principal text formatter; a few years later, I decided to use the X Window System rather than writing another window system for GNU." Использовать уже существущее ПО вместо изобретения велосипедов - вот что он говорит. Если программа тебя не устраивает - пиши патчи. Если патчи не берут в апстрим - можно форкнуть, на худой конец. Это же free software.

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

>В минорных версиях? НЕ_ВЕРЮ!

Эх... "Поколение ПЕПСИ"...

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

Подскажу: запусти установщик с ключиком "-x" и увидишь...

В целом, драйвер состоит из четырех частей.
1. Драйвер Х (nvidia_drv)
2. Вспомогательные библиотеки, тонким слоем размазанные. Всякие там TLS, VDPAU и замена libMC
3. Всякая хрень типа инклудов, share, и бинарников вспомогательных (nvidia-settings).
4. Модуль ядра nvidia.ko

при установке драйвера, сетупилка тупо раскидывает файло (и симлинки), компилирует и инсталлит модуль ведра (впрочем, может взять precompiled если есть известная платформа). Модуль, как и положено, инсталлится вовнутрь /lib/modules/{$Версия_Текущего_Ведра}

Соответственно, при смене ведра, этого самого модуля внутри /lib/modules/{$Версия_Текущего_Ведра} не окажется и загружать будет нечего.

Доступно?

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

>Нормальная? А почему тогда нужно переустанавливать драйвер NVIDIA после смены минорной версии ядра Linux (и не факт, что заработает)?

Рыдаю и плачу. Если API ядра не менялось, то давно не нужно. Уже года два как.

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

>> Оракл остановил разработку сановского Рока
>Ссылку!!111

http://www.channelregister.co.uk/2009/06/15/sun_kills_rock_sparc/

>Недавно Фуджицу демонстрировал SPARC, который собирался всех порвать и по производительности, и по энергопотреблению.

Месяц или 2 назад я читал о том, что Фуджитсу отказалась развиавть процессора Спарк. Ссылку искать не буду, так как не помню источника.

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