LINUX.ORG.RU

Руководство по созданию простой UNIX-like ОС.

 , , , ,


1

10

Английский студент James Molloy опубликовал в своем блоге пошаговое руководство по созданию ОС для x86 процессоров. Данная ОС имеет все основные части современных операционных систем, таких как виртуальная память, VFS, многозадачность и другие. Данное руководство состоит из фрагментов исходного кода (на С и Assembler) и детального объяснения принципов его работы, а также технических данных о работе процессора, описание некоторых регистров, и т. п.

>>> Руководство

★★★★★

Проверено: svu ()
Последнее исправление: svu (всего исправлений: 1)
Ответ на: комментарий от anonymous

Mach не «тормозной». Сама постановка вопроса некорректна. Это всего лишь «сердцевинка».

Тормоз - это криворукие поделия «сервисов» типа Хёрда или Талиджента от «яйцеголовых» теоретиков.

Рулез - это грамотная разработка типа XNU от практиков.

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

деба свои эксперименты над животным проводит.

ну и у себя в блоке видел безумца поставившего иксы и кеды на него.

havelite
()
Ответ на: комментарий от Bioreactor

Меня теоретики-«хелловордисты» не интересуют.

«Теоретек», вы вкурсе что на «этом поделии» собирается > 70% архива дебиан? - Или для вас emacs тоже «хелловорд»?

myhand
()
Ответ на: комментарий от exception13

Plan9?

Его тоже можно улучшить но для этого нужно виртуально клонировать в суперкомпьютер программистов которые перепишут всё заново. Пока это нереально а когда станет реально, то кривокодеры первыми воспользуются технологией и посадят всех на новый стандарт. Поэтому не стоит слишком надеяться на скорое появление суперправильной ОС, лучше абстрагироваться от них средствами ЯП.

Napilnik ★★★★★
()
Ответ на: комментарий от Bioreactor

Mach не «тормозной». Сама постановка вопроса некорректна. Это всего лишь «сердцевинка».

Mach именно что тормозной. На API его посмотри. Куча всяких проверок прав. Прежде чем передать сообщение работает много кода, по сравнению с L4, например. А т.к. IPC --- наиболее часто юзаемая часть микроядра, то от тормозного IPC всё тормозит.

Рулез - это грамотная разработка типа XNU от практиков.

Почитал я про XNU. Как я и предполагал, просто монолит. «Гибридное ядро» не более чем маркетинговый buzzword, который в самом деле ничего не значит.

Вот, например (http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html)

XNU's Mach component is based on Mach 3.0, although it's not used as a microkernel. The BSD subsystem is part of the kernel and so are various other subsystems that are typically implemented as user-space servers in microkernel systems.

Ну и картинка всё объясняет http://osxbook.com/book/bonus/ancient/whatismacosx/images/arch.jpg

В kernel mode сидит всё. В том числе и драйверы. От mach, как можно легко понять, почитав по ссылкам, нужно только управление памятью и scheduler. И функции этих подсистем дёргаются напрямую, а не через syscall-ы. Т.е. просто монолит, где часть кода взята от mach.

Сравнивать HURD и XNU некорректно.

anonymous
()
Ответ на: комментарий от myhand

вы вкурсе что на «этом поделии» собирается > 70% архива дебиан?

И зависает через 5 минут после загрузки. Спасибо, не надо.

geekless ★★
()
Ответ на: комментарий от havelite

ЛОР-эффект? У меня тоже дало один раз, когда проверил после вашего сообщения. Щас открывает нормально.

anonymous
()
Ответ на: комментарий от geekless

И зависает через 5 минут после загрузки.

У меня не зависло почему-то. Покажите баг.

Спасибо, не надо.

Не нравится - не ешь.

myhand
()
Ответ на: комментарий от Spoofing

Just for fun.
Ну и когда материал другим объясняешь, намного лучше его сам начинаешь понимать. А товарищ James Molloy видимо хочет не только
> верю в ядро linux
но и
> пишу ядро linux
Так что прокачивает скилы.

trex6 ★★★★★
()
Ответ на: комментарий от myhand

Покажите баг.

Кого вам показать? Запись в багтрекере вида «всё зависает намертво, сообщений об ошибках не выдаёт»? Нема такой, не репортил. Я не нанимался волонтером-тестером в мертворожденный проект отлаживать околоядерные баги.

