Pull to refresh
59
0
megabrain @megabrain

User

Send message
Ребята молодцы, наиболее привлекательная часть проекта, которая родилась у них не так давно, если верить публичным источникам, — BareMetal Node. Да, пусть простой Ethernet внизу лежит (никаких TCP/IP, чисто канальный уровень), да задачи пока сугубо тестовые, но ведь это шаг к облаку! И оно работает.

Что касается самого ядра и того чуда, что их сподвигло к его написанию (я о MikeOS): очень милые системы, особенно для того чтобы показать, как это просто, написать ОС. Организация внутри очень няшная. Другое дело, что от таковой организации многое страдает.

На текущий момент BareMetal идет по пути "Nick Stacky", что неплохо конечно, но они не будут расти в сторону ОС общего назначения, почти уверен в этом. Лишь углубят тот успех, что есть. Вычислительные задачи (по потоку на ядро), коммуникация по сети, параллельные вычисления. Вот, собственно, и все. А больше и не надо. Зачем бороться с гигантами, стабильно засевшими в десктопах и серверах? Можно делать что-то свое, но делать это хорошо.

Архитектура простая и смелая (дальше своих узких целей не уползут, но в их рамках будут чувствовать себя хорошо). Только родной Long Mode, монозадачность, многопоточность, монолитность, ассемблер. Ну что же, удачи!

У них и раньше иногда такие проблемы были. Сразу после установки (только на некоторых машинах) не установлены сочетания клавиш для переключения раскладок. Также при создании новых учетных записей, у «новичков» также не настроены эти сочетания. Простое решение: клик в области уведомлений на апплет раскладок, в меню выбираем «параметры клавиатуры», переходим на вкладку «раскладки», жмем «параметры», раскрываем группу «Клавиша(ы) смены раскладки», настраиваем на свое усмотрение.
До сих пор считаю лучшим ресурсом по защищенному режиму вот этот древний сайт на народе (понятнее никто не писал):
sasm.narod.ru/docs/pm/pm_main.htm

Ну и документация от Intel и AMD всегда на видном месте — первоисточники.
Тогда успехов вам. Возможно это привлечет какое-то количество человек в низкоуровневые области, а в будущем и в открытые проекты, которые надо кому-то развивать. Удачи вам в вашей миссии.
Почитайте www.intel.com/design/pentium/datashts/242016.HTM

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

Мультипроцессорность очень просто реализована в xv6. О ней ниже.
Отличное начинание, вот только каков прок от еще одного туториала по разработке ОС? Комлпексных, толстых книг по этому делу достаточно. Простых и ненавязчивых туториалов тоже в изобилии, правда они по большей части не на родном могучем, а на менее родном заморском.

Вот несколько достойных примеров:

pdos.csail.mit.edu/6.828/xv6/ — великолепная учебная реализация unix v6. И лекции есть. Учитесь на здоровье.

pdos.csail.mit.edu/6.828/2010/schedule.html — а тут их же курс, отличный. И лабораторные по разработке JOS — маленького экзоядра. Попробуйте себя.

jamesmolloy.co.uk/tutorial_html/index.html — хороший туториал. Много чего изложено. Но стоит быть аккуратнее, у автора много «грязного» кода, в чем он несколько раз признавался. Но как материал для ознакомления со всей внутренней ядерной кухней и железом — отлично.

www.brokenthorn.com/Resources/OSDevIndex.html — известный и качественный туториал.

en.skelix.org/skelixos/ — не очень аккуратный, но информативный.

Отдельно по разным вопросам могут помочь:

wiki.osdev.org/Main_Page — куча материалов, просто огромное сообщество.

www.osdever.net/tutorials/index — древний ресурс по любительской разработке ОС.

Обращу внимание на старую русскоязычную серию от lonesome — ищите архивы в сети.

И также несколько советов тем, кто хочет начать, но никак не решается: как можно больше практики, пробуйте под виртуалкой с отладчиком, тестируйте, пишите больше кода, читайте документацию по процессору, спецификации, смотрите много хорошего кода ядер ОС — HelenOS, MINIX3, xv6, Linux, Plan9.
Начните с этого простого туториала: hosted.cjmovie.net/TutMultitask.htm

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

Происходит переключение по прерыванию от таймера и, возможно, некоторым другим. Обертка обработчика прерывания должна досохранить в стек все регистры общего назначения к уже находящимся там EFLAGS, CS и EIP (если произошло переключение из ring 3 в ring 0 там еще и указатель с сегментом пользовательского стека есть), потом вызвать обработчик прерывания, который обращается к планировщику, переключает стек задачи, и если это нужно, адресное пространство. Далее управление возвращается к обертке, которая восстанавливает регистры из стека уже другой задачи.

TSS одна пригодится для того, чтобы производить переключение из ring3 в ring0. В ней придется подменять лишь одно поле — esp0, остальное будет общим для всех ring3 задач.
Достаточно активно пользовался дистрибутивом еще со времени появления первой версии. Это решение мне гораздо ближе, чем тот же «Ковчег», и, честно говоря, сам не понимаю, почему…

В Simply отдыхал (музыка\фото\игры\видео), работал (разработка модулей ядра\системное программирование\создание прикладных приложений для GTK\web-программирование), учился (курсовые\презентации). Сейчас решения, так или иначе связанные с сообществом ALT Linux, уступили на десктопе место Linux Mint 10, что никак не связано с недостатками сего дистрибутива — просто захотелось чего-то новенького.

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

Спасибо коллективу разработчиков Simply, компании ALT Linux и ALT Linux Team за их работу. Вы делаете отличные вещи, ребята и девчонки. Молодцы. Счастья вам в новом году! Да и вообще счастья, успехов, реализации планов, понимания и добрых людей вокруг.
Упс, промахнулся. Автор топика-то не вы. Но, было бы здорово и вас почитать. Не думаете пару-тройку статей написать? Думаю, если вопрос в количестве кармы, то его быстро решат в вашу пользу. Было бы интересно. Всегда интересно видеть взгляд человека, который поварился в этом некоторое время.
TTY был описан и в Linux Device Drivers 3 довольно подробно. А вот от примеров по usb или, так или иначе связанных с сетью, не отказался бы. Спасибо за полезное начинание.
Главное, чтобы новички не закопались с этой замечательной книгой, поскольку многие примеры не работают на текущих ядрах без небольших изменений. Это касается всего, что связано с очередями worqueue, небольшие изменения в примере по прерываниям, перехват системных вызовов потребует элементарного поиска sys_call_table и знания механизмов защиты памяти. Да и прототипы функций многих API ядра часто меняются.

Для того, чтобы совсем не потеряться в ядерном мире и быть в струе, быстро находя изменения, новичкам можно посоветовать the Linux Cross Reference
Разницы никакой нет, будь то физическое или виртуальное устройство. Файл устройства создается именно так, как это представил автор. Разница в том, что в случае с реальным устройством, вы будете использовать этот файл для связи с пространством пользователя, а остальная работа по взаимодействию с устройством в пространстве ядра ложится на ваши плечи.
При обращении к файлу устройства вызываются функции-обработчики действий открытия, закрытия, чтения и записи файла, которые вы можете задать для него, используя структуру file_operations. Вы можете получать данные, которые пользовательская программа записывает в ваш файл устройства, соответствующим образом реагировать, отправлять часть данных реальному устройству через порты ввода-вывода, обрабатывать прерывания от реального устройства и отдавать ответ пользовательскому приложению через тот же файл устройства.

Для реальных проектов иногда лучше подходит обработка ioctl вызовов. Хотя и просто через файл всегда можно реализовать.
BeOS официальная классная была: установщик в архиве около 50 Мб. всего занимал. Милая ОС и безумно быстрая.

Надо текущую Haiku пощупать. А то думал, что они снова в спячку ушли.
Нет. dpkg в системе нет. И не Debian это.
Если вас тошнит от людей, то это первые признаки беды.
Похоже, что это все же медуза. Вот кстати, интересный вопрос: кто-нибудь подскажет, медузы обитают в северных широтах?
Это я и хотел услышать, спасибо. С большой долей вероятности, память подводит именно меня. Причем даже не знаю, почему я пришел к подобному заключению, поскольку давно знаю про сизиф и про процедуру сборки для него пакетов.

Information

Rating
Does not participate
Registered
Activity