The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск операционной системы Redox OS 0.6, написанной на языке Rust , opennews (??), 26-Дек-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


10. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +1 +/
Сообщение от Аноним (10), 26-Дек-20, 12:05 
зачем писать все? почему не сделать свое ядро и libc нормально, а потом переписывать остальное?
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от Аноним (9), 26-Дек-20, 12:10 
Может быть это не очевидно, но делать новое проще чем сделать нормально или исправить и доделать старое (это вообще не реально).
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от alexrayneemail (?), 26-Дек-20, 15:47 
если бы это было так, то природа давно реализовала бы этот подход массово. Но нет, эволюция рулит.
Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +3 +/
Сообщение от Аноним (9), 26-Дек-20, 16:00 
Эволюция действует более широкими категориями, на больших временных периодах. Миллионы никому не нужных проектов умирают на разных стадиях завершённости, люди же десятилетиями используют и подпирают сотнями костылей очевидно хреновые решения без возможности их исправить, поскольку любое исправление потребует большой вовлечённости десятков и сотен квалифицированных индивидуумов.
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (91), 26-Дек-20, 16:03 
есть такое понятие как эволюционный тупик, тогда природа делает несколько шагов назад к другой ветке которая изначально вроде казалась менее жизнеспособной
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

94. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –3 +/
Сообщение от Аноним (9), 26-Дек-20, 16:06 
Я не вижу как это применимо к разработке ПО. У нас нет столько ресурсов и возможностей.
Ответить | Правка | Наверх | Cообщить модератору

155. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (91), 26-Дек-20, 18:43 
возможностей не было 30 лет назад, сейчас программистов как собак не резанных, чем они все занимаются ? бабловыжиманием ? где тот энтузиазм создателя ? пока не проплатят то не пошевелим и пальцем для общего блага ?
Ответить | Правка | Наверх | Cообщить модератору

167. Скрыто модератором  –2 +/
Сообщение от qwertyemail (??), 26-Дек-20, 19:28 
Ответить | Правка | Наверх | Cообщить модератору

226. Скрыто модератором  –1 +/
Сообщение от Соляридзе (?), 27-Дек-20, 09:10 
Ответить | Правка | Наверх | Cообщить модератору

196. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (196), 26-Дек-20, 23:29 
Пишут веб сайты же
Ответить | Правка | К родителю #155 | Наверх | Cообщить модератору

209. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от масло на хлебе (?), 27-Дек-20, 01:49 
Пишут коменты
Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от Аноним (9), 26-Дек-20, 16:05 
Вероятно даже точнее будет утверждать о многих тысячах и миллионах, рассматривая всю популяцию, поскольку придётся не только разработать и внедрить, но и убедить остальных, что это лучше и правильнее (а это возможно самое сложное).
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

95. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +2 +/
Сообщение от еман (?), 26-Дек-20, 16:09 
на самом деле, природа это делает каждый раз, когда у одной матери появляется несколько детёнышей: такой себе природный форк, на случай если сиблинги зафейлятся.
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

30. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +1 +/
Сообщение от Ordu (ok), 26-Дек-20, 12:47 
> зачем писать все?

just for fun?

> почему не сделать свое ядро и libc нормально, а потом переписывать остальное?

А зачем это делать последовательно? Если бы эту Redox пилил бы один программист, то ему бы может и было бы удобнее делать последовательно. Но программистов больше одного, возможна параллелизация усилий, а раз так то удобнее заниматься всем сразу, чтобы друг у друга под ногами не болтаться.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

55. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 26-Дек-20, 14:05 
А ей разве нужна libc? Насколько я понимаю, для самой ОС и базового окружения не нужна, только что бы сторонний софт (который на Си) запускать.
Ответить | Правка | Наверх | Cообщить модератору

79. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Ordu (ok), 26-Дек-20, 15:24 
> А ей разве нужна libc? Насколько я понимаю, для самой ОС и
> базового окружения не нужна, только что бы сторонний софт (который на
> Си) запускать.

Да. Чтобы сторонний софт запускать. Было бы обломно иметь OC и не иметь под неё браузера, IDE и всех прочих прелестей. Но сейчас всё равно рано о чём-то говорить, они, как я понимаю, usb hid так и не поддерживают, поэтому клавиатуры/мышки не работают. Разве что искать доисторическое железо с PS/2.

Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от лютый жабби__ (?), 26-Дек-20, 17:55 
>Было бы обломно иметь OC и не иметь под неё браузера

