Началась разработка (http://ninetimes.cat-v.org/news/2014/05/24/0/) новой открытой операционной системы Clive (http://lsub.org/ls/clive.html), нацеленной на работу в распределённых и облачных системах. Архитектура (http://lsub.org/export/clivesys.pdf) Clive базируется на идеях, заложенных в ОС Plan 9 (http://plan9.bell-labs.com/plan9/) и Nix (https://code.google.com/p/nix-os/) (не путать с NixOS (http://nixos.org/)). Код Clive написан на языке программирования Go и распространяется под лицензией MIT.Целью проекта является создание средcтв для разработки на языке Go самодостаточных приложений, способных напрямую работать в облачных окружениях без дополнительных прослоек, используя только предоставляемые Clive библиотеки. По сути каждая программа снабжается собственным ядром и может работать поверх гипервизоров без операционной системы. Для сборки требуется специально модифицированный вариант компилятора и runtime-компонентов языка Go, изменённый в плане расширения поддержки сетевых интерфейсов и работы без нижележащей ОС.
Язык Go выбран как предоставляющий средства для параллельного программирования с взаимодействием процессов через каналы, что подходит для создания распределённых программ и позволяет решить проблемы с сетевыми задержками. Основным звеном Clive является "zx", похожий на Plan 9 универсальный протокол доступа к ресурсам через иерархию файлов /zx. Для приложений Clive все ресурсы доступны через иерархический набор файлов, при этом нет различия в доступе к локальным и внешним ресурсам.
URL: http://www.osnews.com/story/27747/Clive_new_operating_system...
Новость: http://www.opennet.me/opennews/art.shtml?num=39851
Любой системный программист начинает с написания собственной ОС. :-)
Ну не текстовый редактор же писать.
> Ну не текстовый редактор же писать.Вменяемого текстового редактора под линукс таки до сих пор нет - либо комбайны для всего, либо примитив не могущий ничего.
vim
Тошно уже на вас, любителей vim, смотреть. Как и на любителей emacs, впрочем.
Тошно на вас, любителей "вменяемых редакторов" смотреть. Хуже только любители всё запихивать в "вебинтерфейсы". Все кто понимает удобство работы с текстом юзают emacs или vim. Вариантов нет.
> vimРечь шла о вменяемом редакторе, а не и Vim
А сможете аргументированно сказать чем он не вменяемый с Вашей точки зрения?
Меня вот абсолютно устраивает хотя бы то, что "vi" есть практически везде, где он мне приходится быть нужным. Для человека, который выходит из него не через kill -9 удобнее редактора я пока не видел.
Спасибо.
sublime...
Notepad++ ?
> Notepad++ ?Подойдёт, давай Илья Муромец, портируй.
Geany
Таки да, geany решает для gui-редактирования. Запускается быстрее прочих, есть подсветка синтаксиса, вкладки, в-общем няшка.
Для консоли vim или nano вполне катят.
А какие сменяемые редакторы есть под другие ОС?
Системный программист на Go?
> Системный программист на Go?Почему бы и нет. Или на Lua.
>Snabb Switch[1] is a high performance userspace driver for 10Gb ethernet switches, written in LuaJIT.
>[1] https://github.com/SnabbCo/snabbswitch
>https://github.com/SnabbCo/snabbswitch/wiki/Device-Driver-Pr...
>http://www.netbsd.org/gallery/presentations/mbalmer/fosdem20...
>I have been optimizing the LuaJIT selftest code to transmit ethernet packets in a loop. I am pretty encouraged by the performance that I see: 3.1% CPU utilization on a low-end Hetzner EX6 machine to saturate a 1Gbps ethernet port with tiny packets. That is 28 nanoseconds of CPU time per packet.
>http://lukego.github.io/blog/2013/01/03/snabb-switchs-luajit...
>> Системный программист на Go?
> Почему бы и нет. Или на Lua.Да, все эти мальчики в облачках такие из себя wannabe-системные программисты.
Точно. А подойдешь к ним поближе - ни перфокарт у них, ни бороды, ни распечатки опкодов m68k.
И как из ушата окатили. Так гадко станет. И обидно.
Пустышки.
Будто вы с перфокартами работали
>Ты ездил в Бобруйск? Ездил в Бобруйск? В Бобруйск ездил? Ездил, а? Ты в Бобруйск ездил, а? Ездил? Чего молчишь? В Бобруйск ездил? А? Чего косишь? А? Заело, да? Ездил в Бобруйск?
батхерт классИк :) узбагойся ...
Вообще-то Go изначально разрабатывался именно как язык для системного программирования, но более удобный чем С/С++. Что вас здесь удивляет?
> Любойстудент вычю-математик, с вероятностью >0,
>начинает
написание курсача
>с написания собственной ОС. :-)
Он начинает с текста сорцев ос
Имеешь в виду emacs ?
Ох-хо-хох...
Мало того, что идея не самая нужная, так ещё и Go.
Скорее всего это сами же гугловцы хотят убедить общественность, что у Go есть потенциал и, если окажется, что чего-то не хватает, дописать это.
Пусть. Главное чтобы соблюдали технику безопасности и не обижали детей.
Ты бы хоть поинтересовался разработчиками. Они участвовали в разработке Plan B, другой операционной системы, основанной на Plan 9, к тому же в Universidad Rey Juan Carlos до сих пор используют plan9 для обучения. Это я к тому, что система прежде всего исследовательская.А вот ты и правда не самый нужный.
Как говорили когда я защищал диплом: "если ваша дипломная работа никому не нужна и не имеет практической ценности - пишите что она исследовательская".
Советско-российские реалии, что ж делать - имитация деятельности на всю катушку. Нет, так не везде.
Правильно. Всех чей дипломом не может потянуть хотябы на нобелевку разжаловать и в поле картошку убирать.
А тех чей может - свеклу.
британским ученым это расскажи
Хм, а мой диплом - глава диссера научного руководителя. ;) 5 дипломников и вот он диссер. ^^
Диссернет 2.0?
> Хм, а мой диплом - глава диссера научного руководителя. ;) 5 дипломников
> и вот он диссер. ^^Ваш руководитель - плагиатор? Или Вы - плагиатор?
>> Хм, а мой диплом - глава диссера научного руководителя. ;) 5 дипломников
>> и вот он диссер. ^^
> Ваш руководитель - плагиатор? Или Вы - плагиатор?Чуваг! ты с какой планеты? Так всегда было в реалиях РАН и тенденций к изменению не видать. Хорошо еще, если на основании твоих работ потом будут публикации и ты соавтор.
> Как говорили когда я защищал диплом: "если ваша дипломная работа никому не
> нужна и не имеет практической ценности - пишите что она исследовательская".Это значит, что ПОКА-ЧТО практическая ценность не очевидна широким массам.
Давно пора! Современные ОС - пережиток прошлого!
На компе должна стоять виртуалка (возможно даже хардварная) + самодостаточные программы-ОС.
> На компе должна стоять виртуалка (возможно даже хардварная) + самодостаточные программы-ОС,в которых стоит виртуалка в которой запущены самодостаточные программы-ОС
, в которых также стоит виртуалка с запущенными самодостаточными программами-браузерами, в которых гоняются программы на джаваскрипте.
Как зациклить эту ветку с комментариями?
goto 1.4
> виртуалка (возможно даже хардварная)Она у вас уже есть - любой современный процессор, сетевые и не только карты, умеющие SR-IOV.
> самодостаточные программы-ОС
Не совсем. Легкий промежуточный слой очень удобен - иначе приложениям придётся самим реализовывать хоть и не всю, но приличную часть функциональности ОС.
> Не совсем. Легкий промежуточный слой очень удобен -И существует уже немеряно времени. POSIXное апи, например.
Очень легкий.
> самодостаточные программы-ОС.DOS?
Amiga - non-dos demo трушнее в этом плане. Совсем никакие апи не используют, все руление железом - самостоятельно.
И понеслось:
1) проблемы с обновлением компонентов - библиотека обновилась - одно приложение, её юзающее, обновилось, пять - нет.2) о едином окружении можно забыть - при такой архитектуре о системе как о целом никто заботиться не будет. Разве что гайдлайны будут жесткие как в эппловском сторе.
3) как только программам понадобится взаимодействовать - они перестанут быть самодостаточными. Появится вагон костылей на этот случай, так как стандартного решения никто не предлагает.
А нужно ровно обратное - единое окружение, дающее стандартные интерфейсы, и компоненты, которые пользователь часто даже не воспринимал бы как отдельный софт - от файл-менеджера (и он же - окошки "открыть/сохранить/прочее", и он же - менеджер коллекций), доступного отовсюду, до адресной книги или переводчика, умеющего перевести любой текст - от веб-страницы до сообщения в диалоговом окне. А на более низком уровне и так всё неплохо.
Нет. Виндовый подход не правильный. Должны быть общие для всех протоколы, а монополия реализации это не наш путь
Монополия реализации в смысле "вшито так, что не отдерёшь" - не наш. Но вариант "лоскутное одеяло" - тоже совсем не радует. Протокол "способ взаимодействия с пользователем" тоже должен быть общим.
Что конкретно вы предлагаете стандартизировать?Стандартизацию API невозможно провести без:
1. "вшито так, что не отдерёшь"
2. монополиста на внесения изменений - (не)коммерческая компания.Без стандартизации API у вас "лоскутное одеяло" из отдельных решений отдельных групп людей и компаний.
Так что или ГУЛАГ и одна и та же каша каждый день в одно и то же время, или необитаемый остров без ни--- (= "свобода") и добывайте еду (одежду, стройте крышу, ..) сами.
С остальными стандартизациями (интерфейса, методики разработки и тестирования приложений, методике помещения приложений в магазин, ..)аналогично.
К слову, в среде Win стандартизирован лишь API. По поводу GUI и методики разработки есть необязательные к исполнению рекомендации (с другой стороны там готовая методика и КУЧА материалов; глупо это игнорировать). А на распространении до недавних пор лежал болт: каждый распространял свои приложения как мог. Только в W8 появился централизованный магазин приложений, но он пока ещё далеко не совершенный.
В Linux другой подход: на стандартизацию API и GUI положен болт, зато стандартизован способ распространения (репозитории).
> Стандартизацию API невозможно провести без:
> 1. "вшито так, что не отдерёшь"
> 2. монополиста на внесения изменений - (не)коммерческая компания.Очередная чушь.
Начиная с того, что уже принятый стандарт вообще должен не изменяться.
(что не значит, что выпускаемые реализации не могут предоставлять дополнительной функциональности. И даже быть основанными на одном-единственном стандарте.)
> проблемы с обновлением компонентов - библиотека обновилась - одно приложение, её юзающее, обновилось, пять - нет.Стало быть нафиг эти пять приложений, если их разработчикам срать на безопасность пользователей.
Если бы их было пять...
У меня программ полный компьютер и почему то ничего не отваливается, моет именно потому что шлаком не пользуюсь?
>проблемы с обновлением компонентов - библиотека обновилась - одно приложение, её юзающее, обновилось, пять - нет.В Plan 9 эту проблему решали как-то вроде. Можно ведь перелинковывать программы (даже без перекомпиляции). А если они со свободными исходниками, можно и перекомпилировать. В конце концов, даже стандартный тулчейн Го имеет не только встроенную систему сборки, но и скачивалку с Гитхаба.
>о едином окружении можно забыть - при такой архитектуре о системе как о целом никто заботиться не будет
>Появится вагон костылей
>А нужно ровно обратное - единое окружение, дающее стандартные интерфейсы, и компоненты, которые пользователь часто даже не воспринимал бы как отдельный софтСвобода — это рабство, POSIX — это Эппл, ага...
Причём даже у Эппла это до конца не получалось. Сторонним поставщикам очень трудно продавать ПО, а особенно сохранять лояльность клиентов, когда их программы не воспринимаются как отдельный софт.
Система с общесистемными shared libraries принуждает более-менее заботиться о совместимости - как авторов приложения, так и авторов библиотеки. С независимыми окружениями вы нарвётесь на то, что попросту куча приложений будет прибита к определённой весрии библиотеки. А что, всё равно ж "всё моё ношу собой". Вообще когда заботишься о целой системе, да еще той, что создаётся из элементов, писанных кучей независимых авторов - в первую очередь надо думать, чтобы желательный вариант поведения софта был удобным для реализации авторами, а нежелательный - неудобным. К примеру - хочешь свои контролы рисовать - знай, что для них не будут работать переводчик и голосовое управление, они могут неправильно располагаться на экране (WM не будет знать, как ими управлять), ты потеряешь часть аппаратного ускорения, потому что замучаешься детектить все фичи, и так далее.
POSIX ничего толком не определяет на высоком уровне. А насчет "не получилось" - у Эппла такого концепта вообще нет. У них есть плюс-минус гайдлайны, но ни разу не компонентная среда. А насчет продаж ПО - мы ж вроде об СПО речь ведём?
>Система с общесистемными shared libraries принуждает более-менее заботиться о совместимости - как авторов приложения, так и авторов библиотеки. С независимыми окружениями вы нарвётесь на то, что попросту куча приложений будет прибита к определённой весрии библиотеки. А что, всё равно ж "всё моё ношу собой"Честно говоря, я не сталкивался с такими людьми, которые бы готовы были писать хороший код, но только из-под палки. Обычно если человек умеет писать хороший код, то он его будет писать, кроме как если ему дать совсем мало времени или совсем мало денег.
Разрабу плевать на совместимость с будущими версиями библиотеки? Тогда причина — одна из трех:
1.Библиотека постоянно меняет свое API. Ну тут уж нельзя винить разраба зависимой от нее программы.
2.Разраб делает "вещь в себе". Например, игру, которая поддерживается ограниченное время — а потом автор ее бросит, и если она перестанет работать на новых версиях ОС, это будет проблема новых версий ОС. Или какую-нибудь софтварную махину из 100500 компонентов для управления компьютерным томографом, которая работает только на сертифицированной версии ОС. Тут у него может быть выбор: или ему дадут использовать нужные библиотеки (тем более, что он на них ещё, может быть, патчи наложил), или он ее будет делать на винде.
3.Разраб дурак. Тогда и программы у него, скорее всего, дурацкие.
>К примеру - хочешь свои контролы рисовать - знай, что для них не будут работать переводчик и голосовое управление, они могут неправильно располагаться на экране (WM не будет знать, как ими управлять), ты потеряешь часть аппаратного ускорения, потому что замучаешься детектить все фичи, и так далее.
А разраб не пользуется переводчиком и голосовым управлением, у него достаточно быстрый компьютер, как и у 80% пользователей. Это тот 0.1%, который, скажем, вынужден пользоваться читалкой с экрана, идет в этом случае лесом. Особенно при разработке СПО.
>А насчет "не получилось" - у Эппла такого концепта вообще нет.
У Эппла есть нечто более похожее на него, чем у Майкрософт. Но мы сейчас говорим о десктопном софте. Если чего-то ни у мелкомягких, ни у эппла нет, то, как сказал Маяковский, может это и не взлетит?
>А насчет продаж ПО - мы ж вроде об СПО речь ведём?
А для разрабов СПО на данный момент, я бы сказал, узнаваемость еще более важна.
— "Ты чего разработал?" — "Браузер Офигениум: форк Хромиума, только у него когда последнюю вкладку закрываешь, открывается новая вкладка, а не закрывается все окно" — "Ух ты, здорово, да ведь я фанат Офигениума! Перешел пять лет назад на него! Сил не было терпеть эту херотень с вкладками! Чем помочь? Пожертвование? Да на здоровье, только скажи, куда деньги слать".
— "А ты чего разработал?" — "Я разработал libfoo, которая стоит в каждом современном дистре Линукса и обеспечивает <IPC между программами/вывод хрипов на динамики/автоматическое определение таймзоны/еще что-нибудь, чего юзер не замечает>. Ты ею каждый день пользуешься" — "Ну, э... удачи, чувак. Я в кишках системы не копаюсь, я не программист, но звучит э... интересно."
1) в план9 эта проблема решена, просто перелинковываешь.2) единое окружение работает с сообщениями. В план9 с самой системой поставляются собранные бинарники для всех поддерживаемых архитектур, т.е. система лишь на этапе инициализации определяется тип железа (арм/мипс/x86) и подключает в качестве корня системы нужные двоичные файлы.
3) программы общаются между собой с помощью сообщений и двунаправленных пайпов. И все работает.
Перелинковать можно, если новая версия не поменяла интерфейс. Стимула не менять его в такой логике - нет.Железо - дело десятое. Единство окружения - это о том, чтобы для следующего уровня всё выглядело стандартным и логичным. В том числе - для конечного уровня - пользователя. А как только начинаются игры в "независимые окружения" - исчезает арзитектурная целостность системы.
Оно и на посиксе всё работает. Дело не в пайпах с сообщениями, а в том, чтобы то, что через них летает, было стандартным. В этом плане одна система очень помогает - если у тебя сто программ используют /etc/hosts и libresolve - хочешь или нет, а ты тоже будешь гео использовать, а не придумывать новый костыль.
> Давно пора! Современные ОС - пережиток прошлого!
> На компе должна стоять виртуалка (возможно даже хардварная) + самодостаточные программы-ОС.Прошлого? Вы должно быть DOS никогда не видели? Реализация озвученной вами "концепции" там цвела и пахла во всю.
Направление верное, но переписывать свои софты "на языке Go" никто не побежит.
Даёшь Gэ на Go!
> Направление верное, но переписывать свои софты "на языке Go" никто не побежит.Ололошеньки! За всех говорим? Тогда за всех и платим! :)
Это я к тому что лично я - побежал. Покурил docker ... и накрыло :) Оценил. Сел переписывать => ты не прав с тебя доллар :)
Если бы мир состоял только из освоивших PHP и часть Python-а, которых, что вполне объяснимо, так вставляет Go - я бы не был так скептичен по поводу возможного переписывания.
Но он, к счастью, состоит не только из них. И что характерно, чем о более сложных, нужных и полезных софтов разработчиках мы говорим, тем всё более и более не из них.
Так что как PostgreSQL перепишете - тогда и поговорим.А для мелких сетевых утилит, которые надо быстро и на коленке, но чтоб и тормозили не слишком, Go подходит очень неплохо.
> А для мелких сетевых утилит, которые надо быстро и на коленке, но
> чтоб и тормозили не слишком, Go подходит очень неплохо.А как дышал! Как дышал! И таки слился :)
Но и Haskell, OCaml и Lua (с LuaJIT и ljsyscall) подходят как минимум не хуже.
Вы это хотели услышать?
А также Scala, C#, F#, Clojure и еще несколько языков.
нада ребятам про inferno рассказать... а то они походу не в курсе
avtory bol'she 10 let usery i, otchasti, kontrib'yutory (odin tochno) plan9, tupoe ty govno
системные вещи на Го особо не попишешь. Да и вообще слишком много магии в нем. Больше напоминает DSL для работы с корутинами. Как ерланг
> системные вещи на Го особо не попишешь.Ыксперд гарантирует это? Ну глянь на докер'а ...
> Да и вообще слишком много магии в нем.Где?!?! А может это просто у тебя слишком мало моска?
>Больше напоминает DSL для работы с корутинами. Как ерлангFacepalm ... какие ещё непонятные слова ты слышал от папиных друзей?
Докер - это обертка к cgroups, насколько я понимаю. Это можно и на петоне написать. В новости же говориться о полноценной ОС на Го (в котором обязательный сборщик мусора, отсутствие указателей и синтаксический минимализм уровня C)Еще папины друзья сравнивали Го с 1С.Бухгалтерией. В ней тоже много нативных сущностей, не реализуемых средствами языка. А язык просто пляшет вокруг них, записывая/получая данные
Наконец-то. Хоть одна здравая идея написать ОС и инструменты на типобезопасном языке.
Это вам сюда насчет типобезопасных языков - http://openmirage.org/
>поверх гипервизоров без операционной системыDOS
>средcтв для разработки на языке Go
iOS
>нацеленной на работу в распределённых и облачных системах
просто баззворды
Это не ОС, а фрэйммворк для программ, написанных на Go.
так фичечка в том, что современным железкам ос, в ее старом виде, становится не нужна, вот и сыпятся идеи новых ос, которые не ос.
дожили юзают виртуализацию для всего подряд, школьники хреновы.
Большинству нужны просто контейнеры
Go, конечно, хорош - но ОС на языке со сборщиком мусора? o_O
А вот АйЗен щастлив.
> Для сборки требуется специально модифицированный вариант компилятора и runtime-компонентов языка Go, изменённый в плане расширения поддержки сетевых интерфейсов и работы без нижележащей ОС.Расходимся, это не ОС написанная на go, это около двух тысяч строчек на С для работы с основными ресурсами.
На Go под эту штуку только приложения можно писать.
Компилятор Go уже переписывают на Go, и когда закончат, не будет никакого C.
> Компилятор Go уже переписывают на Go, и когда закончат, не будет никакого C.И? Какая связь между этой OS и переписыванием go на go? Для работы этой os требуется патченный golang 1.2.
Для новых версий рантайма переделают под cgo или будут использовать свой рантайм или куски рантайма
> Компилятор Go уже переписывают на Go, и когда закончат, не будет никакого
> C.А его что - на С писали?
Так это что, уже даже не Linux-дистрибутив?
А где скриншоты? Как там рабочее окружение выглядит?
> А где скриншоты? Как там рабочее окружение выглядит?Да, тема обоев не раскрыта!
> Основным звеном Clive является "zx", похожий на Plan 9 универсальный протокол доступа к ресурсам через иерархию файлов /zxЕё написали спектрумисты!!! Клайв Синклер и ZX-Speccy дитя его )))
Интересно, насколько совместима с TR-DOS и CP/M...