The OpenNET Project / Index page

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

Первая альфа версия новой микроядерной операционной системы Jari OS

18.06.2009 23:04

Увидела свет первая альфа версия микроядерной ОС Jari, исходные тексты которой распространяются в рамках лицензий GPL и LGPL. В основе Jari OS лежит мультисервисная архитектура и микроядро μString. Система поддерживает многозадачность, многопоточность, SMP, real-time, POSIX API. Драйверы устройств реализованы в виде изолированных системных сервисов. В качестве файловой системы используется ext2, но в будущем разработчики планируют перейти на XFS. В разработке находится реализация TCP/IP стека и GUI интерфейса (в настоящий момент доступна только консоль через framebuffer). Размер установочного iso-образа менее 8 Мб.

  1. Главная ссылка к новости (http://jarios.org/node/30...)
  2. OpenNews: Представлено свободное микроядро Codezero 0.1
  3. OpenNews: Вышло обновление микроядерной операционной системы QNX Neutrino RTOS (6.4.1)
  4. OpenNews: ОС Minix получила финансирование в размере 2.5 млн. евро
Лицензия: CC BY 3.0
Источник: osnews.com
Короткая ссылка: https://opennet.ru/22210-microkernel
Ключевые слова: microkernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (71) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Анон (?), 00:24, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Звучит красиво и интересно! Хорошо что есть такие замечательные проекты, возможно какой-то из таких станет ОСью будущего, как сейчас - Linux. Наверное программы можно будет унаследовать, а драйвера открыты - ничто не мешает развитию :)
     
  • 1.2, Ariel (ok), 00:52, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Отлично, что возродился интерес к микроядрам
     
     
  • 2.5, аноним (?), 01:19, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Отлично, что возродился интерес к микроядрам

    он никогда не пропадал. проблема в финансировании. мажделмашу и красношляпам гнутая ось с микроядром в х. не впилась

     
     
  • 3.22, mike lee (?), 11:26, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    микроядрам микрофинансирование ))
     
  • 3.41, User294 (??), 20:33, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Более того - оно и просто бизнесу никуда не впилось.Просер производительности есть а преимущества - в основном теоретические, а это на хлеб не намажешь и в кошелек не положишь.А вот на более мощные сервера баблосов - надо.Ну а то что бизнес не собирается густо финансировать блажь нужную только теоретикам для их душевного спокойствия думаю все кто не на ручнике уже поняли.Ну, кроме некоторых, особо одаренных, которые грезят микроядрами но настолько оторвались от реалий что при этом забывают некоторые азбучные истины.Например что бизнесу и большинству тех кто пользуется ОС нужен вовсе не музейный экспонат который круто сделан но вот только не бегает или бегает хуже чем менее эстетичные системы.И если кто не понял - таким манером сдох например вагон архитектур процессоров, при засилье х86 уродца.Который может и фуфло, но зато - сравнительно дешев, доступен, а потому - практичен.Да настолько что даже в суперкомпьютеры идет запросто.
     
     
  • 4.42, Ariel (ok), 20:39, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Не забывайте, что Mac OS X использует микроядро Mach, и все real-time системы микроядерные. Если люди сначала думают, потом делают это всегда лучше, но творчество толпы этому не способствует
     
     
  • 5.44, ixrws (ok), 21:43, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А вы не опускайте нюансы, которые наверное намерянно не упомянули. Например mac os x далеко не микроядерная, гибридная - это примерно тоже самое, что часть функциональности linux kernel или freebsd перенести в юзерспейс, а часть оставить внутри ядра. Также real-time системы обычно выполняют весьма специфические функции, и пока системы типо qnx не доказали что они способны превосходно работать на мощьном железе выполняя разные функции одновременно - вкладывать в них деньги межделмаши не будут.
    А что до толпы, то модель разработки свободного софта позволяет и думать и делать, и делать и потом думать, и делать как все, каждый сам выбирает.
     
     
  • 6.46, Ariel (ok), 22:00, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    У неё очень качественный дизайн ядра, она гибридная, микроядро отделено от системы ввода/вывода I/O Kit и от сервисов, выполняемых в пространстве ядра, но вполне обособленных. Что касается Linux, Free BSD - это не одно и то же, у них множество зависимостей внутри монолитного ядра, вы можете вынести в модули, но получите зависимости между модулями т. е. то же самое, но только outside. Чтобы выполнять сервисы в пользовательском пространстве нужен отлаженный механизм сообщений, специальные менеджеры - всё это нужно проектировать изначально.
     
     
  • 7.77, User294 (ok), 02:47, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >от сервисов, выполняемых в пространстве ядра, но вполне обособленных.

    Ха, где-то я это уже видел?Наверное в MSовском франкенштейне.Который тоже в теории какой-то там модульный, обособленный, бла-бла-бла.На практике - 4 мега кернельного кода в Executive, еще 2 в win32k.sys и еще вагон дров.В итоге получается бааааальшая куча костылей в ядре через некоторое время.

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

    Ага, вот только линуксоиды юзают штуки типа FUSE - которые по логике вещей как раз что-то типа драйверов (ФС) в юзерспейсе.

     
  • 5.73, User294 (ok), 02:02, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Не забывайте, что Mac OS X использует микроядро Mach,

    Вылезли маковцы.Какие они все примитивные и предсказуемые.И что самое интересное - как правило ни один понтующийся системщиком и уж тем более ядерщиком ни разу не является.

    >и все real-time системы микроядерные.

    Да что вы говорите?Правда чтоли?Вообще-то так, FYI, во многих случаях когда надо предельно низкое время реакции и его предсказуемость и минимальный разброс - делают однозадачную фирмвару для таракана способного быстро дергаться на события.Часто без уровней привилегий даже.И даже не ос вообще в привычном понимании зачастую.Которая целиком посвящена своей задаче.Вот оно такое - реалтаймнее некуда.Например может обмотки двигателя в реальном времени вместо механических щеток коммутировать.Или там еще что не менее жесткое по реалтайму, с реакцией в считанные такты процессора (в том числе и за счет отсутствия переключения между разными режимами CPU).Ну и вы понимаете что реальное время не ждет и никакие опоздания в таких применениях недопустимы.Как и сбои.Посему самый крутой и злобный реалтайм == простая, однозадачная, вылизанная до битика фирмвара, занимающаяся сугубо своим делом.Которая операционкой вообще не является по большому счету.

    >Если люди сначала думают, потом делают это всегда лучше,
    >но творчество толпы этому не способствует

    Ну вон Таненбаум со своей системой до сих пор "где-то есть".А реальные дизайны хоть немного набравшие популярность - гибридные как максимум.

     
  • 4.51, anonymous (??), 00:23, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Более того - оно и просто бизнесу никуда не впилось.Просер производительности есть а >преимущества - в основном теоретические, а это на хлеб не намажешь и в кошелек не >положишь.А вот на более мощные сервера баблосов - надо.

    Поумерьте свой пыл молодой человек, ынтырпрайз не смотрит на ОС, он смотрит на другие вещи, а именно на то сколько мартышек и как можно нанять и чтобы так чтобы их подменить можно было. Тот объем денег который там крутится позволяет добавить немного мощностей, за счет стабильности, и как вы понимаете верификации. Ваш эпотаж напоминает старый добрый спор - asm vs C , что мол на ассемблере одна инструкция, а вот C компилятор делает на тоже 2-3. Поймите наконец, что для многих задач потеря на переключение контекста (на современных архитектурах это ооооочень малая величина) не имеет значения. Линукс? Верифицировать? Сомнительное занятие если его не кастировать, а если кастрировать - то зачем он такой из себя мало на что способный нужен ?

    Микроядерная архитектура имеет свое предназначение, да не стоит его пихать везде и всюду (что кстати делают с монолитом), и денег на подобные вещи выделяют, выделяли и будут выделять. Не всем интерестна монолитная помойка. Да и ктому же есть системы в которых есть требование - при отказе 2/3 ОС она должна работать, монолит при отказе любой подсистемы свалится, грамотное микроядро нет.

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

     
     
  • 5.76, User294 (ok), 02:41, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Дельно говорите, мне нравится Но вот только си могли предложить нечто чего ассем... большой текст свёрнут, показать
     
  • 4.52, belkin (ok), 01:36, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Более того - оно и просто бизнесу никуда не впилось.Просер производительности есть
    >а преимущества - в основном теоретические, а это на хлеб не
    >намажешь и в кошелек не положишь.А вот на более мощные сервера

    Ты инженер или кто? Прочти QNX Neutrino 6.*. Системная архитектура. Если тебя это не впечатлит, тогда я смирюсь. Это совсем другой мир. Там внутрення работа похожа на работу сети. Вообщем это и есть сеть из процессов. И, чтобы понять какие преимущества на многопроцессорных машинах от микроядерных ОС, нужно хорошенько вообразить в целом систему процессоры-процессы и IPC, как связка всего этого. Пока большинство думают по-старому и ничего кроме защиты процессов друг от друга в микроядерных ОС не видят, а там совсем другая идеология. Вирт, без относительно к ядрам, сказал: исходный текст не нужен, если вы сделаете хороший интерфейс и документацию к нему. Вот как надо думать! Продуманные открытые протоколы взаимодействия функционально завершённых сервисов, а не исходники модулей с раскладкой внутренних системных структур.

     
     
  • 5.54, iZEN (ok), 02:39, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Вирт, без относительно к ядрам, сказал: исходный
    >текст не нужен, если вы сделаете хороший интерфейс и документацию к
    >нему. Вот как надо думать! Продуманные открытые протоколы взаимодействия функционально завершённых
    >сервисов, а не исходники модулей с раскладкой внутренних системных структур.

    Ну так JCP.org все интерфейсы опубликовало в JSR'ах. ;)


     
  • 5.74, User294 (ok), 02:12, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ты инженер или кто? Прочти QNX Neutrino 6.*. Системная архитектура. Если тебя
    >это не впечатлит, тогда я смирюсь. Это совсем другой мир. Там
    >внутрення работа похожа на работу сети. Вообщем это и есть сеть
    >из процессов. И, чтобы понять какие преимущества на многопроцессорных машинах от
    >микроядерных ОС, нужно хорошенько вообразить в целом систему процессоры-процессы и IPC,
    >как связка всего этого.

    Да я понимаю о чем вы - да, можно сделать систему намного красивее.Продуманно, стройно.
    Но в конечном итоге - то же самое делают иначе.Да, кривее.Да, на том что есть.Но тем не менее, оно после всего этого - работает.И черт возьми занимает бОльшую часть из списка топ500 суперкомпьютеров, поэтому у вас будут определенные проблемы с доказательством тезиса насчет лучшей масштабируемости.Неэстетично?Возможно.А кто сказал что лучшие с точки зрения красоты дизайны побеждают?И почему тогда много хорошего и правильного железа подохло в угоду уродцу х86 с архитектурой не сильно моложе тех же *никсов?

    Знаете что мне это напоминает?Это напоминает ворчание архитектора который недовольно ругается: вот дескать сволочи!Застроили город как попало!Уроды!А ведь можно было сделать намного лучше!Особенно если с нуля спроектировать все и вся.Прекрасно, но вот только мы, жители города, знаем его таким и он нам нравится.И не обязательно вовсе чтобы он был строго по линейке вымерян и по проекту слеплен.Он вот такой какой получился за свое время существования.И пусть таким и будет.С системами - зачастую аналогично.А так - знаете, систему команд процессора и все что связано с ним тоже можно было переработать намного лучше чем уродливый х86 с его легаси костылями.Ну и где они, хорошие и правильные?В реальной жизни конкуренцию не осилили? :E

     

  • 1.3, анонимус (?), 01:10, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно а почему:
    "Basically we're don't try to implement a general purpose OS, first goal is a high-band routers and real-time industrial units. But it doesn't mean..."
     
     
  • 2.4, анонимус (?), 01:12, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Складывается такое ощущение, что ядра это вовсе не проблема в среде СПО. Нужны дрова, гамесы, CADы и проч., но только не ядра
     
     
  • 3.6, pavlinux (ok), 02:58, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ...., гамесы, CADы и проч., но только не ядра

    Зачем?

     
  • 3.15, Антимод (?), 09:22, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Гамесы? а работать кто будет? и так отупели все от игр
     
     
  • 4.66, o.k. (?), 11:29, 24/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    дык к сожалению работать на линуксах сейчас могут только айтишники =)
     
  • 2.18, belkin (ok), 10:05, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно а почему:
    >"Basically we're don't try to implement a general purpose OS, first goal
    >is a high-band routers and real-time industrial units. But it doesn't
    >mean..."

    Они видят, что все разработчики прикладного ПО засели в Linux/*BSD/Solaris и не желают смотреть на микроядра (наверно ждут когда Лайнус скомандует :).

     
     
  • 3.45, ixrws (ok), 21:47, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Они видят, что все разработчики прикладного ПО засели в Linux/*BSD/Solaris и не
    >желают смотреть на микроядра (наверно ждут когда Лайнус скомандует :).

    А ему нечего командовать, он делает свою работу. Создавать стабильные интерфейсы для сервисов в userspace - это и сейчас можно делать. Технически, всё уже давно есть, для тех кто хочет конечно. Можно взять и переделать fuse, внести её в ядро. Потом сделать userspace реализацию btrfs допустим, и все будут рады(в том случае если оно будет работать лучше ядерного). То же касается и других подсистем, технических проблем с этим в свободных вёдрах нету, было бы желание.

     
     
  • 4.53, belkin (ok), 01:46, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >А ему нечего командовать, он делает свою работу. Создавать стабильные интерфейсы для
    >сервисов в userspace - это и сейчас можно делать. Технически, всё

    Да я не об этом. Где найти столько энтузиастов портировать туда всё то ПРИКЛАДНОЕ ПО, средства разработки, которое сейчас написали для Linux/BSD/Solaris? Меня это удручает. Я ещё лет много назад пробовал начать двигать QNX или что-нибудь типа Hard. Фиг кого сагитируешь, все на Linux'ах.

     
     
  • 5.60, ixrws (ok), 13:27, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего также не мешает реализовать полную совместимость api поверх qnx. Поверх hurd это уже сделано давно, ну если конечно принимать во внимание крайнюю сырость проекта и учесть что сам он работоспособен не сильно. Создать слой совместимости и ПО не придётся портировать.
    Вообще заметно пока лиш одно, нет желающих делать полный слой совместимости для микроядерных осей или наоборот - делать из монолитных ядер гибридные или микроядерные. То есть не в том дело что кто-то что-то кому-то ограничивает, а банально нет потребности в этом. Вся соль в том, что большинство программистов просто не видит разницы между микроядерными и монолитными ядрами настолько, чтобы начать возится с другой системой. Тот же Линус, будучи удовлетворён работой над linux не имел ни одного аргумента за теорию Таненбаума. А мифами как известно сыт не будеш.
     
  • 4.75, User294 (ok), 02:15, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Потом сделать userspace реализацию btrfs допустим,

    А оно, простите, зачем?Если кто-то надеется что я буду использовать драйвер ФС который падает - он, простите, что-то не понял и настолько застрял в высоких концепциях что забыл - а зачем собственно ФС нужны.И если вспомнить что от ФС нужна скорость, надежность, стабильность и отсутствие потерь данных - всем кто не тормоз понятно, что при выполнении этих требований нет никакой проблемы что ФС живет в ядре(а скорость от этого выигрывает).Если ФС надежная, стабильная и не теряет данные - ее и изолировать не надо.А если у нее падать драйвер будет - она никому не нужна будет.Ни в ядре, ни в юзерспейсе, ни где там блин еще.

     

  • 1.7, pavlinux (ok), 03:12, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я конешно понимаю, что только начинают, но изначально пихать
    printf в ядро, как-то не кошерно,

    иль

    static int always_inline imin(int x, int y)
    {
    return (x < y) ? x : y;
    }

    Ну на кой нужна отдельная функция, хоть и inline???

    Чудненько #define imin(x,y) (x < y) ? x : y

     
     
  • 2.8, anonymous (??), 03:15, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    printf в ядре для отладки, если внимательно смотреть, причем он прозрачно вывод свлй шлет, либо в vga, либо в serial.

    в юзерспейсе printf вообще очень отдельная история.

     
  • 2.9, anonymous (??), 03:17, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Я конешно понимаю, что только начинают, но изначально пихать
    >printf в ядро, как-то не кошерно,

    я там написал,
    >[оверквотинг удален]
    >иль
    >
    >static int always_inline imin(int x, int y)
    >{
    > return (x < y) ? x : y;
    >}
    >
    >Ну на кой нужна отдельная функция, хоть и inline???
    >
    >Чудненько #define imin(x,y) (x < y) ? x : y

    а какая разница ? компилятор при оптимизации с inline как с макросом и поступит - это уже дело вкуса я считаю.


     
     
  • 3.10, аноним (?), 04:02, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >а какая разница ? компилятор при оптимизации с inline как с макросом
    >и поступит - это уже дело вкуса я считаю.

    скорее дело безвкусия. директивы ломают однородность кода
    я за авторский вариант

     
  • 2.11, Илья Евсеев (?), 04:36, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Чудненько #define imin(x,y) (x < y) ? x : y

    Это детский сад тридцатилетней давности.

    imin(i++, j++);
    imin(atoi(argv[1]),10);

     
  • 2.13, MaMoHT (?), 06:24, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Макросы для вычисления выражений плохо изначально.
    Описываю на примере. Вот ваш макрос:
    #define imin(x,y) (x < y) ? x : y

    Какой будет результат для выражения?:
    imin(InX++, InY)

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

     
     
  • 3.21, dq0s4y71 (?), 11:23, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А что насчет этого скажете? :)

    #define min(x, y) ({ \
    typeof(x) _min1 = (x); \
    typeof(y) _min2 = (y); \
    (void) (&_min1 == &_min2); \
    _min1 < _min2 ? _min1 : _min2; })

    #define max(x, y) ({ \
    typeof(x) _max1 = (x); \
    typeof(y) _max2 = (y); \
    (void) (&_max1 == &_max2); \
    _max1 > _max2 ? _max1 : _max2; })

     
     
  • 4.26, demo (??), 13:14, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >А что насчет этого скажете? :)

    Затейливо.
    Смысл пассажа "(void) (&_max1 == &_max2);" ускользает :)
    gcc 3.4.5 с опцией -O2 в простейшем примере сгенерировал одинаковый код для макроса и inline фунции.

    Но мне кажется, что для понимания и написания inline функция проще.

     
     
  • 5.29, Andrey Mitrofanov (?), 13:46, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Затейливо.

    Это же наша Родина... Гм, не то. Это же "современный" Си, коллега. Ж)
    Короче, они у линукса :) "плохому научились".

    >Смысл пассажа "(void) (&_max1 == &_max2);" ускользает :)

    Проверка типов аргументов макроса...

    >одинаковый код для макроса и inline фунции.

    ...во время компиляции. Или около того? Читал где-то. Ссылки нет - плохо, что гугль :) по Си-выражениям и/или символам-не-буквоцифрам не ищет.

    Возможно, ещё на то, что оба аргумента - lvalue.

     
  • 5.32, dq0s4y71 (?), 14:00, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Смысл пассажа "(void) (&_max1 == &_max2);" ускользает :)

    http://mail.nl.linux.org/kernelnewbies/2003-12/msg00007.html

    > Но мне кажется, что для понимания и написания inline функция проще.

    Для понимания - возможно. Но вам придется писать свою инлайн функцию для каждого сравниваемого типа.

     
     
  • 6.38, demo (??), 16:34, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за ссылочку.
     
  • 4.27, pavlinux (ok), 13:29, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > typeof(x) _min1 = (x);   \
    > typeof(y) _min2 = (y);   \
    > (void) (&_min1 == &_min2);  \
    > _min1 < _min2 ? _min1 : _min2; })
    >
    >#define max(x, y) ({    \
    > typeof(x) _max1 = (x);   \
    > typeof(y) _max2 = (y);   \
    > (void) (&_max1 == &_max2);  \
    > _max1 > _max2 ? _max1 : _max2; })

    Вау, здорово.... расскажи по строчками плиз...

     
     
  • 5.33, dq0s4y71 (?), 14:02, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >> (void) (&_min1 == &_min2);  \
    >> _min1 < _min2 ? _min1 : _min2; })
    >>
    >>#define max(x, y) ({    \
    >> typeof(x) _max1 = (x);   \
    >> typeof(y) _max2 = (y);   \
    >> (void) (&_max1 == &_max2);  \
    >> _max1 > _max2 ? _max1 : _max2; })
    >
    >Вау, здорово.... расскажи по строчками плиз...

    http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Statement-Exprs.html
    http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Typeof.html
    http://mail.nl.linux.org/kernelnewbies/2003-12/msg00007.html

     
  • 4.31, Vitaly Chernookiy (?), 13:58, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а можно обьяснить в чем смысл такого извращения?

    я всегда получал удовлетворительный результат следующим образом:

    #define MIN(x,y) (((x) < (y)) ? (x) : (y))

     
     
  • 5.34, Andrey Mitrofanov (?), 14:23, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >а можно обьяснить в

    Нет, нельзя.

    Учитесь читать. Учитесь не писать уже написанный вопрос.

    >я всегда

    Учитесь принимать непознанное и, да - ужас!, учитывать своё незнание.

    Успехов в!

     
  • 2.24, demo (??), 12:52, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Чудненько #define imin(x,y) (x < y) ? x : y

    в дополнение к критике товарищей добавлю -
    во что развернётся imin(a=b,c), imin(a|b,c), imin(a,b)*2 ?

    так что inline рулит :)

     
     
  • 3.30, pavlinux (ok), 13:51, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> Чудненько #define imin(x,y) (x < y) ? x : y
    >
    >в дополнение к критике товарищей добавлю -
    >во что развернётся imin(a=b,c), imin(a|b,c), imin(a,b)*2 ?

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

    imin(a=b,c) =>  a = b; imin(a, c)

    imin(a|b,c) =>  a |= b; imin(a,c);

    imin(a,b)*2 =>  2 * imin(a,b)


     
  • 2.69, el_torito (?), 21:33, 25/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Чудненько #define imin(x,y) (x < y) ? x : y

    int a=2; b=3;

    imin(a++ ,b);
    printf("a=%d\n", a);

    Что будет на выходе?
    А для inline функции a++ выполнится 1 (один) раз после выполнения кода этой функции. Вот поэтому - функция, а не макрос.

     

  • 1.14, Аноним (-), 09:08, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Объясните мне - зачем к inline ставить static, какой в этом сакральный смысл?
     
     
  • 2.16, Жирный ублюдок DBA (?), 09:49, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ak молоток :)
    Помню как все это обсуждали в irc на форестнете :)


     
  • 2.17, Brain (??), 09:51, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Объясните мне - зачем к inline ставить static, какой в этом сакральный
    >смысл?

    Что бы сделать некий аналог private, тобишь она видна только в пределах своего об
    ектного файла.

     
  • 2.20, Serega (??), 10:14, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Объясните мне - зачем к inline ставить static, какой в этом сакральный
    >смысл?

    обычно сужение области видимости этого символа до одного объектного файла

     
  • 2.23, dq0s4y71 (?), 11:34, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Объясните мне - зачем к inline ставить static, какой в этом сакральный
    >смысл?

    http://gcc.gnu.org/onlinedocs/gcc/Inline.html

    When a function is both inline and static, if all calls to the function are integrated into the caller, and the function's address is never used, then the function's own assembler code is never referenced. In this case, GCC does not actually output assembler code for the function, unless you specify the option -fkeep-inline-functions.

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

     

  • 1.19, fMad (?), 10:10, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    VBox всё ещё не поддерживается?
     
  • 1.25, iZEN (ok), 13:10, 19/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Стоит только для этой операционки реализовать спецификации JavaSE и JavaEE и линуксу будет капец в энтерпрайзе.
     
     
  • 2.28, xxx (??), 13:40, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Стоит только для этой операционки реализовать спецификации JavaSE и JavaEE и линуксу
    >будет капец в энтерпрайзе.

    Ты столько цифр не выговоришь. Ну хотя если только в таком же бреду, в котором ты сочинил свой пост. =)

     
     
  • 3.37, fidaj (ok), 15:42, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Стоит только для этой операционки реализовать спецификации JavaSE и JavaEE и линуксу
    >>будет капец в энтерпрайзе.
    >
    >Ты столько цифр не выговоришь. Ну хотя если только в таком же
    >бреду, в котором ты сочинил свой пост. =)

    Цифр, на самом деле, не так уж и много - 10 всего (в десятеричной системе счисления)!
    А Вы какую систему счисления имели ввиду?

     
  • 2.35, User294 (??), 14:47, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Грозилась синица море поджечь... ;)
     
     
  • 3.36, fidaj (ok), 15:41, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда-то, не совсем давно, так говорили и о, тогда совсем неизвестной, ОС Linux...
    Так что не нужно задирать нос в гордыне...
    Все возможно!
     
     
  • 4.39, аноним (?), 19:43, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >так говорили и о, тогда совсем неизвестной, ОС Linux...

    нет такой "OC Linux"
    есть свалка си-кода как ведро к юникс-клону

     
  • 4.40, User294 (??), 20:19, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Так что не нужно задирать нос в гордыне...

    Понимаете, я не верю в идиотские теоретизмы от господ типа iХРЕН.Вот когда он сможет внятно ответить на простые вопросы:
    1) Кто напишет для этой штуки ДРАЙВЕРА под всякие энтерпрайзные фенечки коих много и разных?
    2) Что будет со СКОРОСТЬЮ РАБОТЫ из-за выноса кучи всео в user-mode сервисы?

    Вот тогда и будет разговор.И когда на эти вопросы появится внятный вменяемый ответ который устроит тех кто нынче юзает пингвинуксы - я поверю в перспективы иной ОС.Все просто, как видите ;)

    А что до ОС для high-bandwidth роутеров - например на NAG.RU (вроде нормальный ресурс по части всякой high-bandwidth хренотени?) фрукты рапортуют выигрыш в 2-3 раза от вноса PPTP в ядро (замена тормозного user-mode PPTP на ядерный вариант aka Accel) под тяжелыми нагрузками.Я что-то не думаю что корпоративщики резко побегут юзать более тормозные системы.Они наверняка и так счастливы дикими затратами на покупку мощных серваков под жава-байду и есть резонные сомнения что они побегут покупать еще более мощные сервера с радостными воплями.Особенно сейчас, когда кризис всех придавливает и хрен бы его знает, сколько он еще всем будет икаться.

     
     
  • 5.43, Ariel (ok), 20:45, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Самое главное преимущество микроядра - надёжность, если она решает, люди будут платить. А она решает.
     
     
  • 6.47, ixrws (ok), 22:04, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Самое главное преимущество микроядра - надёжность, если она решает, люди будут платить.
    >А она решает.

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

     
     
  • 7.49, аноним (?), 22:44, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >В случае когда у вас парк серверов, по которым плавно размазана нагрузка,
    >вы уж простите - но срать можно на одну тысячную шанса отказа ядра
    >операционки одного из серверов.

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

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

    состояние устройства не обязано меняться при реинкарнации.

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

    таким образом применение сильно ограничивается

     
     
  • 8.50, Ariel (ok), 23:59, 19/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    In addition, в суперкомпьютерах обычно сервисы linux работают над над каким либо... текст свёрнут, показать
     
     
  • 9.55, anonymous (??), 02:42, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Вспоминаем производительность Да да конеткст свитчи и прочее, очень быстро, г... текст свёрнут, показать
     
     
  • 10.63, User294 (ok), 13:53, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Внимание, вопрос а почему же тогда accel внесенный в ядро делает в 2-3 раза PoP... текст свёрнут, показать
     
  • 8.61, User294 (ok), 13:46, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот скажите, положа руку на сердце, часто вы видите рестарты или взвисы линуха н... текст свёрнут, показать
     
     
  • 9.67, anonymous (??), 13:00, 25/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да Я тоже видел мейнфрейм с дизельным генератором и маленьким юниксом Тем кому... текст свёрнут, показать
     
     
  • 10.71, User294 (ok), 01:46, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Что, правда И с какой же причиной это происходит Неужели отказ драйверов помечен... большой текст свёрнут, показать
     
  • 7.56, anonymous (??), 02:53, 20/06/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Самое главное преимущество микроядра - надёжность, если она решает, люди будут платить.
    >>А она решает.
    >
    >Надёжность, как уже не однократно обсуждалось везде, где появлялось слово микрояд:), достигается
    >не только за счёт операционной системы. Если во встраиваемых миниатюрных системах
    >дублирование аппаратуры применяется, но не слишком. То в этом самом пресловутом
    >ынтерпрайзе редко бывает одинарное или даже двойное дублирование. В случае когда

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

    Точно, в ооо "рашбизнесничегодел" можно и насрать.
    >часто также там работает под гипервизором. В общем это к тому,

    Так, пациент уже уточняет, так что лучше нативная ОС с теми же задержаким что и монолит или куча монолитов ?
    >что чем больше затрат на инфраструктуру, тем больше средств минимизировать отказы.

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

    А я не знал.
    >В воображаемом мире Таненбаума все устройства на всех системах подвержены перезапуску, отключению,

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

    Конечно, все есть, за ваши деньги и буклетики цветные и define другой поставят.
    >кроме запуска поверх железа микроядерной оси.

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

     
     
  • 8.62, User294 (ok), 13:50, 22/06/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А толку то Где его супер-правильные ос Что Аж в универе, для обучения студентико... текст свёрнут, показать
     
     
  • 9.70, obormot (?), 11:46, 26/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    кому то нужный, раз инвестировали в его проект... текст свёрнут, показать
     
     
  • 10.72, User294 (ok), 01:54, 27/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот где-то оно и будет Qnx вон уж давно где-то есть Вам с этого факта сильн... текст свёрнут, показать
     

  • 1.57, yantux (??), 04:17, 20/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть iso image?
     
  • 1.59, yantux (??), 04:24, 20/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Respect!

    Ждём когда будет портирована с amd64 на х86

    :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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