весьма тупо пилить микроядерную десктопную ось в условиях дикой конкуренции и непонимания 99.9% населения зачем дескпопной оси быть микроядерной.

линух свой успех с серверов начал, похоже редокс убьет идиотский маркетинг, а жaль

Ответить | Правка | Наверх | Cообщить модератору

147. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +3 +/
Сообщение от Ordu (ok), 26-Дек-20, 18:29 
>>Было бы обломно иметь OC и не иметь под неё браузера
> весьма тупо пилить микроядерную десктопную ось в условиях дикой конкуренции и непонимания
> 99.9% населения зачем дескпопной оси быть микроядерной.

Кому какое дело до 99.9%?

> линух свой успех с серверов начал, похоже редокс убьет идиотский маркетинг, а жaль

О каком маркетинге ты говоришь? Чтобы говорить о маркетинге, надо сначала заявить о каком-то преимуществе перед конкурентами. Какие преимущества редокс предлагает или мог бы предложить? Конкурировать с linux'ом на серверах? Хаха. С вендой на десктопах? Хахаха. С андройдом на мобилках? Это просто лол.

Редоксу нет никакой потенциальной ниши, кроме крacнoглaзых фанатиков, типа меня. И он на эту нишу очень неплохо заточен. Я с радостью соскочу с linux'а, который давно превратился в корпоративное уг, чья сложность зашкаливает из-за того, что корпоративное уг и из-за того, что он во всех бочках затычкой пытается быть. Который написан на окаменелом C. Вокруг которого сформировалось дебильное сообщество 99.9%, которые разницу между микроядерностью и монолитностью понимают на основании неполных пересказов исторического cpaча между Торвальдсом и Танненбаумом, и при этом не отличают убунты от линукса, а высшим достижением считают способность собрать LFS (впрочем 99.9% из них никогда даже не пытались). Оставшиеся 0.01% -- это старпёры типа местного поха, которые давно линукс используют для зарабатывания денег, и любые изменения экосистемы для них PITA, потому что перечёркивает их знания и навыки доведённые до рефлексов.

Я сегодня не хочу иметь ничего общего ни с линуксом, ни с его сообществом. Redox же -- позволяет уйти от C, используя его исключительно для легаси кода. Redox -- это не миллиарды строк кода, а гораздо меньше, разобраться в этом проще. Redox -- это дружелюбное сообщество. Просто няшка, ради которой можно потерпеть и отсутствующие драйвера. Я когда пришёл в linux, драйверов не было, и ничего, жил же как-то. Поживу и ещё.

Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –3 +/
Сообщение от Аноним (210), 27-Дек-20, 02:48 
> Редоксу нет никакой потенциальной ниши, кроме крacнoглaзых фанатиков, типа меня. И он на эту нишу очень неплохо заточен.

хммм...
> Я сегодня не хочу иметь ничего общего ни с линуксом, ни с его сообществом.

У вас противоречие тут закралось. Феномен фанатизма встречается именно и только лишь в рамках Linux и прочей религии вокруг него. Вам будет очень трудно найти такое в сообществах других ОС. Разве что только Apple...
Ни BSD, ни даже Windows от такого не страдают.

> Я с радостью соскочу с linux'а, который давно превратился в корпоративное уг, чья сложность зашкаливает из-за того, что корпоративное уг и из-за того, что он во всех бочках затычкой пытается быть.

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

> Который написан на окаменелом C.

А вот это одна из причин его убогости в корпоративном сегменте. Видите ли, корпоративный программист это такой человек, у которого все мысли и концепты объектно-ориентированы. Их речевой центр мозга превращает всё это не в звуковые сигналы, а сразу сериализирует в XML. Вместо рукопожатия используется SOAP Envelope. И вот у вас есть Linux написанный на С. Оно конечно годится для запуска JVM и даже свежего .NET 5, но работать с компонентами ОС. "Компонентами" сказал я, ха-ха. С зоопарком библиотек к которым надо линковаться без высокоуровнего API, если таковым не считать dbus, который фанатики не жалуют, да и сам он мягко говоря звёзд с неба не хватает. А еще люди на Linux на полном серьёзе пытаются писать софт на Python. Каждый раз переизобретая по 2-3 раза полурабочие биндинги к сишным либам для каждой версии своего несовместимого барахла. "Открытая система", блин. Когда куча софта в системе написана на питоне в котором маршалинг не происходит дальше локально установленного интерпретатора, а сериализация объектов не поддерживает нативно ни XML, ни даже JSON. Все через конвертацию и полный DOM. Зато есть либок 5-6 которые делают это наполовину и одинаково хреново. Своего SDK для С++ в Linux нет, если таковым не считать Qt, но вот только не понятно, зачем себя тогда через Linux наказывать... У Linux вообще нет SDK.

