Kiss linux что это

Новый KISS дистрибутив

I was swapping from distribution to distribution looking for something minimal, simple and well written. Not being satisfied by any of the existing options, I decided to swap to OpenBSD (only to find that it did not support my hardware). This pushed me to create my own distribution, reflecting my beliefs and desires.

— Dylan Araps (Creator of KISS)

A [WIP] Linux distribution with a focus on simplicity and privacy. The distribution currently targets the x86-64 architecture and the English language.

Some prior knowledge of Linux (or other UNIXY systems) is required however, those with the capacity, the drive and the willingness to learn will see KISS as a great place to start.

  • Source based package installation
  • Plain text package format.
  • Tiny package manager written in 500

lines of POSIX sh.

  • Safely written shell scripts (shellcheck compliant).
  • Easily extendable.
  • Repositories

    The repositories work using a new format, a set of plain-text files with fields split on spaces and/or newlines. Super easy to parse and interface with in any programming language or with basic UNIX tools.

    Software

    KISS uses musl as its libc and busybox as its coreutils and init system. Busybox provides the runit utilities which are used for services. You can also configure init to use sysvinit style scripts or nothing at all.

    The distribution’s official repositories do not include software like systemd, gettext, intltool, dbus, polkit, pam, etc. However nothing stops you from creating your own repository and packaging whatever you like.

    Новость увидел на /r/unixporn. Решил поделиться. Выразите своё «не нужно».

    Источник

    KISS — принцип проектирования, содержащий все остальные принципы проектирования

    Если проект прост, его легко понять… Разработать простой проект не так легко. Для этого нужно время. Для всякой сколько-нибудь сложной программы окончательное решение получается в результате анализа огромного объема информации. Когда код хорошо спроектирован, кажется, что он и не мог быть иным, однако возможно, что его простота достигнута в результате напряженного умственного труда (и большого объема рефакторинга). Сделать простую вещь сложно. Если структура кода кажется очевидной, не надо думать, что это далось без труда.

    Итак, принцип проектирования KISS (keep it simple and straightforward) провозглашает, что простота кода – превыше всего, потому что простой код – наиболее понятный.
    Практически все принципы проектирования направлены на достижение понятности кода. Нарушая какой-либо принцип проектирования, вы уменьшаете понятность кода. Непонятный код автоматически вызывает у человека ощущение того, что код сложный, так как его сложно понимать и модифицировать. При нарушении любого из этих принципов также нарушается и принцип KISS. Поэтому можно говорить, что KISS включает почти все остальные принципы проектирования.
    Патерны проектирования описывают наиболее удачные, простые и понятные решения некоторых проблем. Если вы используете паттерн проектирования там, где нет проблемы, которую решает данный паттерн – то вы нарушаете KISS, внося ненужные усложнения в код. Если вы НЕ используете паттерн проектирования там, где есть проблема, соответствующая паттерну – то вы опять-таки нарушаете KISS, делая код сложнее, чем он мог бы быть.

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

    Всвязи с тем, что представления разных людей о таком понятии как «простота» могут различаться, приобрели широкое распространение следующая заблуждения относительно KISS-a:
    Заблуждение 1. Если считать, что простой код – это такой код, который проще всего написать, то можно истолковать, что принцип KISS призывает писать первое что взбредёт в голову, вообще не задумываясь о проектировании.
    Заблуждение 2. Если считать, что простой код – это такой код, для написания которого требуется как можно меньше знаний, то можно истолковать, что принцип KISS призывает не использовать паттерны проектирования.

    Пример на C#

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

    Как выглядит первое что приходит в голову:

    Однако этот код противоречит двум пунктам из определения простоты: самый естественный и легко доступный для понимания. Код не естественный, потому что есть некий искусственный класс IntersectionFinder. Код не является легко доступным для понимания, потому что человеку, незнакомому с кодом, нужно будет просмотреть все места использования IShape, чтобы понять, реализован ли функционал вычисления пересечения фигур и как именно им воспользоваться. В проектах, насчитывающих несколько десятков (или даже сотен) тысяч строк кода это может оказаться не быстрым занятием. Есть ещё один неприятный момент, добавляющий трудностей к работе с классом IntersectionFinder: количество функций с именем FindIntersection возрастает в виде арифметической прогрессии от количества фигур, в результате чего класс IntersectionFinder очень быстро «раздувается» и при большом количестве фигур поиск нужной функции в нём становится затратным по времени занятием. Поэтому перенесём FindIntersection в IShape.

    Отлично, теперь незнакомому с кодом программисту не придётся искать по всему проекту способ сделать пересечение двух фигур. Исчезла лишняя сущность «Вычислитель Пересечений». Код стал более естественным и легко доступным для понимания, а значит — более простым. Теперь при создании нового типа фигуры не нужно вносить изменения в ранее созданные классы, а значит добавление новых типов фигур также упростилось. Проще найти конкретный алгоритм поиска пересечения, так как теперь не нужно искать его в гигантском классе среди множества методов с одинаковыми именами.

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

    Как видно, из каждого конкретного класса фигуры исчезли методы public IShape FindIntersection(IShape shape), общее количество строк кода сократилось. Теперь добавлять новые типы фигур стало ещё проще. Метод FindIntersection(Shape shape) теперь находится в базовом классе и выглядит более просто и естественно (декларативно). Добавился новый класс MethodFinder, однако программисту не нужно знать его внутреннее устройство, т.к. он имеет понятный интерфейс и не реализует понятия из предметной области (а значит причины для его изменений будут редки), поэтому сложность кода практически не возросла при его добавлении.
    Тут может возникнуть мысль, что рефлексия — медленная штука, и для ускорения можно, например, кэшировать делегаты, динамически сформированные посредством ExpressionTree, однако KISS призывает писать как можно более простой код, поэтому стоит воздержаться от этой мысли до тех пор, пока быстродействие метода FindIntersection(Shape shape) действительно не станет узким местом программы, создающим проблемы для пользователя. Но вот что не следует откладывать, так это создание юнит-теста, который через рефлексию узнаёт всех наследников класса Shape и проверяет, что программист не забыл реализовать алгоритмы поиска пересечения для всех пар фигур.

    Сравнив взглядом первый и третий пример, может показаться не очевидным, что третий пример проще. Однако давайте, представим, что типов фигур не 3, а 30. Тогда количество функций сравнения фигур — 465 (сумма арифметической прогрессии (1+30)*30\2). В первом случае механизм выбора нужной функции будет скрыт за 465 if-ами (или, как вариант, за контейнером с 465-ю указателями на методы, что не сильно лучше), и среди этого нагромождения if-ов незнакомому с кодом программисту нужно будет усмотреть некую систему. Тогда как в 3-м случае подход декларативен и не зависит от количества типов фигур. Этот пример хорош тем, что значительной части программистов может показаться, что третий пример является плохим решением, так как в нём используется рефлексия для доступа к приватным переменным (что является своеобразным табу в среде программистов), потому что они слышали из авторитетных источников, что использовать рефлексию для таких целей плохо, но не могут объяснить, почему это плохо. Этот психологический феномен называется фиксированностью ценностей.

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

    Немного истории.
    Принцип KISS зародился в авиастроении и исторически переводится как «Keep it simple stupid» и расшифровывается как «сделайте это до идиотизма простым». В истории авиастроения известны случаи, когда слишком усердные рабочие прибивали на самолёт лишние пластины брони, чтобы сделать самолёт более живучим в бою, в результате чего масса самолёта становилась больше расчётной и самолёт попросту не мог взлететь. Кроме того, квалификация многих рабочих была низкой. В таких условиях конструкции самолётов, которые пьяный неквалифицированный рабочий не смог бы собрать неправильно, даже если бы захотел, обладали особенной ценностью. Один из отголосков конструкторских решений того времени — невозможность перепутать и воткнуть неверный штекер в гнездо внутри компьютера. Однако, если результатом труда авиа-инженера является чертёж, по которому будет создан продукт, то в случае с программистом продуктом является сам чертёж (образно выражаясь). В случае программиста он должен написать код так, чтобы пьяный неквалифицированный программист смог внести в него изменения в соответствии с изменившимися бизнес-требованиями (то есть изменить чертёж, а не собрать самолёт). В силу различий в специфике авиастроения и программирования, расшифровка «Keep it simple stupid», подходящая в авиастроении, уже не так хорошо отражает суть принципа для программиста. Многие ленивые программисты расшифровывают «сделайте это до идиотизма простым» как «не утруждайте себя проектированием» (сравните, например, описание принципа KISS в этой статье с вот этим описанием). К счастью, у KISS есть ещё и некоторые другие расшифровки, одна из которых, на мой взгляд, лучше всего отражает суть KISS в программировании — «keep it simple and straightforward». Straightforward переводится как простой, честный, прямолинейный, откровенный. «Keep it simple and straightforward», таким образом, можно вольно перевести как «Сделайте это простым и декларативным», а для достижения декларативности требуется проектирование.

    За пример следует благодарить Hokum, который подал первоначальную идею для примера, которую я немного изменил.

    Источник

    KISS Linux, новый полностью независимый дистрибутив для средних и продвинутых пользователей

    Дилан Арапс недавно представил автономный дистрибутив Linux. ориентирован на простоту и конфиденциальность, называется KISS Linux. Этот дистрибутив Linux не берет основу ни в одном дистрибутиве, но является мини-раздачей построен на ядре Linux и что он объединяет только то, что необходимо для его работы.

    В настоящее время дистрибутив ориентирован на архитектуру x86-64. и на данный момент это только на английском языке (хотя, возможно, со временем это изменится). KISS Linux — это дистрибутив Linux для пользователей, которые уже имеют некоторый опыт работы с системами Linux / или Unix.

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

    О KISS Linux

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

    В KISS, сценарий сборки работает как любой другой исполняемый файл.

    Что касается менеджера пакетов дистрибутива, у него есть опции, которые есть у каждого менеджера пакетов, по крайней мере, для администрирования и обслуживания системы.

    • поцелуй [b | c | i | l | r | s | u] [упаковка] [упаковка] [упаковка]
    • build: собрать пакет
    • контрольная сумма: генерировать контрольные суммы
    • install: установить пакет
    • list: список пакетов, установленных в системе
    • remove: удалить пакет из системы
    • поиск: поиск пакета в системе
    • обновление: проверьте наличие обновлений

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

    Таким образом, было бы не глупо сказать, что концепция KISS является наиболее субъективным понятием, существующим во вселенной GNU / Linux. Чтобы лучше все это понять, Разработчик так прокомментировал свой подход и причину создания этого дистрибутива:

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

    Это подтолкнуло меня к созданию собственного макета, отражающего мои убеждения и пожелания.

    Некоторые люди теперь видят ArchLinux как типичный дистрибутив KISS Linux, потому что он легкий и действительно простой с точки зрения кода или системы управления пакетами, а также потому, что он ограничивается предоставлением минимума для работы в режиме текста.

    Другие считают, что Gentoo заслуживает этого титула, потому что абсолютно необходимо все в нем скомпилировать.

    Однако точка зрения разработчика не обязательно совпадает с точкой зрения конечного пользователя, и концепция распространения KISS Linux может сильно различаться в зависимости от типа пользователя.

    Arch, Gentoo и все другие аналогичные дистрибутивы Linux — это что угодно, только не KISS на уровне пользователя.

    С другой стороны, такие дистрибутивы, как Linux Mint, Kubuntu или любой другой готовый дистрибутив, можно считать действительно KISS, потому что проще включить систему и все держать под контролем. без необходимости что-либо настраивать, устанавливать или создавать.

    — сказал Арапс, создатель и промоутер проекта.

    Установка KISS Linux

    Как упоминалось в начале, KISS Linux не для новых пользователей., поскольку требуется средний опыт работы с Linux и / или Unix. Установка KISS Linux чем-то похожа на установку Gentoo на этапе 3 (архивы).

    Поскольку KISS в настоящее время не поддерживает загрузку через initramfs, поэтому пользователь должен настроить свое ядро.

    Разработчик комментирует, что использует файл, содержащий полную систему KISS без загрузчика и ядра и что существующий дистрибутив Linux потребуется использовать в качестве основы для установки.

    С руководством по установке можно ознакомиться По следующей ссылке.

    Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

    Полный путь к статье: Любители Linux » GNU / Linux » Распределения » KISS Linux, новый полностью независимый дистрибутив для средних и продвинутых пользователей

    Источник

    Читайте также:  Tablet 4gb windows 10
    Оцените статью