Представлена операционная система Tetris-OS, функциональность которой ограничена игрой в тетрис. Код проекта опубликован под лицензией MIT и может использоваться в качестве прототипа для разработки самодостаточных приложений, которые можно загрузить на оборудовании без дополнительных прослоек. Проект включает в себя загрузчик, звуковой драйвер, совместимый с Sound Blaster 16 (может использоваться в QEMU), набор треков для музыкального сопровождения и вариант игры Тетрис. При разрешении 320x200 пикселей обеспечивается производительность графика на уровне 60 FPS...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=54997
Лучшая ОС
NOTE: This has only been tested in an emulator. Real hardware might not like it.попробуй сначала завести на своём пекаре её
Если стартонуло ядро, то не вижу проблем. Я так вим запускал, без видюхи, без корня и все работало через ссаш.
VimOS
> может использоваться в качестве прототипа для разработки самодостаточных приложений, которые можно загрузить на оборудовании без дополнительных прослоек.
> При разрешении 320x200 пикселей обеспечивается производительность графики на уровне 60 FPS.Такое и запускать без надобности ввиду бесполезности и бесперспективности.
Для чего-то серьезного требуется норм работа с графикой, поддержки чего в той штуке никогда не будет ибо требуется поддержка конкретного железа.
Для чего-то менее мощного - целая ось ради запуска одного приложения - это слишком жирно.
Возвращаемся к первобытно-историческим истокам индустрии ИТ...
А ты заметил, что современный IT "прогресс" к этому и идёт? Теперь что ни убре-прога - так образ виртуалки... Самый шик - статическая линковка ядра к проге, вот тебе и сама-себе-ось-для-киоска.
Ну эээ... можно же и такое делать более по-человечески: см., например, http://nightly.altlinux.org/sisyphus/just/pid1/ по мотивам http://www.opennet.dev/opennews/art.shtml?num=40615 ;-)
Как вы ядро к проге слинковали? Накодили ее модулем ядра?
Есть несколько проектов. Под OCaml полностью самописное ядро, например (MirageOS). Есть подобное и для C++. И есть проект сборки с ядром linux.
Просто изначально под ядром ОС обычно понимается нечто, разруливающее системные вызовы других программ, а это интерфейс отличный от линковки. Если же нечто просто линкуется к 1 программе, это, наверное, не ядро ОС.Я знаю некое исключение - модуль Linux Kernel с udp сервером. Вот его уже можно в каком-то роде обозвать программой прилинкованой к ядру. Но это очень специфичная программа.
> И есть проект сборки с ядром linux.
Сборки кого? В каком виде? Как максимум я про UML в курсе но это тоже не линковка, хоть ядро при этом и выпихнуто в юзермод (юзая другое ядро для фактического исполнения запросов).
Ну так уродские жирные переростки писаные вебмакаками всех задобали.Так что если вы умеете писать мелкие компактные и эффективные проги - можете на фоне вебмакак пиариться, показывая без ложной скромности насколько именно вы круче них программите. Велкам. А то когда единственным достоинством программы было "зато прогер не напрягался" - зачем такая программа вообще нужна?
Если кодер не порвал зад от напряжения, ради того чтобы не включать мозг и изучать актуальные инструменты, то софт не достоин использования анонимусами, все по марксу!
Халтурой неприятно пользоваться. И не только в софте. Когда у кого-то единственная цель чтобы не напрягаться, и хрен с ним с результатом - ну вон пищевая линия с на@баным датчиком, а насколько съедобна продукция на выходе васяна обслуживающего ее не колышет. Зато он не напрягается. Приятного апетита, цуки - дурной пример заразителен.
Означает ли это, что все годные проггеры по определению с перетруженными рваными ж.пами ?)
Это означает что халтуру мало кто любит. И если единственным достоинством программы является экономия ресурсов програмера - нахрен она такая сдалась. Откуда и движение в сторону ретро, тогда, видите ли, программы писали как-то с другими приоритетами. Поэтому и пользоваться ими не в пример как приятнее.
> Откуда и движение в сторону ретроТо "ретро", которое из статьи - это не ретро а гамно, которое ни кодерского времени не жалеет ни ресурсов не экономит( к слову о целой оси для одной задачи с до_60фпс_на_разешении_320_х_200 - это можно было бы назвать "неплохим" если бы гонялось на МК типа аврки, но никак не на пеке)
Учитывая что вебманки даже столько без GPU не выжмут, потуга не самая хучшая на свете... :)))
> Учитывая что вебманки даже столько без GPU не выжмут, потуга не самая
> хучшая на свете... :)))Так в том то и дело, что у них ГПУ поддерживается, тогда как с той осью - нет абсолютно никаких шансов на это.
И кстати, надо еще очень постараться получить на упомянутом разрешении на современных компах столь низкий фпс, кодя на сих или плюсах.
Похоже, это и есть те_самые, абстрактные вебмакаки, которые кому-то вечно в страшных снах являются )
> Ну так уродские жирные переростки писаные вебмакаками всех задобали.
> Так что если вы умеете писать мелкие компактные и эффективные проги - можете на фоне вебмакак пиариться, показывая без ложной скромности насколько именно вы круче них программите. Велкам. А то когда единственным достоинством программы было "зато прогер не напрягался" - зачем такая программа вообще нужна?Удобно ругать то, в чём не разбираешься. У тебя круто получается унижать людей. Интересно, кроме самомнения что ты из себя представляешь?
От себя скажу -- фронтэнд -- это дикий объём работы. Через фронтэндера проходит каждый пиксел. Там огромная гора работы
>фронтэнд -- это дикий объём работы. Через фронтэндера проходит каждый пиксел. Там огромная гора работыАга, а после самба с веб мордой требует от 4х гигов оперативки, если не больше.
Или аппка, которая открывает ссыль, сумарно с дексом занимает от 300-400мб.
Или в 2к21 на гигабите у меня сайты грузятся так-же долго, как и на дээсэле, хотя там текста 1/4 от всей ширины страницы.
Особенно прикольно когда там полтора контрола в которые на моем мониторе кулаком бить можно, зато заныкано меню на третий уровень и мизер информации. Зато офигенные поля на 3/4 моего большого широкоформатного монитора. Если вам впадлу напрягаться чтобы хорошо выглядеть на моей конфигурации, тогда и живите с тем фактом что у меня д@рьмовое мнение о вашей работе.
Что-то одно сделано хреново -- значит, все работники индустрии хреновые. Л -- логика
Если "что-то одно сделано" хреново - это тогда ваша ИНДУСтрия. Рожающая неюзабельных уродов жрущих ресурсы оптом, "зато програмер не напрягался". Дизайнеры так то тоже в принципе идею уловили, так что и дезигн под стать, что Win95 смотрится ацким EPIC WIN на этом фоне - красивее выглядит (лол) и во всяком случае может в азы юзабилити, типа подветки Z-level, разноцветных иконок и выделения контролов рельефом, так что не приходится полчаса чесать репу, контрол это вообще или так, иконка какая-то.
> Что-то одноЛ -- логика.
В том-то и дело, блин, что не "одно". Единичные случаи не бесили бы настолько. Этот рак везде.
Надеюсь ты про css? Да, согласен, дизайнерам действительно приходится проделать очень большой объем работы, чтобы страничка выглядела нормально, а не как поделие васяна на коленке.Это тебе не по пять фреймворков не приходя в сознание на кнопку навешивать.
Ну вообще с каким-нибудь bootstrap или даже w3schools CSS даже я - типа верстальщик. Это не мое, но если наиболее кривые глюки браузеров закостылили вон те специалисты в этом, накидать типовых контролов и достаточно просто и достаточно безграбельно.Собссно это 1 из причин почему все хватают фреймворки. Но фреймворки так то тоже разные бывают, w3 css так например мелкий и работает без жыэса. И странно ожидать меньшего от про с сайтом который туториалы дает как это вообще делать. Но то ж про, может и из г конфетку сделать. А вебманки среднего пошиба хватает первую попавшуюся или самую хайповую библу на мег, которая к тому же не работает если браузеру больше чем месяц...
Ситуация чуть менее очевидная. В "хайповой" либе запросто может быть всё хорошо. React, Redux и множество других "хайповых" либ сами по себе вполне хорошиПроблемы могут запросто начаться на этапе пользовательского кода. Незнание О-нотации, неумение использовать структуры данных. Недавно видел попытку сделать join через nested loop
Но незнание структур данных в любой области -- это плохо. Будь то фронт-энд, бэк-энд, или даже код в ядре -- не важно, это приводит к тормозам и ошибкам в любой сфере
Ага, кроме того что
1) Сгружают добрый мег хлама.
2) Без жыэс неоперабельны в принципе.
3) Это все тормозит как полный п...ц и жрет гиг на вкладку.
4) И все это чтобы отрисовать какую-нибудь клоаку уровня хелловорлд.И проблемы начинаются когда ради пары контролов уровня хелловорлда скачивают половину интернета, для начала. Еще десятком CDN обвесятся "чтоб закешировалось" - а то грузится видите ли долго. Парсинг и исполнение, впрочем, кешированию не очень поддаются, но про это вебмакаки не парятся, купие уже комп поновей, все дела.
А насчет о-нотации и проч - вон там на этой вашей хабрашвабре эталонный плач пыхтониста как его в яндекс собеседовали. Походу яндекс с своим бэкграундом все же не хочет себе вообще совсем полных вебмакак набирать, и там можно узнать что вебманки мало того что ноль в алгоритмах, так еще списал с прошлого задания, и ваще "стандартная либа ж есть" (то что умения стандартной либы не его заслуга и рекрутеры хотят его мыслительный процесс, которого нет, узреть, манки не понимает).
А так то незнание структур конечно плохо. Но большинство вебманки так то чтобы не напрягаться просто цепляют over 9000 либ по ерунде, какие уж там знания структур, вы что?
Не, я видел и крутой програмизм на JS - от Фабриса Белларда. Но он не будет сайтики за три копейки вам фигачить. Поэтому такой роскоши как high-performance JS на всех люто не хватает.
Если результат вашего работинга жрет прорву ресурсов и мегазы трафа, тормозит как п..ц и делает пользователям мозг - за что вас таких хороших любить, интересно? За то что вы перепихали вообще все проблемы на всех остальных, но больше других из себя строите? Поэтому нарицательное название - очень заслуженное.Любую работу можно выполнить быстро, дешево, качественно. Если у вас быстро (нежелание напрягаться целиком про это) и дешево (следует из первого) - догадайтесь, что осталось за бортом...
> Удобно ругать то, в чём не разбираешься.https://lurkmore.to/Сперва_добейся
Ты еду в общепите тоже не оцениваешь, ибо не шеф-повар?Мы видим результаты вашего "дикого" труда каждый день. Почему так получается, что старые неодностраничные сайты без современных фреймворков намного быстрее, чем ваша "огромная гора работы"?
И этот камент ещё заплюсован, капец, тут теперь веб-обезьянник?> "зато прогер не напрягался"
В точку. Но это рыночек, увы. Тупой прогер - дешёвый прогер.
Битбакет, личный кабинет банка - ощущение, что с каждым переходом оно заново грузит мегаSPA, но при этом не работает как SPA. Нажимаешь кнопочку "Далее" - жди, пока этот монстр перегрузится. Одна часть страницы подгрузилась, другая думает полминуты. Сайтовладельцы вроде могут позволить себе дорогостоящих вебщиков. И вы хотите, чтоб я восхищался вашим "диким" трудом?
Пф... https://youtu.be/2S_HQq9I_mI
не прошло и сорок лет как научились с трудом делать гаджет для игры который стоит 2 доллара.
https://github.com/jdah/tetris-os#windows
улыбнуло
Осталось запустить эмулятор этой ос в браузере на js.
Нет, непременно и в первую очередь необходимо на Rust!
а разве растаманы вообще могут писать такое сложное, как игрушки?! и, желательно, не только писать, но и дописывать.
А если браузер на Rust!?
Дык за 10 лет не напрогался. Измельчали хипстеры.
Растаманы — это молодёжная субкультура, распространённая на постсоветском пространстве, связанная с музыкальным стилем регги и ассоциированными с ним взглядами и образом жизни.
Правильно говорить "Rustacean". https://www.rustaceans.org/
Ferris негодует.И что за глупые потуги в юмор? Тебе не идет, ты не умеешь.
Естественно, большинство растиан достаточно компетентны для написания сложных программных систем.
Есть даже целый раздел на реддите на тему игр: https://www.reddit.com/r/rust_gamedev/
А по поводу дописывать — на _любой_ технологии полно проектов, которые не дописали по каким-либо причинам, тут ничего не сделаешь.
Ну все, венде точно капец теперь.
Не, для капеца нужно еще сделать Пасьянс-ОС и Сапер-ОС...
ОС для игры в Тетрис это же Gentoo
LFS же. Он сам, как тетрис.
> LFS же. Он сам, как тетрис.LFS чем тебе не угодил? Или ты из армии iPony неосиляторов. Только на флатошлаки способе
> LFS чем тебе не угодил? Или ты из армии iPony неосиляторов. Только
> на флатошлаки способен
опять раст упал на последней букве
Он же одноразовый. Софт в нем обновить невозможно.
> Он же одноразовый. Софт в нем обновить невозможно.Кто тебе такую чушь сказал?
Ну удачи тебе!
Это на уровне Hard+
И надо на Rust переписать.
Слишком жирный и прожорливый тетрисок получился.
> ОС для игры в Тетрис это же GentooНу как видишь на Rust так и не смогли.
Хм... А что вобще смогли на Rust?
Ой, так ничего
Вроде не 1 апреля же...
TetrOS - написанная в 2004м для конкурса "ОС в 512 байт" игра.
Последний абзац новости. Под видео.
БугурТетрисОС
Ура, парень изобрёл https://ru.wikipedia.org/wiki/PC_booter
Наконец-то честная ОС, стабильное апи и компоненты, которые можно вращать как угодно.
Сначало ШахматыОС, сейчас ТетрисОС. Забавно
+ ОС_для_каждой_проги.
Зато удобно. На этапе загрузки выбираешь нужную ОС и работаешь. Потрясающая безопасность и скорость работы.
> + ОС_для_каждой_проги.
> Зато удобно. На этапе загрузки выбираешь нужную ОС и работаешь. Потрясающая безопасность
> и скорость работы.Какая же тут скорость? Если что-то не получается, возможны три варианта:
- спросить совета;
- называть кого-то нубом и он в опровержение предоставит решение;
- думать самому три дня.Вы предлагаете оставить последний.
>безопасностьмежосный буфер, арбитр одновременных предзагрузок нескольких ос и распараллеливание.. уж лучше одну
SB16 - это точно только в QEMU.
У железного там куча аппаратных версий, которые надо уметь различать, у каждой свои "особенности" и их обязательно надо учитывать.
Помнится, QNX умела работать только с самой безглючной версией, заглядывал в драйвер.
Посоветуй пожалуйста как сегодня и под чем можно запустить QNX. То что получалось лет 10 назад - сегодня вообще никак.
Больше 20-и лет её не касался.
> Посоветуй пожалуйста как сегодня и под чем можно запустить QNXНа QEMU. Я так кишки какого-то древнего станка прям ща перед носом кручу. Пациент успешно нае...ся и даже согласился коммуницировать со мной, в чем смысл этой некромансии и был.
Реквестирую название самой безглюючной весии SB16 в формате SBxxxx. А ещё самой безглючной AWE32. А ещё самой "нафарширванной" AWE32.
Название не вспомню. Последний вариант перед SB16 PnP. Естественно, от Creative - клоны обычно только с SB-Pro совместимые были, даже если писали "16" в названии.
В некоторых случаях при программировании требуется специальная неочевидная последовательность действий, чтобы не нарваться на "особенности".
AWE32 у меня была только в версии, соответствовавшей позднему беспроблемному SB16, так что тут не в курсе, были ли у них проблемные версии.
Писал тогда прогу для детекта типа, версии и конфигурации (IRQ, DMA, HDMA) SB-совместимых, где-то даже выкладывал.
Я просто ретро-комп собираю. Вот и хотел приобрести. Вот только я не уверен, что на Ebay будут писать такие подробности о картах.У самого SB Live. Работает прекрасно. Работая под Linux, можно загрузить SoundFont. Это позволяет играть в Doom с красивой музыкой. Только требуется минимум AMD Athlon 64 или Core2, чтобы поиграть в Dosbox с комфортом.
Работая под Windows 98, можно указать General MIDI, и тоже с комфортом играть. Это я делаю на Pentium III. Интересно, почему есть пункт Sound Blaster AWE32, а выбирать надо всё равно General MIDI. Я думал, что в AWE32 есть 1 мегабайт ROM-памяти с сэмплами, и 512 Кб RAM-памяти для пользовательских сэмплов. И что Doom будет использовать их, если выбрать AWE32 в конфигураторе. Но мне сказали, что этот пункт нужен вовсе не для этого. А для более правильной инициализации звуковой карты, когда запускаешь игру из чистого DOS.
Драйверы обычно знают об особенностях железа, QNX тут, скорее всего, исключение.
AWE32 отличается от SB16 только в MIDI-части, с которой я не работал. У SB16 там OPL3 (AdLid).
А общее у них - DAC и ADC, работающие через DMA, и микшер с тембрами.
И вот особенности были в работе с регистрами этой части (обычно на 22*h).
Ну и, у PnP версии (как обычно) была проблема в том, чтобы сконфигурть как хочется, а не куда PnP посадит.
SB Live по железу уже никакого отношения к SB (1.0, 1.5, 2.0, Pro, 16, AWE32) не имеет.
> SB16 - это точно только в QEMU.
> У железного там куча аппаратных версий, которые надо уметь различать, у каждой свои "особенности" и их обязательно надо учитывать.А что за особенности? Вроде, там всё через порты делалось: выставляю DMA, чтобы он смотрел на мой буфер, звуковухе задаю формат, число каналов, частоту, и запускаю проигрывание.
Дальше звуковуха сама играет указанный буфер по кругу, а мне надо только обновлять его содержимое, поглядывая, какую часть буфера звуковуха уже прошла.
Подробностей не помню, помнится, с порядком доступа к регистрам.
Это более для микроконтроллерных платок зашло бы, если портировать. Там, как раз, экранчики 320x240 попадаются.
Лучшеб тетрисарену вернули
Еще можно отметить игру hangman, встроенную в отладчик ядра OpenBSD
https://twitter.com/openbsdnow/status/1336744178617880586
А если просp@ть - кернел таки вешается?
FreeSync поддерживается?
А OpenGL?
Двадцатьпервоапрельская шутка
Ерунда. Автор FASM уже давным-давно впихнул Tetris OS в 512 байт. Вот это я понимаю!
https://board.flatassembler.net/topic.php?t=21254
помню был клиент аськи под винду, поместившимся в 12кб.
В начале компьютерных игр так делали, чтобы оптимизировать игру отказавшись от ОС. А сегодня если так сделать? Взять игру, которая потребляет много ресурсов и сделать из неё не очень многозадачную ОС, запихнуть туда драйверы видео, opengl.
Если постараться, такое будет производительнее?
Да, на 0,1%
Обои на нескучные меняются?
Когда-то 20 лет назад была написана такая замечательная статья:http://citforum.ck.ua/programming/digest/realhello.shtml
«Изучение нового языка программирования начинается, как правило, с написания простенькой программы, выводящей на экран краткое приветствие типа "Hello World!".
[...]
Показательно, но совершенно не интересно. Программа, конечно работает, но ведь для ее функционирования требуется ЦЕЛАЯ ОПЕРАЦИОННАЯ СИСТЕМА!А что если написать такой "Hello World", для которого ничего не надо...»
Ага, ничего не надо, всего-то код из биоса.
> Ага, ничего не надо, всего-то код из биоса.Только чтобы считать наш хелловорлд. А дальше — переход в защищённый режим и прямая работа с портами и видеопамятью.
> Только чтобы считать наш хелловорлд.Ну да, ведь обработчик INT 13 — такая примитивная вещь. А вот защищённый режим — звучит гордо и солидно (на самом деле нет).
>> Только чтобы считать наш хелловорлд.
> Ну да, ведь обработчик INT 13 — такая примитивная вещь. А вот защищённый режим — звучит гордо и солидно (на самом деле нет).Зато полезно.
Если пишешь свой бутлоадер, или свой тест для оперативки, или своё микроядро (ну, мало ли, на диплом в универе) — эта статья даёт отличную базу для старта.
А какой прок от инициализации PC-шного железа на PC? BIOS итак сам всё проинициализирует. А на каких-нибудь микроконтроллерах, где биоса нет, и последовательность инициализации будет другой, то есть опять от инициализации PC никакого толку.
Из бут-сектора дёрнуть int21h?
Или не имея ещё стека, симулируя его на ROM играми с SP, проинитить чипсет, развернуть себя из ROM в ShadowRAM и работать с регистрами CRT и видеобуфером?
Сейчас у процов кэши как SRAM катят на первое время вроде. Да и DRAM init нынче модно чуть ли не PSP firmware делать...А "регистры CRT" - это кто? Если вы хотите все сами, нынче надо в скан шин уметь и найдя там видяху (молитесь чтобы pci bridge инитить не надо было) - сможете с ней поработать. Но если вы и там на vbios забить захотите, этот пепелац надо в нативный режим переключать эвон какого драйвера и пачку фирмварей требует...
Как сейчас модно - уже не в курсе. BIOS'ы не дизасмил лет 15.
Когда смотрел - было модно вызывать подпрограммы, занося в SP адрес ROM, где лежал нужный "адрес возврата".
А найти из-под DOS на шине SM-Bus контроллер и перешить через него SPD на DIMM'ах когда-то умел на множестве южных мостов.
Было когда-то понятие "CRT-контроллер". И мониторы на CRT )
х86 заметно изменился с момента актуальности той информации.Там вроде зачастую вообще первым стартует ME/PSP. И в ряде случаев начальный старт частично при помощи других процов ажно. АМД с какого-то момента удумали DRAM подымать фирмварью сервисного проца (да, до того как DDR DRAM станет доступна нужно весьма специфичные процедуры сделать, включая "link training"). И да, это "счастье" работает side by side с системным процом и ему там вообще плевать что у вас за операционка.
> А найти из-под DOS на шине SM-Bus контроллер
Когда был актуален DOS, SM-Bus еше не было особо вроде?
> Было когда-то понятие "CRT-контроллер". И мониторы на CRT )
На IBM PC вроде бы отродясь были "VGA адаптер" (CGA, EGA, позже VESA). А вот прямо сейчас как "CRTC" в линухе понимают вполне конкретную железку конвертирующую VRAM => провод в реальном времени, "долбилку на экран". Эта железка, конечно, была и в VGA и проч, но это лишь часть видяхи. А монитор CRT так то и у меня был. Даже два.
>> А найти из-под DOS на шине SM-Bus контроллер
> Когда был актуален DOS, SM-Bus еше не было особо вроде?Собстно, да. DOS уже не был актуален. Но работать напрямую с железом оттуда было проще.
VIA 586а, 596a, 596b, 686a, 686b, Intel PIIX4
PC-100, PC-133
На моей P3-BF SM-Bus переключалась двумя битами между SPD, генератором, мониторингом и (вероятно, не проверял) разъёмом на матери.>> Было когда-то понятие "CRT-контроллер". И мониторы на CRT )
> На IBM PC вроде бы отродясь были "VGA адаптер" (CGA, EGA, позже
> VESA).MDA, Hercules, CGA
Позже EGA, ещё позже VGA и зоопарк sVGA
Как интересно. А просто адреса на I2C шине (smbus по сути его диалект) им было не круто? Так то i2c сам по себе shared шина. Или эти биты сие и делали? А что до разъемов, как минимум в PCIE есть контакты SMBUS и JTAG. PCI - не помню, но вроде тоже.> Позже EGA, ещё позже VGA и зоопарк sVGA
У тех еще как минимум всякие знакогенераторы и чего там еще. А так то у линуха характерный аппаратный блок так и называют в API - CRTC. Иногда как display controller. Суть одна, реалтайм железка гонящая VRAM в провод, формирующая протокол и времянки. В случае VGA это соответственно просто поток в DAC + hsync/vsync.
> Как интересно. А просто адреса на I2C шине (smbus по сути его
> диалект) им было не круто? Так то i2c сам по себе
> shared шина. Или эти биты сие и делали? А что до
> разъемов, как минимум в PCIE есть контакты SMBUS и JTAG. PCI
> - не помню, но вроде тоже.Я так понимаю, хотели оставить пользователю доступ только к мониторингу, скрыв SPD и генератор.
Переключалось через какие-то GPIO чипсета. Кстати, вероятно, из-за этого коммутатора у меня была проблема с одним DIMM'ом Nanya - на моей матери работать не хотел, не виделось SPD, на других - прекрасно. Когда поставил ему другой чип SPD и прошил те же данные, прекрасно заработал и жил в том компе до упора.Там между PCI-слотами маленький разъёмчик есть, как SMB заявлен.
> Я так понимаю, хотели оставить пользователю доступ только к мониторингу, скрыв SPD и генератор.Не очень понятно в чем прикол SPD скрывать, а так можно было просто на разные шины развесить.
> Переключалось через какие-то GPIO чипсета. Кстати, вероятно, из-за этого коммутатора у
> меня была проблема с одним DIMM'ом Nanya - на моей матери
> работать не хотел, не виделось SPD, на других - прекрасно. Когда
> поставил ему другой чип SPD и прошил те же данные, прекрасно
> заработал и жил в том компе до упора.Вообще x86 довольно чудесатые скотины. За что я их, будем честны, не люблю :). Все через зад сделано... (так, закидывая в i2c команду вон тому power manager-у).
> Там между PCI-слотами маленький разъёмчик есть, как SMB заявлен.
Может оно и есть. I2C довольно легко узнать, 2 пина с подтяжками к Vcc (плюс питания). Хотя какой смысл его юзеру вывешивать не очень понятно. Bus master'а туда наверное некорректно для перехвата шины, про него уже существующий не в курсе. А девайс и подавно - а кто его там найдет?
p.s. а в линухе забавно, ddc на каком-нибудь vga как i2c вполне себе...
Один из первых CRTC - Intel 8275 / КР580ВГ75 :)
> Когда был актуален DOS, SM-Bus еше не было особо вроде?Системная дискета Windows 98 загружала какие-то драйверы шин. Не помню какие именно, только помню что грузилось два или три драйвера, и фраза bus complete.
И как ты из бута int 21h дернешь без загруженного и запущенного msdos? Именно она обрабатывала все прерывания начиная с 0x20.
Тоже верно, вылетело из головы.
Знач, int10h
> Из бут-сектора дёрнуть int21h?
> Или не имея ещё стека, симулируя его на ROM играми с SP, проинитить чипсет, развернуть себя из ROM в ShadowRAM и работать с регистрами CRT и видеобуфером?Что-то среднее. Если мы запустились, то память уже есть. А дальше инициализируем GDTR и уходим в защищённый режим.
Из защищённого режима прерывания так просто не подёргаешь. Поэтому там уже издаём звуки и пишем на экран прямой записью в порты и видеопамять.
PS: А зачем вообще симулировать стек? Пока у нас нет прерываний — зачем нам стек?
Кэп намекает что без стэка функцию вызывать несколько обломно.
> Кэп намекает что без стэка функцию вызывать несколько обломно.Ну мы же на этапе инициализации. Можно и потерпеть немного, не вызывать пока никаких функций, всё написать inline-ом.
В крайнем случае делать jmp, а адрес возврата писать в один из регистров.
Регистры и без того пригодятся - у нас же ещё нет RAM.
А вот SP для этой цели используется.
> Ну мы же на этапе инициализации. Можно и потерпеть немного, не вызывать
> пока никаких функций, всё написать inline-ом.Особенно прикольно на x86-32 каком, с полутора убогими регистрами, ага. Плоский код без функций и полтора регистра, которые некуда отложить. Все для вашего хардкора, так сказать.
> В крайнем случае делать jmp, а адрес возврата писать в один из регистров.
ARM так и делает :) только он аппаратно и регистров у него как-то поприятнее. И в как минимум cortex M они доперли flash[0] -> SP хардварно грузить. Так что он с места в карьер втапливает сразу на си после powerup, прикольно :D
>> Ну мы же на этапе инициализации. Можно и потерпеть немного, не вызывать пока никаких функций, всё написать inline-ом.
> Особенно прикольно на x86-32 каком, с полутора убогими регистрами, ага. Плоский код без функций и полтора регистра, которые некуда отложить.А какая разница? Зачем много регистров? Нам же не биткоины считать.
Что такого сложного надо сделать для инициализации памяти?> ARM так и делает :) только он аппаратно и регистров у него как-то поприятнее.
Ну да, в ARMах прямо в десятки раз больше регистров. И для инициализации памяти это очень важно... 🙂
Проект недолго просуществует. The Tetris Company, LLC известна своей упоротостью по поводу трейдмарка и геймдизайна. Засекайте время.
Раньше ваяли программы для ОС.
Теперь наоборот - пишут ОС для программ.Раньше загружалась ОС, а внутри неё запускали программы.
А теперь - как?
Сперва загружается программа, а потом внутри неё запускается ОС? :-)
Команду запуска ОС заталкивают в autoexec.bat этой программы? :-)
А гибернация в этой ОС поддерживается ли? :-)
А при поднимании крышки ноутбука фигурки возобновляют ли падение в стакане этого тетриса? :-)
А чит-коды к этой ОС (возможность их применения) идут отдельным сервис-паком? :-)
И где взять для этого компилятор?
Ну если есть ОС только для браузера, то почему бы и не быть ОС для игры в тетрис
Есть поддержка PCI-звуковых карт?
Какое замечательное торможение двигателем в коде:
// TODO: maybe not necessary
// ~3 microseconds?
for (size_t i = 0; i < 1000000; i++);
ЧСХ gcc может такое выпилить к архидьяволу по своей инициативе, заметив что side effects от этого вообще совсем никем и никак не юзаются.И если кто хотел так именно delay офрмить, в современном мире, там ващет volatile надо дописать, тогда компилер уже не имеет права умничать.
Ubuntu, Linux Mint, Debian, Fedora отдыхают это прорыв
BolgenoTetrisOS
Вся суть в последней строке новости.
Дождались наконец-таки
MBR Тетрис - шикарен, остальное - лажа какая-то.
> MBR Тетрис - шикарен, остальное - лажа какая-то.У твоего MBR тетриса код не реюзабельный нахрен. А тут, вот, например, фонт какой-то, низкого разрешения, под халявной лицензией, в севом исходнике, массивчиком. Пойдет для некоторых странных затей.
>> MBR Тетрис - шикарен, остальное - лажа какая-то.
> У твоего MBR тетриса код не реюзабельный нахрен. А тут, вот, например,
> фонт какой-то, низкого разрешения, под халявной лицензией, в севом исходнике, массивчиком.
> Пойдет для некоторых странных затей.Вы так шутите? Фонт быстрее написать, чем искать откуда скопировать. Впрочем, если ключевое слово "халявной", тогда понятно, почему изучать код Томаша не интересно.
Эх, полна коробочка
В КореБут уже давно есть такой пейлоад.