The OpenNET Project / Index page

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

Проект BOSSMOOL развивает средства разработки драйверов ядра Linux на C++

03.10.2014 23:29

Разработчики индийского дистрибутива BOSS (Bharat Operating System Solution), являющегося ответвлением от Debian GNU/Linux и финансируемого из государственных фондов, развивают собственный вариант ядра Linux - MOOL (Minimalistic Object Oriented Linux), примечательный подготовкой фреймворка для разработки драйверов устройств с использованием объектно-ориентированных технологий на языке C++. Более глобальной целью разработки MOOL является приведение общей кодовой базы ядра к форме, близкой к парадигме объектно-ориентированной разработки.

Кроме фреймворка для разработки драйверов на C++, на первом этапе развития проекта также ведётся работа по сокращению использования глобальных переменных в ядре. Типовые глобальные переменные, используемые несколькими модулями, заменяются на передачу значений в виде аргументов функций. Система также поддерживает создание Message Filter, объектно-ориентированных обвязок для перехвата системных вызовов, которые позволяют наращивать и менять функциональность системных вызовов без изменения существующего кода ядра. Подобные фильтры оформляются в виде модулей ядра, написанных на языке C++.

В качестве основного мотива использования C++ называется упрощение сопровождение кода и сокращение связей внутри ядра. На базе ядра MOOL уже подготовлен экспериментальный вариант дистрибутива, который распространяется под именем BOSSMOOL. Стоит напомнить, что Линус Торвальдс является ярым противником C++ и считает его ужасным языком, сковывающим разработчиков рамками ранее созданных абстракций (например, при желании избавиться от неэффективных абстракций, разработчик сталкивается с тем, что весь код зависит от созданных вокруг этих абстракций объектных моделей и не может исправить ситуацию не переписывая своё приложение).

  1. Главная ссылка к новости (http://www.themukt.com/2014/10...)
  2. OpenNews: В ядро NetBSD добавлена поддержка расширений на языке Lua
  3. OpenNews: Перевод сообщений Linux ядра на русский язык
  4. OpenNews: Разработка модулей для Linux ядра на языке Haskell
  5. OpenNews: Анонсирован проект LLVMLinux, нацеленный на обеспечение сборки ядра Linux при помощи Clang
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40745-linux
Ключевые слова: linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (198) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, pavlinux (ok), 00:33, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И получится Оберон
     
     
  • 2.13, Аноним (-), 01:27, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –9 +/
    > И получится Оберон

    Если бы. C++ - язык для тех случаев, когда все остальные подходят ещё хуже. Оберон - очень лаконичный и предсказуемый, зато C++ позволяет выжать максимум производительности даже при использовании высокоуровневых техник. Для разного они, в общем.

    И, да, C++ в ядре делать практически нечего. Разве что для какой-нибудь очередной Поттеринговской поделки сгодится, которая без ядерной поддержки не взлетает.

     
     
  • 3.14, Аноним (-), 01:31, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А поттеринговые программы - на сях...
     
     
  • 4.46, Аноним (-), 13:55, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот потому пока и на сях. :)
     
     
  • 5.59, Аноним (-), 15:54, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не видел чтобы поттер сильно фанател по плюсам. Писать юзермод на плюсах можно уже сейчас, ничему не противоречит.
     
  • 3.32, _KUL (ok), 03:19, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да почему же, плюсы отличный язык, сложный конечно (читая книги по которому, возникает только больше вопросов), но он очень хорош во многих отношениях.Он как девушка с идеальной фигурой - ни кто до этого такого не видел, боятся разглядывать, а значит и считают это злом, т.к. привыкли к дефектным. Просто зачем переписывать с сей на плюсы, ради сомнительной цели - особенности языка плюсов? КПД стремится к нулю?
    Просто индусам нужно на хлеб зарабатывать, вот и переписывают по очереди на все языки за бюджетные деньги. Не зря же появилась фраза - про их программистов :)
     
     
  • 4.47, Аноним (-), 13:57, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Отличный, да Но сильно специфический Ruby тоже ведь хороший язык, но драйвера ... большой текст свёрнут, показать
     
     
  • 5.68, тоже Аноним (ok), 16:54, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то С++ - язык мультипарадигменный.
    Например, он может использоваться как низкоуровневый язык без ручного управления памятью.
     
  • 4.77, Аноним (-), 19:59, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>[C++]Он как девушка с идеальной фигурой -

    Это точно! Требует постоянного внимания, никогда не знаешь чего ещё вытворит и постоянно ломаеццо *ать !!! :)

     
  • 3.57, pavlinux (ok), 15:32, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я про Оберон, которая ОСь  
     
     
  • 4.195, Аноним (195), 12:46, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так эта ОСь хорошо или плохо?
     
  • 3.103, абырвалГ (?), 22:40, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Выжать максимум производительности помогает компилятор. Язык программирования (любой) - всего лишь способ донести свои мысли до компилятора :) И этот миф, что на каком-то языке программирования, в данном случае  - С++, получится более быстрый код, чем, скажем, на Паскале - мифом и остается :)
     
     
  • 4.119, Аноним (119), 11:08, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для паскаля пока нет крутого компилятора :)
     
     
  • 5.131, Минона (?), 15:43, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    крутой нафик не нужен, нужен - правильный
    у паскаля он есть
     
     
  • 6.133, Аноним (119), 17:11, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > крутой нафик не нужен, нужен - правильный
    > у паскаля он есть

    Там с оптимизацией оочень не хорошо ;)

     
     
  • 7.137, yantux (??), 19:00, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    На реальных приложениях - всё отлично.

    Самое важное для современного софта:
    -минимум ошибок;
    -сопровождаемость кода;
    -код на Си и С++ сопровождать не реально.

     
     
  • 8.152, Аноним (119), 10:02, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не говорит что всё плохо, для чего-то и неоптимизированного js достаточно,... текст свёрнут, показать
     
     
  • 9.153, arisu (ok), 10:22, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    lol ... текст свёрнут, показать
     
  • 8.179, Аноним (-), 06:33, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да вот что-то за дельфистами код сопровождать никто не хочет, а линуксное ядро с... текст свёрнут, показать
     
  • 7.146, Led (ok), 01:48, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> крутой нафик не нужен, нужен - правильный
    >> у паскаля он есть
    > Там с оптимизацией оочень не хорошо ;)

    Сосед по парте тебя обманул.

     
     
  • 8.151, Аноним (119), 09:59, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Даже вспомнить не могу как всех соседей звали, а так да может быть ... текст свёрнут, показать
     
  • 4.196, Аноним (195), 12:49, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нафиг этот регистронечувствительный Паскаль, тогда уж лучше Modula-2. Тем более, что её компилятор теперь есть в составе GCC.
     
  • 2.20, Vkni (ok), 01:37, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > И получится Оберон

    Нет. С++ - это антиОберон.

     
     
  • 3.23, Аноним (-), 01:48, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это попытка сделать реактос, только вместо ядра NT - Linux :).
     
     
  • 4.197, Аноним (195), 12:52, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >только вместо ядра NT - Linux

    А тут без шуток. Вся эта игра вокруг WSL, в конечном итоге, к этому и приведёт.

     

  • 1.2, Аноним (-), 00:41, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +17 +/
    Странно, что индусы не пишут дрова на xml. А получится не оберон, а очередной никому не нужный випнет.
     
     
  • 2.3, Аноним (-), 00:45, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы почти угадали. У них про это упомянуто: "It also allows implementation of policies in form of (object oriented) code instead of only a static policy data (e.g. policy file written in a DSL or XML)."
     
     
  • 3.5, pavlinux (ok), 00:51, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > a static policy data

    шел-код в принципе тоже static policy data, так что ... кто всё это разгребать будет???
    Если напр. спинлок от сетевухи подерётся с другим, у другой сетевухи при многолинковых соединениях...    

     
  • 3.28, Аноним (-), 02:40, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > of policies in form of (object oriented)

    И вот это будет проще майнтайнить? По-моему они зубы заговаривают.

     
  • 2.4, pavlinux (ok), 00:46, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Тут смари чо:

    > объёктно-ориентированных обвязок для перехвата системных вызовов

    Там дыреней будет лет на 10 вперёд с запасом.Поэтому можно легко срубить бабла на саппорте :D

     
     
  • 3.10, Психиатр (ok), 01:07, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Поэтому можно легко срубить бабла на саппорте :D

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

     
     
  • 4.15, Аноним (-), 01:31, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +10 +/
    > блин, павлин за последнее время стал умные вещи говорить

    Да павлин как стоящие часы - два раза в сутки показывает правильное время :).

     
     
  • 5.26, ананим (?), 02:18, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда уж календарный листок.
    За 4 октября.
     
     
  • 6.29, Аноним (-), 02:41, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Тогда уж календарный листок.
    > За 4 октября.

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

     
  • 6.92, Аноним (-), 09:01, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Тогда уж календарный листок.
    > За 4 октября.

    да еще и конкретно в субботу?

     
  • 6.198, Аноним (195), 12:55, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что было 4 октября, кроме запуска первого ИСЗ?
     
  • 2.78, Аноним (-), 20:01, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Странно, что индусы не пишут дрова на xml.

    Муха-ха-ха!!! Это 100%, 100500 левел троллинга! Их же любимый фетиш - жаба и хмл ...

     

  • 1.6, Аноним (-), 00:51, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    А что не на Java, Jvm нужна ?
     
     
  • 2.7, Кевин (?), 01:00, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    было уже, не взлетело...
     
     
  • 3.19, freehck (ok), 01:34, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему же не взлетело? Взлетело. Андроидом зовётся. КПД, правда, у этого полёта...
     
     
  • 4.25, Аноним (-), 02:14, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    У андрюши обыкновенное ядро Linux, java там только для рантайма, и то у ВМ своя реализация, а не сановская.

    Не пишите ересь.

     
  • 4.84, pavlinux (ok), 23:31, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    КПД у Андроеда выше 100% и кроме iOS ваще не имеет конкурентов.
    Под Windows/MacOS столько программ нет, сколько под Андроид.
    И только благодаря Андроид любой может себе все, что раньше
    ограничивалось стоимостью железа и софта. Ибо купив кетайский
    Ляо MTK за 50$ или Gresso Radical Black R3 за 3000$, результат
    использования будет абсолютно одинаковый.
     
     
  • 5.97, freehck (ok), 18:00, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > КПД у Андроеда выше 100% и кроме iOS ваще не имеет конкурентов.

    Ну, на вкус и цвет, конечно, но как по мне, оба плохи.

    > Под Windows/MacOS столько программ нет, сколько под Андроид.

    Это, пожалуй, правда. Но толку-то от их количества, если большинство из них - дешёвые поделки нерадивых студентов да вирусописателей?

    > И только благодаря Андроид любой может себе все, что раньше
    > ограничивалось стоимостью железа и софта. Ибо купив кетайский
    > Ляо MTK за 50$ или Gresso Radical Black R3 за 3000$, результат
    > использования будет абсолютно одинаковый.

    Да неужели. Ну, тогда у GNU/Linux тоже потенциал выше 100%, ибо купив китайский ноутбук и накатив на него Debian Вы сможете делать всё то же, что и на новеньком маке.

     
  • 5.107, Аноним (-), 04:02, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > КПД у Андроеда выше 100%

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

     

  • 1.8, Психиатр (ok), 01:05, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    хоспади ...
    вантуз уже индусский чуть меньше чем полностью ...
    так они уже и до ведра добрались ...
     
     
  • 2.16, Аноним (-), 01:32, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > хоспади ...
    > вантуз уже индусский чуть меньше чем полностью ...
    > так они уже и до ведра добрались ...

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

     
  • 2.24, Аноним рус (?), 02:00, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вообще у индусов все шансы повторить успех Китая, сколько шуму подняла на тех. ресурсах, сверхдешевая космическая миссия на Марс, удавшаяся полностью и с первого раза.

    Горы ЙТшников с высокой конкуренцией и соответственно большими требованиями к самосовершенствованию. Да к кстати, посмотрите кто в топах у Гугла, после тройки основателей! ;-)

     
     
  • 3.35, Michael Shigorin (ok), 05:38, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Горы ЙТшников с высокой конкуренцией и соответственно большими требованиями
    > к самосовершенствованию.

    Насколько понимаю, с этими браминами всё далеко не так однозначно.

     
     
  • 4.55, Психиатр (ok), 15:02, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Насколько понимаю, с этими браминами всё далеко не так однозначно.

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

     
  • 2.38, Аноним (-), 09:49, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    "Индусский код" плодят индусы на аутсорс собственно в Индии. А толковые ребята у них очень быстро оттуда уезжают.
     
     
  • 3.93, Аноним (-), 09:46, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > "Индусский код" плодят индусы на аутсорс собственно в Индии. А толковые ребята
    > у них очень быстро оттуда уезжают.

    плодят и плодят

     

  • 1.9, Аноним (-), 01:06, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    тогда уж лучше на rust
     
  • 1.11, Аноним (-), 01:22, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    жабу им уже предлагали?
     
     
  • 2.12, Психиатр (ok), 01:23, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    лучше на C# ведро переписать или на vbs
     
     
  • 3.17, Аноним (-), 01:33, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > лучше на C# ведро переписать или на vbs

    Уже был какой-то прожЕкт от ms. Понятно насколько всем оказался нужен. Ну и си++ туда же пойдет. Торвальдс стопроцентно этим концептуалам волшебную палочку покажет.

     
     
  • 4.21, Психиатр (ok), 01:40, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Торвальдс стопроцентно этим концептуалам волшебную палочку покажет.

    Врядли.
    Он скорее всего даже внимания не обратит, ибо проект мертворождённый.

     
     
  • 5.30, Аноним (-), 02:42, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Он скорее всего даже внимания не обратит, ибо проект мертворождённый.

    Он внимания не обратит, если к нему с этой бнопней не полезут. А если полезут - тогда покажет.

     
  • 4.40, имя (?), 10:53, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже был какой-то прожЕкт от ms

    Singularity.

     
     
  • 5.41, имя (?), 10:54, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Уже был какой-то прожЕкт от ms
    > Singularity.

    И, кстати, проект этот был исключительно исследовательским, в отличие от.


     
     
  • 6.60, Аноним (-), 15:56, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > И, кстати, проект этот был исключительно исследовательским, в отличие от.

    А у этих прожЕкт тоже чисто исследовательский, только они пока об этом еще не знают :)

     
  • 3.53, Zenitur (ok), 14:32, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Лучше на CUDA.
     
     
  • 4.61, Аноним (-), 15:57, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше на CUDA.

    Да чего мелочиться? Сразу на брейнфаке давайте.

     

  • 1.18, all_glory_to_the_hypnotoad (ok), 01:33, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    вот же придурки
     
  • 1.22, Xasd (ok), 01:41, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Стоит напомнить, что Линус Торвальдс является ярым противником C++ и считает его ужасным языком, сковывающим разработчиков рамками ранее созданных абстракций (например, при желании избавиться от неэффективных абстракций, разработчик сталкивается с тем, что весь код зависит от созданных вокруг этих абстракций объектных моделей и не может исправить ситуацию не переписывая своё приложение).

    вот же мозгач Линус! молодец, правильно думает..

    что же будет когда его не станет (из-за автобуса, того-самого)..?

     
     
  • 2.48, Ан (??), 14:12, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А если сишнаую структуру захочешь изменить(заменить существующее поле на другое) то что внезапно весь зависимый софт сам перепишется под новую структуру?

    Вообще в API всегда встают вопросы о поддержке каких-то структур/функций и желании их заменить, переписать. Так что это как-то из пальца высосано. Эта проблема всплывёт как в C++ так и в С.

     
     
  • 3.69, тоже Аноним (ok), 17:01, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Эта проблема всплывёт как в C++ так и в С.

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


     
     
  • 4.98, freehck (ok), 18:21, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А как эта скомпилированная программа на C C узнает сколько памяти нужно выдели... большой текст свёрнут, показать
     
     
  • 5.102, тоже Аноним (ok), 22:35, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Неизменными интерфейсы будут только в том случае, если в интерфейсах используется не структура, а указатель на нее. В этом случае тому коду, который не лезет внутрь структуры, безразлично, что скрывается под void*, а тому, который лезет - ну, тут перекомпиляция при изменениях неизбежна.
     
     
  • 6.104, freehck (ok), 23:29, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я правильно понимаю, что Вы предлагаете 1 В заголовках писать только определен... большой текст свёрнут, показать
     
     
  • 7.116, тоже Аноним (ok), 08:42, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Описание структуры логично вынести из заголовков с API в заголовки, которые будет подключать только тот код, которому это действительно нужно. Остальному перекомпилироваться совершенно необязательно.
     
  • 7.121, Аноним (-), 12:01, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А что делать? Либо поля структуры, их размер, порядок, тип и количество являются частью интерфейса — и тогда мы можем сами выделять память, обращаться к отдельным полям не call get_field1, а mov eax, [struct_var+offset_field1], и т.п., — либо не являются, а вместо них есть абстрактный интерфейс к структуре — функции создания/удаления, геттеры-сеттеры, всякие удобные запросы (типа метода size() для связного списка) — но тогда, увы, появляются накладные расходы за счет косвенности, и полностью их никак не убрать.
     
     
  • 8.124, freehck (ok), 12:36, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Накладные расходы - не такая уж большая плата за новый уровень абстракции Пробл... текст свёрнут, показать
     
     
  • 9.126, тоже Аноним (ok), 13:30, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Могу в ответ посоветовать вам поразмышлять возможно, для подобных задач просто ... текст свёрнут, показать
     
     
  • 10.127, freehck (ok), 13:37, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Извините, но я предпочту закончить этот диалог Он как-то сильно на два монолога... текст свёрнут, показать
     
  • 9.128, Аноним (-), 13:57, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нахрен void Или в С нельзя сказать code struct MEGA_STRUCT typedef struct ME... текст свёрнут, показать
     
  • 5.132, dq0s4y71 (ok), 15:48, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Причём здесь заголовки В Си вы можете написать в заголовке my_object h s... большой текст свёрнут, показать
     
     
  • 6.144, freehck (ok), 01:32, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знал, что можно объявлять структуру, не объявляя сами поля Серьёзно, я продо... большой текст свёрнут, показать
     
     
  • 7.149, arisu (ok), 09:09, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот логичный вопрос-продолжение: а есть ли где-нибудь более подробная справка, в которой
    > такие моменты обозначены?

    да. называется «стандарт языка си». стоит недорого.

     
  • 7.163, dq0s4y71 (ok), 12:45, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ниже ответил
     
  • 5.142, Посторонним В (?), 00:30, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Как бы перекомпилировать ядро с новой версией всё равно ... большой текст свёрнут, показать
     
  • 3.123, bOOster (?), 12:20, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В С++ легче чем в C. Templates рулят, правда не для школьников.
     
  • 3.130, dq0s4y71 (ok), 15:31, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А если сишнаую структуру захочешь изменить(заменить существующее поле на другое) то что внезапно весь зависимый софт сам перепишется под новую структуру?

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

    Вы можете вообще даже не объявлять поля структуры:

    struct my_object;

    struct my_object * my_object_create();
    int my_object_do_something(struct my_object * object);

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

     
     
  • 4.143, Посторонним В (?), 00:38, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И тут как-то внезапно выясняется, что C как бы не должен быть хуже C Вообще ... большой текст свёрнут, показать
     
     
  • 5.162, dq0s4y71 (ok), 12:43, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно выясняется, что если вы хотите использовать какие-то методы класса, класс должен быть определён :)
     
  • 4.145, freehck (ok), 01:34, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вы можете вообще даже не объявлять поля структуры:
    > struct my_object;
    > struct my_object * my_object_create();
    > int my_object_do_something(struct my_object * object);

    Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно объявлять структуры, не объявляя сами поля?
    А то меня очень огорчает тот факт, что о таких вещах я узнаю только сейчас, хотя вроде бы с Си очень давно знаком.

     
     
  • 5.148, arisu (ok), 09:08, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно
    > объявлять структуры, не объявляя сами поля?

    в стандарте, однако. forward declaration называется.

     
     
  • 6.154, freehck (ok), 11:09, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно
    >> объявлять структуры, не объявляя сами поля?
    > в стандарте, однако. forward declaration называется.

    Я думаю, не с проста Вы не приводите ссылок. Я поискал. И стандарт, и forward declaration. И не нашёл этой документации. Arisu, попробуйте быть снисходительным, ибо вещи, которые Вам так очевидны, мне таковыми очень не кажутся.

     
     
  • 7.156, arisu (ok), 11:23, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я думаю, не с проста Вы не приводите ссылок.

    конечно: я предполагаю минимальные навыки гуглежа.

    > Я поискал. И стандарт, и forward declaration. И не нашёл этой документации.

    это прискорбно. я по «c struct forward declaration» нашёл сразу много интересного. тебе гугель поломали.

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

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

    куда уж дальше-то? и направление поиска дал, и ключевые слова… ни разу не написал, что «это должны знать все, а кто не знает — тот лох». ан нет, мало, надо разжевать и в рот положить. пардон, но это уже только за деньги.

     
     
  • 8.161, freehck (ok), 12:43, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Arisu, мне сдаётся, что ты видишь то, что хочешь видеть Интересного мне не надо... большой текст свёрнут, показать
     
     
  • 9.164, arisu (ok), 12:45, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что-то я запамятовал когда мы успели трудовой договор заключить и где моя зарп... текст свёрнут, показать
     
     
  • 10.166, freehck (ok), 12:49, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    upd стандарты http www open-std org jtc1 sc22 wg14 ... текст свёрнут, показать
     
     
  • 11.180, Аноним (-), 06:55, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вот видишь, Кэп конечно бывает редиской с его наездами, но зачастую оказывает... текст свёрнут, показать
     
     
  • 12.183, arisu (ok), 09:37, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    только вот стандарты там маленько не качаются, и текстов нет C11, например, куп... текст свёрнут, показать
     
  • 5.160, dq0s4y71 (ok), 12:40, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это называется tentative definition Задокументировано в стандарте C99, если вам... большой текст свёрнут, показать
     
     
  • 6.168, freehck (ok), 13:28, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо Я нашёл стандарт и прочитал этот кусок Там, вроде, не говорится о стру... большой текст свёрнут, показать
     
     
  • 7.170, dq0s4y71 (ok), 14:52, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Спасибо. Я нашёл стандарт и прочитал этот кусок. Там, вроде, не говорится о структурах.

    А это, собственно говоря, относится ко всем типам. Можно написать:

    int x;

    int x = 1;

    И это будет правильно :)

    > Я на выходных поищу в стандарте определение слов declare и define. Интересно посмотреть, что стандарт говорит по этому поводу.

    Интересно, что даже компиляторостроители иногда не отличают эти термины. Например, разные компиляторы называют разными словами одну и ту же ошибку:

    > error: 'x' undeclared (first use in this function)
    > Undefined symbol 'x' in function main

     

     ....большая нить свёрнута, показать (32)

  • 1.27, Аноним (-), 02:19, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Идея правильная, но язык выбран крайне неудачно. Справедливости ради, выбора тут нет нет.
     
  • 1.31, Ordu (ok), 02:45, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам: если C++ окажется удачнее, то у нас будет ядро лучше, чем linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем поглумиться, повторяя "а Торвальдс предупреждал".
     
     
  • 2.34, Аноним (-), 05:09, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    BeOS
    Haiku
    Symbian
     
     
  • 3.49, Nixman (?), 14:13, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    все в жопе.
     
     
  • 4.63, Аноним (-), 16:02, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > все в жопе.

    Еще ReactOS, где ядро переписывали раза три. Последнее на каком-то урезанном субсете плюсов. А более вменяемые люди не выделывались и просто написали ядро на сях 1 раз, зато нормальное. У реально существующих ОС ядра оптимизированы на то чтобы это работало и желательно быстро и безглючно. А насколько оно концептуально - интересно десятку чудаков на всю планету.

     
  • 4.74, Аноним (-), 18:30, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну Symbian в опе благодаря усилиям маркетолухов и помощи M$.
     
     
  • 5.88, Аноним (-), 08:46, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну Symbian в опе благодаря усилиям маркетолухов и помощи M$.

    А также благодаря у...щности системы. Новое разрешение экрана добавить? На симбиане это героизм и достижение. Поэтому смарты на симбиане нокия улучшала в плане экранов очень неохотно. А уж как этот крап работал с сенсорным экраном - это вообще жесть.

     
  • 2.42, XoRe (ok), 11:39, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
    > C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам:
    > если C++ окажется удачнее, то у нас будет ядро лучше, чем
    > linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем
    > поглумиться, повторяя "а Торвальдс предупреждал".

    Проблема в том, что всегда можно будет указать на совершенно иные причины фейла.
    "Внутренние конфликты", "Разное видение у разработчиков", "Сворачивание финансирования" и т.д.
    И типа, "но сама идея хорошая, только неосилили".
    Хотя, вполне возможно, что внутренние конфликты и сворачивание финансирование произошло из за того, что никак не получалось сделать конфетку.
    Но в этом могут и не признаться.

     
     
  • 3.67, Ordu (ok), 16:50, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gt оверквотинг удален Ну вы же понимаете, что чем больше фейлов C на поприще... большой текст свёрнут, показать
     
     
  • 4.108, Аноним (-), 04:29, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > бессильна, а вот probabilistic reasoning очень даже может выкрутится,

    Ваш probablistic reasoning всего лишь то что люди попроще называют опытом и обобщением. Вот так вот и получается что даже грузчик с тремя классами образования на базовом уровне владеет этим предметом. Только не знает об этом.

     
     
  • 5.112, Ordu (ok), 04:52, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> бессильна, а вот probabilistic reasoning очень даже может выкрутится,
    > Ваш probablistic reasoning всего лишь то что люди попроще называют опытом и
    > обобщением. Вот так вот и получается что даже грузчик с тремя
    > классами образования на базовом уровне владеет этим предметом. Только не знает
    > об этом.

    Да-да. И логикой все владеют от рождения, только не знают об этом.

     
     
  • 6.135, Аноним (-), 18:46, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да-да. И логикой все владеют от рождения, только не знают об этом.

    Ну, допустим, не все. Darwin Awards подтверждает - отклонения случаются и к добру не приводят.


     
  • 2.54, Zenitur (ok), 14:36, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
    > C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам:
    > если C++ окажется удачнее, то у нас будет ядро лучше, чем
    > linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем
    > поглумиться, повторяя "а Торвальдс предупреждал".

    Драйвер fglrx на C++. Недавно был "отвязан" от libstdc++.so.5. Он такой плохой из-за плохого отношения к Linux в ATi, а в AMD потратили денег на его починку (оказалось дешевле, чем переписать) и теперь он нормален. И всё-таки если бы он был на Си, проблем с исправлением не было бы изначально.

     
  • 2.62, Аноним (-), 16:00, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
    > C++ для ядерного программирования.

    Вон уже есть реактос. Используйте наздоровье.

    > Запасаемся попкорном и наблюдаем, желая успеха индусам:
    > если C++ окажется удачнее, то у нас будет ядро лучше, чем linux.

    Думаю, экспедиция на Марс отправится раньше.

    > Ну, а если они ошибаются, то мы, по-крайней мере, сможем
    > поглумиться, повторяя "а Торвальдс предупреждал".

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

     
     
  • 3.73, Ordu (ok), 18:29, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вон уже есть реактос. Используйте наздоровье.

    Нет, спасибо

    > Думаю, экспедиция на Марс отправится раньше.

    Я тоже много чего думаю, но при этом различаю умозрительные выводы и факты. И вам рекомендую.

     
     
  • 4.89, Аноним (-), 08:50, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нет, спасибо

    А чего так? :)

    > Я тоже много чего думаю, но при этом различаю умозрительные выводы и факты.

    Это моя ставка на то чем это закончится. Наиболее вероятный по моему мнению сценарий. Возник на основе смотрения на успех других систем с ядрами на плюсах.

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

     
     
  • 5.101, Ordu (ok), 20:41, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Нет, спасибо
    > А чего так? :)

    Не вижу причин. А почему вы спрашиваете? Вы видите какие-либо причины пользоваться ReactOS? С удовольствием ознакомлюсь со списком таких причин.

     
     
  • 6.109, Аноним (-), 04:33, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Не вижу причин. А почему вы спрашиваете?
    > Вы видите какие-либо причины пользоваться ReactOS?

    Ну мало ли. Отдельные экзотичные личности за "зато на плюсах!" или "зато клон ядра NT!" вон многое прощают. Это конечно очень спорные в плане рациональности подходы, но они бывают.

    > С удовольствием ознакомлюсь со списком таких причин.

    Честно говоря я их тоже не вижу. Как минимум для себя.

     
  • 2.72, Аноним (-), 18:18, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Наконец-то кто-то решился на эту экспериментальную проверку непригодности C++ для ядерного программирования.

    Бугага. Таких попыток было... по пояс будет. Самая старая какую могут вспомнить - Chorus.

     

  • 1.36, Аноним (-), 08:31, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    sed /BOSSMOOL/BSOD/
     
  • 1.37, Аноним (-), 08:34, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Весело им будет. В ядре-то только строгая безопасность с исключениями может использоваться (strong exception-safety). Посмотрим, как у них выйдет это сделать. И это только одна из проблем.
     
     
  • 2.70, тоже Аноним (ok), 17:08, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то устраивать kernel panic и на Сях нельзя.
    С++ предоставит возможность хотя бы ловить и обрабатывать проблемы не в каждом возможном месте их возникновения, а общим блоком. То, что в дровах все такие потенциальные проблемы должны обрабатываться, от языка не зависит.

     

  • 1.39, Нанобот (ok), 10:13, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    имхо, давно пора. расширение возможностей ядра, как никак. в идеале должна быть возможность разработки модулей ядра на любых языках
     
     
  • 2.44, XoRe (ok), 12:41, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в идеале должна быть возможность разработки модулей ядра на любых языках

    Напуркуа?
    Вы сами когда в последний раз модули ядра писали?

     
  • 2.64, Аноним (-), 16:06, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > возможность разработки модулей ядра на любых языках

    Ну и как в каком-нибудь бидоне будет выглядеть присвоение адресу 0x100500 значения 0xDEADBEEF? Допустим это memory mapped регистр что-то делающий с вон той железкой. Ну на си - народ прямо так и напишет. Потому что системный ЯП. А вот что будут делать гламурные мальчики-вебдванольчики с высокоуровневым ЯП - не очень понятно. Си используют для системных дел ... потому что он позволяет делать манипуляции, которые по другому только на ассемблере и сделаешь.

     
     
  • 3.75, angra (ok), 19:22, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хмм, да также как и в С - операция присваивания переменной(находящейся в памяти по этому адресу) константного значения. Или вы из тех, кто плодит говнокод, насыщенный магическими числами и копипастой?
     
     
  • 4.90, Аноним (-), 08:56, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Так в сях можно указать что вон та переменная - это вот тот адрес Весь код рабо... большой текст свёрнут, показать
     
     
  • 5.100, Я (??), 20:21, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >Лучше за столько лет все-равно ничего не сделали.

    http://en.m.wikipedia.org/wiki/Oberon_operating_system
    http://www.a2.ethz.ch/

     
  • 5.105, angra (ok), 00:14, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Весь код работы с периферией - куча магических чисел. Сюрприз.

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

    Тебе буквально следующим постом показали как это сделать на питоне. Ниасилил многабукав?
    > вообще смысл высокоуровневого ЯП как раз в том чтобы програмер таким
    > себе мозг не грел. Но это обрубает низкоуровневые возможности.

    С какого перепугу добавление одной возможности обрубает другие? Скажи честно, что в Perl/Ruby/Python не разбираешься.

     
     
  • 6.110, Аноним (-), 04:42, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я его знаю в значении программирования периферии, в данном контексте этого доста... большой текст свёрнут, показать
     
     
  • 7.114, Аноним (-), 05:36, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Слив защитан С LOR Смотри ещё раз, мееееедленно import ctypes g ctypes c_... большой текст свёрнут, показать
     
     
  • 8.138, Аноним (-), 19:10, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, декларация в 3 раза длиннее чем на чистом си, бинарное значение загнать -... большой текст свёрнут, показать
     
     
  • 9.140, angra (ok), 20:05, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Пока ты совсем не ушел в мир фантазий напомню тебе с чего началось Тебе показал... текст свёрнут, показать
     
     
  • 10.181, Аноним (-), 07:00, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А я уже показал еще вариантик - переброс выполнения на фиксированный адрес Что-... текст свёрнут, показать
     
  • 3.79, Аноним (-), 20:50, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем это нужно Чем голый С для этого плох До он для этого _идеален_ Не н... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (12)

  • 1.43, metallica (ok), 12:39, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Индусы понтарезы. ООП в линуксе уже давно в полный рост на благородном C.
    И посмотрел бы как они не POD объекты будут в строгую карту виртуального
    пространства, в которое линкуется ядро, интегрить.  Хотя, может какой
    фреймворк для ядра, для подключения и функционирования С++ модулей, развить и
    получится, но не более. Можно будет модули ядра вантузинтками в Вижукалл Cтудиё
    писать. Ключевое в ядре всегда будет на C.
     
  • 1.45, Аноним (-), 13:36, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот что получается когда веб разработчиков нанять ядро разрабатывать. Лучше бы они деньги потратили на написание модулей к существующему ядру.


     
     
  • 2.111, Аноним (-), 04:44, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > деньги потратили на написание модулей к существующему ядру.

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

     

  • 1.50, manster (ok), 14:15, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плюсы, это ООП все-же. Там где ООП и другие язычки подтянутся.
    Вот только вопрос нужно ли это в ядре и будет ли это отзывчиво?

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

     
     
  • 2.52, manster (ok), 14:16, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Было-бы интересно и rust там увидеть...
     

  • 1.51, vitalif (ok), 14:16, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да они могут хоть уразвиваться. Сами напишут, сами поиграются, сами за**утся поддерживать и выкинут, а в апстрим хрен это чудо кто-то примет :)
     
  • 1.56, Crazy Alex (ok), 15:25, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Весь этот хай - от непонимания.

    В вырожденном виде (без полиморфизма) плюсы - это просто пачка хороших немногословных (по сравнению с сями) интерфейсов со строгой типизацией вообще без потерь скорости работы. Ну да, чтобы так писать, мозг нужен. Но он, в общем-то, и вообще для программирования для ядра пригодится. А какой-нибудь USB,  с его кучей сущностей, на объектном языке куда удобнее писать, потому что сама спецификация, по сути, объектная. Плюс шаблоны в разумных количествах таки очень упрощают жизнь. Я тут пару раз постил ссылки на шаблонный код для AVR - который оптимизировался лучше, чем руками писанный ассемблер, и при этом давал простоту модификации.

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

     
     
  • 2.58, metallica (ok), 15:37, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/

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

    О чём речь? О STL? линуксовые list_head, rb_node в составе всех структур и container_of-
    более производительное решение, чем эти дебильные STL контейнеры, с их инсертом
    копированием (вобще говоря && бесполезен для избежания копирований, такое
    прокатит только с объектами определённой структуры). А обобщение шаблонами  в ядре
    не нужно для 99% всех объектов, которые там существуют.


     
     
  • 3.118, anonymous (??), 08:56, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А обобщение шаблонами  в ядре не нужно для 99% всех объектов, которые там существуют.

    Т.е. списков там на кождом углу нет, неупорядочныых контейнеров нет, FIFO нет, ....

    Замена списка на мап на красно-черных деревьях обошелся ядру в 2.5 года и несколько мегабайт правленного кода. "На попробовть" слишком сложно выходит.

     
     
  • 4.136, dq0s4y71 (ok), 18:58, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы ядро зависело не только от кривой реализации GCC, но и от кривой реализации списков, контейнеров и FIFO?
     
  • 2.65, Аноним (-), 16:09, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > В вырожденном виде (без полиморфизма) плюсы - это просто пачка хороших немногословных
    > (по сравнению с сями) интерфейсов со строгой типизацией вообще без потерь
    > скорости работы. Ну да, чтобы так писать, мозг нужен.

    Чтобы хорошо писать на плюсах - нужен мегамозг. А в ядре любой продолб обернется паникой или разрушением данных к тому же. Если крах игрушки с кодом на 10 метров мы переживем, то вот панику ядра... ну иди да юзай реактос, если тебе бсоды раз в 5 минут доставляют. Как раз последнее ядро на каком-то урезанном варианте плюсов.

     
     
  • 3.66, metallica (ok), 16:43, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Первокурсники подтянулись Вот когда избавитесь от необходимости слушать тот бре... большой текст свёрнут, показать
     
     
  • 4.96, михалыч (ok), 15:57, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    да уж..
    я знаю, что ничего не знаю (
     
  • 2.120, Аноним (-), 11:41, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    полную херню несёшь Типизации в плюсах не больше чем в си Качество оптимизации... большой текст свёрнут, показать
     
  • 2.134, dq0s4y71 (ok), 18:39, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > немногословных (по сравнению с сями)

    Щито?

     

  • 1.71, Аноним (-), 18:06, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Давайте внедрим в ядро boost library ?
     
     
  • 2.80, Аноним (-), 20:56, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    qtcore
     
     
  • 3.91, Аноним (-), 08:59, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > qtcore

    kdelibs :)

     
     
  • 4.94, Ан (??), 12:25, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    неактуально ныне
     

  • 1.76, Аноним (76), 19:22, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    драйвера должны писаться исключительно на ассемблере. всё таки самый низкоуровневый доступ обеспечивают. а все эти промокашки высокого уровня, с тоннами мутных абстракций и зависимых модулей, только тормоза да утечки памяти плодят лишние.
     
     
  • 2.81, тоже Аноним (ok), 20:57, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы что-нибудь знаете про ассемблер, кроме того, что он, теоретически, самый-самый маленький и быстрый? А про причины тормозов и утечек памяти? А про поддержку драйверов и их использование для семейства устройств, а не для одного-единственного? Причем драйвера пишутся для первого, а для последующих, с заранее неизвестным функционалом, их придется вдумчиво переписывать... на ассемблере, ага.
     
  • 2.82, Аноним (-), 21:01, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А что есть С? А высокоуровневый ассемблер и есть! :) Плюсф _тут_ не нужны. Ъ.
     
     
  • 3.83, metallica (ok), 21:58, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А что есть С? А высокоуровневый ассемблер и есть!

    Неправда. C-абстрактная машина, cостоящая, исключительно, из абстрактных
    сущностей и их отношений, описываемых соответствующим документом, называемым стандартом.
    Асм, по определению, независимо от разновидностей синтаксиса,
    определяется спекой на мнемоники набора инструкций конкретной arch.

     
     
  • 4.85, pavlinux (ok), 23:52, 04/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > независимо от разновидностей синтаксиса, определяется спекой
    > на мнемоники набора инструкций конкретной arch.

    Фсё, приплыли, Java - ассемблер.

     
     
  • 5.86, angra (ok), 06:13, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только если каждая команда джавы порождает ровно одну инструкцию джава машины. То есть является мнемоникой для байткода. Я не знаю джаву, но весьма сомневаюсь, что дела в ней обстоят именно так.
     
     
  • 6.87, pavlinux (ok), 07:00, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Только если каждая команда джавы порождает ровно одну инструкцию джава машины.

    То есть, если написать, CMP AX, 0, а гадкий ассемблер  переделает это в  TEST AX, AX - значит это не ассемблер?  А SMP режиме, ваще ж..па. :)  

    Вы уж определитесь тут...

     
     
  • 7.106, angra (ok), 00:17, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > То есть, если написать, CMP AX, 0, а гадкий ассемблер  переделает
    > это в  TEST AX, AX - значит это не ассемблер?

    Это уже оптимизации со стороны транслятора. Также как и макросы типа .IF к самому языку ни разу не относится.


     
  • 4.113, Аноним (-), 04:54, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Асм, по определению, независимо от разновидностей синтаксиса,
    > определяется спекой на мнемоники набора инструкций конкретной arch.

    Попробуй код типа



    void _start(void)
    {
            ((void (*)(void))0xffff0020)();
    }



    выполнить на произвольной платформе :). Не забудь рассказать что получилось.

    Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :) С технической точки зрения это переход на адрес 0xffff0020 и выполнение того что там находится. Без знания этим кодом что там вообще за фигня :). Такой вот "платформонейтральный, типа" способ записать нечто типа JMP 0xffff0020. Насколько такая штука платформенно нейтральна - ну вы поняли, еще меньше чем ассемблер проца под который этот трюк делается, ибо подразумевает вообще конкретный SoC :)

     
     
  • 5.115, Аноним (-), 05:42, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :)

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


     
     
  • 6.117, тоже Аноним (ok), 08:47, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты таки закручиваешь гвозди и забиваешь шурупы.

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

     
  • 6.139, Аноним (-), 19:36, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Парень у тебя большие проблемы с головой. Ты таки закручиваешь гвозди и
    > забиваешь шурупы.

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

     
  • 6.190, pavlinux (ok), 01:32, 12/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :)
    > Парень у тебя большие проблемы с головой. Ты таки закручиваешь гвозди и
    > забиваешь шурупы.

    Если шуруп забить и провернуть на один оборот, будет тоже самое, только быстрее (см. PHP)
    Иль вы сайты на С++ пишете?

     
  • 2.95, Аноним (-), 14:04, 05/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >драйвера должны писаться исключительно на ассемблере

    Открываем linux-3.XX.YY/arch/ и считаем количество аппаратных архитектур (я 29 насчитал). И это не считая того, что внутри каждой архитектуры могут быть процессоры разных поколений, которые поддерживают или неподдерживают какие-то конкретные машинные инструкции. И что, для всех вариантов на ассемблере написать драйвер одного и того же устройства, например, для сетевухи?

     

  • 1.99, Seyko (?), 18:41, 05/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По теме: что там MOOL развивает? Скачать можно пример модуля hello_word и исходники ядра 2.6.23 с C++ include и runtime. Исходники правленные, patch нет. Никакая система на c++ не портирована. Хотя где-то упоминается, что есть портированный сетевой драйвер. Зачем в ядре RTTI и exceptions -- не ясно. Короче: или отсутствует дополнительная информация, или сообщение -- чистый вброс
     
     
  • 2.125, metallica (ok), 12:41, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем в ядре RTTI и exceptions --

    Понятно, что сначала нужно будет вcю libsupc++ писать специально для ядра.
    Представляю что будет, если индусы решат в новом ядерном _Unwind_RaiseExceptions дёргать INT X.

     
     
  • 3.129, yet another anonymous (?), 14:49, 06/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Представляю что будет, если индусы решат в новом ядерном _Unwind_RaiseExceptions дёргать INT X.

    Вы это сказали так, как будто сейчас в C-шной реализации нет ограничений на код в соответствующих обработчиках.

     
  • 2.147, anonymous (??), 07:44, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем в ядре RTTI и exceptions -- не ясно.

    Да не будет их там.

    Логично задействовать метапрограммирование, классы и типизацию. А виртуальные функции использовать, наверное, не надо.

     
     
  • 3.150, arisu (ok), 09:10, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Логично задействовать метапрограммирование, классы и типизацию.

    и жаль, что в с++ вместо всего этого неудобные костыли.

     
     
  • 4.155, bOOster (?), 11:19, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Логично задействовать метапрограммирование, классы и типизацию.
    > и жаль, что в с++ вместо всего этого неудобные костыли.

    Ты вообще знаешь что такое с++? Если у тебя не хватило серого вещества понять язык, то это не значит что там все плохо.

     
     
  • 5.157, arisu (ok), 11:35, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты вообще знаешь что такое с++?

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

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

    видишь ли, дело в том, что ты-то тоже c++ не знаешь. его вообще не так много людей знают, потому что это куча гуано, рядом с которой дизайн даже не сидел. c++ — это отличный инструмент для того, чтобы сделать простые вещи сложными, а сложные — почти невозможными. и зачастую всё это с синтаксисом, глядя на который perl понимает, что ему ещё есть куда стремиться.

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

    впрочем, фанбои уверены, что язык надо Превозмогать, что инструмент, который легко изучить и понять — не Ъ. но это личные проблемы фанбоев, я использую D и мне хорошо. товарищ Александреску тоже считает, что D лучше c++, можешь ему рассказать, что у него просто мозгов не хватило понять c++.

     
     
  • 6.158, тоже Аноним (ok), 12:20, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Единственное противоречие в этой системе - то, что дорожки, ведущие от С++ к Жабе и Шарпу плотно протоптаны, а к D ведет какая-то заросшая тропа.
    Если он и лучше, и проще - почему? Признаться, у меня вообще "Александреску" и "проще" решительно не стыкуются...
     
     
  • 7.159, arisu (ok), 12:26, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Единственное противоречие в этой системе - то, что дорожки, ведущие от С++
    > к Жабе и Шарпу плотно протоптаны, а к D ведет какая-то
    > заросшая тропа.

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

    > Если он и лучше, и проще - почему? Признаться, у меня вообще
    > "Александреску" и "проще" решительно не стыкуются...

    винда — лучшая ОС. улавливаешь связь?

     
     
  • 8.165, тоже Аноним (ok), 12:48, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    D is for D Artagnan ... текст свёрнут, показать
     
     
  • 9.167, arisu (ok), 12:53, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    D is for 171 Mars 187 , which was the planned name alas, Mars is gone, only ... текст свёрнут, показать
     
     
  • 10.169, yet another anonymous (?), 14:05, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Mars Compilers --- не смогли сделать шаблоны в своем как-бы-плюсовом компиляторе... текст свёрнут, показать
     
     
  • 11.172, arisu (ok), 17:53, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты прекращай упарываться с начала недели оно, конечно, никто всё равно не замет... текст свёрнут, показать
     
  • 6.182, Аноним (-), 07:03, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > употребим только в малых дозах,

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

     
     
  • 7.184, arisu (ok), 09:40, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да ладно тебе, Кэп, на сях обычно как раз большие проекты наворачивают.

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

     
  • 7.185, arisu (ok), 09:44, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > А если кто плюсы юзанул
    > - это обычно уйма кода и бинарь на пять мегов.

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

    но никто не запрещает ни в c++, ни в D не использовать шаблоны, ограничиться структурами и классами. и будет код вполне маленький. собственно, D на bare metal как-то так и используют. ещё и runtime перетачивают, убирая оттуда всё ненужное. получается такой себе Better C.

     
  • 3.171, dq0s4y71 (ok), 15:13, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Логично задействовать метапрограммирование, классы и типизацию.

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

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

    Строгая типизация тоже не нужна. Они же с "железом" работают, которое о типах ничего не знает, поэтому преобразования типов там сплошь и рядом. Можно конечно усложнить жизнь программистам и заставить писать их вместо естественного (type)data заклинания типа reinterpret_cast<...>...

    > А виртуальные функции использовать, наверное, не надо.

    Ну, вот и получается, что если не использовать всё ненужное от С++, то писать надо на Си...

     
     
  • 4.173, yet another anonymous (?), 19:40, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем там нужно метапрограммирование - не понимаю.

    Alexander Stepanov and Paul McJones / Elements of Programming [Addison-Wesley, 2009; ISBN-13 978-0-321-63537-2; ISBN-10 0-321-63537-X]

     
  • 4.176, arisu (ok), 19:58, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем там нужно метапрограммирование - не понимаю.

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

     
  • 4.178, Michael Shigorin (ok), 04:22, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем там нужно метапрограммирование - не понимаю. Они операционку пишут, а не
    > программу бухучёта, поэтому их код должен быть максимально управляем и предсказуем.

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

     
     
  • 5.186, dq0s4y71 (ok), 12:34, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, а ещё Си не умеет динамических строк, эксепшенов и сборщика мусора. Очень бы пригодились в ядре :)
     
     
  • 6.187, arisu (ok), 13:04, 08/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, а ещё Си не умеет динамических строк, эксепшенов и сборщика мусора.
    > Очень бы пригодились в ядре :)

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

     

  • 1.141, arisu (ok), 23:18, 06/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    хорошо, что это индийцы: их говнокод вскорости не сможет поддерживать никто, и в первую очередь они сами. после чего сабжевая мерзость тихо сыграет в ящик.
     
  • 1.174, Archer73 (ok), 19:53, 07/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как называется проблема ООП когда при малейшем изменении реализации класса-предка неожиданно ломается половина нормально работавших классов-потомков?
     
     
  • 2.175, arisu (ok), 19:56, 07/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как называется проблема ООП когда при малейшем изменении реализации класса-предка неожиданно
    > ломается половина нормально работавших классов-потомков?

    хреновая архитектура.

     
  • 2.199, Аноним (195), 13:04, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для чего разработчику базовых классов дали protected и private? Учи матчасть.
     

  • 1.177, Аноним (-), 22:12, 07/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Давно пора. Понятно что весь ворох возможностей C++ по части исключений, rtti, множественного наследования, stl тащить не нужно, но на уровни C с классами его не использовать в XXI веке глупо, потому что код это генерит такой же как на C, но писать нужно в разы меньше, и в те же разы меньше вероятность ошибиться.
     
  • 1.188, Дмитрий Т (?), 13:35, 08/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Если уж браться программировать на С++, то только закончив медитировать над:
    Герб Саттер, Андрей Александреску, «Стандарты программирования на C++».
    Но насколько видел многие люди на С++ сначала пишут, а потом собирают шишки, но до чтения так и не доходят... Так как этот язык имеет обманчивую кажущуюся простоту, а внутри мало кем освоенную груду нюансов.
     
  • 1.189, Аноним (-), 11:10, 10/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вообще с++ это не только ексепшены
    и если их отключать для ядра, получается хороший компактный код
    виндовый гуи win32.sys полностью на С++
    как и многие ядреные модули
     
     
  • 2.191, iosys (?), 08:58, 28/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Но всё же, почему бы и не написать ядро с парадигмой ООП?
    Определить класс ядра и методы к нему:

    class kernel
    {
    // private variables and functions

    public:
        ctrl_memory();      // управление памятью
        ctrl_processes();   // управление процессами
        manager_drivers();  // интерфейс для драйверов
        manager_hardware(); // интерфейс для работы с железом
        // etc...
    };

    что-то в таком роде)) Конечно же, это всё условно.

     
     
  • 3.192, arisu (ok), 09:00, 28/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    иди в гайку, там хорошо и классы.
     
     
  • 4.193, iosys (?), 09:05, 28/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > иди в гайку, там хорошо и классы.

    что за гайка?

     
     
  • 5.194, arisu (ok), 09:11, 28/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> иди в гайку, там хорошо и классы.
    > что за гайка?

    Haiku, открытый наследник BeOS.

     
  • 4.200, Аноним (195), 13:06, 15/01/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Лицензия у ней некошерная.
     

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



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

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