И всё же главная проблема, которая сдерживает развитие unix-like ОС - это не столько С, сколько POSIX.
Я в курсе что MS со своими WTF-16 помесями - это жесть, но setlocale... а какие там треды. А если setlocale и треды одновременно. И ACL, которые в нем не стандартизированы, но Linux их использует. Причем адепты культа реально уверены, что это стандарт. А на самом деле есть NT ACL - эксклюзивны для Windows. Псевдо-Posix ACL. Специфичные для Linux и то не обязательные. И есть NFSv4 ACL, которыми пользуются все остальные ОС. Из-за этого, кстати файлопомойку на Linux делают только дураки-фанатики.

Я бы сообществу Rust пожелал от всей души не с С сражаться а с POSIX. Потому что эта штука не актуальна для разработки надёжного софта. Тут даже не столько в С дело. Вот подумайте сколько linux-программ на С обрабатывают ошибки malloc? Полтора землекопа? А со стороны ядра что при этом? Что-то адекватное возвращается. Нет. Memory overcommitment и потом полный OOM. И это воспитывает соответствующих программистов. Запросить 146GB памяти и форкнуться, а ОС потом разберется. А ОС она типа умная? Нет такая же. Методом тыка грохну что хочу.

Но ведь можно костылик написать, переподнимем процесс, который убивается OOM-киллером. А лучше напишем питон-скриптик перепинывания, сборки деплоя и сразу в докер. Это еще и полностью решает проблему полного отсутствия setup.exe. Ведь не пользователь должен решать, какой у него софт, не разработчик, которые его написал, а меинтейнер. Самая важная вахтёрша, суть которой собирать и поставлять софт в ОС, в которой нет стандартизации и автоматизации для развертывания консьмерского софта и поэтому разработчики не собирают одну программу под 500 несовместимых на пустом месте дистров, которые ломают совместимость с самими собой со следующим мажорным апдейтом. И вот вахтёрша решит, как правильно доставлять твой софт до пользователя и еще откажется это делать, потому что фильтрует софт по религиозно-лицензионным признакам. В корпоративной среде нужно еще свою вахтершу содержать для таких задач. Она думает о себе как об инженере, а на самом деле эникей по линуксу. Ой всё... я 15 лет это жрал. Просто уже подросло новое поколение фанбоев, а воз и ныне там.

Ответить | Правка | Наверх | Cообщить модератору

265. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от Ordu (ok), 27-Дек-20, 16:03 
> Я бы сообществу Rust пожелал от всей души не с С сражаться а с POSIX.

Когда софт пишется на rust'е, POSIX не особо актуален. Если даже если он и есть где-то внизу под всеми абстракциями, он закопан глубоко. Rust использует utf8 в качестве внутренней кодировки. Под дефолту он предполагает, что внешняя тоже utf8. Я к тому, что тут и бороться-то особо не нужно.

> Вот подумайте сколько linux-программ на С обрабатывают ошибки malloc? Полтора землекопа?

Их очень сложно обрабатывать осмысленно. Когда malloc обломался, значит что и следующий malloc не пройдёт. Когда malloc обломался, значит что у системы не осталось свободной памяти. Разадресация нуля, как способ прибить программу -- это вполне себе способ. Я сталкивался с аргументацией о том, что именно так и надо, потому как при отсутствии свободной оперативки крайне сложно что-то осмысленное делать, даже упасть контролируемо сложно.

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

> Это еще и полностью решает проблему полного отсутствия setup.exe. Ведь не пользователь должен решать, какой у него софт, не разработчик, которые его написал, а меинтейнер.

