• Секвенирование ДНК в домашних условиях: как на коленке собрать прибор за 10 миллионов
    +1

    Желаю вам продолжать с той же увлеченностью. Результаты поражают.


    Оставлю здесь ссылку для читателей на страницу ещё одного увлеченного инженера: https://simplifier.neocities.org/


    Увлекательное чтение. Он в гараже работает над самодельными вакуумными диодами, триодами, создаёт солнечные батареи и т.д. Все только по делу, кратко, со схемами, графиками.

  • Корейские коллеги: понять и простить
    0

    К сожалению не знаю машинерии, лежащей за переводами от google.translate, просто было замечено, что такие многоступенчатые переводы куда лучше. Это вполне работающая эвристика. Такое положение вещей и мне кажется не логичным в плане предполагаемого внутреннего дизайна переводчика с некоторым промежуточным представлением.

  • Корейские коллеги: понять и простить
    +1

    Олле, однозначно. Симка очень просто регистрируется через интернет, даже с загранпаспортом.

  • Корейские коллеги: понять и простить
    +1

    Есть довольно занятный хак. Корейский сначала надо переводить в гугл.транслейт на японский, а потом на английский. Становится вполне читаемо.

  • Корейские коллеги: понять и простить
    0

    Как-то с коллегами сидели в кафе со смешным названием Оху-Эн, в Йонгтонге. Там была парочка. Они сидели друг напротив друга и стеснительно глядели в смартфоны. Переглядывались украдкой. Потом парень осмелел, достал из под стола пакет красный с чем-то смахивающим на презент. Быстро вручил и потупил стыдливо глаза.
    Проблемы с общением они видимо пытаются решать, даже такими кардинальными мерами, как румбары, но, видимо все не так просто. А на публику молодежь там очень общительна и энергична.

  • Корейские коллеги: понять и простить
    0

    Вспомнилось ещё обилие доступных кофеен и почти повсеместный культ кофе. Не популярнее соджу, конечно :-), но пьют все офисные в обеденный перерыв. И в большинстве кофеен очереди по пейджерам, которые у нас только появляются в хиповых бургерных.

  • Корейские коллеги: понять и простить
    +2

    Как-то в Сувоне по незнанию заказал грешневую лапшу в кафетерии Misoya. Подали ее с пиалой льда. Видимо это и есть та ледяная лапша? Так хозяева заведения решили, что я неправильно ем, три раза подходили, отбирали палочки и ножницы (да, ножницы), резали лапшу, клали в пиалу со льдом и соусом, вмешивали туда васаби и заставляли есть только так. )))


    Учитывая особенности моей диеты в Корее мне было почти нечего кушать. На работе ещё выручала кое-как индийская раздача, но в городе… Питался салатами, что давали бесплатно к основному блюду или заканчивал выбор фразой вроде: йогийо, ту касы! Мне приносили водинистое пиво и я смотрел как едят мои коллеги. )


    Кстати традици повсеместного пьянства в маленьких "злачных райончиках" интересно бы осветить.

  • Инновационные музеи мира: «запрещается не трогать, не думать и не чувствовать!»
    0

    Вообще странно, музей в городе наук и искусств слабоват и не идёт ни в какое сравнение с Cosmo Caixa на окраине Барселоны, который в сравнении с ним просто бесконечен, экспонаты на порядок круче, много опытов по кинематике, оптике, инсталляция о развитии жизни на Земле по всему музею и цена куда ниже. Та же Испания.

  • Встраивание в ядро Linux: перехват функций
    0
    Точно. Да еще и отличная статья есть на тему: kernel instrumentation using kprobes.
  • Зачем нужна мышь, если есть клавиатура?
    0
    Приходилось месяц работать над действительно крупным проектом по ssh-сессии (вдаваться в то, откуда такие трудности, не буду). Так вот, tmux, vim, exuberant-ctags и ack-grep полностью решали возложенные на них задачи и дискомфорта не ощущалось отчасти потому, что обычное desktop-окружение у меня очень схожее, только tmux заменяет нормальный X-овый менеджер, dwm.

    На самом деле пользоваться машиной можно практически без использования мыши или иных манипуляторов. Терминал и редакторы, понятно, тут мышь не нужна; вьюверы вроде evince, mupdf и llpp понимают раскладку vim и позволяют как минимум прокручивать содержимое документа; для firefox есть vimperator и с ним можно управляться вполне сносно (для любителей emacs есть conkeror).

    Если в наличии есть клавиатура от thinkpad с trackpoint, то ситуация еще лучше.
  • Виртуализация¹
    +1
    Странно, что компания подумала о чем-то вроде unrestricted guest так поздно. Отсутствие поддержки реального режима жутко усложняло жизнь разработчикам гипервизоров, оттого, например, родилось хоть и элегантное, но довольно бесполезное решение — vmxassist, которое некоторое время использовалось в Xen, а позже в palacios. Заставить standalone гипервизор грузить какую-либо современную операционную систему без unrestricted guest и явной эмуляции всего и вся можно, но работа эта неблагодарная и разрушает психику. То ли дело SVM у AMD, все несколько проще, не считаете? Неплохо вышли из ситуации японцы с их bitvisor — работает под ним почти все, даже всякая экзотика.

    Не подумайте чего, не ругаю, в целом VT-x и смежные технологии — вещь невероятно полезная. Сколько уже применений найдено, которые разработчиками явно не закладывались, ну или просто не освещались публично: отладчики, руткиты, системы проактивной защиты, мониторы безопасности, отказоустойчивые системы.

    Жаль, что здесь дороги Intel и AMD расходятся и необходимо держать в кодовой базе реализации для обоих вендоров.

    Некоторое время назад еще и ARM подоспела с подобным решением, а обобщенных хотя бы на верхнем уровне решений в области той же безопасности до сих пор нет.
  • Небольшой опрос об операционных системах
    +6
    Вообще, как-то некорректно называть Linux операционной системой. Да, о определении такого понятия, как операционная система, можно и поспорить, но факты таковы, что Linux — ядро. А вокруг ядра, как известно, можно возвести почти все что угодно. Понятно, что имеются ввиду операционные системы на базе Linux и программного окружения GNU.

    Так получилось, что почти везде я пользуюсь однотипным окружением из GNU/BSD/MIT софта, что на Linux-based системах, что на Windows.

    Linux — постоянно растущий продукт, развивающийся по своим законам. В ядре сейчас чего только нет и этот рост продолжается, и кажется продолжаться будет еще очень долго. Развитие это не стихийное, конечно, но и идеально контролируемым его не назвать. У современных Unix-подобных систем есть как плюсы, так и минусы. Об этом уже многие говорили, я повторю только самые явные. GNU/Linux ближе к технически-ориентированному человеку, привыкшему адаптировать инструмент своей деятельности под себя, где еще найти столько возможностей по кастомизации всего и вся? Мало того, за пределами этого мирка нет многих его благ. Ну где вы видели пользователя Windows с тайловым менеджером вместо стандартных плавающих окошек? Почти из коробки у вас есть отличные средства для разработки программного обеспечения любого класса. Да, возможно, тот же GCC уступает в ряде оптимизаций компилятору Microsoft, но он остается отличным продуктом. Все самое новое и передовое в мире разработки первым делом появляется в Unix среде и легко доступно. При последовательной, корректной настройке системы под себя удается добиться невероятной стабильности. Да, если касаться современных дистрибутивов, особенно Ubuntu, то я понимаю, почему системы на Linux так пугают людей — оно по большей части неюзабельно, мало того, обладает рядом досадных странностей. К тому же, порог вхождения все еще достаточно высок. Unix позволяет выстрелить себе в ногу многими способами, обладает рядом привычных, но не очевидных и чуждых человеку со стороны решений.

    Пришлось использовать Windows на лаптопе из-за ряда проблем с железом (отдельная история, чинить не хотят, проблему не признают, хотя половина интернета бурлит от недовольств, связанных с ноутбуками HP dm1 серии; производители и продавцы, ау!), на Windows он работает чуть менее плохо, чем на Unix-системах. Проблема связана с ACPI и управлением питанием. Все сложно, но под Windows 7 оно кое как живет. Система стабильна по большей части, достаточно легка на подъем даже для слабенького APU от AMD. Набор софта используется тот же самый: cygwin, gvim, git, evince, firefox (vimperator), Maxima, gnuPlot, Racket,… Оно вполне адекватно работает и на Windows. За время использования системы ни разу не плевался и не готов был выкинуть ноутбук в окно, как это было, например, при использовании WinXP.

    Интересно, а есть на хабре любители менее мейнстримовых операционных систем, например Plan9/Inferno, Haiku, Syllable OS или Aros? Ведь наверняка есть такие фанаты/профессионалы/интересующиеся, которые, возможно, используют их в повседневной работе. Поделитесь, люди, если есть такие.
  • Стековые языки программирования
    0
    Честно говоря, не помню, с чего я это взял. На форты он действительно не похож. Но у меня сложилось впечатление, что читал о нем ранее именно в этом ключе. Ну и язык не обязательно должен быть похож на FORTH и иметь обратную польскую запись, чтобы относиться к этой касте. Если ошибся, извините, что ввел вас в заблуждение.
  • Стековые языки программирования
    0
    Добавлю в общую копилку:

    Язык программирования retro (похож на forth, виртуальная машина реализована на многих популярных языках программирования);
    Конкатенативный язык программирования графики.
  • О разработке специальной версии сайта Госдумы для людей с нарушениями зрения
    +7
    Возможно я ошибаюсь, но некоторое время назад слышал о проблемах пользователей с определенным типом дальтонизма в вопросах касающихся использования клавиатур, на которых одна из раскладок изображена красным цветом, а клавиши при этом черные.

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

    А вообще, здорово, что этим занимаются. Людям реально облегчают жизнь. Это по-настоящему ценно.
  • Игры, выжавшие из NES максимум (часть 3, заключительная)
    +4
    Было бы интересно.
  • Игры, выжавшие из NES максимум (часть 3, заключительная)
    +1
    К вашим услугам сайт по тематике nesdev.parodius.com

    Платформа интересная, очень удивился, когда нашел ROM демки для NES, где проигрывался трек из мультсериала TMNT с голосом — в играх в детстве такого не припомню.
  • Игры, выжавшие из NES максимум (часть 3, заключительная)
    +1
    Guardian Legend еще очень затягивала.

    Там и стрелялка, и РПГ, и квест.
  • Ещё одна архитектура операционной системы
    0
    Напоминает гибрид идей Oberon, Plan 9 и KeyKOS, во многом идеи перекликаются с тем, что хотят получить в результате работы над проектом Фантом ОС.

    Архитектура современная, отчасти идеалистическая. Отлично, если люди идут собственным путем, забывая о классических подходах и обратной совместимости. Такие шаги всегда чреваты прорывами и открытиями. И всегда они движимы личным интересом, а не сферой денег. Так что — здорово, не перевелись Кулибины.
  • Список ресурсов для изучения Ассемблера
    +2
    И это, для тех, кому интересно поделать что-то для старого доброго реального режима.
  • Список ресурсов для изучения Ассемблера
    +1
    Я просто оставлю это здесь. Для самых начинающих и никакой глубокой системщины.
  • FreeRTOS: введение
    +1
    Конечно будет, к тому же, можно сделать один простой ход, который позволит вам собрать еще большую аудиторию.

    Уж очень много человек одержимы идеей влиться в OSDEV-сцену, и среди пользователей хабрахабра таких также не мало. Часть одержимых идеей пытается прыгнуть чуть выше и пишет для таких же как они сами уроки. В итоге и появляются очередные протуберанцы о работе с защищенным режимом на ассемблере вместо основной темы — разработки ядра операционной системы.

    У вас в багаже вполне переносимый код, достаточное множество реализованных алгоритмов, документация, хоть и изобилующая опечатками, страдающая орфографией, но все же вполне качественная. Вы могли бы показать сообществу, как реально устроена операционная система, с примерами кода. Пожевать, чтобы все могли это проглотить. Ну например, взять менеджер физической памяти и рассказать, как он работает, что такое buddy-алгоритм, чем хорош, или переходя уже к более высокому уровню — поведать о механизме slab. Рассказать про виртуальную память на примере своей ОС (хотя насколько помню тут у вас не все еще есть), про виртуальную файловую систему, драйверы, планирование, загрузку ELF. При достаточном качестве материалов они бы были мегапопулярны.

    Также, статьи об использовании ОС в своих проектах могут быть очень интересными. Можно преподносить их подобно этому материалу про FreeRTOS. А можно комбинировать рассмотрение внутренностей ОС вместе с применением ее на практике. Например, рассказываете как сделать в вашей ОС что-то конкретное и добавляете немного информации о том, как же оно устроено. Чтобы у людей не складывалось ощущение черного ящика.
  • Как начать и не бросить писать ОС
    0
    Следование группе стандартов POSIX и перенос стандартной библиотеки позволяют не беспокоиться по поводу софта.

    Пример: быстро развивающийся проект Pedigree OS, в котором участвует автор довольно известного туториала — Джеймс Моллой.

    К тому же, все вышесказанное характерно только для декстопных ОС, в то время как миниатюрные ядра систем реального времени и ОС для встраиваемых решений часто рассматриваются в качестве фреймворка для создания собственного продукта. Здесь уже проблема отсутствия ПО не стоит, решающими факторами оказываются характеристики данного решения.
  • FreeRTOS: введение
    0
    Стек — вполне тривиальная вещь с точки зрения механизма, но польза от этого простого механизма — огромная.

    Если говорить, не касаясь многозадачности:
    1. При вызове подпрограмм в стек кладутся их формальные параметры, а также адрес возврата из подпрограммы. За счет этого подхода мы можем вызывать функции и всегда возвращаться туда, откуда мы их вызывали;
    2. Также, на стеке выделяется память для локальных объектов функции;
    3. Стек используется для временного сохранения данных из регистров процессора, потому что регистров обычно — не много.

    Касаемо многозадачности:
    Когда происходит прерывание таймера (как и любое другое) большинство ядер ОС сохраняют текущий регистровый контекст задачи в стеке. Переключение задач представляет собой подмену стека текущей задачи на стек той, что планировщик решил выполнить следом. Когда обработка прерывания завершается, регистровый контекст выталкивается из стека новой задачи, таким образом происходит переключение контекста. И именно за счет этого механизма программы могут разделять между собой единственный физический процессор.

    Есть подходы, когда регистровый контекст сохраняется вручную, без использования аналогов инструкций push и pop, но это встречается довольно редко. Тем более, многие архитектуры умеют делать это (сохранение части регистрового контекста в стеке на момент обработки прерывания) почти на автомате.
  • FreeRTOS: введение
    +1
    Спасибо за статью, материал-то интересный! Хабрахабру нужен большой пинок под зад, ну или серия пинков, которая откроет дорогу новым качественным материалам.
  • FreeRTOS: введение
    0
    Вы немного не поняли, это не моя ОС. А что до отечественных, тут поле довольно широкое. Не все, конечно, заслуживает внимания. Слышал еще про iRTOS; не помню, что, но что-то меня не впечатлило в ней. Может за последнее время что-то изменилось.
  • FreeRTOS: введение
    +1
    А мне вот отечественный проект один нравится, имя которому Embox. Это, конечно, решение не для самых «бедных» архитектур вроде микроконтроллеров нижнего ценового сегмента, но система заслуживает своего внимания. Код очень качественный, можно легко разобраться с любым компонентом данной ОС. Архитектура модульная, и, в принципе, не возбраняется собрать из этой мозаики что-то свое, подходящее только вам. Здесь в наличии несколько планировщиков, несколько менеджеров памяти на разные случаи жизни, потоки и псевдопроцессы, таймеры и механизмы обработки прерываний. Помимо всего сверху навешена система драйверов, файловая система, стандартная библиотека и набор приложений. Естественно, немного разобравшись, ото всего этого изобилия можно отказаться, получив вполне миниатюрную систему для вашей железки. Врать не буду, нигде не использовал, но активно игрался с x86 версией под эмулятором.
  • FreeRTOS: введение
    0
    Насколько помню, там планировщик с несколькими очередями, по очереди на каждый приоритет. Количество приоритетов настраивается в конфигурационном файле (это константа). И вроде бы обычное приоритетное планирование. Смею предположить, что O(1). Но гарантий дать не могу.

    FreeRTOS помимо классического псевдо-параллелизма с жирным стеком для каждой задачи позволяет работать с сопрограммами, которые исполняются кооперативно. Причем сопрограммы в данном случае полноценные, в отличии от имитации их за счет switch-case, как у Эдама Данкелса в Contiki.
  • Piano podcast #27 «Живые деревья»
    +1
    Огромное спасибо за ваше творчество и новый сборник. Автор невероятно талантлив.

    Вы узнаваемы. Не раз слышал от окружающих, что мелодия, которая играет у меня в колонках, наушниках и т.п. знакома, были случаи когда называли альбом или даже трек. И не мудрено. Музыка настоящая, живая, глубокая, яркая.
  • Обзор матового ноутбука HP 620. Цена! Качество!
    0
    Взяли в ремонт. Центр обслуживает, как оказалось, не только HP, но и Lenovo, Samsung, и, возможно, других.

    Жду смс-уведомления.
  • VHDL для начинающих. Brainfuck
    +1
    Было бы просто здорово.
  • Обзор матового ноутбука HP 620. Цена! Качество!
    0
    У меня HP 625. Там Turion 2 на борту и видео от ATI. Мне очень нравился, пока с ним не начались проблемы. Прошло полтора месяца и он стал включаться через раз. То есть, нажимаем кнопку power, ждем, ждем… А он мило висит на сплешике BIOS с логотипом HP и предложением нажать ESC для перехода в Setup menu. На ввод не реагирует. Выключаем, включаем снова. Та же история. Иногда прогружается до GRUB и зависает там. Также виснут все ОС без поддержки ACPI. Это удалось выяснить опытным путем. После загрузки полноценной ОС (в данном случае это Linux Mint) — все функционирует нормальным образом. И так до следующего включения. Думал это мне только так повезло. Поискал в интернете — проблема частая. И именно у ноутбуков HP, преимущественно этой серии.

    Обратился по гарантийному талону по месту приобретения (магазин «ОГО», не имею ничего против — хороший магазин), как и написано в гарантийном талоне (а там указано, что если нет пометки СЦ, обслуживание происходит у них). Работник сервис-центра был шокирован, странно, говорит, дело в том, что вас должен обслуживать СЦ. Пометку наверное случайно не вписали в гарантийный талон, обращайтесь, мол, в официальные сервис-центры HP. Вот сегодня как раз туда буду звонить — все выясню.

    Надеюсь все исправят. Покупкой доволен. Если бы не эти проблемы — совсем было бы хорошо.

    Да, к матовости можно прибавить еще одно достоинство — все неплохо спроектировано в данном модельном ряде, сзади легко снять широкую крышку и получить доступ ко всем внутренностям, чего не хватает многим деллам, например.

    От аккумулятора работает около трех с половиной часов, если не сильно нагружать и убрать подсветку.
  • Начинаем разговор о многозадачности
    0
    Вытесняющая, если по таймеру. Но насчет адресного пространства вы правы. Пока автор не предложил решения ни на базе сегментной, ни на базе страничной модели. Хотя, судя по закомментированным кускам кода, они у него, вероятно, есть, просто он не хотел вываливать такой объем проблем аппаратуры на головы читателей за один присест.
  • Начинаем разговор о многозадачности
    +1
    Извините, а что помешало выделять по стеку на задачу и использовать для сохранения контекста аппаратные и такие привычные pushad и pushd, процессор же сам подобным образом сохраняет часть контекста в стеке — те самые ss, esp, eflags, cs и ip, можно же взять и помочь ему, сохранив регистры общего назначения и сегмент данных в том же стеке? Даже ничего нового городить не нужно: если уже разработан диспетчер прерываний, то контекст там наверняка сохраняется во враппере обработчика, в стеке. Остается только подменять стек при переключении задач, ну и если это необходимо, каталог страниц.

    Кстати, TSS вам все равно понадобится, когда окунетесь в Ring3.

    Немного больше системности, меньше хаоса, и все будет хорошо.
  • 64-битная ОС на ассемблере
    0
    >> Ни реальный, ни режим защищенный (тот самый режим совместимости) уже в прошлом.

    Следует читать так:
    Ни реальный, ни режим защищенный (тот самый режим совместимости) не нужны, уже в прошлом.
  • 64-битная ОС на ассемблере
    +2
    Дело в том, что сабж запускается только на современных процессорах с архитектурой x86. Никакими часами тут и не пахнет. А за счет реализации на языке ассемблера, увидеть ее на чем-то еще пока невозможно (не переносим код).

    TL1 имеет ввиду случаи, когда те же персоналки используются для управления, скажем, станком каким, при этом они тихо себе работают, исполняя только им известное колдовство, принимая изредка команды через Ethernet или COM-порт. И вот стоит этот компьютер такой одинокий, совсем даже без терминала, но делает свою работу, потому что если не будет делать, то подведет своих хозяев, ой как подведет.

    Причем, порой, найти на предприятии персоналку для таких целей проще, чем разработать решение на базе микроконтроллера или специальной платформы. Да и дешевле.

    А 64Bit и Long Mode… просто ребята поняли, что это уже стандартный режим. И давно пора на него переходить, полностью, а не совмещая с Legacy Mode, как это сейчас везде работает. И они правы. Ни реальный, ни режим защищенный (тот самый режим совместимости) уже в прошлом. Первый вообще не нужен, в принципе, только в целях совместимости держат, а второй больно монструозный.
  • 64-битная ОС на ассемблере
    0
    Ну, упустили-упустили… Что теперь поделать, деньги ушли на другие «отечественные» разработки, наверное.
  • 64-битная ОС на ассемблере
    +3
    Вообще странно, так много людей из года в год пишут, что на ассемблере писать долго, что это сложно. Хотя на деле язык ассемблера настолько прост, и настолько прозрачен,… мало того, в том же fasm есть очень хороший макроязык (if, else, ...), есть структуры и «отображение» структур в заданные участки памяти (ключевое слово virtual). Естественно, писать на языке ассемблера всю логику — не слишком большое удовольствие. Но и создавать нечто лишь на нем не такое мучение, как может показаться на первый взгляд.

    Если говорить о ядре, то в данном случае, это просто набор статически собранных процедур по работе с памятью, формированию пула потоков, вводу-выводу, синхронизации. Ну поддержка FAT и простой сетевой карточки в ту же кучу. Даже если и на ассемблере — объем работы не такой большой, особенно если на современном его диалекте.
  • 64-битная ОС на ассемблере
    0
    Вот как запустится на ней хоть какой-то HTTP-сервер, так сразу найдутся люди — форкнут проект и подадут заявку на гос. финансирование, как приоритетной отечественной разработки в рамках формирования национальной программной платформы.
  • 64-битная ОС на ассемблере
    +15
    Только это не дает права так лениться при создании кода, как это многие сейчас делают. Скорость разработки, конечно, характеристика важная, но то, что многие программы, которые выполняют почти ту же функциональность, что и их аналоги десяти и даже двадцатилетней давности, ведут себя даже на топовых машинах странно, если не сказать безобразно… это раздражает. Потому как понимаешь, что люди больше не ученые, люди даже не специалисты. Они просто хорошо научились складывать из кубиков картины, похожие внешне на шедевры, но это иллюзия. Программирования как такового не осталось.

    Есть еще жизнь на встраиваемых системах. Того же Эдама Данкелса следует вспомнить с его Contiki.

    Ведь можно и на Си и на многих других языках писать эффективный код, оптимизировать. Но погоня за сверхприбылями, клиентами, все это имеет место быть.