Comments 51
>Операционная система должна предоставлять единую систему типов для
всех приложений. Приложения не должны использовать собственные
системы типов.
>Разнообразие систем типов приводит к колоссальным издержкам при
интеграции систем. Например, для того чтобы сделать вызов в SQL-базу
данных из приложения на «Си», придется написать множество строчек
кода для преобразования одних типов в другие и обратно, причем этот код
будет куда сложнее, чем среднестатистическая программа, и не будет
иметь прямого отношения к ее функциональности.
>Типы должны быть едины. Я хочу использовать одни и те же типы и в базе
данных, и в программной логике – это логично и удобно.
ерунду пишете.
всех приложений. Приложения не должны использовать собственные
системы типов.
>Разнообразие систем типов приводит к колоссальным издержкам при
интеграции систем. Например, для того чтобы сделать вызов в SQL-базу
данных из приложения на «Си», придется написать множество строчек
кода для преобразования одних типов в другие и обратно, причем этот код
будет куда сложнее, чем среднестатистическая программа, и не будет
иметь прямого отношения к ее функциональности.
>Типы должны быть едины. Я хочу использовать одни и те же типы и в базе
данных, и в программной логике – это логично и удобно.
ерунду пишете.
В таком случае — эти парни тоже ерундой страдают
http://ormeter.net/
http://ormeter.net/
Монументальный документ, скажу я вам. :-)
В плане требований к документам и программам — довольно здравые мысли. Там, где касается разработки и поддержки софта — слишком много «магии», особенно в плане инвестиций и оплаты труда. :-) Реальность показывает, что инвесторы любят компании с готовым продуктом — когда инвестор для компании уже очень-то и нужен.
На мой взгляд, написать операционную систему — не непосильная задача. Другое дело — обеспечить работу всех устройств и драйверов для них, заставить работать кучу старого, но очень нужного софта.
Главное достоинство вашей книги — то, что очень много правильных и хороших идей собрано в едином документе, пусть даже некоторые из них противоречат друг другу (к примеру, ставить все программы из сети, но иметь возможность устанавливать систему и работать полностью в оффлайне).
Замечательная работа!
В плане требований к документам и программам — довольно здравые мысли. Там, где касается разработки и поддержки софта — слишком много «магии», особенно в плане инвестиций и оплаты труда. :-) Реальность показывает, что инвесторы любят компании с готовым продуктом — когда инвестор для компании уже очень-то и нужен.
На мой взгляд, написать операционную систему — не непосильная задача. Другое дело — обеспечить работу всех устройств и драйверов для них, заставить работать кучу старого, но очень нужного софта.
Главное достоинство вашей книги — то, что очень много правильных и хороших идей собрано в едином документе, пусть даже некоторые из них противоречат друг другу (к примеру, ставить все программы из сети, но иметь возможность устанавливать систему и работать полностью в оффлайне).
Замечательная работа!
не сторонник дотнета, но готов отговаривать людей читать эту книгу только из-за 2.8.4. уж больно много проектов, написанных на языках с низким уровнем вхождения, людми с низким уровнем мышления, пришлось допиливать… у меня с весны сего года есть один весомый аргумент в таких спорах
habreffect.ru/b4e/c08ee0c4f/g-prof.png
habreffect.ru/b4e/c08ee0c4f/g-prof.png
Что это? О_о
отчет профайлера, очевидно же.
Да, было бы смешно если бы не было так грустно.
Хоть тотал кост и небольшой, 172 вызова getFullUrl это неприлично (если только эта страничка не сплог какой-нить).
И сколько времени это все выполняется? Детализируйте пожалуйста, просто любопытно.
Если TotalSelfCost в миллисекундах то 0.7 секунды — не так уж страшно выглядит снаружи (видали и хуже, хотя и нечасто) как ужасно внутри…
Хоть тотал кост и небольшой, 172 вызова getFullUrl это неприлично (если только эта страничка не сплог какой-нить).
И сколько времени это все выполняется? Детализируйте пожалуйста, просто любопытно.
Если TotalSelfCost в миллисекундах то 0.7 секунды — не так уж страшно выглядит снаружи (видали и хуже, хотя и нечасто) как ужасно внутри…
Это стандартный интернет магазин, крутится на VDS 1500мб оперативки и «48%» процессора(не в курсе какое реальное железо).
Отчет профайлера это страница каталога, "*" в форме поиска ещё веселее. вешает сайт на 30 секунд полностью(тоесть ни один клиент не может достучаться).
Генерация страницы каталога ~1.0 сек на нашем дев-сервере.
Проект слава богу поддерживаю не я, а мой коллега, но мат стоит постоянный. первое время мы вообще читали код исключительно поржать.
клиент оптимизацию/перевод на другой движок не хочет заказывать…
Отчет профайлера это страница каталога, "*" в форме поиска ещё веселее. вешает сайт на 30 секунд полностью(тоесть ни один клиент не может достучаться).
Генерация страницы каталога ~1.0 сек на нашем дев-сервере.
Проект слава богу поддерживаю не я, а мой коллега, но мат стоит постоянный. первое время мы вообще читали код исключительно поржать.
клиент оптимизацию/перевод на другой движок не хочет заказывать…
Например, что будет через 10 лет, будем ли мы использовать летающие машины, беспроводную энергетику и откажемся ли мы от бумажных денег.
Ага, и изобретем миелофон заодно.
Де-факто новая операционная система для ПК не нужна никому, кроме отдельных увлеченных лиц или каких-то очень специализированных областей или железа.
Bolgenos ака ФантомОС отакэ
Есть весьма спорные идеи, но есть весьма хорошие. Просмотреть хотя бы по диагонали достаточно интересно и полезно, по крайней мере мне.
Предметная область сразу же осталась где-то позади. Забавное чтиво да ) но сайт что-то у вселенской операционной системы из будущего слабоват.
Артель «Напрасный труд».
Я с интересом прочитал вашу книгу. У меня возникло несколько вопросов:
1. Для многих игровых движков необходим прямой доступ к железу. Каким образом разработчики смогут миновать уровень абстракции?
2. Вы справедливо заметили, что мобильные телефоны отличаются друг от друга размером, разрешением экрана и количеством кнопок. Зачастую интерфейс приложения сильно зависит от параметров устройства, на котором будет работать большинство пользователей (к примеру, интерфейсы приложений iPad и iPod Nano разные). Как будет решена эта проблема?
3. Одно из требований – совместимость кода («код, который я написал, работал корректно на всех платформах и всех устройствах). Разные устройства обладают разными возможностями (где-то есть встроенная камера, где-то нет, где-то есть тачскрин, где-то нет). Кто будет ответственен за эту совместимость?
4. Будет ли система базироваться на ОС UNIX? Какая часть системы будет написана „с нуля“?
5. Согласно графику на странице 211, первые версии должны появиться в 2012 году. Когда вы ожидаете первый полноценный релиз?
1. Для многих игровых движков необходим прямой доступ к железу. Каким образом разработчики смогут миновать уровень абстракции?
2. Вы справедливо заметили, что мобильные телефоны отличаются друг от друга размером, разрешением экрана и количеством кнопок. Зачастую интерфейс приложения сильно зависит от параметров устройства, на котором будет работать большинство пользователей (к примеру, интерфейсы приложений iPad и iPod Nano разные). Как будет решена эта проблема?
3. Одно из требований – совместимость кода («код, который я написал, работал корректно на всех платформах и всех устройствах). Разные устройства обладают разными возможностями (где-то есть встроенная камера, где-то нет, где-то есть тачскрин, где-то нет). Кто будет ответственен за эту совместимость?
4. Будет ли система базироваться на ОС UNIX? Какая часть системы будет написана „с нуля“?
5. Согласно графику на странице 211, первые версии должны появиться в 2012 году. Когда вы ожидаете первый полноценный релиз?
1. Думаю, так же как в Singularity — написав свой драйвер на управляемом языке.
2. MVC — разные вьюхи скорее всего должны быть для разных устройств. Операционка должна определять, какая вьюха должна использоваться под данное конкретное устройства.
3. Операционка — будет предоставлять разный профиль API
4. Операционая должна уметь запускаться поверх Unix, но только в режиме совместимости. Само же ядро должно быть собственное. Нужно взять новейшие разработки, типа Horizon OS.
5. Я лишь выдвинул идею. Я постарался очень аккуратно, собрать исследования и разработки уже сделаные людьми и описать их человеческим языком. Чтобы вывести такой проект в продакшин, нужно довольно много ресурсов — все зависит от них. Найду ресурсы выведу продкут, не найду не будет его вообще. С технической же точки зрения проблемы никакой нет. Хотят тут многие и минсуют жутко и стебутся, что это невозможно, тем не менее еще в 90ых годах люди сделали в этой области столько разработок, что осталось лишь все аккуратно собрать вместе, отладить и вывести в продакшин.
2. MVC — разные вьюхи скорее всего должны быть для разных устройств. Операционка должна определять, какая вьюха должна использоваться под данное конкретное устройства.
3. Операционка — будет предоставлять разный профиль API
4. Операционая должна уметь запускаться поверх Unix, но только в режиме совместимости. Само же ядро должно быть собственное. Нужно взять новейшие разработки, типа Horizon OS.
5. Я лишь выдвинул идею. Я постарался очень аккуратно, собрать исследования и разработки уже сделаные людьми и описать их человеческим языком. Чтобы вывести такой проект в продакшин, нужно довольно много ресурсов — все зависит от них. Найду ресурсы выведу продкут, не найду не будет его вообще. С технической же точки зрения проблемы никакой нет. Хотят тут многие и минсуют жутко и стебутся, что это невозможно, тем не менее еще в 90ых годах люди сделали в этой области столько разработок, что осталось лишь все аккуратно собрать вместе, отладить и вывести в продакшин.
4. Операционая должна уметь запускаться поверх Unix, но только в режиме совместимости. Само же ядро должно быть собственное. Нужно взять новейшие разработки, типа Horizon OS.
Вы предлагаете винде запускаться поверх юникса?
Давно так не смеялся…
Найду ресурсы выведу продкут, не найду не будет его вообще. С технической же точки зрения проблемы никакой нет.
Танненбауму для его Minix выделили 2.5 миллиона евро. Судя по информации на сайте, третий миникс активно разрабатывают или разрабатывали кроме него еще 17 человек. Пишется он с 2005 года. Почему доля этой операционки до сих пор так мала, что ее можно не учитывать?
Хотят тут многие и минсуют жутко и стебутся, что это невозможно, тем не менее еще в 90ых годах люди сделали в этой области столько разработок, что осталось лишь все аккуратно собрать вместе, отладить и вывести в продакшин.
С 90-х годов утекло много времени. Если раньше ни о каких осях типа Google Chrome OS не могло быть и речи (просто из-за дорогого интернета хотя бы), сейчас это вполне допустимо. Про то, что современные операционки типа Windows, Linux, OS X (и др.) невероятно сложны и содержат туеву хучу строк кода — это я уже промолчу. И вы собираетесь просто взять и собрать все в одну солянку? Ей-богу, вам стоит хотя бы того же Танненбаума почитать или хотя бы Нортона, подучить теорию, и потом уже либо одуматься, либо вывести какую-нибудь действительно стоящую идею. Задумайтесь, может не зря вас минусуют и стебутся над вами?
Поверх любой из операционок (Windows, Linux, Unix, MacOs) по желанию. Single address space все же. Чтобы было удобно, из своей операционки взял и открыл, как виртуалку. Но конечно же и должно быть своё ядро, чтобы можно было запустить без хостовой прослойки.
Про minix — тоже самое что и с Фантом ОС, люди которые её делают слишком инженероно мыслят. Они не занимаются выводом продукта на рынок для людей.
Я читал Таннебаума и не только… По поводу реализуемости. Вы так говорите, как-будто я портал в паралельный мир, предлагаю открыть, при помощи кухонного комбайна. Комунисты, например, при помощи палки и веревки болванки многотонные в космос запускали, которые по звездам ориентировались без микроэлектроники. А вы меня софтом запугиваете. Весь вопрос в масштабе мышлени и емкости сознания, не более того. Технически не так все сложно.
Про minix — тоже самое что и с Фантом ОС, люди которые её делают слишком инженероно мыслят. Они не занимаются выводом продукта на рынок для людей.
Я читал Таннебаума и не только… По поводу реализуемости. Вы так говорите, как-будто я портал в паралельный мир, предлагаю открыть, при помощи кухонного комбайна. Комунисты, например, при помощи палки и веревки болванки многотонные в космос запускали, которые по звездам ориентировались без микроэлектроники. А вы меня софтом запугиваете. Весь вопрос в масштабе мышлени и емкости сознания, не более того. Технически не так все сложно.
Поверх любой из операционок (Windows, Linux, Unix, MacOs) по желанию. Single address space все же. Чтобы было удобно, из своей операционки взял и открыл, как виртуалку. Но конечно же и должно быть своё ядро, чтобы можно было запустить без хостовой прослойки.Почему тогда такое не сделали еще? Или вы думаете, что разница между Windows и Linux так ничтожна? Максимум, что сейчас есть, это что-то наподобие Seamless режима в VirtualBox или наподобие Xen в режиме bare metal. Однако почему-то ни то, ни другое не дает двум настолько разным операционкам работать с одной памятью.
Я читал Таннебаума и не только… По поводу реализуемости. Вы так говорите, как-будто я портал в паралельный мир, предлагаю открыть, при помощи кухонного комбайна. Комунисты, например, при помощи палки и веревки болванки многотонные в космос запускали, которые по звездам ориентировались без микроэлектроники. А вы меня софтом запугиваете. Весь вопрос в масштабе мышлени и емкости сознания, не более того. Технически не так все сложно.Окей, частично реализуемо, согласен. Вопрос в том, кому это будет надо и сколько это займет времени/денег.
А насчет того, что не реализуемо, выдру из вашей книги несколько цитат:
Например, вы пишете в документе «Дубовцев Алексей», операционнаяОкей, пишем в документе Дуб Рем. Фамилия и имя, ничего сложного… Как оно тогда будет определять? И это при том, что имен — дофига и больше (учитывая все разнообразие языков и вариаций), а в качестве фамилии может служить практически любое слово?
система должна сразу понять, что это человек и с ним можно связаться.
В Танго у пользователя по умолчанию будет только один логин и пароль на вход в систему. Вход в приложения будет производиться автоматически, без участия пользователя.Специалисты по информационной безопасности просто рыдают: зачем же тогда выдумывают все эти пароли? Не для того ли, чтобы какая-нибудь левая прога под видом полезной не узнала Один Самый Главный Пароль От Всего Сразу?
Любая программа содержит функции. Я хочу один раз написать функциюПоздравляю! Вы изобрели компиляцию в байткод наподобие Java, Flash, .NET и открыли для себя интерпретируемые языки! И в результате вы получаете программы, которые можно будет использовать для простых приложений… но которые будут уступать нативным приложениям в том случае, если на них будет лежать серьезная нагрузка.
для пользователя и хочу, чтобы он использовал эту функцию на любых
удобных ему платформах. На Winows, Linux, MacOS, Android, iPhone, на
других мобильных устройствах.
2.9.2 Хочу расширять модель верстки новыми компонентамиПоздравляю в который раз! Теперь вы изобрели шаблонизаторы. Вы с XSLT знакомы? Только честно.
Сила разума и емкость сознания – вот что важно.А также радиус ауры и количество мидихлориан. Let Force be with you, young Skywalker!
Необходимо научится транслировать хотя бы одну инструкцию. ДабыЧто это за хрень там написана? О_о Как же абстрагирование от ОС и платформы, транзакции памяти, гибкие механизмы компиляции? А если серьезно, что оно делает? Всего-навсего берет 4 килобайта памяти, использует 5 байт под 2 ассемблерные операции, выполняет их… и все. Ваша операционка тоже будет брать память, но забывать освобождать ее?
долго не рассуждать, попусту приведем код, который это умеет делать.
<кусок кода>
Почему тогда такое не сделали еще? Или вы думаете, что разница между Windows и Linux так ничтожна? Максимум, что сейчас есть, это что-то наподобие Seamless режима в VirtualBox или наподобие Xen в режиме bare metal. Однако почему-то ни то, ни другое не дает двум настолько разным операционкам работать с одной памятью.
Ну вобощем сделали. Самое показательное решение Parallels Deskop, для мака. В вообще например есть Rotor от самого Microsoft, реализующий функционал ядра виндов на FreeBSD.
Специалисты по информационной безопасности просто рыдают: зачем же тогда выдумывают все эти пароли? Не для того ли, чтобы какая-нибудь левая прога под видом полезной не узнала Один Самый Главный Пароль От Всего Сразу?
Ну вообще сквозную идентификацию не я придумал. Нам этим какраз и бьются Microsoft и Google (Windows Live Id, Password, Google Identity) и иже с ними. А поповду украдут, ну украли у вас например пароль от банка клиента и толку-то, без смс транзакцию не сделать.
Поздравляю! Вы изобрели компиляцию в байткод наподобие Java, Flash, .NET и открыли для себя интерпретируемые языки! И в результате вы получаете программы, которые можно будет использовать для простых приложений… но которые будут уступать нативным приложениям в том случае, если на них будет лежать серьезная нагрузка.
не сильно уже уступают
http://www.rsdn.ru/article/devtools/perftest.xml
http://www.rsdn.ru/article/devtools/perftest2.xml
Поздравляю в который раз! Теперь вы изобрели шаблонизаторы. Вы с XSLT знакомы? Только честно.
И что при помощи XSLT можно быстро и кросбраузерно компоненты, встраивать. Странно, что народ так не делает.
Что это за хрень там написана? О_о Как же абстрагирование от ОС и платформы, транзакции памяти, гибкие механизмы компиляции? А если серьезно, что оно делает? Всего-навсего берет 4 килобайта памяти, использует 5 байт под 2 ассемблерные операции, выполняет их… и все. Ваша операционка тоже будет брать память, но забывать освобождать ее?
Вы хотели, увидеть в книге — листинг ядра, полноценной операционки? )))
Ну вобощем сделали. Самое показательное решение Parallels Deskop, для мака. В вообще например есть Rotor от самого Microsoft, реализующий функционал ядра виндов на FreeBSD.Под «показательным решением» вы имеете в виду что-то типа этого? Так это тот самый seamless режим, про который я говорил. Насколько понимаю, реализуется драйвером видео на эмулируемой машине. Где здесь единое адресное пространство и отсутствие прослойки? А Rotor от Microsoft — это всего лишь реализация .NET.
Ну вообще сквозную идентификацию не я придумал. Нам этим какраз и бьются Microsoft и Google (Windows Live Id, Password, Google Identity) и иже с ними. А поповду украдут, ну украли у вас например пароль от банка клиента и толку-то, без смс транзакцию не сделать.Хм. Тут я с вами даже соглашусь… слегка. Просто потому, что Google с Microsoft всего лишь предоставляют альтернативные способы аутентификации, используя их в-основном в своих сервисах. Пользоваться ими или нет — это уже дело разработчика. Однако никто не предлагает хранить все пароли в одном месте или пользоваться только одним паролем. А насчет подтверждения транзакции смской, так тут я могу только посоветовать посмотреть на Яндекс.Деньги: ввод платежного пароля для совершения любой операции со счетом.
не сильно уже уступаютЭм… Уже вышли .NET 4, VC++10, GCC 4.5.1, а вы предлагаете посмотреть на сравнение VC6 против Delphi неопознанной версии, да еще и с VCL? А насчет высокой нагрузки… никто ведь не пишет клон Apache на питоне или C#, верно?
www.rsdn.ru/article/devtools/perftest.xml
www.rsdn.ru/article/devtools/perftest2.xml
Немного не дописал, случайно нажал на кнопку отправки…
Против XSLT ничего не имею, но сама идея такого оформления исходников мне откровенно претит. Вместо того, чтобы просто создать .cpp файл и подцепить парочку нужных заголовков (а то и без них) надо будет сначала пихать в него какие-то теги. Ну и самый большой минус подобной идеи: как стыковать написанные на разных языках куски кода? Для C++ мне надо одни библиотеки, для питона — другие, для перла — третьи. Вызовы функций — отдельный кошмар. Как быть с этим?
Против XSLT ничего не имею, но сама идея такого оформления исходников мне откровенно претит. Вместо того, чтобы просто создать .cpp файл и подцепить парочку нужных заголовков (а то и без них) надо будет сначала пихать в него какие-то теги. Ну и самый большой минус подобной идеи: как стыковать написанные на разных языках куски кода? Для C++ мне надо одни библиотеки, для питона — другие, для перла — третьи. Вызовы функций — отдельный кошмар. Как быть с этим?
Вы хотели, увидеть в книге — листинг ядра, полноценной операционки? )))Хотелось бы. Но уж никак не ожидал увидеть подающийся под громким названием названием JIT непонятный неоптимизированный код из трех функций, в котором ради 5 байт выделяют 4 килобайта памяти и забывают их в конце освободить.
Где здесь единое адресное пространство и отсутствие прослойки?
Single Address Space — здесь имеется ввиду не единое адресное пространство с хостовой системой. А модель единого адресного пространства самой будущей операционки. То есть механизм защиты колец не будет использоваться. А посему, такую операционку можно просто положить в процесс хостовой операционки, без сложной виртуализации.
А Rotor от Microsoft — это всего лишь реализация .NET.
Rotor — это реализация Win32 API поверх FreeBSD — позволяет запускать виндовые приложение (коим является .NET) на FreeBSD.
А насчет высокой нагрузки… никто ведь не пишет клон Apache на питоне или C#, верно?
Microsoft пишет ))) IIS называется )
Ну и самый большой минус подобной идеи: как стыковать написанные на разных языках куски кода? Для C++ мне надо одни библиотеки, для питона — другие, для перла — третьи. Вызовы функций — отдельный кошмар. Как быть с этим?
Единая система базовой типизации, довольно хорошо решает эти задачи.
Хотелось бы. Но уж никак не ожидал увидеть подающийся под громким названием названием JIT непонятный неоптимизированный код из трех функций
Это не инженерная книга — техники в ней по минимому. Я старался более ориентироваться на общую концепцию.
> То есть механизм защиты колец не будет использоваться.
как ядро от хакеров защищать будете?
как ядро от хакеров защищать будете?
Управляемым менеджером памяти.
Managed Memory Manager with Garbage Collector
Managed Memory Manager with Garbage Collector
как в сингулярити, просто не дать операторов обращения к области памяти?
а вы осознаете что мощный и горячий процессор расходующий киловаты электроэнергии при таком раскладе станет по мощности равен нокии с симбой на борту?
я вам в пример приведу игры геймлофта портированные с айфона на ВФ7, качество сохранилось (хотя тут еще вопрос, так как не везде удается сохранить) только за счет более мощной аппаратной начинки… как вы объяснтте пользователю, что крайзис стал больше тормозить и хуже выглядеть когда он перешел на новую ОС, между прочим это одна из причин почему геймеры не переходили на Висту…
а вы осознаете что мощный и горячий процессор расходующий киловаты электроэнергии при таком раскладе станет по мощности равен нокии с симбой на борту?
я вам в пример приведу игры геймлофта портированные с айфона на ВФ7, качество сохранилось (хотя тут еще вопрос, так как не везде удается сохранить) только за счет более мощной аппаратной начинки… как вы объяснтте пользователю, что крайзис стал больше тормозить и хуже выглядеть когда он перешел на новую ОС, между прочим это одна из причин почему геймеры не переходили на Висту…
Принципиально, как в Сингуляри.
Технологии ушли далеко вперед, проблемы производительности решаемы.
Технологии ушли далеко вперед, проблемы производительности решаемы.
решаемы насколько? могу ли я выжать из компа все за что я заплатил?
.NET до сих пор этого не позволяет, поэтому и применяется там где производительность не обязательна либо легко нарастить аппаратно…
.NET до сих пор этого не позволяет, поэтому и применяется там где производительность не обязательна либо легко нарастить аппаратно…
То есть вы предлагаете наплевать на массового пользователя со средними компами и разрабатывать сразу под hi-end железо, чтобы получить тормозящую по сравнению с остальными операционку?
Rotor — это другое название Shared Source CLI, ядра .NET. Win32 поверх FreeBSD запускать оно не дает. Почитайте хотя бы википедию.
IIS ну никак не может быть написано на C# (разве что оболочка конфигурации). Хотя бы потому, что появилось оно еще до C#, а последние его версии используют специальный драйвер ядра. Под виндой на .NET нельзя писать драйвера ядра, потому что винда не поддерживает байткод на подобном уровне. А IIS как-никак http сервер, для которого важна скорость выполнения — при низкой скорости сайт не выдержит самой простой атаки.
Единая система базовой типизации хороша только для ЯВУ, и то не для всех. К примеру, в питоне конструктор класса называется __init__, а в си он называется согласно имени класса. Я уж промолчу, что существуют такие вполне даже живые и используемые языки, как brainfuck. В нем переменные отсутствуют, классов нет, нет даже умножения. Какие там будут типы?
Зачем писать не инженерную книгу про операционки, если в ней касаться их внутреннего строения, приводить куски кода? То, что вы написали, вполне можно показывать министрам. Авось оценят и выделят финансирование… А здесь это разумно посчитают бредом.
Извиняюсь за резкие слова, но просто уже накипело.
IIS ну никак не может быть написано на C# (разве что оболочка конфигурации). Хотя бы потому, что появилось оно еще до C#, а последние его версии используют специальный драйвер ядра. Под виндой на .NET нельзя писать драйвера ядра, потому что винда не поддерживает байткод на подобном уровне. А IIS как-никак http сервер, для которого важна скорость выполнения — при низкой скорости сайт не выдержит самой простой атаки.
Единая система базовой типизации хороша только для ЯВУ, и то не для всех. К примеру, в питоне конструктор класса называется __init__, а в си он называется согласно имени класса. Я уж промолчу, что существуют такие вполне даже живые и используемые языки, как brainfuck. В нем переменные отсутствуют, классов нет, нет даже умножения. Какие там будут типы?
Зачем писать не инженерную книгу про операционки, если в ней касаться их внутреннего строения, приводить куски кода? То, что вы написали, вполне можно показывать министрам. Авось оценят и выделят финансирование… А здесь это разумно посчитают бредом.
Извиняюсь за резкие слова, но просто уже накипело.
К чему столько сарказма )))
Качем sscli20 (.net shared shource code)
идем в sscli20\pal\unix\
И читаем черным по белому — rotor — это PAL (Platform abstraction layer)
Для совсем недоверчивых идем сюда sscli20\pal\unix\examples\example1.c
Копилируем под никсами и о чудо — оно работает ))
Ну вообще Microsoft думает иначе! http://www.microsoft.com/whdc/driver/wdf/UMDF.mspx.
Там есть свои ограничения, но тем не менее это дравейра — например можно написать драйвер для шины.
Драйвер используется для оптимизации скорости HTTP стека, а сам IIS (w3wp.exe) висит в UserMode — и написан на .NET.

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

По поводу IIS и скорости выполнения, это вы скажите разаботчикам MySpace.
Единая система — типизации — это начо молиться нужно! syntax sugar'ы довольно хорошо, транслируются в примитивы низкого уровня.
Зачем молчать ))) Лучше загляните сюда http://www.soulsphere.org/stuffage/bf.net/
Люди уже решили это проблему.
Качем sscli20 (.net shared shource code)
идем в sscli20\pal\unix\
И читаем черным по белому — rotor — это PAL (Platform abstraction layer)
Для совсем недоверчивых идем сюда sscli20\pal\unix\examples\example1.c
#include <rotor_pal.h>
extern void *dlopen(const char *file, int mode);
int main(int argc, char *argv[])
{
WCHAR src[4] = {'f', 'o', 'o', '\0'};
WCHAR dest[4] = {'b', 'a', 'r', '\0'};
WCHAR dir[5] = {'/', 't', 'm', 'p', '\0'};
HANDLE h;
int b;
PAL_Initialize(argc, argv);
SetCurrentDirectoryW(dir);
SetCurrentDirectoryW(dir);
h = CreateFileW(src, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, 0, NULL);
WriteFile(h, "Testing\n", 8, &b, FALSE);
CloseHandle(h);
CopyFileW(src, dest, FALSE);
DeleteFileW(src);
PAL_Terminate();
return 0;
}
Копилируем под никсами и о чудо — оно работает ))
Под виндой на .NET нельзя писать драйвера ядра, потому что винда не поддерживает байткод на подобном уровне.
Ну вообще Microsoft думает иначе! http://www.microsoft.com/whdc/driver/wdf/UMDF.mspx.
Там есть свои ограничения, но тем не менее это дравейра — например можно написать драйвер для шины.
IIS ну никак не может быть написано на C# (разве что оболочка конфигурации). Хотя бы потому, что появилось оно еще до C#, а последние его версии используют специальный драйвер ядра
Драйвер используется для оптимизации скорости HTTP стека, а сам IIS (w3wp.exe) висит в UserMode — и написан на .NET.
В новом кстате используется новая интегрированная модель обработки запроса, когда приложение .NET практически срастается с серваком.

