Pull to refresh
34
0
Игорь @K0shi

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

Send message

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

Level of difficultyHard
Reading time27 min
Views13K
image

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


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

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

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

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

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

Как написать свою маленькую ОС

Level of difficultyEasy
Reading time7 min
Views37K


Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).

Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments25

Com-WiFi модем для старых компьютеров

Level of difficultyMedium
Reading time2 min
Views7.1K

Как выйти в Интернет на сорокалетней DOS машине с 640Кб ОЗУ и 9-и мегагерцовым процессором?

Новый этап приключений с ретро компами - на этот раз с доступом в Интернет!

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

Modbus терминал и не только

Level of difficultyEasy
Reading time3 min
Views8.4K

Когда-то я активно работал с промышленным оборудованием. Часто мне приходило какое-то устройство, и оно общалось с внешним миром по волшебному протоколу Modbus.

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

Поэтому представляю вам мою версию Modbus терминала!

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

ToolChain: Настройка сборки прошивок для микроконтроллеров Artery из Makefile

Level of difficultyEasy
Reading time21 min
Views3.7K

Настало время освоить очередное семейство микроконтроллеров: от компании Artery Technology.

Компания Artery Technology уже возвела полноценную экосистему для своих процессоров. Есть фирменные отладочные платы, программаторы, документация, исходные коды MCAL и даже кодо генераторы.

В этом тексте я представил пошаговую инструкцию того как запрограммировать микроконтроллер Artery.

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments11

Структура драйвера Linux для одноплатного компьютера

Level of difficultyEasy
Reading time7 min
Views13K

Здраствуйте меня зовут Дмитрий. Недавно я написал статью как собрать прошивку для одноплатного компьютера Orange PI i96 с нуля. Если вы не читали то очень советую. И там я упоминал что для того чтобы собрать прошивку на новом ядре Linux, мне пришлось переписать драйверы с учетом архитектуры Device Tree, которую использует современное ядро. В этой статье я опишу как я это сделал.

Читать далее
Total votes 37: ↑36 and ↓1+35
Comments5

Графические оболочки FFmpeg

Level of difficultyEasy
Reading time6 min
Views28K


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

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

FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Читать дальше →
Total votes 107: ↑107 and ↓0+107
Comments76

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

Reading time8 min
Views80K

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Total votes 107: ↑105 and ↓2+103
Comments87

Postman Interceptor — альтернатива классическому сниффингу (краткий гайд по установке и взаимодействию)

Level of difficultyEasy
Reading time4 min
Views12K

Привет, хабровчане!

У вас было такое, когда снифаешь спокойно трафик через бесплатную версию Charles, а потом появляется окошко через час работы и закрывает программу? А может вы думаете, что переросли функционал других снифферов и хотите попробовать что-то новое и необычное? Или устали от грустного UI, когда перехватываете запросы? Если хотя бы на один вопросов вы ответили «да» — добро пожаловать в эту обзорную статью.

Меня зовут Антон, я QA Web & Mobile в компании MobileUp. И сегодня я расскажу о полезном инструменте для сниффинга трафика в вебе от команды Postman. А именно — о Postman Interceptor. В статье разберём, что это, для чего нужно, как установить и пользоваться. А в конце я оставлю ответы на вопросы, которые мне задавали коллеги, когда я рассказал про этот инструмент.

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

Zynq 7000. Обмен информацией между PS и PL

Reading time21 min
Views11K

Продолжаю повествование о том, как проходит мое изучение возможностей отладочной платы с SoC Zynq 7000 на базе отладочной платы QMTech. В этой статье я опишу то, как я решал задачу примитивного обмена данными между PS и PL с использованием baremetal application и при использовании Linux. Всем интересующимся добро пожаловать под кат!

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

Основные принципы цифровой беспроводной связи. Ликбез

Reading time8 min
Views132K

Всем привет. В этой статье я хотел бы рассказать немного об основных приемах и идеях современной цифровой беспроводной связи — на примере стандарта IEEE 802.11. В наше время очень часто люди живут на довольно высоких уровнях абстракции, плохо представляя как именно работают окружающие нас вещи. Ну что ж — попытаюсь принести в массы свет просвещения. В статье будут использоваться вещи и терминология, объясненные в этой статье. Так что людям, далеким от радиотехники рекомендуется сначала прочитать её.
DANGER: в статье присутствует матан — особо впечатлительным не нажимать на эту кнопку:
Эта кнопка
Total votes 67: ↑66 and ↓1+65
Comments36

Сами себе туннельный брокер IPv6 с помощью openvpn и 6to4

Reading time5 min
Views57K


Вы хотите чтобы Ваши устройства (Windows\Linux\Android\iOS) начали использовать IPv6, но Ваш провайдер его еще не предоставляет? У Вас есть собственный сервер\VDS\просто компьютер с линуксом и постоянным прямым IPv4 (НЕ IPv6) адресом или даже свой openvpn сервер? Тогда возможно эта статья Вам поможет.
Она не для маститых сетевых гуру, я просто собрал в одном месте набор указаний с целью распространения IPv6 среди масс. Хотя буду благодарен всем маститым гуру, которые меня раскритикуют в комментах и укажут на ошибки. Так как пишу я пост практически сразу после того, как система заработала. Все может быть бесконечно далеко от идеала.

Ближе к делу...
Total votes 35: ↑33 and ↓2+31
Comments14

Бездисковая загрузка по сети и жизнь после нее

Reading time6 min
Views113K

История


Однажды к нам пришли (ну, не сами...) серверы с 14 хардами по 2Тб. Избавившись от аппаратного рейда (зачем — вопрос отдельный), мы задумались о том, что неплохо бы сделать для них загрузку по сети, дабы избавиться от возни с разделами. Диски предполагалось экспортировать по iSCSI, и не хотелось выделять какие-то диски на Особенные Системные Диски, а какие-то на всё остальное. Таким образом возникла задача сделать загрузку по сети с размещением корневого каталога в оперативной памяти.
Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments41

Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB

Level of difficultyEasy
Reading time2 min
Views15K

USB Type-C - действительно универсальный порт.

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

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

Zynq 7000. Собираем Linux для платы QMtech

Reading time21 min
Views25K

В этой статье я решил сделать небольшое отступление от общей линии повествования и зарулю на дорогу Linux. За то непродолжительное время, что я работаю с Zynq 7000, в тематических чатах я видел много вопросов насчет того, как запустить Linux на отладке. Я в общем-то, недолго думая, сел проштудировал документацию, примеры и завёл его своими руками под ту плату, что у меня есть в распоряжении. После этого я решил обобщить свои знания по этому вопросу и описать процедуру сборки, подготовки загрузочного образа Linux, который включает в себя U-boot, Device Tree Source, RootFS, и само ядро Linux. В дополнение к этому, я решил немного усложнить задачу и выяснил, как можно поморгать светодиодом подключенным к PL-части устройства из пространства пользователя Linux.

Обо всём этом я написал в этой статье. Всем интересующимся - добро пожаловать под кат.

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

Редактирование образа Raspberry Pi с помощью qemu-user-static (Ubuntu 14.04)

Reading time5 min
Views18K
image

Иногда необходимо редактирование стандартных загрузочных образов, а также конфигурирование систем с последующим тиражированием на большое количество плат Raspberry Pi. Для решения подобных задач удобно использовать пакеты qemu-user-static и binfmt-support.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments3

Запуск Линукс на TV-боксе на чипе RK3528

Level of difficultyMedium
Reading time8 min
Views11K

Мне удалось запустить Armbian сборку Ubuntu на TV-боксе с новым чипсетом RK3528. Используя конфиги для Hinlink H28K, первого поддерживаемого в Armbian устройства на этом чипе.

Это продолжение статьи, где я описал несколько способов достать Device Tree файлы из Андроид установленного на TV-боксе. Нужно для запуска на конкретном устройстве, даже для одной и той же модели - компоненты устройства могут отличаться, эти детали есть в Device Tree. Эта инструкция рассказывает как собрать и запустить Armbian используя полученный Device Tree файл. Написано для пользователей Линукс, средней сложности - почти всё подробно описано по шагам.

Инструкция для запуска в том числе с USB накопителя, что по умолчанию отключено в загрузчике U-Boot.

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments28

Инженерный калькулятор на C++. Часть 1: Токенизатор математических выражений

Level of difficultyEasy
Reading time10 min
Views15K

Всем привет! Сегодня хочу поделиться опытом написания консольного инженерного калькулятора, который может посчитать выражение вроде (log2(18)/3.14)*sqrt(0.1*10^(-3)/0.02)

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

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

Создаём свое собственное ZigBee устройство на чипах от Espressif ( ESP32-C6/H2)

Level of difficultyMedium
Reading time9 min
Views30K
Первые упоминания про новые чипы от Espressif были еще два года назад. Но тогда про них мало что было известно, и они были не доступны в свободной продаже, и SDK был на самом начальном этапе. И вот наконец их анонсировали, и можно купить, так давайте же сделаем на них что нибудь хорошее.

Я давно хотел себе домой СО2 сенсор, но то денег не хватает, то жаба квакает… А тут мне пришла заказанная плата на базе ESP32-C6 и я решил попробовать собрать сам, благо различных Ардуино модулей был целый ящик. Если Вам интересно что у меня получилось добро пожаловать под кат. (длинная портянка и много картинок)
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments22

STM32 LTDC и 7-дюймовый дисплей: часть 1

Reading time5 min
Views22K

Речь пойдёт подключении дисплея AT070TN94 с параллельным интерфейсом к контроллеру STM32H743, начиная от выбора электронных компонентов, заканчивая настройкой блока LTDC. И хотя в сети достаточно много информации по данной теме, при создании своего устройства у меня периодически возникали те или иные вопросы, ответов на которых найти не удавалось. Пишу в первую очередь для новичков, а профи приглашаю почитать ради советов и аргументированной критики (первая статья как-никак). Приступим.

Заинтересовало
Total votes 35: ↑34 and ↓1+33
Comments16
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer