Pull to refresh
22
0
Анатолий @longtolik

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

Send message

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

Level of difficultyHard
Reading time27 min
Views10K
image

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


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

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

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

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

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →
Total votes 24: ↑28 and ↓-4+32
Comments15

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

Level of difficultyEasy
Reading time3 min
Views4.4K

Всем привет!

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

Читать далее
Total votes 13: ↑9 and ↓4+5
Comments14

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

Level of difficultyEasy
Reading time5 min
Views2.3K

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

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments5

System Design 101

Level of difficultyMedium
Reading time42 min
Views71K



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


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


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


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


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

Читать дальше →
Total votes 79: ↑79 and ↓0+79
Comments17

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

Level of difficultyEasy
Reading time6 min
Views8.6K

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

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

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments23

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

Level of difficultyEasy
Reading time15 min
Views9.2K


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

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

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

Level of difficultyMedium
Reading time9 min
Views3.8K

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

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

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

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments20

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

Level of difficultyMedium
Reading time4 min
Views2.5K

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

Читать далеe
Total votes 4: ↑4 and ↓0+4
Comments2

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

Level of difficultyMedium
Reading time9 min
Views20K

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

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

Reading time9 min
Views3.5K

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

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

Читать далее
Total votes 51: ↑46 and ↓5+41
Comments3

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

Level of difficultyEasy
Reading time3 min
Views9.8K

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

Читайте дальше, и узнай их.
Total votes 19: ↑16 and ↓3+13
Comments21

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

Level of difficultyMedium
Reading time10 min
Views20K

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

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

Level of difficultyEasy
Reading time12 min
Views29K

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

Читать дальше
Total votes 29: ↑27 and ↓2+25
Comments8

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

Level of difficultyHard
Reading time6 min
Views3.6K


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

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

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

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

Level of difficultyEasy
Reading time4 min
Views45K

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

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

Читать далее
Total votes 43: ↑29 and ↓14+15
Comments118

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

Level of difficultyMedium
Reading time12 min
Views8.2K


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


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

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

Reading time7 min
Views6.6K

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments31

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

Reading time12 min
Views15K

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

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

Читать далее
Total votes 30: ↑29 and ↓1+28
Comments30

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

Reading time11 min
Views32K

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

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

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments5
1
23 ...

Information

Rating
5,091-st
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity