Как стать автором
Обновить
22
0
Анатолий @longtolik

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

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

Числа и байты: как работает память в Linux?

Уровень сложностиСложный
Время на прочтение27 мин
Количество просмотров11K
image

Часть первая: физическая память


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

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →
Всего голосов 25: ↑29 и ↓-4+33
Комментарии17

Переезд с Ubuntu 18.04 на 20.04 в подсистеме WSL

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.5K

Всем привет!

Если Вы читаете эту статью, то, скорее всего, столкнулись с проблемами в работе с личными или рабочими проектами, вызванными недавним обновлением VS Code до версии 1.86. И вроде новая версия нужна, и страшно потерять все данные.

Читать далее
Всего голосов 13: ↑9 и ↓4+5
Комментарии14

Высокоточное измерение ЭКГ. Часть 2

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

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

  Далее рассмотрю кратко реальную точность измерения ЭКГ и свой вариант ее повышения, а также расскажу свой вариант накопления и передачи для обработки больших объемов данных в суточных (по Холтеру) регистраторах.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии5

System Design 101

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



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


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


System Design (сборник на английском языке).

Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии17

Сборник встраиваемых модулей на ПЛИС

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.6K

Интереса ради сделал несколько простеньких модулей (аля платки для встраиваемых систем), про которые и хочу рассказать и поделиться исходниками, вдруг кому пригодится. Да, эта статья не про ПЛИСовую тематику, а что бы её немного разбавить, хотя кого я обманываю, модули же с ПЛИСами.

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

Читать далее
Всего голосов 25: ↑23 и ↓2+21
Комментарии23

Как сделать эффект Parallax с помощью CSS

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров9.3K


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

В этой статье мы рассмотрим, в каких ситуациях оправдано использование параллакс-скроллинга, разберем, как реализовать его с помощью CSS, и почему для этого стоит использовать именно CSS, а не JavaScript. Приведем несколько примеров CSS-параллакса, варианты его использования и лучшие практики.
Читать далее
Всего голосов 19: ↑16 и ↓3+13
Комментарии1

Мой первый околонаучный проект: инерциальный трекер

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

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

Алгоритм работы был малопонятным, потому что основывался на фантазировании и подгоне. Поэтому оценить его надёжность, масштабировать или восстановить для другого датчика было бы сложно.

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

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

Гравитация 1D — метрика и поле сил

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

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

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

SectorC: компилятор Си в пределах 512 байт

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

SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточно обширную функциональность Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.
Читать дальше →
Всего голосов 152: ↑150 и ↓2+148
Комментарии45

Силицен: электроника и отголоски периодического закона

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

Как знают мои постоянные читатели, ранее в этом блоге я уже обращался к малоизвестным аспектам периодического закона и рассказывал, к каким заблуждениям он приводил самого Менделеева. Но на практике сила периодического закона заключается в возможности предсказуемо экстраполировать даже самые экзотические свойства веществ и материалов. Если соединение получено с одним химическим элементом – то стоит попытаться получить схожие соединения и с другими элементами, расположенными ниже и/или выше данного элемента в таблице Менделеева. Так, на сходстве алканов и силанов основаны поиски кремниевой биохимии, а изучение периодических свойств щелочных металлов привело к созданию целой индустрии литий-ионных аккумуляторов.

В этой статье речь пойдёт о плоских аллотропных модификациях некоторых элементов IV группы (в частности, о графене). Как известно, именно в этой группе заключена почти вся современная электроника и индустрия полупроводников. Особое внимание будет уделено силицену – плоскому графеноподобному материалу, открывающему новую страницу в производстве гибкой электроники и полевых транзисторов.

Читать далее
Всего голосов 51: ↑46 и ↓5+41
Комментарии3

Секретный ингредиент для оценки архитектуры кода

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров9.8K

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

Читайте дальше, и узнай их.
Всего голосов 19: ↑16 и ↓3+13
Комментарии21

PCIe для электронщиков: знакомство с дифференциальными парами

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

PCIe, он же PCI-Express, представляет собой очень мощный интерфейс, и в этой статье я опишу основные принципы его использования в собственных проектах. Поначалу PCIe может немного пугать, но он всё же достаточно прост для экспериментов и вполне пригоден для применения в рамках хобби. В определённый момент вы можете решить использовать микросхему PCIe в собственных проектах или, например, задействовать подключение PCIe на Raspberry Pi Compute Module, так что лучше быть к этому готовым.
Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии17

Как я сделал синтез своего голоса

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров29K

Всем привет! Меня зовут Гриша Стерлинг, я занимаюсь синтезом речи в SberDevices. Недавно прошла конференция AI Journey, где я рассказал, как сделал синтез своего голоса. За 15 минут выступления я не успел рассказать все, поэтому решил написать большой пост с деталями. Он будет интересен датасаентистам, людям из бизнеса и ai‑энтузиастам. Приглашаю всех под кат.

Читать дальше
Всего голосов 29: ↑27 и ↓2+25
Комментарии8

Starting Electronics: руководство по веб-серверам на Arduino. Часть 6. Автоматическое AJAX взаимодействие с веб-сервером

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров3.6K


От переводчика. На шестом уроке мы добрались до практически полезного кода — с его помощью можно создать работающий пример «бесшовного» автоматического взаимодействия между клиентом (страницей в веб-браузере) и Arduino веб-сервером, который передаёт данные о состоянии подключённого оборудования и внутренних переменных.

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

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

[Студентам] Советы изучающим git

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров45K

Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.

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

Читать далее
Всего голосов 43: ↑29 и ↓14+15
Комментарии118

[Научпоп с кодом] Что такое «жидкая» нейросеть и как научить её играть в Atari?

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


Алгоритмы в основе традиционных сетей настраиваются во время обучения, когда подается огромное количество данных для калибровки наилучших значений их весов, ликвидные («текучие») нейронные сети лучше адаптируются.


«Они способны изменять свои основные уравнения на основе входных данных, которые они наблюдают», в частности, изменяя скорость реакции нейронов, — рассказывает директор Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института Даниэла Рус.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Подготовка инженеров АСУТП в ВУЗе. Часть 3 — Будущее

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

Это третья часть (часть 1, часть 2) из описывающих развитие процесса обучения инженеров АСУТП. Целью всех трех статей является попытка осмыслить подготовку инженеров АСУТП в ВУЗе (какая была, и какая есть сейчас), и обсудить с сообществом хабра, какой она должна быть в будущем. Каким образом ее можно актуализировать.

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

Корутины C++20 и многозадачность на примере контроллеров stm32

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

На Хабре уже неоднократно появлялись статьи, посвященные применению современных стандартов C++ при программировании микроконтроллеров, в том числе и появившихся в c++20 корутин.

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

Читать далее
Всего голосов 30: ↑29 и ↓1+28
Комментарии30

Метод K-Nearest Neighbors. Разбор без использования бибилотек и с использованием бибилиотек

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

Начнем разбор алгоритмов машинного обучения с наиболее прозрачной для понимания задачи классификации. Чтобы понять, что это за задача и для чего она вообще решается, давайте вспомним о весьма перспективной разработке - беспилотных автомобилях. Понятно, что сама по себе машина не понимает, что такое проезжая часть, и не может отличить человека от светофора - для этого ее надо научить различать знаки, людей, животных и т.д. Здесь, помимо достаточно сложных отраслей машинного обучения, таких как машинное зрение и системы принятия решений, используется классификация: автомобиль "учится" различать препятствия, которые необходимо объехать; людей, чтобы пропустить их при переходе дороги; знаки, чтобы точно следовать правилам. Говоря простым языком, система относит объекты к тому или иному классу, чтобы правильно себя вести при встрече с ними, то есть классификация в машинном обучении - не что иное, как задача отнесения объекта к одному из заранее определенных классов на основании его признаков.

Начнем с kNN - одного из наиболее распространенных методов классификации в ML. Его достаточно просто реализовать в отличие от других алгоритмов, поэтому для наглядности того, как в целом работает классификация, мы сначала напишем собственную реализацию и посмотрим на результаты, применив метод к стандартному датасету Iris, а затем сравним с библиотечной реализацией из библиотеки sklearn. Следующие алгоритмы мы не будем разбирать настолько досконально из-за трудоемкой реализации - рассмотрим общую методологию и разберем, на основе чего алгоритм принял решение в пользу того или иного класса.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии5
1
23 ...

Информация

В рейтинге
5 052-й
Откуда
Зеленоград, Москва и Московская обл., Россия
Зарегистрирован
Активность