Рубрика «UNIX» - 3

Время — иллюзия, время Unix — иллюзия вдвойне… - 1

Как вы хорошо знаете, в Unix-системах мы измеряем время как количество секунд, прошедших с «эпохи»: 00:00:00 UTC 1 января 1970 года. Немало людей сильно разозлилось из-за этого, да и вообще, общественное мнение сочло это ошибкой.

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

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

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

image

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

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

Мне нравится старое железо и старый софт, так что ловите три короткие истории про историю.

Когда байты были маленькими

Сейчас большинство людей привыкли пользоваться 8-битными байтами, но когда "байт" только появился, он был 4-битным (впервые byte упоминается в документации к IBM Stretch в 1956 году; интересно, что сам компьютер был при этом 64-битным), и следующие 10 лет плавал от 4 до 8 бит, задерживаясь на 6 битах.

Читать полностью »

Пособие по программированию модулей ядра Linux. Ч.6 - 1


Очередная часть последней версии пособия по созданию модулей ядра от 2 июля 2022 года. В ней мы познакомимся с понятием tty, представляющим альтернативу макросу print, напишем модуль для мигания светодиодами клавиатуры, а также разберем тему планирования задач с помощью тасклетов и очередей заданий.Читать полностью »

Пособие по программированию модулей ядра Linux. Ч.4 - 1


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

25 августа 1991 - День рождения Linux

Говорят, "Лучший подарок на день рождения - книга" и "Нет лучше подарка, чем сделанный своими руками". А так как сегодня 25 августа - день первого упоминания о системе, получившей название Linux, то
🖐Linux, с днем Рождения!!! 🎂 📖

Читать полностью »

Пособие по программированию модулей ядра Linux. Ч.2 - 1


Продолжение последней версии руководства по написанию модулей ядра от 2 июля 2022. В первой половине текущей части мы подробнее разберём структуру и принцип действия модулей, узнаем, чем отличается пространство пользователя от пространства ядра, а также немного поговорим об использовании памяти. Вторая же половина будет посвящена одному из типов модулей — драйверам устройств, основы работы с которыми мы также подробно рассмотрим.
Читать полностью »

18 отборных однострочных команд Linux - 1


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

Приступим!Читать полностью »

Как ускорить работу в командной оболочке Bash - 1


Любому начинающему разработчику необходимо научиться пользоваться командной строкой. При этом для выполнения в ней команд требуется оболочка. В статье речь пойдёт об оболочке Bash, которая популярна в UNIX-подобных системах и в большинстве дистрибутивов Linux используется штатно.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js