geekless ★★
()
Ответ на: комментарий от urxvt

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

будучи студентом с огромным количеством свободного времени

студент с огромным количеством свободного времени

Не бывает же!

CYB3R ★★★★★
()
Ответ на: комментарий от sane4ek

эээ.. чего?

Множество стандартов, объединяемых словом POSIX вроде как в свободном доступе.

anonymous
()
Ответ на: комментарий от ACR

добавил вас в закладки, по 2.6/3.x ветке непланируете пройтись с фонариком?

Кое-что пытаюсь делать, но пока больше читаю, чем пишу. Сейчас больше интересует ARM. По x86 и без меня уже много написано.

tlx ★★★★★
()

В принципе интересно. И читается легко.

invy ★★★★★
()
Ответ на: комментарий от geekless

Запись в багтрекере вида «всё зависает намертво, сообщений об ошибках не выдаёт»? Нема такой, не репортил.

Ну а кто-ж его знает что у вас там «зависает намертво». Может проблема с hurd непосредственно даже не связана. К примеру, баг в эмуляторе или еще что.

Я не нанимался

Да кто уж вас наймет, болезный...

myhand
()
Ответ на: комментарий от myhand

или еще что

как всегда - всё дело в прокладке

yyk ★★★★★
()

Странное чтиво - в коде какой-то скрытый смысл про мертвую женщину (deadbaba)

int main(struct multiboot *mboot_ptr)
{
  // All our initialisation calls will go in here.
  return 0xDEADBABA; // <--
}
zDemoniac
()

Ну все, теперь Танненбауму точно копец!

anonymous
()
Ответ на: комментарий от olegk

А есть ли подобная статья по ARM?

По-моему, нету, примерно раз в полгода посещает желание что-нибудь такое написать.

Основная проблема в том, что «интель» более-менее один (то есть достаточно большой объем кода будет крутиться практически на всех машинах, до которых можно добраться), а армы все разные, и под каждую плату надо писать свой код.

Из общего идеологического чтива можно посоветовать http://www.amazon.com/dp/1558608745 , а как инициализировать конкретные платы, удобно смотреть у u-boot.

anonymous
()
Ответ на: комментарий от anonymous

под каждую плату надо писать свой код

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

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, раздел 11 Embeded Operating System порадовал. Правда у них пример совсем простой. Вообще на первый взгляд книга очень интересная.

olegk ★★
()

Чем это лучше 6.828?

sv75 ★★★★★
()

Ну вот, теперь есть альтернатива медитации над Linux 0.0.1 :)

hobbit ★★★★★
()

почитал и даже позапускал в bochs. работает, однако. только зачем там bochs загружают из /dev/loop* не понял. можно же прямо из файла

chg ★★★★★
()
Ответ на: комментарий от chg

А ещё круче --- QEMU по TFTP. Никаких образов диска создавать не нужно. Грузись себе с папочки, куда ядро скомпилил.

anonymous
()

Интересная статья, это да. Главное, чтобы не появилось поколение «сделаю новою unix-like подобную ось полностью на русском языке и назову её РусОС»

Nominalus_Externatus
()

Надо Денису Попову дать почитать.

Quasar ★★★★★
()
Ответ на: комментарий от Spoofing

Затем, что Linux применять где ни попадя не имеет смысла. Иногда необходимо написать свою ОС под конкретную задачу. В том же embedded, например. Или это временами бывает проще, чем адаптировать Linux к соответствующим задачам.

Quasar ★★★★★
()
Ответ на: комментарий от Bioreactor

Bioreactor> А чем HURD лучше Mach?

Разве в HURD не GNU Mach?

Quasar ★★★★★
()
Ответ на: комментарий от Bioreactor

Bioreactor> А XNU - это Mach, но c повышенной производительностью.

Фигасе. Оно же:

Bioreactor> (Гибридное ядро для «быдла», а не 100% pure микроядро

Так что уже далеко не Mach.

Bioreactor> 100% pure микроядро для «искусства ради искусства»

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

Quasar ★★★★★
()

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

tmplsr
()
Ответ на: комментарий от tmplsr

А чаго там сложного? Интерпретатор инструкций написать? Или почитать спеки к устройствам и эти устройства проэмулировать?

anonymous
()
Ответ на: комментарий от anonymous

Абалдеть. Функция возвращает дохлую бабу.

Охренеть можно ваще. Выдумают же, затеники!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.