Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.175.182] |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
люди, подскажите пожалуйста, мы с другом пишем операционную систему, но мы только начали писать ядро и загрузчик, возник вопрос, какой Си++ использовать для написания современного ядра: борланд или майкрософт? Если кто-то хочет присоединиться - будет рады, но это на добровольных началах пока что. проект этот коммерческий, но будет использоваться и внутри компании.
|
Сообщ.
#2
,
|
|
|
Цитата papus @ какой Си++ использовать для написания современного ядра Си++ не советую, пишите на обычном Си и компильте в GCC. Цитата papus @ борланд или майкрософт? Ну можно и на них если так хочется, в чем проблемы-то? Сразу скажу, что нужно (и лучше с него и начать) писать загрузчик, рекомендую для этих целей NASM или FASM. И в самом ядре вам потребуется асм код (в виде вставок или отдельных объектных модулей). Цитата papus @ Если кто-то хочет присоединиться - будет рады, но это на добровольных началах пока что. проект этот коммерческий, но будет использоваться и внутри компании. Нет уж, спасибо, покрайней мере пока вы не достигните хотя бы минимального осознания того, чего собираетесь делать. |
Сообщ.
#3
,
|
|
|
Цитата papus @ борланд они сейчас не занимаются разработкой компиляторов. Цитата papus @ проект этот коммерческий, но будет использоваться и внутри компании это как? Бывает софт коммерческий, бывает под лицензией GNU/GPL, да в общем разные лицензии бывают. Внутри какой компании? |
Сообщ.
#4
,
|
|
|
Цитата papus @ какой Си++ использовать для написания современного ядра Я писал загрузчик на fasm и ядро на чистом C, с использованием ассемблерных вставок (для работы с портами и т.п.) Добавлено Только вот стоит ли ваша работа предполагаемой коммерции, если вы даже не можете сходу определиться, на чём писать ось? |
Сообщ.
#5
,
|
|
|
Раньше новые операционные системы обсуждались в разделе "Обсуждаем новые идеи", а сейчас уже вторая подобная тема в разделе "Прочие языки программирования". Если бы какой-то необычный язык, а то всё на С. В общем предлагаю перенести эти темы.
|
Сообщ.
#6
,
|
|
|
Цитата prografix @ стоит, но не все сразу реализовуется. любая серьезная идея, конкретно сходу не определяется, так как можно наделать глупостей и зря потратить время. Добавлено Цитата A.I. @ внутри нашей, которую планируем открывать Добавлено Цитата Хрен @ если писать ядро на ассемблере и на чистом С, то получится система по типу ранних версий unix и windows Добавлено Цитата shm @ я понимаю, все хотят присоединяться к готовым проектам или сразу за деньги. но когда мы закончим первую часть, то кому-то предлагать уже вряд ли будем - не фиг на все готовое присоединяться. ни хотите работать в команде и получить опыт - не нужно. Добавлено Цитата prografix @ может и стоит перенести тему, просто я не знал как продолжить писать в общую тему а не в личку. может и перенесу в другую, если получится, я еще не знаю как вообще темами управлять |
Сообщ.
#7
,
|
|
|
тема боян. подобные срачи возникают на любом среднестатическом форуме примерно раз полгода
Цитата papus @ какой Си++ использовать для написания современного ядра: борланд или майкрософт? если возникают такие вопросы то точно ничего не напишете. это я без трололо говорю а вообще если реально хотите что-то полезное сделать и рвётесь писать ОСи, то лучше присоединяйтесь к ReactOS, пользы будет намного больше. |
Сообщ.
#8
,
|
|
|
Я считаю, что от выбора языка программирования зависит конечный результат. Новая ОС не станет революционной, если в ней не будут использоваться инновационные подходы.
Если желаете, используйте язык C/Модула-2. Но не стоит использовать их уровнем выше, чем аппаратный. А для прикладного ПО стоит выбрать язык, полностью абстрагированный от аппаратного слоя. Можно отталкиваться от языка Оберон, как примера простоты и мощи одновременно. |
Сообщ.
#9
,
|
|
|
Цитата papus @ если писать ядро на ассемблере и на чистом С, то получится система по типу ранних версий unix и windows Ты уверен, что твоя система дотянет хотя бы до сотой части того, что представляет из себя ядро Linux (написаное, на минуточку, преимущественно на C)? И вопрос сейчас не в количестве человек, которые его пишут, а именно в языке программирования. Цитата papus @ я понимаю, все хотят присоединяться к готовым проектам или сразу за деньги. но когда мы закончим первую часть, то кому-то предлагать уже вряд ли будем - не фиг на все готовое присоединяться. ни хотите работать в команде и получить опыт - не нужно. Если бы твои мысли были хоть чуть-чуть отклонены от мысли "Вот мы щас всё, вот мы щас везде, вот мы станем богаты", то ты бы прекрасно понял, что таких как вы тысячи, и у всех далекоидущие планы (которые довольно быстро затухают), и все себе набирают команды по форумам. И очень часто шарящие кодеры, которые решают присоединиться, приходят в команду, а на них смотрят широко распахнутые глазёнки, и ему говорят "Вот, мы тут сделали". А этот кодер смотрит на то, что они сделали и думает "Итиштваюфпень!" и в итоге тупо тратит время на любительскую поделку. Когда у людей есть хоть что-то рабочее (подчеркну - не готовый проект, а рабочая заготовка - хотя бы грамотно написанный в разумные сроки загрузчик), то становится видно, что люди хотя бы знают, что они делают. |
Сообщ.
#10
,
|
|
|
Цитата Romtek @ Я считаю, что от выбора языка программирования зависит конечный результат. Новая ОС не станет революционной, если в ней не будут использоваться инновационные подходы. ЧУШЬ ПОЛНАЯ!!! если всё правильно и грамотно спроектировать и разработать, то даже ось написанная на ассемблере может стать революционной и инновационной. сколько займёт разработка, это другой вопрос. Цитата Romtek @ Если желаете, используйте язык C/Модула-2. Но не стоит использовать их уровнем выше, чем аппаратный. А для прикладного ПО стоит выбрать язык, полностью абстрагированный от аппаратного слоя. ну это очевидно. очевидно что, например, компонент отвечающий за систему аутентификацию и систему безопасности должен быть написан на языке высокого уровня, а драйвер работающий с USB должен быть написан на ассемблере, хотя даже в подсистеме драйверов тоже должна быть своя иерархия компонентов с различной зависимостью от платформы Добавлено Цитата Хрен @ Если бы твои мысли были хоть чуть-чуть отклонены от мысли "Вот мы щас всё, вот мы щас везде, вот мы станем богаты", то ты бы прекрасно понял, что таких как вы тысячи, и у всех далекоидущие планы (которые довольно быстро затухают), и все себе набирают команды по форумам. И очень часто шарящие кодеры, которые решают присоединиться, приходят в команду, а на них смотрят широко распахнутые глазёнки, и ему говорят "Вот, мы тут сделали". А этот кодер смотрит на то, что они сделали и думает "Итиштваюфпень!" и в итоге тупо тратит время на любительскую поделку. очень многие хотят запилить что-то своё с блекджеком и шлюхами, а присоединиться к имеющемуся проекту (благо таких проектов масса и на любой вкус) им просто не позволяет ДНК. и при этом это своё и них быстро затухает и о нём все забывают |
Сообщ.
#11
,
|
|
|
Цитата Ahilles @ ось написанная на ассемблере Кстати, KolibriOS, которая написана полностью на асме и с гуём помещается на дискетку. Как по мне - вполне себе революционно =) Добавлено Цитата Ahilles @ драйвер работающий с USB должен быть написан на ассемблере Не, не должен. Может быть, но не должен. C вполне подходит для таких целей - достаточно на асме реализовать работу с портами и, может быть, где-то с памятью. |
Сообщ.
#12
,
|
|
|
Цитата papus @ если писать ядро на ассемблере и на чистом С, то получится система по типу ранних версий unix и windows Какой напишешь такой и будет практически независимо от языка . Цитата papus @ но когда мы закончим первую часть Что-то мне подсказывает, что с таким подходом вы к ней и не приступите. Цитата Хрен @ Когда у людей есть хоть что-то рабочее (подчеркну - не готовый проект, а рабочая заготовка - хотя бы грамотно написанный в разумные сроки загрузчик), то становится видно, что люди хотя бы знают, что они делают. Полностью согласен. papus, если бы ты знал насколько ты далек от реальности... И не надо думать, что тут умышленно тебя троллят или тем более завидуют. У многих есть опыт разработки "самодельных" ОС как правило это чисто хобби "поиграться" с железом. Цитата Ahilles @ а драйвер работающий с USB должен быть написан на ассемблере Необязательно. Реально на ассемблере требуется писать только первичный загрузчик, а также управление режимом работы центрального процессора и всякие обертки для обработчика прерываний и пр. Цитата Хрен @ Кстати, KolibriOS, которая написана полностью на асме и с гуём помещается на дискетку Ну на самом деле в моей самодельной ОС ядро написано большей частью на Си и я чтобы ка-то наполнить ее приложениями сделал эмуляцию системных вызовов Колибки и DOS'а. Шибко этим не занимался (т. к. мене больше возня с железом нравится), но где-то 60-70% приложений Колибри работает, а вот с ДОСом фейл - выбрал неправильный подход, и тоже есть подобие гуя ну и конечно дрова (естественно только с базовыми возможностями) для почти для всех девайсов моих ПК. Все это дело вместе с jpeg обоями 800х600 умещается (но без приложений) в пол мегабайта. Так что и на ЯВУ можно получить компактный код. |
Сообщ.
#13
,
|
|
|
Цитата shm @ Так что и на ЯВУ можно получить компактный код. Естественно, грамотно написанный сишный код с -Os оптимизацией занимает не намного больше, чем грамотно написанный асмовый код. Тут спору нет =) |
Сообщ.
#14
,
|
|
|
Цитата shm @ Необязательно. Реально на ассемблере требуется писать только первичный загрузчик, а также управление режимом работы центрального процессора и всякие обертки для обработчика прерываний и пр. Цитата Хрен @ Не, не должен. Может быть, но не должен. C вполне подходит для таких целей - достаточно на асме реализовать работу с портами и, может быть, где-то с памятью. работа с портами это уже платформозависимость я же сказал что "подсистеме драйверов тоже должна быть своя иерархия компонентов с различной зависимостью от платформы" и с разными уровнями абстракции |
Сообщ.
#15
,
|
|
|
Цитата Ahilles @ работа с портами это уже платформозависимость Непосредственно работа с портами обычно выносится в отдельные функции и напрямую в коде для этих целей асм вставки никто не использует. К тому же современные девайсы управляются через MMIO, а с такими регистрами вообще на Си работать одно удовольствие, можно создать структуру со всеми регистрами и битовыми полями и работать можно так к примеру: while(mmio->Status.Busy == 1) { ... } mmio->Cmd = 0x20; ... Идея MMIO регистров перенесена на многие архитектуры, поэтому в ядре Linux'а многие подобные драйверы устройств работают на нескольких архитектурах. |