
Kiss Linux – A distribution with a focus on less is more - joshuareed
http://k1ss.org
======
danielscrubs
I loved the idea (git everything!) until I read this:

"How do I remove a package and all of its dependencies? [...] The package
manager does not do recursive dependency removal on removal of a package. This
error-prone automation will not be added to the package manager. "

~~~
pampa
This might seem like a limitation. But you can provide a base system with a
toolchain & xorg with known dependencies and a limited set of packages (like a
BSD base system). Then for every big and complex app clone that base system
and build the app in a chroot/sandbox or container. That way you get the app
and dont pollute the base system and uninstalling is just rm -rf

On every distro uninstalling packages never really reverts the system to its
previous state, always leaves some junk behind.

~~~
t0astbread
Isn't this basically what Docker is for?

~~~
dicknuckle
Yes in that it's container tech, but for servers. Snap is the equivalent for
desktop. Both have their merits.

------
bjourne
> The distribution targets only the x86-64 __architecture and the English
> language.

Deal breaker for me. But the author should be commended for stating it up
front. Far to often, only the benefits are presented but none of the flaws so
you have to investigate new tech deeply to find out if it is right for you.

~~~
slezyr
Seriously? There's a link "Ports (non-x86-64)" in the side bar.

[https://k1ss.org/ports](https://k1ss.org/ports)

~~~
LargoLasskhyfv
Sorry, but to use the port for the PineBook pro on a RPI4, NanoPI, Odroid,
Beaglebone, whichever ARM else _YOU_ are the porter. Which may be simpler,
because _K1SS_ , but it isn't readily available...

~~~
slezyr
Well, I have Radxa Rock(RK3188) and no distro supports it. With ARM "YOU are
the porter" is right for many other distros, except some very popular boards.
Even O-Droid's support vary between the boards.

------
nine_k
My 2¢. (1) When I wanted simplicity and rolling releases / bleeding edge, I
found Void Linux, which is indeed very minimal. It does proper package
management, though, and can remove orphans. (2) An even more minimal Linux
"distro" based on git and tup was discussed back in the day:
[https://news.ycombinator.com/item?id=16015105](https://news.ycombinator.com/item?id=16015105)

~~~
ghostpepper
Void is a breath of fresh air for anyone who is fed up with the mission creep
of systemd but it's also a great distribution in its own right.

I'm not familiar enough with the internals of XBPS to compare it with apt or
yum or pacman, but it seems to work quite well.

I have also found the community around Void to be quite welcoming.

------
UI_at_80x24
I applaud your efforts, and am happy to see more options available. I really
hope this takes off. Your choice to not include systemd is a HUGE incentive
for me to try this out.

1 super-small nit to pick: the sub-title "..a focus on less is more.." I took
that way too literally and thought it was referencing the tool `less` and was
expecting it to have used less as a wrapper for everything. (call it a brain
fart, and lack of caffeine)

I FUCKING LOVE YOUR WEB PAGE.

Thank-you so fucking much for reminding people and showing that simple is
beautiful. Everything is clear, obvious and legible.

~~~
_n_b_
On most systems these days, 'less' _is_ more:

    
    
      % cksum `which less` `which more`
      2677110273 146976 /usr/bin/less
      2677110273 146976 /usr/bin/more

~~~
snazz
I think that more is symlinked to less on your system, not the other way
around. On my machine (Arch), they're separate:

    
    
      jack@jackdesktop ~ [1]> bash -c "cksum `which less` `which more`"
      3407085100 179664 /usr/bin/less
      110370394 38816 /usr/bin/more
      jack@jackdesktop ~>

~~~
_n_b_
OK, now you've prompted me to do proper research:

Not a symlink (or even a hard link) on my OS X laptop, but the same
executable.

On my OpenBSD systems, they're hard links.

On my Ubuntu system, they're separate.

~~~
snazz
Interesting! I wonder what the historical reason is for all of those different
permutations.

------
Kototama
> Uses a package manager written in less than 1000 lines of POSIX sh
> (excluding blank lines and comments).

Enough to get 20 bugs :-). I wish there was a good standard alternative to
bash (sh in this case) for shell programming.

Otherwise I like the spirit, it's a good match with collapse os ;-)

~~~
sirn
> I wish there was a good standard alternative to bash (sh in this case) for
> shell programming.

I would say Tcl!

Tcl is one of the most underrated programming language that everybody probably
has installed. It has existed for as long as ksh and even long before bash. It
is simple and powerful enough that first version of Redis were written in
it[1].

MacPorts is written in Tcl (including its ports DSL) and I enjoyed every
moment working with it.

[1]:
[https://gist.github.com/antirez/6ca04dd191bdb82aad9fb241013e...](https://gist.github.com/antirez/6ca04dd191bdb82aad9fb241013e88a8)

~~~
nrclark
Agreed 100% with this. TCL is a super cool language IMO. It's mature, unixy,
and has minimal external dependencies. The ecosystem is stable and slow
moving. I would encourage anybody to try it out!

The syntax takes some adjustment because it's not lval/rval-based, which is
maybe why it's not so widely used now. But if you want a language that's more
robust than shell and more minimal than Python, consider TCL for your next
project.

------
ChuckMcM
This is brilliant. I also love the testimonials here:
[https://k1ss.org/testimonials](https://k1ss.org/testimonials) because they
pretty much capture the entire Linux community of developers.

But if you contextualize it a bit differently I think you might find it is
super valuable.

One of the challenges the Linux community has is that there are so many
distributions or 'distros' to choose from. What is more, the feature sets of
those distros form a non-planar non-directed graph of nodes for which it is
very very difficult to reason about their feature content.

Consider for the moment if you could reason about distros like you can reason
about genomes. In modern genetics we can look at flora, fauna, bacteria, etc
and talk about them as a base class "foo" with specific genetic changes that
get them to be a "bar", we can talk about speciation where the genetics are
different enough such that hybrids are infertile or impossible.

This effort tries, and I think largely succeeds, in capturing the "minimum
viable Linux _system_ " (all up kernel + user land). It gives you a way to
reason about two different distros like

Ubuntu is Kiss plus (list of things) and for each item in the list of things,
it has dependencies, recursively until you have completely described the
genome of Ubuntu as a linear directed graph from Kiss. You could do the same
thing for Fedora, or Mint, or any distro.

Two such graphs could give you a complete list of differences to get from
distro <a> to distro <b> and the simple algorithm of walk back (remove items)
from <a>, then walk down the graph (add items) to <b> would always "work"
because they all share a common ancestor node, Kiss.

As a software developer you could reason about all of the changes to a distro
you would need for your software to work, and this would tell you if those
changes included removing something that was part of the canonical set of
things in a distro, your software would not work on that distro.

Today, individual package managers do this in a distro unique way and let you
work on one distro. As a software developer you end up with the
"Fedora/Redhat" version, the "Ubuntu/Debian" version, maybe the "Arch/Gentoo"
version.

But if the Linux community settled on a common understanding of the "genetic
code" if you will, you could do that for _all possible_ distributions. That
would be a powerful thing.

------
leephillips
I enjoyed reading the list of explicitly excluded software. My current
approach to installing linux on a laptop is to start with xubuntu, add dwm,
and remove the desktop, ibus, pulseaudio, and a bunch of other stuff. I
discovered that Firefox will not play sound without pulseaudio! My next
project is removing dbus, but many things on the system seem to depend on it.
I think linux is a beautiful thing, but the mainstream distributions are
messes of competing, redundant subsystems and massively bloated interface
layers that do very little except make the system less reliable, slow, and
hard to configure.

~~~
tomaspollak
There's a package called apulse, that tricks programs into thinking they are
talking to PulseAudio while piping stuff internally to ALSA.

[https://github.com/i-rinat/apulse](https://github.com/i-rinat/apulse)

~~~
leephillips
Amazing, thank you so much!

------
arghwhat
1000 lines of shell is about 900 lines too many for "simple".

~~~
norswap
As opposed to?

This just sounds like dumb shell hate.

I personally would have used another language, but shell ain't that hard if
you have some experience with it, and are using shellcheck as the author does.

The config formats of the distro are optimized for command line tools, and
writing the package manager in shell seems like a good way to ensure that this
is indeed the case - basic dogfooding.

~~~
arghwhat
As opposed to programming languages with constructs that allow proper code
hygiene. That implies an actual type system, a usable standard library, etc.

Shell is _great_ for scripting usage of other programs, far better than other
programming languages. That's what it's made for, after all. It's the _only_
thing it's made for.

------
louisch
I do appreciate how they don't even have a backend for the website (though
saying that, I'm not sure why most Linux distributions would require a full
backend for their website)

~~~
bauerd
It's an operating system distribution... why bother with how its documentation
is served

~~~
avhon1
Because it reflects how the writers solve problems. They needed a website. Did
they spin up a docker container of wordpress, install a theme and some plugins
until it looked the way they wanted, and write content in an in-browser
WYSIWYG editor? Or did they write their content as HTML, and copy it to a
server running HTTPD? Those two solutions represent different values,
different philosophies, about how to use computers. It is good to see that the
author's website-building approach is consistent with their operating-system-
building approach. It lends credibility to the sincerity of the project.

~~~
bauerd
No, it primarily reflects the problems. For example, the Gentoo and Arch Linux
run MediaWiki. Does this tell you something about their "values or
philosophies about how to use computers"? No, a static site generator would
simply not be practical for either project. What renders documentation HTML in
the background tells nothing about either project's approach to operating
system development.

------
zamalek
> Explicitly excludes the following software: wayland

I find it curious that a distro espousing simplicity would choose XOrg over
Wayland (which was created to resolve problems arising from unnecessary
complexity in XOrg). It looks like this is 80% simplicity and 20%
sentimentality. I don't use wayland myself, but simplicity is certainly not a
factor in that decision.

~~~
zests
Wayland strikes me as the "shiny new thing" that is not ready for widescale
use. If I was designing a distro and could only choose one I would choose X
unless it was specifically a distro for shiny things that break.

~~~
zamalek
I think that's a completely fair reason to avoid wayland, there are many of
them. Complexity just doesn't seem like one of them.

------
airbreather
Well all I can say is grandma won't be installing kiss any time soon, looking
at the instructions.

~~~
sildur
Grandma programmed in COBOL ([https://timeline.com/women-pioneered-computer-
programming-th...](https://timeline.com/women-pioneered-computer-programming-
then-men-took-their-industry-over-c2959b822523)) and lisp
([https://www.gnu.org/gnu/rms-lisp.html](https://www.gnu.org/gnu/rms-
lisp.html)). Don’t be so condescending.

~~~
spacephysics
Straight to the tribal, political realm. What do you expect to change? Should
we say “Grandpa” instead? Should we try to include the experiences of everyone
to a point where common sayings or one off phrases must be dissected for
malicious intent? Come on

~~~
tluyben2
The reason why I _must_ die lies in music and long toes; I simply do not
comprehend many people anymore in these areas. When I was young, and yes, this
is a while ago, we had real men and real women and I do understand that was
way too binary but the pussyfooting around _everything_ really goes way too
far. That is me and as such I have to go before I do not understand anything
anymore. I cannot believe people who want to be immortal will not go
clinically insane by the weirdness that they see, decade after decade.

~~~
throwaway8941
You can always move to a more conservative society. I live right on the other
side of the globe and look at what's happening in the US with its fifty
genders and SJW harassment for using the word "he" as pure lunacy.

There are other, much more serious problems over here, of course.

~~~
tluyben2
I live in Portugal (moved from Spain) and yes, that is true on both counts. I
find it difficult to live with people who get upset over everything though. I
would would say 'grow a pair' but that would not be correct... My grandfather
says 'if you survived through a real war you would not care about this crap',
but that would not be correct (and I think that's a bit over the top, but he
survived 2 world wars)...

------
carapace
Me, out loud: "Awwww! What _cute site!_ " I am not ashamed.

It's like a lil mini _haiku_ OS (not to be confused with _HaikuOS_ the open
BeOS).

\- - - -

Ooo!

[https://github.com/michaelforney/samurai](https://github.com/michaelforney/samurai)

> samurai is a ninja-compatible build tool written in C99 with a focus on
> simplicity, speed, and portability.

------
pjmlp
30 years ago, trying out the distribution of the month was kind of cool,
nowadays they just contribute to the endless fragmentation of GNU/Linux
ecosystem.

I bet that during high time of UNIX wars no imagined it could get even worse.

~~~
downerending
I can assure you that it's not worse. There are only two or three
distributions that are credible at the corporate level, and they are far more
similar than the major Unix wars platforms.

------
speedgoose
Can you run Docker and systemd on it?

~~~
Icyphox
Possibly. If they don't rely on glibc, since KISS uses musl. Besides, why
would you? They go against the fundamentals KISS.

~~~
thecureforzits
> Besides, why would you?

Turns out less is indeed less.

------
ogre_codes
Been a while since I've used a Linux distro, let alone one that focused on
being basic, but it feels like there is a lot of overlap with what Slackware
was last time I used it. To me the whole point of "Simple" is to make the
system comprehendible and Slackware did a very good job of that.

(Or for that matter, given the functionality presented here, I think OpenBSD
as well)

------
MuffinFlavored
* init

* repo

* community

* kiss

[https://github.com/kisslinux/](https://github.com/kisslinux/)

Which package is the Linux kernel build stuff related? I recently wanted to
bundle a quick Alpine install into a shareable `qemu` image. I couldn't figure
out how to add a simple kernel module that was not included in the stock
config. I would love to get this problem solved.

------
sergeykish
Firefox ALSA backend is no longer supported [0], disabled by default
(--enable-alsa), not deprecated yet [1]. Need to fix while we can.

Hope you enabled Telemetry [2], bonus - it produces nice graphs [3].

[0]
[https://bugzilla.mozilla.org/show_bug.cgi?id=1345661](https://bugzilla.mozilla.org/show_bug.cgi?id=1345661)

[1] [https://github.com/kinetiknz/cubeb/wiki/Backend-
Support](https://github.com/kinetiknz/cubeb/wiki/Backend-Support)

[2] about:telemetry

[3] [https://data.firefox.com/](https://data.firefox.com/)

------
ai_ja_nai
Groan. Yet another distribution that fragments the scene with custom
_everything_.

~~~
efiecho
The more systemd free alternatives, the better.

~~~
miguelmota
Curious, what alternative do you use and why? I'm just trying to understand
the dislike for systemd

~~~
efiecho
Depends on the distro but mostly OpenRC, SysVinit and Runit. I find that every
one of them is better than systemd. The design philosophy of systemd also goes
against everything I stand for.

------
miguelmota
I’m not familiar with Kiss but it looks interesting; what’s the benefit of
Kiss over something like Arch Linux which is already minimal?

~~~
Icyphox
Arch is far from minimal. It literally ships systemd, and all kernel options
enabled. Not to mention glibc, and a shitton of other crap...

~~~
II2II
While I agree that Arch is far from minimal, it is one of the distributions
that encourage people to build their system up to meet their needs. This is a
far cry from the attention grabbing desktop distributions that may or may not
offer a server version that can be built upon (which I, perhaps unfairly,
interpret as discouraging the build-up approach).

~~~
LargoLasskhyfv
I disagree. That was true for a time, and i enjoyed it coming from NetBSD. But
nowadays, if for any reason you don't want to use systemd, or have different
opinions about partioning, e.g. limiting access and execution rights and usage
for /var, /tmp you are in for an eternal uphill battle against the decisions
of 'upstream' and therefore the 'community' which devoutly adheres to these.
There are some derivatives addressing that, but at that point you can also
say: "Forget it!"

~~~
Foxboron
> [...] have different opinions about partioning, e.g. limiting access and
> execution rights and usage for /var, /tmp you are in for an eternal uphill
> battle against the decisions of 'upstream' and therefore the 'community'
> which devoutly adheres to these. There are some derivatives addressing that

I'm curious about which use cases wasn't supported for you, why it was an
uphill battle and which derivative addressed them. I don't quickly see what
would give you issues at first glance.

~~~
LargoLasskhyfv
I don't remember exactly anymore, left ship too long ago. But it wasn't about
the /usr move.

One derivative would be [https://web.obarun.org](https://web.obarun.org) ,
another one [https://artixlinux.org](https://artixlinux.org)

------
pkulak
No Wayland, but Xorg? How is that simple?

~~~
avhon1
There are lots of good, simple window managers (not to mention other
utilities) for xorg. Window managers in wayland have a lot more work to do,
and are typically more complicated.

There are lots of utilities that aren't available in wayland yet, so you'll
often end up with an x server installed anyway.

~~~
fanatic2pope
Not using a GUI at all would be much simpler.

------
ggm
Gene Simmons ./tongue -s

------
encom
So this is basically Gentoo with precompiled packages.

~~~
wchar_t
The package manager is much simpler than Gentoo's.

------
snvzz
War is Peace.

Freedom is Slavery.

Less is More.

------
letientai299

        * Based on musl libc, busybox and the Linux kernel. 
    

As some one who is working on Go ecosystem, this drops my interesting
immediately. Using musl libs means a lot of tools can't be used on this OS
unless we install the glibc.

~~~
qhwudbebd
Are there problems with go on musl, then? Not a heavy go user but I’m sure
I’ve built a working go setup fairly painlessly on musl VM before. (Maybe it’s
a recent problem or perhaps I’m misremembering and I did something horrid like
pulling in glibc too, but I don’t think I did?)

~~~
qhwudbebd
Being unsure of my recollection, I've just bootstrapped and installed the most
recent go 1.14.3 release on a pure musl x86_64 chroot. Everything I can think
of to test so far is working impeccably.

------
temptemptemp111
Could be cool, but isn't Wayland less bloated than Xorg?

------
techntoke
Website looks terrible, practically unreadable on mobile. Black and red don't
go well together either.

~~~
dmitshur
I enjoyed viewing it on an OLED screen.

~~~
techntoke
They don't even have the "viewport" meta tag set, so it isn't meant for
mobile.

~~~
cosmojg
Oh wow, and yet it looked beautiful in Firefox on my OnePlus 6T. Very
impressive.

------
msla
> Based on musl libc, busybox and the Linux kernel.

Busybox is not KISS. It's an all-in-one package, removing the ability to strip
down the number of tools you have to the ones you strictly need. It's a big,
bloated binary blob, in other words.

> Every installation of the distribution contains the full sources (of the
> distribution) with git history attached.

This doesn't even pretend to be minimal.

~~~
nrclark
That's not strictly true about Busybox. You just need to recompile it to
change what's included. You can absolutely enable/disable individual tools in
the menuconfig.