Это, как раз, мне кажется правильным -- программиста вообще надо от пользователя отстранять как можно дальше, и втыкать между ними специально обученных людей, которые умеют общаться и с программистом, и с пользователем, потому как программист умеет писать программы, а вот UX обеспечивать -- нет. Бывают исключения, но они именно что исключения. Вот то, что стандартизация осталась на уровне наколенной поделки никому неизвестного финского студента, вот это реально плохо.

Ответить | Правка | Наверх | Cообщить модератору

211. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноньимъ (ok), 27-Дек-20, 03:19 
Добра :3
Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

227. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  –1 +/
Сообщение от Анонимemail (227), 27-Дек-20, 09:13 
Если там будет нормальный GUI и жрать будет ресурсов хотя бы как WIN XP, то в пекло все эти разжиревшие Линуксы в которых без командной строки работать практически невозможно. А вообще тут все переходят на ARM и если ребята впишутся в этот переход могут солидную долю рынка у Мелкософта отжать. Ну и без мобильной версии тоже никак.
Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

321. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +2 +/
Сообщение от adolfus (ok), 28-Дек-20, 00:28 
> на окаменелом с

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

Ответить | Правка | К родителю #147 | Наверх | Cообщить модератору

234. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 27-Дек-20, 09:59 
>> А ей разве нужна libc? Насколько я понимаю, для самой ОС и
>> базового окружения не нужна, только что бы сторонний софт (который на
>> Си) запускать.
> Да. Чтобы сторонний софт запускать. Было бы обломно иметь OC и не
> иметь под неё браузера, IDE и всех прочих прелестей. Но сейчас
> всё равно рано о чём-то говорить, они, как я понимаю, usb
> hid так и не поддерживают, поэтому клавиатуры/мышки не работают.

Значит они всё правильно делают. Кто-то пишет ядро, потому что может. Кто-то занимается прослойками совместимости с существующим софтом, а в ядро не лезет раньше времени.

> Разве что
> искать доисторическое железо с PS/2.

Есть и новое такое. Но там, вероятно, и остальное поддерживается примерно на том уровне.

Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

257. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Ordu (ok), 27-Дек-20, 13:36 
> Есть и новое такое. Но там, вероятно, и остальное поддерживается примерно на
> том уровне.

Это даже по фану. Можно написать драйвер для своей сетевушки. Поддержка usb hid -- это уровень абстракции, чтоб его написать надо быть высоколобым разработчиком понимающим принципы ядра, под которые это делается. А драйверок запилить по аналогии с существующим -- это и Васян из 9б справится.

Ответить | Правка | Наверх | Cообщить модератору

222. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 27-Дек-20, 08:52 
> только что бы сторонний софт (который на Си) запускать

Не который на Си, а который подгружает libc и делает вызовы к его фукнциям. Это можно сделать на любом языке, который умеет C ABI FFI.

Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

233. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 27-Дек-20, 09:52 
>> только что бы сторонний софт (который на Си) запускать
> Не который на Си, а который подгружает libc и делает вызовы к
> его фукнциям. Это можно сделать на любом языке, который умеет C
> ABI FFI.

Вы готовы показать ссылку на проект "который подгружает libc", а не слинкован с ней статически, поскольку у того "любого языка" рантайм написан на Си?

Ответить | Правка | Наверх | Cообщить модератору

337. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 28-Дек-20, 14:35 
> Вы готовы показать ссылку на проект "который подгружает libc", а не слинкован с ней статически

$ ldd /bin/ls
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcccfb9f000)

> поскольку у того "любого языка" рантайм написан на Си

Этот пункт не понял. Почему у языка рантайм должен быть на Си, при чём тут это?  Берём любой язык и делаем из него вызов к libc.so, при этом без разницы что за язык и какой у него рантайм. Это просто вызов функции произвольной динамической библиотеки, что на Линуксе что на Винде.

Ответить | Правка | Наверх | Cообщить модератору

352. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 28-Дек-20, 17:21 
>> Вы готовы показать ссылку на проект "который подгружает libc", а не слинкован с ней статически
> $ ldd /bin/ls
>         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcccfb9f000)

Здесь "погружает" не ls, а системный загрузчик (ld-linux), выполняя динамическое связывание. ls начинает исполняться после этой фазы. Если бы ls подгружал, там происходил бы вызов функции dlopen(), примерно как в man dlopen. Но есть нюанс. libdl.so сама импортирует libc.so, а значит опять всё сделал системный загрузчик.

