Показать сообщение отдельно
  #23  
Старый 01.01.2012, 06:37
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Таненбаума все хвалят. Я начал читать, но вынес очень мало полезного, и вскоре закрыл. Складывается впечатление, что это пособие "Как сделать очередной unix своими руками". Вторую же книгу не читал, ибо не слышал.
Думаю, в ОСьдеве дело не столько в чтении книг, сколько в осознанном подходе к каждому действию, в приближении к железу (а не абстрагировании от него), в продумывании всех аспектов работы. ИМХО результативнее придумать реализацию определенной задачи (будь то HAL, будь то менеджер памяти, ...), посмотреть, как это уже реализовано в тех же виндах и юниксах, проанализировать и сделать выводы. Если для собственных целей придуманное решение лучше - делать его. Иначе - делать что-то из готовых. Творческий процесс должен быть. Иначе получится клон винды или юникса или, того хуже, монструозный гибрид.
ИМХО единственное, зачем может понадобиться та же книга Таненбаума - чтобы узнать, что же нужно сделать в операционной системе, какие в общих чертах ее компоненты.
Что действительно крайне необходимо изучать - это документации на все подряд, начиная с процессоров и заканчивая всякими интерфейсами аля USB и PCI.
А теперь по поводу жавы. Тут два варианта.
1) Делать обычную ось с жава-машиной. Получится, как писал ChinYan, "Linux с JVM".
2) Делать загрузчик и жава-машину, остальное пытаться сделать на некой модификации жавы. Такая реализация обречена на провал: работать с реальным железом на языке, изначально созданном для максимальной абстракции от железа путем создания своего рода виртуалки - ну это надо знать толк в извращениях. Через N лет просто задолбает делать все через одно широко известное место.
При этом все любимые плюшки жава-программистов при написании ОС благополучно исчезают: если делать "революционную ос", то надо делать ее самому, а следовательно, придется писать и саму java-машину. То еще удовольствие. Если хватает знаний и навыков на написание оной на С/C++/Delphi/Assembler, то уж лучше сразу направить их на написание самой оси на одном из этих языков или их комбинации: проще будет. Ведь в самописной жава-машине будут только те плюшки, которые будут реализованы ее автором.

[offtop to ChinYan]По поводу вируса, лезущего в биос - приведенный выше как раз легко заблокировать (если конечно работать не в винде). Нельзя позволять простым смертным работать с портами (отключается часть про SMI) и нельзя простым смертным работать с хардом напрямую, только через драйвер ФС (отключается часть про MBR). Дрова - только через цифровые подписи и согласия пользователя, без тупых багов с "недоустановленными" драйверами-призраками из винды и все равно только в первое кольцо, как рекомендуют Intel и AMD. Это далеко не стопроцентная защита, но все же большинство вирусов всяких кулхацкеров отсеет. Хотя именно этот вирус вроде бы заблочит обычный виндовый UAC (если, конечно, он включен)[/offtop]
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием