Как стать автором
Обновить
83
0
Алексей Мандрыкин @alman

Пользователь

Отправить сообщение

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров19K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии38

8 мифов о микропроцессорах RISC-V — ответ критикам

Время на прочтение14 мин
Количество просмотров29K

Для начала хочу пояснить, почему я решил перевести этот текст Эрика Энгейма. На волне изменений в мире актуальным становится вопрос открытости программного и аппаратного обеспечения. И если с ПО ситуация относительно понятная — open source цветет, то в аппаратном обеспечении по-прежнему доминируют закрытые архитектуры CPU — x86, ARM, PowerPC и другие. Исходя из этого особенно интересно следить за одной из немногих открытых (и главное — живых) архитектур RISC-V.

В этой статье автор рассказывает, почему критика архитектуры RISC-V не очень оправдана. Он развинчивает 8 мифов вокруг нее и приходит к выводу в духе «хейтеры просто не умеют ее готовить». Если интересно, перевод классного текста под катом.

Похоливарить на тему RISC-V
Всего голосов 93: ↑90 и ↓3+87
Комментарии47

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

Время на прочтение1 мин
Количество просмотров41K

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее
Всего голосов 190: ↑189 и ↓1+188
Комментарии37

Что означает информация в заметке Коммерсанта «Британия морозит «Байкал»

Время на прочтение10 мин
Количество просмотров48K

Газета "Коммерсантъ" опубликовала важный материал "Британия морозит «Байкал». Российские процессоры лишаются доступа к технологиям". К сожалению, авторы заметки никогда не видели то, о чем они написали, то бишь semiconductor IP, и не понимают его природы. Зато его видел я. Поэтому я решил написать к их заметке своего рода толкование:

1. Что именно британские компании ARM и Imagination продают российским лицензиатам, таким как Байкал? (Спойлер: не патенты, хотя патенты в картину входят)

2. Чем Apple отличается от Байкала в лицензировании semiconductor IP?

3. Сколько стоят лицензии на ядра и сколько стоит архитектурная лицензия?

4. Как компания-разработчик semiconductor IP может обнаружить, что произведенный кем-то чип использует ее ядро?

5. Были ли прецеденты подобных высоких отношений с китайскими компаниями?

6. Почему в статье упоминается МЦСТ (Эльбрус)? Они же вроде сами спроектировали CPU собственной архитектуры? (Спойлер: а GPU?)

7. Могут ли британские патенты стать проблемой для разработчиков российcких ядер с архитектурой RISC-V?

8. Что логично ожидать от российских полупроводниковых стратегов?

Читать далее
Всего голосов 247: ↑239 и ↓8+231
Комментарии84

Как посчитать синус быстрее всех на хабре

Время на прочтение15 мин
Количество просмотров32K

Несмотря на свою кажущуюся банальность, темы о вычислении синуса достаточно регулярно появляются на хабре. И каждый раз их авторы или делают сомнительные утверждения, или получают сомнительные результаты. Не в силах более терпеть, я тоже решил поучаствовать и внести свой, не менее сомнительный вклад в этот вопрос.
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии41

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Время на прочтение24 мин
Количество просмотров166K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Всего голосов 435: ↑423 и ↓12+411
Комментарии300

Три архитектуры эльфам, семь гномам, девять людям… где же искать ту, что объединит их все?

Время на прочтение60 мин
Количество просмотров29K

Проводится сеанс разоблачения магии (CISC, RISC, OoO, VLIW, EPIC, ...).
Без традиционной рубрики “а что, если” тоже не обошлось.

Добро пожаловать под кат, правда, лёгкого чтения ожидать не стоит.

Читать далее
Всего голосов 141: ↑141 и ↓0+141
Комментарии55

ARMv9: в чем преимущество?

Время на прочтение18 мин
Количество просмотров27K

Что такое масштабируемые векторные расширения (Scalable Vector Extension)? Что они значат для индустрии и пользователей?

Если вы пользуетесь мобильным телефоном, то скорее вы знаете, что такое процессор ARM. Он является сердцем вашего смартфона, а недавно появился в новом поколении Mac. Процессоры ARM также появляются в серверах.

Мы находимся на пороге серьезных изменений в индустрии, которых не происходило уже несколько десятилетий. x86 доминирует в компьютерной индустрии уже продолжительное время, но активное развитие ARM, вероятно, станет серьезной проблемой для x86.

В этом году ARM выпустила архитектуру следующего поколения, которая задаст курс отрасли на следующее десятилетие, — ARMv9. Это важное событие, которое заслуживает пристального внимания.
Читать дальше →
Всего голосов 78: ↑73 и ↓5+68
Комментарии40

Один бинарник, любое окружение. Магия чистого C

Время на прочтение5 мин
Количество просмотров34K


Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.
Всего голосов 133: ↑123 и ↓10+113
Комментарии63

Как спастись от «зайцев». Инструкция по борьбе с ультрафиолетом

Время на прочтение22 мин
Количество просмотров68K

Однажды в далекие школьные годы у меня появилась идея заняться авто-реставрацией, благо у отца был в наличии уже практически сгнивший (но с отличным мотором) АЗЛК Москвич-408. Первым делом конечно же было решено поменять пороги и укрепить раму металлическим швеллером. Самый быстрый способ — естественно сварка, благо у отца и самодельный аппарат на Ш-образных пластинах был. Электроды и я нашел и, в принципе, довольно сносно приварил куски металла. Довольный своей работой заснул, думая о том, что я буду приваривать с утра. А с утра проснулся и понял что "ослеп", а отец поздравил "с первым пойманным зайцем". Чтобы понять о чем разговор — проследуйте под cut.


Читать дальше →
Всего голосов 88: ↑87 и ↓1+86
Комментарии121

Языки программирования для квантового компьютера

Время на прочтение9 мин
Количество просмотров71K


Прототип ядра ионного квантового компьютера. Ion Quantum Technology Group, Сассекский университет


Квантовые компьютеры время от времени попадают в СМИ. Вы слышите о том, как человек шаг за шагом приближается к их созданию, хотя для большинства развитие квантовых вычислений остается странным и таинственным искусством.


К счастью, для решения этой проблемы появляются отличные проекты, привлекающие внимание широкой аудитории. Например, несколько лет назад IBM дала возможность любому подключиться к 5-кубитному компьютеру. В проекте зарегистрировались 70 000 человек.


Однако индустрия квантовых вычислений по-прежнему остается в зачаточном состоянии. Хотя уже создано немало прототипов, они не могут сделать то, с чем не справится обычный ноутбук. Необходимое аппаратное обеспечение еще не существует, но для изучения у нас есть кое-что еще — языки квантового программирования.


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

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии23

Сравнение производительности C и C++ на примере сжатия Хаффмана

Время на прочтение20 мин
Количество просмотров62K

Введение


Когда на IT-форумах задают вопрос «Быстрее ли язык программирования X языка Y», это обычно вызывает потоки эмоций и считается некорректным. Сродни вопросу про религию или предпочтение той или иной политической партии. Действительно, язык — это способ выражения мысли, идеи. В данном случае идеи программной системы. Он не быстр и не медлен. Он может быть более или менее лаконичным, более или менее точным. А скорость определяется не столько языком, сколько конечным кодом, который генерирует компилятор этого языка. Или скоростью интерпретатора в случае интерпретируемого языка.

Но это всё философия. А на практике обычно есть практическая задача разработки ПО. И, действительно, реализовать это ПО можно на десятке разных языков программирования. Поэтому, хоть это и «религиозный вопрос» в случае публичного обсуждения, вопрос этот часто возникает в голове IT-специалиста, стоящего перед конкретной задачей. «Сколько времени мне потребуется для реализации задачи на языке X и какие у полученного ПО будут характеристики, в том числе скоростные, по сравнению с реализацией этой задачи на языке Y». Понятное дело, точного ответа на этот вопрос нет, специалист опирается на свой личный опыт и отвечает как-то типа «с вероятностью 95%, написанная на ассемблере, эта задача будет работать быстрее, чем на php». Но, положа руку на сердце, опыт этот редко базируется на точных цифрах реальных задач, которые сам этот специалист реализовал. Нет, ну кто в здравом уме будет писать сложное ПО сначала на php, а потом его же переписывать на ассемблере, только чтобы измерить характеристики? В основном ограничиваются синтетическими тестами типа сортировки массива, построения и обхода бинарного дерева и тому подобных.
Читать дальше →
Всего голосов 100: ↑92 и ↓8+84
Комментарии172

Очень насыщенная космическая неделя

Время на прочтение7 мин
Количество просмотров23K


Минувшая неделя совместила в себе такое количество космических событий, которого бы хватило на месяц минимум. Запуск и стыковка корабля «Шэньчжоу-11», аварии на юпитерианском зонде «Юнона», возвращение к полетам ракеты-носителя «Антарес», успех и неудача миссии «Экзомарс», запуск и стыковка «Союз МС-02». Неудивительно было что-нибудь пропустить, поэтому я сделал своеобразный космический дайджест, с новостями и комментариями к ним.
Всего голосов 60: ↑60 и ↓0+60
Комментарии60

«Другой» взгляд на выбор новой флешки

Время на прочтение7 мин
Количество просмотров111K
Приветствую уважаемых Хабравчан! На страницах блога компании “Хардмастер” сегодня наш коллега по цеху Виктор Мрих, который поведает о муках выбора USB флеш дисков в разрезе возможного восстановления данных с них.

Зарождение «другого» взгляда на выбор флешки


Очень часто друзья и знакомые, зная специфику моей работы, обращаются с вопросом о выборе хорошего/надежного/стильного накопителя для хранения данных. Кому-то нужна очередная флешка, кому-то — карта памяти для нового гаджета или фотоаппарата. Обычно я отвечаю, что все носители почти одинаково ненадежны, но как правило, такой ответ мало кого устраивает и воспринимается как акт неуважения и пофигизма по отношению к вопрошающему. Самые упорные продолжают настаивать: — «Вот как ты себе выбираешь флешки и карты памяти?» И я решил ответить…


Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии32

IBM PC своими руками — это очень просто

Время на прочтение34 мин
Количество просмотров199K
image

После того, как я воплотил свою давнишнюю мечту и все-таки (хотя и с опозданием почти на 30 лет) построил Радио 86РК, некоторое время мне казалось, что на этой части моей истории поставлена вполне достойная точка.

Тем не менее, обнаружилось, что болезнь до конца не вылечена, и она вернулась еще более острым рецидивом. Наверное, сказались как неожиданно успешный опыт постройки 86РК, так и то, что у меня в ходе данного процесса образовалось довольно большое количество весьма притягательно выглядящих инструментов, приборов и деталей, которым очень хотелось найти применение.
В конце концов ломка стала нестерпимой, и мне пришлось снова взяться за паяльник, а также вспомнить некоторые другие навыки из прошлого. Что из этого получилось, можно увидеть вместе с некоторым количеством картинок и очень (повторяю – ОЧЕНЬ) большим количеством букв (и даже не букв, а страниц) дальше…
Читать дальше →
Всего голосов 261: ↑260 и ↓1+259
Комментарии81

Возврат денег за предустановленную OEM Windows — создадим прецедент?

Время на прочтение4 мин
Количество просмотров12K
Приветствую, уважаемое Хабрасообщество.

Предлагаю создать прецедент по возврату денег за предустановленную ОС Windows, причем при покупке в интернет-магазине. Готов быть подопытным хомячком, нужна ваша помощь и поддержка.
Читать дальше →
Всего голосов 197: ↑159 и ↓38+121
Комментарии354

Как получить и измерить высокоскоростное соединение по TCP

Время на прочтение7 мин
Количество просмотров59K
Надежная передача данных в Интернете осуществляется на базе протокола TCP (Transmission Control Protocol), спецификация к которому была опубликована почти 30 лет назад. Алгоритм TCP (RFC793), позволяет подключенному устройству адаптироваться для работы в сети на скоростях в пределах десятков мегабит в секунду и задержки до 100 секунд. С бурным развитием новых технологий передачи данных, уже через 10 лет после внедрения стало ясно что производительность протокола не будет хватать для более широких каналов.
Читать дальше →
Всего голосов 106: ↑105 и ↓1+104
Комментарии41

ООО и ведение валютных операций

Время на прочтение8 мин
Количество просмотров26K
Всем привет!

Моей компании уже три года и в этом году мы попали в план проверок валютного контроля РосФинНадзора по ведению валютных операций.

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

Эта информация будет полезна как тем кто кто уже ведет свою деятельность, так и тем, кто только собирается открывать валютный счет или вообще регистрировать ООО. Не знаю, насколько это относится к ИП, но в любом случае, будьте осторожны.
Читать дальше →
Всего голосов 118: ↑115 и ↓3+112
Комментарии70

Домофонный мультиключ и всё про имитацию «таблеток»

Время на прочтение9 мин
Количество просмотров517K
Да, это жутко избитая тема. Универсальный домофонный ключ «таблетку» делал наверное каждый второй, кто начинал изучать микроконтроллеры. В Интернете очень много и статей на эту тему, и готовых решений. Однако, интерес к этому угасать не перестаёт даже с массовым переходом на RFID. Это не удивительно, ведь многим хочется собрать такое устройство, которое выполняет не только весьма интересную задачу, но ещё и всегда с собой. К тому же оно не такое уж сложное в изготовлении.

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



Внимание! Этот ключ не позволяет нелегально проникать куда-либо. Это устройство лишь для того, чтобы носить один ключ вместо нескольких.
Хотя ничто не мешает вам записать в него универсальные коды открытия домофонов.

Читать дальше →
Всего голосов 206: ↑204 и ↓2+202
Комментарии113

MMU в картинках (часть 1)

Время на прочтение11 мин
Количество просмотров73K
Хочу поговорить об устройстве управления памятью (Memory Management Unit, MMU). Как вы, разумеется, знаете, основной функцией MMU является аппаратная поддержка виртуальной памяти. Словарь по кибернетике под редакцией академика Глушкова говорит нам, что виртуальная память — это воображаемая память, выделяемая операционной системой для размещения пользовательской программы, ее рабочих полей и информационных массивов.

У систем с виртуальной памятью четыре основных свойства:
  1. Пользовательские процессы изолированы друг от друга и, умирая, не тянут за собой всю систему
  2. Пользовательские процессы изолированы от физической памяти, то есть знать не знают, сколько у вас на самом деле оперативки и по каким адресам она находится.
  3. Операционная система гораздо сложнее, чем в системах без виртуальной памяти
  4. Никогда нельзя знать заранее, сколько времени займет выполнение следующей команды процессора

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

К сожалению, по какой-то причине все вышеперечисленные товарищи недостаточно почтительно относятся к MMU, а их знакомство с виртуальной памятью обычно начинается и заканчивается изучением страничной организации памяти и буфера ассоциативной трансляции (Translation Lookaside Buffer, TLB). Самое интересное при этом остается за кадром.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии17

Информация

В рейтинге
Не участвует
Откуда
Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность