|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 05 Oct 2004 22:00:07 To : Dmitry Ponyatov Subject : Re: написание ядра ОС на С++ -------------------------------------------------------------------------------- Dmitry Ponyatov <Dmitry.Ponyatov@p29.f18.n5057.z2.fidonet.org> wrote: DP> заранее извиняюсь за оффтопик, если кто будет отвечать, прошу в нетмайл DP> есть ли кто, имеющий опыт написания ядер ОС и подобной лабудени на С++ с DP> активным использованием ООП и динамической памяти с использованием gcc DP> (конкретнее DJGPP2) ? какие URLы посоветуете посмотреть ? Hачнем с начала: 1. DJGPP это вообще говоря библиотека такая. ЗАменитель стандартной библиотеки языка C, позволяющий с помощью GCC компилировать программы для ОС MS-DOS, в поставку которой стандартная 32-битная библиотека C почему-то не входит. Кроме собственно библиотеки и необходимых стартовых файлов под этим названием обычно понимают собранный с помощью оной библиотеки комплект инструментов разработки. Писать с помощью DJGPP программы для ОС, отличной от MS-DOS вообще говоря, нельзя. Если очень извратиться, то можно собрать с помощью DJGPP кросскомпилятор GCC для целевой OC и запускать его под DOS, но зачем? Разработкой ОС лучше заниматься под нормальной операционной системой, например под эхотагом. Более того, при необходимости в наше время разрабатывать досовские программы рекомендуется собрать среду разработки c использованием библиотек DJGPP под эхотагом в режиме кросс-компиляции и работать в эхотаге. А отлаживать программы в dosemu или qemu. 2. Разработка ядра ОС отличается тем что ядру стандартная библиотека не доступна - нет её еще в момент загрузки ядра. Более того, большая часть вызовов этой самой стандартной библиотеки как раз и обращается к сервисам, которые это самое ядро должно предоставить. Так что библиотека DJGPP к разработке ОС никоим боком. Хотя надо признать, что в силу ограниченности функциональности ОС MS-DOS рантайм DJGPP берет на себя некоторые функции, которые в принципе присущи ядру ОС. Так что изучение исходников DJGPP для начинающего писателя ОС может оказаться полезным. 3. В силу п.2. использование языка C++ для разработки ядер ОС неудобно. Это язык требует мощной поддержки со стороны рантайм-библиотек - всякие там конструкторы статических объектов и т.д. Фактически, для того чтобы писать ядро на C++ придется разработать специальный C++-рантайм для ядра, отличный от того, которым будут пользоваться приложения, работающие в этой ОС. По-моему, что-то подобное сделали разработчики BeOS, но кроме них никто до такого сумасшествия не доходил. 4. Hу и вообще объектно-ориентированное программирование для ядер ОС - не самый подходящий стиль. -- Я до ста - точно молод. --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/151781400851f.html, оценка из 5, голосов 10
|