По поводу IIS и скорости выполнения, это вы скажите разаботчикам MySpace.
Единая система базовой типизации хороша только для ЯВУ, и то не для всех. К примеру, в питоне конструктор класса называется __init__, а в си он называется согласно имени класса.
Единая система — типизации — это начо молиться нужно! syntax sugar'ы довольно хорошо, транслируются в примитивы низкого уровня.
Я уж промолчу, что существуют такие вполне даже живые и используемые языки, как brainfuck. В нем переменные отсутствуют, классов нет, нет даже умножения. Какие там будут типы?
Зачем молчать ))) Лучше загляните сюда http://www.soulsphere.org/stuffage/bf.net/
Люди уже решили это проблему.
Про Rotor. Окей, про PAL не знал. Но разве это реализация функционала ядра винды под никсами? Это то же самое, что и Cygwin по сути: множество функций, переменных и прочего, которые дают возможность компиляции некоторых приложений (однако не всех!) для одной ОС в другой. То бишь просто реализация одной логики при помощи другой. Причем здесь эмуляция, единое адресное пространство разных осей и прочее, я не понимаю…
Про драйвера. Ну там же ясно написано: User Mode, а не Kernel Mode…
Про IIS. Почитайте-ка вот это и скажите, зачем нужен модуль ManagedEngine, если там и так все на .NET, а заодно посмотрите, из чего состоит IIS помимо пула приложений.
По поводу единой системы типизации. Это бесполезно. Разные языки приспособлены для разных целей и соответственно требуют использования разных типов. Вы ведь не думаете, что для парсинга текста нужны числа с поддержкой пары миллионов знаков после запятой, а для вычисления числа пи — регулярные выражения? А если все сбивать в кучу, то это получится уже новый язык на основе кучи остальных. Тут вы вполне можете попробовать, против ничего не имею. Только будут ли на нем писать?
Ну и про брейнфак. Как мне из брейнфака увеличить значение переменной qwerty на 7?
Про драйвера. Ну там же ясно написано: User Mode, а не Kernel Mode…
Про IIS. Почитайте-ка вот это и скажите, зачем нужен модуль ManagedEngine, если там и так все на .NET, а заодно посмотрите, из чего состоит IIS помимо пула приложений.
По поводу единой системы типизации. Это бесполезно. Разные языки приспособлены для разных целей и соответственно требуют использования разных типов. Вы ведь не думаете, что для парсинга текста нужны числа с поддержкой пары миллионов знаков после запятой, а для вычисления числа пи — регулярные выражения? А если все сбивать в кучу, то это получится уже новый язык на основе кучи остальных. Тут вы вполне можете попробовать, против ничего не имею. Только будут ли на нем писать?
Ну и про брейнфак. Как мне из брейнфака увеличить значение переменной qwerty на 7?
Зачем писать не инженерную книгу про операционки, если в ней касаться их внутреннего строения, приводить куски кода?
Книжки бывают разные (жидкие, твердые и газзобразные).
А если серьезно, то на мой взгляд технической литературы предостаточно, даже более чем. Не хватает информации именно по архитектуре, никто не пытается рассмотреть архитектуру систем целостно. Все занимаются улучшением своих участков. Книга может быть полезна системных архитекторам, что дать им несколько иной взгляд на предметную область.
То, что вы написали, вполне можно показывать министрам. Авось оценят и выделят финансирование…
Если у вас есть знакомый министр пожалуйста покажите! )))
А здесь это разумно посчитают бредом.
Извиняюсь за резкие слова, но просто уже накипело.
Не извиняйтесь, я привык ))
Спасибо за ответы.
Мне кажется, самым сложным будет собрать команду специалистов, которые будут реализовывать эту систему.
Желаю удачи в вашем начинании!
Мне кажется, самым сложным будет собрать команду специалистов, которые будут реализовывать эту систему.
Желаю удачи в вашем начинании!
Товарищ, бред несете насчет первого пункта. Игровые движки обычно взаимодействуют с DirectX/OpenGL/GDI. Эти подсистемы взаимодействуют с драйверами. А дравера уже работают с железом. Так что никакого прямого доступа тут нет, через прослойки только.
как бы да, но одновременно и как бы нет…
по сути главная задача игры это собрать пачку треугольников и отправить на рендер, но вот от того как оптимально эта пачка собирается и зависит скорость игры и расход памяти.
в больших играх до сих пор считают такты, стараются влезть в кеш линию, избегают load-hit-store, уменьшение количества выделений памяти, избегают stl и exeptions и правило что пользователь купит себе новую телегу чтоб игра пошла здесь не работает и приводит к потере денег для разработчика…
по сути главная задача игры это собрать пачку треугольников и отправить на рендер, но вот от того как оптимально эта пачка собирается и зависит скорость игры и расход памяти.
в больших играх до сих пор считают такты, стараются влезть в кеш линию, избегают load-hit-store, уменьшение количества выделений памяти, избегают stl и exeptions и правило что пользователь купит себе новую телегу чтоб игра пошла здесь не работает и приводит к потере денег для разработчика…
Но при этом все равно все это осуществляется средствами DirectX/OpenGL и иже с ними. Даже для шейдера нужно создать шейдерную программу, загрузить шейдер и откомпилировать шейдер, добавить его в шейдерную программу и потом эту программу использовать (если ничего не напутал).
да, так и есть… но это не меняет сути, скорость доступа к памяти на аппаратном уровне почти не растет, остается необходимость думать о ее эффективном использовании (это относится к задаче, взять треугольники, собрать в кучу, отправить на рендер) — это и есть низкий уровень, к которому нет доступа из .Net/Java.
вот один из примеров доступа к низкому уровню research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf
понятно что кое что из этого можно сделаьт и на шарпе, но какой ценой…
понятно что кое что из этого можно сделаьт и на шарпе, но какой ценой…
Вы правы, действительно некорректный вопрос.
похоже, у кого-то очень много свободного времени :)
Очень здравые мысли, несмотря на обилие воды. Есть несколько для меня новых. Прочёл половину текста, после того, как закончу вторую, попробую систематизировать ваши идеи в более связный концепт.
Всё загнулось?
Sign up to leave a comment.
Танго — Операционная система из будущего