Если подходить формально, мой вопрос содержит ошибку ("статически"), за которую Вы ухватились. По существу, она ничего не меняет, от техники связывания поведение не изменится: libc в обоих случаях загружена и инициализирована до вызова точки входа (и тем более main()) из ls.

Наверное, Вы имели ввиду "использует libc".

>> поскольку у того "любого языка" рантайм написан на Си
> Этот пункт не понял. Почему у языка рантайм должен быть на Си,
> при чём тут это?

Он не должен. Но почему-то по факту так (не всегда, но примеров пока нет).

> Берём любой язык и делаем из
> него вызов к libc.so, при этом без разницы что за язык
> и какой у него рантайм. Это просто вызов функции произвольной динамической
> библиотеки, что на Линуксе что на Винде.

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

Ответить | Правка | Наверх | Cообщить модератору

354. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 28-Дек-20, 19:10 
> Вот, уже без "подгружаем", а просто "делаем" вызов... софта на Си, к которому "любой язык" сбоку прикручен системным загрузчиком, который тоже на Си.

Не понимаю про что спорим. Да, с dlopen() я перепутал, чё с меня взять - я тупой жавер, а не сишник - я ваще не должен знать разницы между "сокетом" и "процессом" (это один чел в Мейлру так однажды пошутил про жаверов).

Смысл в том, что вызов к libc.so может сделать любой процесс, не важно из какого языка он скомпилен. И этому процессу будет также не важно, какая у libc реализация - его интересуют только сигнатуры функций и поведение по контракту. О чём я и говорю - libc нужен программам, которые пользуются этим API и не более. На редоксе этот API предоставляется через relibc, на линуксе через GNU libc. Ещё бывает musl. И так далее. При этом программам под редокс либц может быть вообще не нужен, т.к. между ядром и программой используется другая обёртка над этим ядром.  А может быть и ваще без обёртки - херач сразу сисколлы и не горюй, на расте для линуксовых сисколлов тупо есть либа, как есть либа для сисколлов виндовых.

Ответить | Правка | Наверх | Cообщить модератору

381. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 29-Дек-20, 10:32 
>> Вот, уже без "подгружаем", а просто "делаем" вызов... софта на Си, к которому "любой язык" сбоку прикручен системным загрузчиком, который тоже на Си.
> Не понимаю про что спорим.

В том-то и дело. Вы сами начали оспаривать мой тезис "нужна libc ... что бы сторонний софт (который на Си) запускать". Я могу к нему добавить, что Glasgow Haskell Compiler транслирует в Си, MLton транслирует в Си, ocamlopt транслирует в машинный код, но рантайм всё равно там на Си. Рантайм Perl и Python наверняка на Си, но я сам не смотрел. Потому мне интересно, есть ли какие-то примеры, не гипотетическая возможность, а факты.

> Да, с dlopen() я перепутал, чё с
> меня взять - я тупой жавер, а не сишник - я
> ваще не должен знать разницы между "сокетом" и "процессом" (это один
> чел в Мейлру так однажды пошутил про жаверов).
> Смысл в том, что вызов к libc.so может сделать любой процесс, не
> важно из какого языка он скомпилен.

Интересно, в частности, зачем таким проектам вообще нужна libc, если у них свой рантайм.

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

Вот видите, самодостаточным языкам не нужна libc, они и так работают.

> как есть либа для
> сисколлов виндовых.

Это очень печальный звоночек, если там действительно используются "сисколы" (вектора которых меняются), а не ntdll.dll (или kernel32.dll).


Ответить | Правка | Наверх | Cообщить модератору

388. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 29-Дек-20, 12:34 
> есть ли какие-то примеры, не гипотетическая возможность, а факты

Извините, я наверно туплю. Примеры чего? Софта на Си, которому не нужен libc? Или софта не на Си, которому не нужен libc? Ясен пень есть - ядро любой операционки, к примеру. Оно не может зависеть от libc, потому что libc сам зависит от вызовов к ядру. Или какой-нибудь эмбед. Плюс скорее всего виндовым программам оно не нужно, у винды свой API к ядру. Хотя для винды, безусловно, есть реализация libc.

Кстати пишут, что Golang ваще игнорирует libc, и что на Линуксе, что на Винде сам обращается к ядру через системные вызовы.

> Интересно, в частности, зачем таким проектам вообще нужна libc, если у них свой рантайм.

Не знаю.

> Вот видите, самодостаточным языкам не нужна libc, они и так работают.

Да я в курсе... опять не понимаю, к чему это? Я что, говорю, что программам, которым не нужен libc - нужен libc?

> Это очень печальный звоночек, если там действительно используются "сисколы" (вектора которых меняются), а не ntdll.dll (или kernel32.dll).

Это я фигню написал - да, там обёртка над kernel32.dll.

Ответить | Правка | Наверх | Cообщить модератору

406. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 30-Дек-20, 10:09 
>> есть ли какие-то примеры, не гипотетическая возможность, а факты
> Извините, я наверно туплю. Примеры чего? Софта на Си, которому не нужен
> libc? Или софта не на Си, которому не нужен libc?

С Вами каши не сваришь... Вы же сами начали оспаривать мой тезис. Наверное, у Вас должны быть какие-то примеры, способные его (мой тезис) опровергнуть? Вот их и хотелось бы посмотреть.

> Ясен
> пень есть - ядро любой операционки, к примеру. Оно не может
> зависеть от libc, потому что libc сам зависит от вызовов к
> ядру. Или какой-нибудь эмбед. Плюс скорее всего виндовым программам оно не
> нужно, у винды свой API к ядру. Хотя для винды, безусловно,
> есть реализация libc.

Речь шла о запуске прикладного софта под Redox. Пример с ядром не подходит.

> Кстати пишут, что Golang ваще игнорирует libc, и что на Линуксе, что
> на Винде сам обращается к ядру через системные вызовы.

$ ldd `which go`
    linux-vdso.so.1
    libpthread.so.0 => /lib64/libpthread.so.0
    libc.so.6 => /lib64/libc.so.6
    /lib64/ld-linux-x86-64.so.2

>> Интересно, в частности, зачем таким проектам вообще нужна libc, если у них свой рантайм.
> Не знаю.
>> Вот видите, самодостаточным языкам не нужна libc, они и так работают.
> Да я в курсе... опять не понимаю, к чему это? Я что,
> говорю, что программам, которым не нужен libc - нужен libc?

Вы говорите, что "подгружает libc и делает вызовы к его фукнциям". Я думал знаете, зачем.


Ответить | Правка | Наверх | Cообщить модератору

409. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 30-Дек-20, 13:08 
> Речь шла о запуске прикладного софта под Redox.

relibc - реализует API libc для ядра редокса. Программы, написанные под libc при этом могут работать на редоксе. Поэтому relibc - полезен. При этом сами программы могут быть написаны не на Сях. Я писал про это. Например, они могут быть написаны на Расте, т.к. std Раст-а на линуксе использует libc. А может и не использовать, если сделать реализацию std, которая минуя API libc, напрямую обращается к API redox-а.

> $ ldd `which go`

Не компилятор, а программы, скомпилированные Golang. Сам не проверял, но пишут, что оно так.

> Вы говорите, что "подгружает libc и делает вызовы к его фукнциям". Я думал знаете, зачем.

Любая программа, если она использует libc - использует libc. Либо он статически прилинкован в бинарь, либо подгружается динамически - не важно, изнутри через dlopen или снаружи через механизмы ОС. В чём вопрос?

Ответить | Правка | Наверх | Cообщить модератору

410. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 30-Дек-20, 15:07 
>> Речь шла о запуске прикладного софта под Redox.
> relibc - реализует API libc для ядра редокса. Программы, написанные под libc
> при этом могут работать на редоксе. Поэтому relibc - полезен. При
> этом сами программы могут быть написаны не на Сях. Я писал
> про это. Например, они могут быть написаны на Расте,

Ясно, примеров нет и не будет.

>> $ ldd `which go`
> Не компилятор, а программы, скомпилированные Golang.

https://go.googlesource.com/go/+/refs/heads/master/src/built...

$ ldd `which gitea`
    linux-gate.so.1
    libdl.so.2 => /lib/libdl.so.2
    libpthread.so.0 => /lib/libpthread.so.0
    libpam.so.0 => /lib/libpam.so.0
    libc.so.6 => /lib/libc.so.6
    /lib/ld-linux.so.2

> Сам не проверял, но пишут, что
> оно так.

Убедили.

>> Вы говорите, что "подгружает libc и делает вызовы к его фукнциям". Я думал знаете, зачем.
> Любая программа, если она использует libc - использует libc. Либо он статически
> прилинкован в бинарь, либо подгружается динамически - не важно, изнутри через
> dlopen или снаружи через механизмы ОС. В чём вопрос?

У меня больше нет к Вам вопросов.

Ответить | Правка | Наверх | Cообщить модератору

411. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 30-Дек-20, 16:59 
> Ясно, примеров нет и не будет.

Примеров чего? Я устал уже пытаться угадать то, что вы имеете ввиду. Каждый раз предлагаю несколько вариантов, и ни разу не получаю подтверждения вида "да, я вот именно это имею ввиду".  Попробую угадать ещё раз:

- Интересует пример программы, написанной на Расте, но использующий libc? Это - практически все программы, написанные на Расте под Линукс, т.к. растовкий std для Линукса подстроен над libc

- Или неиспользующие libc, но при этом под Линукс? Таких не знаю, и скорее всего если они есть, то очень мало, просто потому, что это бессмысленно - отказаться от std, но при этом написать что-то полезное? Хотя технически это возможно, т.к. для Раста делают кучу no_std библиотек, т.е. таких, которые не зависят от растовского std. Обычно их делают для эмбеда, но ничто не мешает применять их (и применяют) в любом окружении. Более того, считается, что если твоя либа no_std - то это более козырно, чем если она не-no_std, т.к. её переиспользуемость повышается.

- Или интересуют программы под Редокс, которые используют напрямую редоксовское API, но при этом опционально могут для чего-то вызвать ещё и relibc? Вообще без понятия, это ж фактически research-проект, под который очень мало чего есть, а уж тем более найти человека, которые оттуда какие-то практические примеры знает - это надо очень постараться. Но опять-таки, чисто из технического устройства ничто такому подходу не противоречит.

- Или какой-то другой вариант? Сформулируйте чётко, тогда будет конкретный ответ.

> $ ldd `which gitea`

Оно будет залинковано на libc если собиралось через cgo, а не go. Кроме того, пишут, что до версии го 1.5 оно линковалось к libc ради DNS-а, но потом и это выпилили. У меня стоит по-моему ровно одна программа, написанная на го - docker, и оно "not a dynamic executable". Можно конечно предположить, что либц там просто внутри, но я натыкался на высказывание о том, что Гугл именно сам для го запилил обращение к сисколлам, и либц они вообще не используют, кроме каких-то частных случаев, а то и вообще без.

> У меня больше нет к Вам вопросов.

Да это ради бога. :)

Ответить | Правка | К родителю #410 | Наверх | Cообщить модератору

413. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 31-Дек-20, 06:54 
> Кроме того, пишут

Забейте. Вы ещё предыдущим своим сообщением убедили меня, что верить Вам не стоит. Остальное не читал, извините, что не ответил.

Ответить | Правка | К родителю #411 | Наверх | Cообщить модератору

414. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 31-Дек-20, 12:43 
> убедили меня, что верить Вам не стоит

Верить? Мда, худшее, что я ожидал для себя из данной дискуссии - это мне бы предоставили контр-аргументы доказывающие, что я неправ. Ну постыдился бы немного, сказал бы спасибо за объяснения и ушёл просветлённым.  А вы мне про веру. Ну мы же не в церкви, при чём тут вера? Я, правда, так и не понял что именно вы хотели узнать, и все мои попытки это выяснить, уточняющие вопросы и так далее были проигнорированны. Так что видимо и предмета разговора нет.

Ответить | Правка | К родителю #413 | Наверх | Cообщить модератору

417. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 02-Янв-21, 11:42 
>> убедили меня, что верить Вам не стоит
> Верить? Мда, худшее, что я ожидал для себя из данной дискуссии -
> это мне бы предоставили контр-аргументы доказывающие, что я неправ.

Во-первых, что бы я с Вами дискутировал, Вам необходимо понимать, о чём вообще речь: что такое связывание, как оно работает, порядок загрузки модулей и так далее.

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

Ответить | Правка | К родителю #414 | Наверх | Cообщить модератору

419. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 02-Янв-21, 20:23 
> исходного Вашего утверждения

Какого?

Ответить | Правка | К родителю #417 | Наверх | Cообщить модератору

420. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 03-Янв-21, 14:29 
>> исходного Вашего утверждения
> Какого?

Перечитайте ветку, коль с памятью плохо.

Ответить | Правка | К родителю #419 | Наверх | Cообщить модератору

356. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (-), 28-Дек-20, 19:33 
> Вот, уже без "подгружаем", а просто "делаем" вызов... софта на Си, к
> которому "любой язык" сбоку прикручен системным загрузчиком, который тоже на Си.


hexdump -C /libexec/ld-elf.so.1 | (head -n3 ;tail)    
00000000  7f 45 4c 46 02 01 01 09  00 00 00 00 00 00 00 00  |.ELF............|
00000010  03 00 3e 00 01 00 00 00  00 90 00 00 00 00 00 00  |..>.............|
00000020  40 00 00 00 00 00 00 00  d8 47 02 00 00 00 00 00  |@........G......|
00024c50  00 00 00 00 00 00 00 00  aa 00 00 00 01 00 00 00  |................|
00024c60  30 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |0...............|
00024c70  48 46 02 00 00 00 00 00  da 00 00 00 00 00 00 00  |HF..............|
00024c80  00 00 00 00 00 00 00 00  01 00 00 00 00 00 00 00  |................|

странный какой-то Cи. Наверное, новый стандарт.


Ответить | Правка | К родителю #352 | Наверх | Cообщить модератору

372. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 29-Дек-20, 10:00 
>[оверквотинг удален]
> 00024c50  00 00 00 00 00 00 00 00  aa
> 00 00 00 01 00 00 00  |................|
> 00024c60  30 00 00 00 00 00 00 00  00
> 00 00 00 00 00 00 00  |0...............|
> 00024c70  48 46 02 00 00 00 00 00  da
> 00 00 00 00 00 00 00  |HF..............|
> 00024c80  00 00 00 00 00 00 00 00  01
> 00 00 00 00 00 00 00  |................|
>
> странный какой-то Cи. Наверное, новый стандарт.

Бывает нечто, о чем говорят: «смотри, вот это новое»; но это было уже в веках, бывших прежде нас.

Figure 3-11: ELF header

char magic[4] = "\177ELF";// magic number
char class; // address size, 1 = 32 bit, 2 = 64 bit
char byteorder; // 1 = little-endian, 2 = big-endian
char hversion; // header version, always 1
char pad[9];
short filetype; // file type: 1 = relocatable, 2 = executable,
// 3 = shared object, 4 = core image
short archtype; // 2 = SPARC, 3 = x86, 4 = 68K, etc.
int fversion; // file version, always 1
int entry; // entry point if executable
int phdrpos; // file position of program header or 0
int shdrpos; // file position of section header or 0
int flags; // architecture specific flags, usually 0
short hdrsize; // size of this ELF header
short phdrent; // size of an entry in program header
short phdrcnt; // number of entries in program header or 0
short shdrent; // size of an entry in section header
short phdrcnt; // number of entries in section header or 0
short strsec; // section number that contains section name strings

(с) Linkers & Loaders by John R. Levine

Ответить | Правка | Наверх | Cообщить модератору

390. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (390), 29-Дек-20, 13:22 
>> странный какой-то Cи. Наверное, новый стандарт.
> Бывает нечто, о чем говорят: «смотри, вот это новое»; но это было уже в веках, бывших прежде нас.
> Figure 3-11: ELF header
> char magic[4] = "\177ELF";// magic number

...
> (с) Linkers & Loaders by John R. Levine

Ну вот видишь - совсем не сишка.


Ответить | Правка | Наверх | Cообщить модератору

405. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 30-Дек-20, 09:48 
>>> странный какой-то Cи. Наверное, новый стандарт.
>> Бывает нечто, о чем говорят: «смотри, вот это новое»; но это было уже в веках, бывших прежде нас.
>> Figure 3-11: ELF header
>> char magic[4] = "\177ELF";// magic number
> ...
>> (с) Linkers & Loaders by John R. Levine
> Ну вот видишь - совсем не сишка.

Даже и не знаю, что сказать Вам по этому поводу... Представьте себе конфету. Шоколадную. Вы же вкушаете её без фантика, верно? Потому она из какао, а не из бумаги с фольгой.

Ответить | Правка | Наверх | Cообщить модератору

334. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от n00by (ok), 28-Дек-20, 10:34 
Ну и вот. Кстати, вместо "статически" в моём вопросе выше должно быть другое слово.
Ответить | Правка | К родителю #222 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру