Эта книга рассказывает о принципах работы операционных систем на примере xv6. Операционная система xv6 реализует базовый интерфейс, который Кен Томпсон и Деннис Ритчи предложили в операционной системе Unix, и подражает внутреннему устройству Unix. Комбинации простейших механизмов Unix дают удивительную свободу действий. Современные операционные системы признали успех Unix и реализуют похожие интерфейсы - BSD, Linux, macOS, Solaris, и даже Microsoft Windows. Изучение xv6 поможет понять работу и других операционных систем.
Разработчик
Может ли Orange Pi 5 стать ПК?
Привет, Habr! В последнее время на Хабре публикуется много статей про одноплатные компьютеры, характеристики которых не уступают классическим ПК. Мне приглянулся Orange Pi 5 16 GB со слотом M.2. Слот M.2 позволяет поставить очень быстрый SSD диск, а 16 GB памяти должно хватить для большинства бытовых задач. Ради интереса я решил собрать компьютер на этом одноплатнике, и посмотреть может ли он выполнять роль основного ПК. Сравнить его производительность с Ryzen 5800X. Посмотреть для каких задач он подходит. Интересно? Добро пожаловать под кат!
ProxiFyre: Open Source SOCKS5 Проксификатор для Windows
Один из проверенных временем и надёжных методов, не требующий сложной специализированной инфраструктуры, — это туннелирование TCP-соединений с использованием SSH. Этот протокол является критически важным для стабильности работы интернета, и вероятность его массовой блокировки выглядит крайне малой. Вероятно, наибольшими трудностями, с которыми мы можем столкнуться, являются ограничения на скорость соединения. Уникальной особенностью SSH является встроенный SOCKS5 прокси-сервер, который предоставляет функционал аналогичный VPN с возможностью реализации split tunneling на уровне отдельных приложений.
Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux
Возникла задача запускать графические приложения в полностью изолированной среде: как от Интернета, так и от файловой системы «хозяйской» ОС. В моём случае это был Matlab. Пишут, что в последних версиях он стал шибко «умным»: сам без спроса постоянно лезет в сеть и чем-то там постоянно обменивается со своими серверами. Однако использовать для поставленной задачи виртуальную гостевую машину / аппаратную виртуализацию (наподобие VirtualBox) — это, ИМХО, «too much». Docker подошел бы гораздо лучше, т.к. он использует то же ядро ОС и не требует эмуляции / виртуализации ввода-вывода, что существенно экономит ресурсы. Однако Docker «из коробки» не предназначен для запуска GUI-приложений. Что ж, попробуем это исправить и запустить таки Matlab внутри Docker-контейнера с полной поддержкой «иксов» и GUI.
Калькуляторы с обратной польской нотацией
На хабре уже многократно проскакивали статьи и переводы о калькуляторах с обратной польской нотацией. Раньше я не придавал им большого значения, пока на глаза не попался перевод статьи «Мягкое знакомство с дополнительным кодом», где фигурировал программистский калькулятор HP-16C. Что сподвигло меня разобраться, что за зверь такой «обратная польская нотация» или reverse Polish notation (далее по тексту RPN).
Искра, буря, безумие… Спешно поставив эмулятор HP-16C на телефон, я полез искать калькуляторы с поддержкой RPN, попутно скупая найденные экземпляры. В этой статье хочу поведать о четырёх редких! экземплярах, которые мне удалось найти на отечественных досках объявлений, и дать некоторые рекомендации тем, кто решит прикоснуться к удивительному миру программируемых калькуляторов.
Собираем автономную игру на C# в 2 килобайтах
Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?
В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.
Размер важен только при передаче: если вы передаёте программу по проводам, мегабайты равны секундам. По быстрому соединению на 100 Мбит в лучшем случае можно передать 12 МБ в секунду. Если на другом конце провода находится человек, ожидающий завершения скачивания, то разница между пятью и одной секундой может существенно повлиять на его ощущения.
Человек может зависеть от времени передачи как напрямую (пользователь, скачивающий программу по сети), так и косвенно (serverless-сервис, отвечающий на веб-запрос).
Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.
Хотя уменьшение сегодня уже необязательно, оно всё равно лучше.
Эта статья задумывалась как эксперимент, позволяющий выяснить, каким может быть минимальный размер полезного автономного исполняемого файла C#. Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Алгоритмы балансировки нагрузок
Рано или поздно веб-приложения перерастают среду одного сервера. Компаниям требуется увеличить или их доступность, или масштабируемость, или и то, и другое. Чтобы сделать это, они развёртывают своё приложение на нескольких серверах и ставят перед ним балансировщик нагрузок для распределения входящих запросов. Чтобы справляться с нагрузками, большим компаниям могут потребоваться тысячи серверов, на которых запущено веб-приложение.
В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Отрицание, принятие… настольные игры
Эта история началась давно, еще в «доковидные» времена. Тогда я считала, что весь мир настолок состоит из монополии, манчкина, элиаса и уно. Для меня настольная игра была дополнением к вечеринке, но никак не причиной для встречи. Это хобби вызывало во мне бурю эмоций и непонимания.
- Сколько вы играли? ПЯТЬ ЧАСОВ?!
- Сколько стоит эта игра? Так много за картон?!
И я не понимала, зачем взрослые играют, ведь игры для детей. Так и жила я, с недоумением глядя на знакомых настольщиков.
Сейчас меня уже не пугают магазины настольных игр своим многообразием цветных коробок. Я с удовольствием делюсь своими знаниями об этом хобби и очень радуюсь, когда людям нравится игра, которую я посоветовала.
Так с чего же начать, если никогда раньше не играл в настолки, но хочется попробовать? Сейчас разберемся! Держите мой топ для старта настольного хобби.
Docker: как развернуть фуллстек-приложение и не поседеть
(самая популярная фраза в конце любого хакатона)
Сначала немного лирики.
Когда разработчик является отличным девопсом, умеющим развернуть своё детище на любой машине под любой OC, это плюс. Однако, если он вообще ничего не смыслит дальше своей IDE, это не минус — в конце концов, деньги ему платят за код, а не за умение его разворачивать. Узкий глубокий специалист на рынке ценится выше, чем средней квалификации «мастер на все руки». Для таких, как мы, «пользователей IDE», хорошие люди придумали Docker.
Принцип Docker следующий: «работает у меня — работает везде». Единственная программа, необходимая для деплоя копии Вашего приложения где угодно — это Docker. Если Вы запустили своё приложение в докере у себя на машине, оно гарантированно с тем же успехом запустится в любом другом докере. И ничего, кроме докера, устанавливать не нужно. У меня, к примеру, на виртуальном сервере даже Java не стоит.
Как я перестал бояться и полюбил Vim
Я работаю программистом уже почти десять лет. И, как и для каждого, кто посвящает работе до 2/3 суток, удобный инструментарий имеет для меня огромное значение. Сегодня я хочу как следует порефлексировать, поэтому статья выйдет слегка необычной. Сразу же хочу дать дисклеймер: всё, что вы прочтете ниже, носит субъективный характер. Поэтому будьте открыты и снисходительны.
Что же такое этот GraphQL?
Вашему вниманию предлагаю перевод статьи Sacha Greif "Что же такое этот GraphQL?"
Если вы такой же, как и я, вы обычно проходите через три этапа, когда узнаёте о новой технологии:
- Отрицание: Ещё одна JavaScript библиотека?! Зачем? У меня уже есть jQuery!
- Интерес: Хм, наверное мне следует взглянуть на эту библиотеку...
- Паника: Помогите! Мне нужно изучить эту библиотеку прямо сейчас, иначе мои знания устареют!
Есть одна хитрость для поддержания благоразумия в эпоху быстроразвивающихся технологий: изучать новые вещи между вторым и третьим этапом, как только интерес задет, но пока технология ещё не распространена повсеместно.
Именно поэтому сейчас самое время узнать, что же такое этот GraphQL, о котором вы повсюду слышите.
Blazor: Техническое введение
Что такое Blazor? Это фреймворк для браузерных приложений, написанный на .NET и запускающийся с помощью WebAssembly. Он даёт вам все преимущества богатых современных одностраничных приложений (SPA), позволяя при этом использовать .NET от начала и до конца, вплоть до общего кода на сервере и клиенте. В посте с анонсом подробно описаны основные случаи применения, сроки и так далее.
В этом посте я хочу поглубже поговорить о технических деталях для тех, кому интересно как же это работает.
Avalonia Tutorial: Реализация MVVM по шагам с примерами
Avalonia — это?
Avalonia – это кроссплатформенный XAML фреймворк для платформы .NET. Для многих разработчиков на WPF/UWP/Xamarin данный фреймворк будет интуитивно понятен и прост в освоении. Avalonia поддерживает Windows, Linux, macOS, также заявлена экспериментальная поддержка Android и iOS. Развивается проект при поддержке сообщества и является open-source.
Электронный конструктор, не бьющий током
Дайте угадаю: вы в детстве заворожённо рассматривали печатные платы? Вам было любопытно узнать, как работает этот мини-город из разноцветных деталек? Возможно, у вас был опыт сборки электронных схем по книгам Борисова и Свореня? Советский сорокаваттный паяльник, кусочек канифоли в спичечном коробке? А ещё штаны с намертво влипшей в ткань каплей припоя?
Современные программные средства иллюстрируют процессы, происходящие в электрических цепях, с недосягаемыми для радиолюбителей недавнего прошлого наглядностью и интерактивностью. Они визуализируют протекающие по схеме токи и показывают напряжения в её различных частях. Это снижает порог понимания для людей, которым сложно даются абстрактные знания и язык формул.
Изумрудный венгерский терминал Videoton VDX 52600
Когда увидел в объявлении этот чёрно-зелёный венгерский терминал, то не смог устоять перед его магией. Тем более, что он был совместим с терминалом vt52. Мне всегда хотелось испытать то самое чувство, которое испытывали операторы больших ЭВМ при работе с такими вот прекрасными терминалами. И, наконец, настало то удивительное время, когда подобный терминал могу иметь дома и подключать его к своему домашнему ПК.
Мне было по-настоящему интересно попробовать использовать его для реальной работы с удалёнными серверами, для которой они и были изначально предназначены. Всё это попробую реализовать в рамках данной статьи.
«Я не халявщик, я партнер»: как обещали надежные 20% годовых в долларах на блокчейне, и почему всё развалилось
В этой статье мы сначала разберемся, откуда берется такая чудесная доходность, и как ее люди получают. А потом посмотрим в прямом эфире, как выглядит деконструкция финансовой пирамиды.
Блокчейн на Python
Цель этого материала заключается в том, чтобы выявить отличия языков. Его можно считать Python-дополнением к исходной статье.
Несмотря на то, что исходная статья появилась на свет после того, как её автор ознакомился с примером блокчейн-разработки на Python, мне хотелось написать Python-код, который как можно более точно воспроизводит JavaScript-код из статьи. Это позволит сопоставить реализацию блокчейна на разных языках.
Я, кроме того, собираюсь сделать так, чтобы моя реализация блокчейна, как и в статье про JavaScript, тоже поместилась бы в 60 строк.
Ищем дубликаты фотографий с помощью Perl
За 20 лет у меня скопилось несколько тысяч фотографий: праздники, свадьбы, рождение детей, и прочее, прочее... Понятно что снималось всё это на разные цифровики, присылалось почтой, сливалось через ICloud и GDrive, FTP, самба и т.п. По итогу всё это превратилось в дикий хаос папок и что-то найти в архиве можно было только с большим трудом.
В какой-то момент мне нечем было заняться это надоело и я за пару дней накидал скрипт, который всё это безумие раскидал по годам->месяцам->дням. Понятно, что и эта задача не такая простая как кажется на первый взгляд, что например делать с фото, у которых дата создания 1970? Но в этой статье я хотел бы рассказать о другом.
Изысканный ужин из пробирки: 3D-биопринтинг стейка вагю
Сказать, что наука тесно переплетена со всевозможными аспектами нашей жизни, значит ничего не сказать. И дело даже не о процессах и явлениях, которые ежесекундно происходят вокруг нас и внутри нас, а о предметах и устройствах, которые мы используем. Все они в той или иной степени являются результатом каких-то научных изысканий. Когда же о науке, несмотря на ее полезность, говорят в рамках продуктов питания, но мнение общества разделяется. Кто-то считает использование науки для совершенствования или создания новой еды вполне нормальным явлением и результатом естественного техногенного развития нашей цивилизации. А кто-то отвергает прогресс, предпочитая все натуральное и подаренное матушкой природой, с презрением относясь к ученым с их пробирками, химикатами, ГМО и прочими гадостями. А теперь представьте споры, которые может породить результат работы ученых из университета Осаки (Япония), создавших на 3D-принтере стейк вагю, по своей структуре идентичный натуральному. Что стало основой искусственного стейка, как именно он был «напечатан», и какова его польза и ценность для человека? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Выходим из тюрьмы Apple. Установка произвольных приложений на iOS без джейлбрейка
App Store — не единственный способ установки приложений для iOS. Раньше люди специально делали джейлбрейк, чтобы установить каталог Cydia. Но в последнее время появилось несколько сторонних каталогов, которые работают вообще без джейлбрейка. Удивительно, но Apple пока не ставит им палки в колёса.
Эти каталоги приносят реальную пользу, ведь здесь независимые разработчики свободно распространяют свои программы без комиссий и цензуры. Apple не может произвольно отзывать со смартфонов такие приложения. А люди получают более широкий выбор программ, включая эмуляторы Linux, независимость от производителя и реальное право владения.
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Работает в
- Дата рождения
- Зарегистрирован
- Активность