ru:about

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ru:about [2013/03/14 19:32]
valerius [Object-oriented]
ru:about [2018/08/17 14:50] (current)
valerius [Помощь проекту]
Line 3: Line 3:
 ==== Что такое osFree? ==== ==== Что такое osFree? ====
  
-osFree это проект по созданию [[wp>​FOSS|открытой]] операционной системы,​ основанной на микроядре [[wp>​L4_microkernel_family|L4]],​ целью которого является бинарная совместимость с [[wp>OS/2|OS/2]] (IA32). Также, возможно параллельное сосуществование API различных операционных систем,​ построенных поверх одного и того же микроядра.+osFree это проект по созданию [[wp>​FOSS|открытой]] операционной системы,​ основанной на микроядре [[wp>​L4_microkernel_family|L4]],​ целью которого является бинарная совместимость с [[ru:os_2|OS/2]] (IA32). Также, возможно параллельное сосуществование API различных операционных систем,​ построенных поверх одного и того же микроядра.
  
 ==== Зачем нужно микроядро?​ ==== ==== Зачем нужно микроядро?​ ====
  
-  * микроядро может служить базой для параллельных API, реализованных поверх него. Эти API могут существовать независимо,​ имея минимальную общую базу, состоящую из самого микроядра и некоторого набора общих сервисов (называемых personality-нейтральными сервисами). Это позволяет иметь ​параллельную (non-layered) реализацию параллельных API.+  * микроядро может служить базой для параллельных API, реализованных поверх него. Эти API могут существовать независимо,​ имея минимальную общую базу, состоящую из самого микроядра и некоторого набора общих сервисов (называемых personality-нейтральными сервисами). Это позволяет иметь ​независимую (non-layered) реализацию параллельных API.
   * API ОС поверх микроядра реализуется полностью в пространстве пользователя,​ оставляя только микроядро в режиме ядра. Такие компоненты ОС как планировщики процессов,​ менеджеры памяти,​ процесс подкачки,​ и даже компоненты,​ осуществляющие прямой доступ к оборудованию и обработку прерываний,​ также перемещены в пространство пользователя.   * API ОС поверх микроядра реализуется полностью в пространстве пользователя,​ оставляя только микроядро в режиме ядра. Такие компоненты ОС как планировщики процессов,​ менеджеры памяти,​ процесс подкачки,​ и даже компоненты,​ осуществляющие прямой доступ к оборудованию и обработку прерываний,​ также перемещены в пространство пользователя.
-  * это позволяет создать устойчивую систему с очень стабильным отлаженным крошечным ядром и менее стабильными компонентами из пространства пользователя,​ которые (как показывает,​ например,​ дизайн [[http://​www.minix3.org/​|Minix]]) могут быть перезапущены (причем,​ даже автоматически) после того, как возникла неисправность.+  * это позволяет создать устойчивую систему с очень стабильным отлаженным крошечным ядром и менее стабильными компонентами из пространства пользователя,​ которые (как показывает,​ например,​ дизайн [[http://​www.minix3.org/​|Minix]]) могут быть перезапущены (причем,​ даже автоматически) после того, как возникла неисправность. Само микроядро может быть очень отлажено,​ и даже верифицировано формальными методами на отсутствие ошибок. Поэтому ошибка в микроядре маловероятна,​ а другие компоненты могут быть не столь критичными.
   * это также позволяет использовать обычные ("​прикладные"​) технологии разработки для драйверов,​ так как драйвер в микроядерной системе не отличается кардинально от обычных приложений.   * это также позволяет использовать обычные ("​прикладные"​) технологии разработки для драйверов,​ так как драйвер в микроядерной системе не отличается кардинально от обычных приложений.
   * микроядерная архитектура также улучшает структурированность системы,​ то есть, зависимости между ее компонентами более четкие. Серверы работают поверх микроядра,​ взаимодействуют только через жестко заданные интерфейсы и скрывают свое внутреннее устройство,​ что имеет четкие параллели с объектно-ориентированным подходом.   * микроядерная архитектура также улучшает структурированность системы,​ то есть, зависимости между ее компонентами более четкие. Серверы работают поверх микроядра,​ взаимодействуют только через жестко заданные интерфейсы и скрывают свое внутреннее устройство,​ что имеет четкие параллели с объектно-ориентированным подходом.
Line 17: Line 17:
 ==== Почему L4? ==== ==== Почему L4? ====
  
-  * L4 это микроядро второго поколения,​ значительно улучшающее общую производительность системы. Это может быть наглядно заметно на примере l4linux. L4linux -- это, в сущности,​ порт обычного ядра Linux на новую архитектуру "​l4"​. Его код, напрямую работающий с оборудованием,​ изменен таким образом,​ что оно становится доступно не напрямую,​ а через механизмы L4. Производительность ядра Linux может быть оценена ​при ​помощью тестов (benchmarks),​ которые показывают потерю всего около 2% производительности,​ по сравнению с "​родным"​ ядром Linux. Мы пробовали запускать l4linux на реальной машине и не заметили никакого различия в производительности. Это показывает,​ что L4 дает замечательную производительность с очень маленькими накладными расходами.+  * L4 это микроядро второго поколения,​ значительно улучшающее общую производительность системы. Это может быть наглядно заметно на примере l4linux. L4linux -- это, в сущности,​ порт обычного ядра Linux на новую архитектуру "​l4"​. Его код, напрямую работающий с оборудованием,​ изменен таким образом,​ что оно становится доступно не напрямую,​ а через механизмы L4. Производительность ядра Linux может быть оценена ​помощью тестов (benchmarks),​ которые показывают потерю всего около 2% производительности,​ по сравнению с "​родным"​ ядром Linux. Мы пробовали запускать l4linux на реальной машине и на глаз ​не заметили никакого различия в производительности. Это показывает,​ что L4 дает замечательную производительность с очень маленькими накладными расходами.
   * Его минимальность и перемещение всей логики работы (policies) вне ядра, с оставлением внутри него только минимального набора механизмов,​ делает его почти универсальным и позволяет реализовать практически любое нужное API.   * Его минимальность и перемещение всей логики работы (policies) вне ядра, с оставлением внутри него только минимального набора механизмов,​ делает его почти универсальным и позволяет реализовать практически любое нужное API.
   * Мы не хотим изобретать велосипед,​ и L4 содержит практически все нужные нам механизмы.   * Мы не хотим изобретать велосипед,​ и L4 содержит практически все нужные нам механизмы.
   * Для L4 уже реализованы наборы готовых сервисов общего назначения,​ то есть, у нас уже есть готовый "​конструктор",​ а не только голое ядро.   * Для L4 уже реализованы наборы готовых сервисов общего назначения,​ то есть, у нас уже есть готовый "​конструктор",​ а не только голое ядро.
   * В качестве базы для Linux personality можно использовать уже готовый l4linux. Он все еще в стадии отладки,​ но почти все, тем не менее, работает. На нашем ноутбуке,​ только PCMCIA модем не заработал,​ из всего оборудования (это можно, впрочем,​ исправить,​ сделав ioremap на другие адреса -- исходные адреса,​ используемые драйвером,​ заняты в L4-based системе). Wi-fi, bluetooth стек, USB стек, файловые системы,​ запись CDROM -- все это заработало! Да, еще одно неудобство:​ так как видео работает поверх родной графической L4 консоли,​ которая на данный момент работает в режиме VESA (только избранные видеокарты поддерживаются с акселерацией),​ то поддержка видео, конечно,​ ограниченная. ​   * В качестве базы для Linux personality можно использовать уже готовый l4linux. Он все еще в стадии отладки,​ но почти все, тем не менее, работает. На нашем ноутбуке,​ только PCMCIA модем не заработал,​ из всего оборудования (это можно, впрочем,​ исправить,​ сделав ioremap на другие адреса -- исходные адреса,​ используемые драйвером,​ заняты в L4-based системе). Wi-fi, bluetooth стек, USB стек, файловые системы,​ запись CDROM -- все это заработало! Да, еще одно неудобство:​ так как видео работает поверх родной графической L4 консоли,​ которая на данный момент работает в режиме VESA (только избранные видеокарты поддерживаются с акселерацией),​ то поддержка видео, конечно,​ ограниченная. ​
-  * Device Driver Environment (DDE) может быть использовано в будущем в качестве модели драйверов устройств. Оно делает возможным портирование драйверов Linux (DDE/Linux) и FreeBSD (DDE/​FreeBSD) в L4 userlevel. Таким образом, ​большая база драйверов Linux может быть использована в будущем. В отличие от драйверов Windows, они доступны в виде исходного кода и могут быть портированы для работы в user-level.+  * Device Driver Environment (DDE) может быть использовано в будущем в качестве модели драйверов устройств. Оно делает возможным портирование драйверов Linux (DDE/Linux) и FreeBSD (DDE/​FreeBSD) в L4 userlevel. Таким образом,​ огромная кодовая база драйверов Linux может быть использована в будущем. В отличие от драйверов Windows, они доступны в виде исходного кода и могут быть портированы для работы в user-level.
  
 ==== Зачем нужна реимплементация OS/2 с нуля? ==== ==== Зачем нужна реимплементация OS/2 с нуля? ====
  
-OS/2 имеет одно из самых стабильных,​ надежных и высокопроизводительных ядер. Написанное примерно на 40% на ассемблере,​ оно очень хорошо оптимизировано и на 100% задействует возможности архитектуры i386. Его модульная структура позволяет легко заменять компоненты более улучшенными и менее ресурсоемкими,​ отрывать GUI, или настраивать систему под надобности пользователя. Она является очень гибко настраиваемой. Нам нравится ее компактное и "​вылизанное"​ API, простота использования и интуитивный гибкий [[wp>​Workplace_Shell|объектно-ориентированный интерфейс]]. Она использует один из лучших общеупотребительных скриптовых языков -- [[wp>​REXX]] -- в качестве встроенного в систему и многие приложения скриптового механизма. OS/2 рекламировалась фирмой IBM как "DOS лучше чем DOS и Windows лучше чем Windows"​. Это правда -- ее VDM была практически лучшей из существующих. И это верно не только для DOS/​Windows. Поддержка Java и XFree86 была также очень мощной. Поэтому,​ мы полюбили OS/2 как мощную интегрирующую платформу (Integration Platform, (TM) by IBM) на основе единого десктопа. Она широко использовалась множеством маргиналов и нонконформистов многие годы и всегда имела свой собственный "way of doing things"​. Мы хотим, продолжать следовать этому пути ;) Мы можем спать спокойно,​ зная, что наша система не популярна среди хакеров и вирусописателей -- они обычно атакуют мейнстрим... Но мы не можем спокойно жить, как раньше -- начиная с декабря 2006 года IBM-овское начальство решило похоронить OS/2, и оставило OS/2 сообществу быстро устаревающую систему и ядро без исходников,​ и, самое главное,​ ухудшающаяся поддержка оборудования. Драйверов стали писать все меньше и меньше,​ и, в основном,​ новые драйвера являются портами с Linux. [[Петиции]] к IBM об открытии исходников также не дали результатов. Тем не менее, мы хотим продолжить жить и работать в OS/2. Самая важная задача -- это написание нового ядра. Нам всегда были интересны эксперименты IBM's с OS/2 поверх микроядра. Мы читали редбук от IBM про OS/2 Warp (PowerPC edition). Поэтому мы с энтузиазмом поддержали идею использования L4 как основы для реализации OS/2 API. Это дало толчок началу этого проекта.+OS/2 имеет одно из самых стабильных,​ надежных и высокопроизводительных ядер. Написанное примерно на 40% на ассемблере,​ оно очень хорошо оптимизировано и на 100% задействует возможности архитектуры i386. Его модульная структура позволяет легко заменять компоненты более улучшенными и менее ресурсоемкими,​ отрывать GUI, или настраивать систему под надобности пользователя. Она является очень гибко настраиваемой. Нам нравится ее компактное и "​вылизанное"​ API, простота использования и интуитивный гибкий [[wp>​Workplace_Shell|объектно-ориентированный интерфейс]]. Она использует один из лучших общеупотребительных скриптовых языков -- [[wp>​REXX]] -- в качестве встроенного в систему и многие приложения скриптового механизма. OS/2 рекламировалась фирмой IBM как "DOS лучше чем DOS и Windows лучше чем Windows"​. Это правда -- ее VDM была практически лучшей из существующих. И это верно не только для DOS/​Windows. Поддержка Java и XFree86 была также очень мощной. Поэтому,​ мы полюбили OS/2 как мощную интегрирующую платформу (Integration Platform, (TM) by IBM) на основе единого десктопа. Она широко использовалась множеством маргиналов и нонконформистов многие годы и всегда имела свой собственный "way of doing things"​. Мы хотим, продолжать следовать этому пути ;) Мы можем спать спокойно,​ зная, что наша система не популярна среди хакеров и вирусописателей -- они обычно атакуют мейнстрим... Но мы не можем спокойно жить, как раньше -- начиная с декабря 2006 года IBM-овское начальство решило похоронить OS/2, и оставило OS/2 сообществу быстро устаревающую систему и ядро без исходников,​ и, самое главное,​ ухудшающаяся поддержка оборудования. Драйверов стали писать все меньше и меньше,​ и, в основном,​ новые драйвера являются портами с Linux. [[ru:​petitions|Петиции]] к IBM об открытии исходников также не дали результатов. Тем не менее, мы хотим продолжить жить и работать в OS/2. Самая важная задача -- это написание нового ядра. Здесь следует отметить,​ что OS/2 до сих пор имеет 32-битное ядро. Существующее ядро, даже при наличии исходников,​ не переносимо на другие аппаратные платформы,​ главные из которых -- ARM и x86_64. Современное ПО быстро разбухает,​ поэтому скоро мы должны столкнуться с ограничениями 32-битной архитектуры,​ самое главное из которых -- невозможность использования более 4 Гб оперативной памяти. Уже сейчас веб-браузеры и офисы легко съедают гигабайты ОЗУ. Кроме того, одними из главных потребителей памяти являются виртуальные машины. А мы должны не забывать о позиционировании OS/2 как интеграционной платформы,​ в том числе и для виртуальных машин. Поэтому OS/2 требуется новое ядро. Нам всегда были интересны эксперименты IBM's с OS/2 поверх микроядра. Мы читали ​{{download:​docs:​os2power.pdf|редбук от IBM про OS/2 Warp (PowerPC edition)}}. Поэтому мы с энтузиазмом поддержали идею использования L4 как основы для реализации OS/2 API. Это дало толчок началу этого проекта.
  
 ==== Почему бы не мигрировать на другую ОС? ==== ==== Почему бы не мигрировать на другую ОС? ====
Line 52: Line 52:
 ==== Объектно-ориентированная ==== ==== Объектно-ориентированная ====
  
-osFree делает попытку улучшить дизайн рабочего стола OS/2 и других частей системы,​ используя принципы ООП. Мы используем [[wp>​SOM]] как базовую объектную модель,​ как предусмотрено дизайном IBM для рабочего стола OS/2 и других частей системы. Кроме того, мы выдвигаем идею CPI+, GPI+, PM+, т.е., планируем сделать OO обертки API различных частей системы (на основе SOM) (CPI, GPI и PM, соответственно). Также возможна реализация доступа к более низкоуровневым частям системы в виде SOM объектов.+osFree делает попытку улучшить дизайн рабочего стола OS/2 и других частей системы,​ используя принципы ООП. Мы используем [[wp>​SOM]] как базовую объектную модель,​ как предусмотрено дизайном IBM для рабочего стола OS/2 и других частей системы. Кроме того, мы выдвигаем идею CPI+, GPI+, PM+, т.е., планируем сделать OO обертки API различных частей системы (на основе ​[[wp>SOM]]) (CPI ((OS/2 kernel Control Program Interface)), GPI ((Graphics Programming Interface)) ​и [[wp>​Presentation_Manager|PM]], соответственно). Также возможна реализация доступа к более низкоуровневым частям системы в виде SOM объектов.
  
-==== Contributing ​====+==== Помощь проекту ​====
  
-[[en:teams|We]] have a lot of things still to doso any help is welcomeNot only for code developmentbut also documentation writingweb page maintenancedistribution maintenanceand much moreSee the [[en:roadmap|Project Roadmap]] for more information about where we intend to go.+[[ru:teams|Нам]] предстоит много сделатьтак что мы приветствуем любую помощь проектуНе только помощь в разработке и написании кодано и написание документацииподдержка веб-страницподдержка дистрибутива ОСи многое другое. См. [[ru:roadmap|Дорожную карту]] проекта для более подробной информации о целях и задачах проекта,​ а также основных этапах его развития.
  
-[[en:teams|We]] are also looking for developersFor newbieswe have a number of [[en:​smalltasks|small tasks]]. If you're an experienced developerthere are plenty of [[en:​bigtasks|complex tasks]] awaiting your talents! Check out the [[en:develop|development page]] for more information about developing for usand look at our [[en:legal|licensing]].+[[ru:teams|Мы]] также ищем разработчиков,​ желающих оказать помощь проектуДля новичкову нас есть довольно много ​[[en:​smalltasks|простых задач]]. Если вы -- опытный разработчикто у нас есть множество ​[[en:​bigtasks|сложных задач]], которые могут раскрыть ваш талант. См. страницу ​[[ru:develop|для разработчиков]] для подробностей о разработке проектатакже вы можете ознакомиться с [[en:legal|лицензиями]] на компоненты osFree. 
 + 
 +Наш IRC канал #osFree в сети [[irc://​irc.inet.tele.dk/​osfree|EFnet]] и [[irc://​irc.ecomstation.com/​osfree|eCSnet]].
  
-osFree IRC channel is #osFree at [[irc://​efnet/​osfree|EFnet]] and [[irc://​irc.ecomstation.com/​osfree|eCSnet]]. 

ru/about.1363289578.txt.gz · Last modified: 2013/03/13 23:00 (external edit)