2024-10-08 11:55:20 +08:00
|
|
|
|
The Why
|
|
|
|
|
=======
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
This is a lot of blabbering. Blabbering and then reading my own blabbering
|
|
|
|
|
later helps clarify my thoughts.
|
|
|
|
|
|
2024-10-08 11:55:20 +08:00
|
|
|
|
Well, this is at least a partial explanation at *why* I am attempting to create
|
|
|
|
|
my own GNU/Linux distribution.
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
I have become less and less fond of the current GNU/Linux distribution
|
|
|
|
|
landscape. It seems that each distribution has a specific way of doing things
|
|
|
|
|
and you do it their way or do not do it at all. Each distribution likes to
|
|
|
|
|
package everything under the sun and you use their packages or you build from
|
|
|
|
|
source.
|
2024-10-08 11:55:20 +08:00
|
|
|
|
|
|
|
|
|
I have a different philosophy. I do not like monopoly power. I do not like the
|
|
|
|
|
power that Amazon has, I do not like the power that Facebook has, I do not like
|
2024-10-08 18:08:41 +08:00
|
|
|
|
the power that Chase has. I think diversity in options is key to consumer
|
2024-10-08 11:55:20 +08:00
|
|
|
|
quality.
|
|
|
|
|
|
|
|
|
|
It is true that there are many different GNU/Linux distributions to choose from
|
|
|
|
|
but it seems that each one is trying to be a monopoly power and dictate how
|
|
|
|
|
things are to be done.
|
|
|
|
|
|
2024-10-10 07:40:17 +08:00
|
|
|
|
|
|
|
|
|
The KISS Philosophy
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
There is an old GNU joke that (according to my father) predates the Linux kernel
|
|
|
|
|
considerably: ‘Less is more, more or less.’
|
|
|
|
|
|
|
|
|
|
The joke is a pun on the console pager `less` which was written as a GNU
|
|
|
|
|
alternative to the standard UNIX pager `more`. I *personally* like that pun
|
|
|
|
|
because it embodies the philosophy of KISS---‘Keep It Simple, Silly!’
|
|
|
|
|
|
|
|
|
|
The base distribution should be simple with added features needed for more
|
|
|
|
|
advanced use cases available but nor forced upon everyone just to have them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Linux-PAM
|
|
|
|
|
|
|
|
|
|
Linux-PAM. It is required by the LSB (Linux Standards Base). Fuck the LSB! When
|
|
|
|
|
I say that, I do not mean the LSB should just be wantonly ignored, I actually
|
|
|
|
|
frequently refer to it. However, things like requiring Linux-PAM and the RPM
|
|
|
|
|
Package Manager are just bullshit aspects of the LSB. Even things like requiring
|
|
|
|
|
the Qt4 Libraries be available are bullshit aspects of the LSB.
|
|
|
|
|
|
|
|
|
|
In corporate environments, it probably is critical to have Linux-PAM. For the
|
|
|
|
|
home user, we typically only ever authenticate by either a standard password or
|
|
|
|
|
by SSH keys if connecting remotely (SSH keys do not require PAM). We really
|
|
|
|
|
should not even have Linux-PAM loaded but with virtually every GNU/Linux
|
|
|
|
|
distribution out there, Linux-PAM is installed and the `shadow` package is
|
|
|
|
|
linked against it. The LSB requires it.
|
|
|
|
|
|
|
|
|
|
There have been more than one occassion where vulnerabilities in PAM allow for
|
|
|
|
|
__REMOTE__ access to the system. Often those vulnerabilities require special
|
|
|
|
|
circumstances that necessitate another attack first, but when that happens (e.g.
|
|
|
|
|
via malware) systems were vulnerable to the remote attack because of a flaw in
|
|
|
|
|
Linux-PAM that many users did not even need to have.
|
|
|
|
|
|
|
|
|
|
Most home systems are behind a router and thus not accessible to a remote attack
|
|
|
|
|
unless the attacker has a way onto the home network, but IPv6 is changing that.
|
|
|
|
|
|
|
|
|
|
Earlier this year, we tried a 5G router to see if it would meet our needs as the
|
|
|
|
|
monthly cost was much lower. I plugged the WLAN port from my home network router
|
|
|
|
|
(Omada controlled ER605v2) into the single Ethernet jack on the 5G router, and
|
|
|
|
|
it worked. Not only did it work, but my GNU/Linux desktops were now able to grab
|
|
|
|
|
IPv6 addresses! The geek in me thought that was cool, until (and it did not take
|
|
|
|
|
long) port scans started coming in.
|
|
|
|
|
|
|
|
|
|
Many home network routers, including the TPLink Omada hardware, just are not
|
|
|
|
|
ready for IPv6. They support it but do not have the firewall capabilities, you
|
|
|
|
|
have to run a separate firewall.
|
|
|
|
|
|
|
|
|
|
In our case, 5G just did not work out. Extensive bandwidth testing showed we
|
|
|
|
|
would have brief periods with over 200 MBit (very adequate for a home network)
|
|
|
|
|
followed by long periods with less than 30 MBit. I suspect the service just had
|
|
|
|
|
more subscribers than their hardware could adequately support.
|
|
|
|
|
|
|
|
|
|
However there are many people now using 5G for home networks who either do not
|
|
|
|
|
have adequate IPv6 firewall technology or do not know that they should turn off
|
|
|
|
|
IPv6 support and just use IPv4 with NAT for their home network. Such systems
|
|
|
|
|
would potentially have __remote__ vulnerability to future (or present secret
|
|
|
|
|
zero-day) exploits in Linux-PAM. Such systems would __NOT__ be vulnerable if
|
|
|
|
|
they did not use Linux-PAM.
|
|
|
|
|
|
|
|
|
|
Linux-PAM is absolutely the right solution in some corporate environments but it
|
|
|
|
|
should be provided by add-on package respositories rather than forced upon all
|
|
|
|
|
the users when the vast majority of home users will __NEVER__ use its
|
|
|
|
|
capabilities. Keep It Simple, Silly! Less is More!
|
|
|
|
|
|
|
|
|
|
Those who need (or want) Linux-PAM in YJL can get it from a third-party package
|
|
|
|
|
repository, if it *really* is important enough for a third-party package
|
|
|
|
|
repository to provide it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Filesystems
|
|
|
|
|
|
|
|
|
|
Logical Volumes are an awesome technology *however* their use can complicate
|
|
|
|
|
things when there is a system failure and recovery is needed. LVM2 is absolutely
|
|
|
|
|
the right technology for the server room where one filesystem often spans across
|
|
|
|
|
multiple physical drives.
|
|
|
|
|
|
|
|
|
|
For the home user and even for the corporate workstation, I really do not see
|
|
|
|
|
the need for it and prefer the simplicity of not having it.
|
|
|
|
|
|
2024-10-10 07:59:48 +08:00
|
|
|
|
Even where LVM2 does make sense, where it makes sense is for partitions that
|
|
|
|
|
need to use large amounts of data. That is not the root `/` filesystem that the
|
2024-10-10 07:40:17 +08:00
|
|
|
|
operating system lives on, but is typically `/home` or `/srv` or something
|
|
|
|
|
similar.
|
|
|
|
|
|
|
|
|
|
LVM2 can be added from a third-party package repository by those who really need
|
|
|
|
|
it (or just want it), it does not need to be there from the start.
|
|
|
|
|
|
|
|
|
|
Most GNU/Linux distributions do in fact allow the user to opt-out of LVM2 but
|
|
|
|
|
there still are often filesystem issues because the GNU/Linux distributions
|
|
|
|
|
frequently patch `e2fsprogs` to provide features that are not standard which
|
|
|
|
|
then make it difficult to mount the partition on a different GNU/Linux system
|
|
|
|
|
for recovery. I have run into this issue several times in the past.
|
|
|
|
|
|
2024-10-10 07:59:48 +08:00
|
|
|
|
Only vanilla `e2fsprogs` should be used in the distribution installer and even
|
|
|
|
|
then, bleeding edge features should be disabled by default (for example, the
|
|
|
|
|
`metadata_csum_seed` feature in current `ext4`).
|
2024-10-10 07:40:17 +08:00
|
|
|
|
|
|
|
|
|
If bleeding edge features are *truly* needed, the user can manually enable them.
|
|
|
|
|
If non-standard filesystem features are *truly* needed, they can be provided by
|
|
|
|
|
a patched `e2fsprogs` package in a third-party package repository. The base
|
|
|
|
|
package repository used for the operating system install should only have a
|
|
|
|
|
vanilla `e2fsprogs` and care should be taken not use features new enough by
|
|
|
|
|
default that a lot of utilities ‘in the wild’ do not yet support it.
|
|
|
|
|
|
|
|
|
|
I still cringe when remembering that time I had to recover a Red Hat system and
|
|
|
|
|
even the *latest* version of `e2fsprogs` could not mount it without first
|
|
|
|
|
applying Red Hat’s custom patch.
|
|
|
|
|
|
|
|
|
|
KISS definitely needs to apply to `e2fsprogs` at the base distribution level.
|
|
|
|
|
Fancy filesystem stuff should only be done by those who understand how to deal
|
|
|
|
|
with things that go wrong, and that often is not the home user. Even those who
|
|
|
|
|
work in IT often *and rightfully* bitch at non-standard options used by some
|
|
|
|
|
GNU/Linux distributions *by default*.
|
|
|
|
|
|
|
|
|
|
I do think that it less of a problem than it used to be, but I do not understand
|
|
|
|
|
how it was allowed to be a problem in the first place. It almost feels like they
|
|
|
|
|
were looking for ways to lock users in---and that goes against everything that
|
|
|
|
|
Free Software stands for.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Desktop Environments
|
|
|
|
|
|
|
|
|
|
Foo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Fonts
|
|
|
|
|
|
|
|
|
|
In my opinion, fonts in GNU/Linux is a mess. The problem is there are far too
|
2024-10-10 07:59:48 +08:00
|
|
|
|
many installed, making it difficult from a UI perspective to select a font.
|
2024-10-10 07:40:17 +08:00
|
|
|
|
|
|
|
|
|
Back when the Apple Macintosh first shipped, there was a small collection of
|
|
|
|
|
high quality variable-width bitmap fonts. The ‘Desktop Publishing’ era had
|
|
|
|
|
begun. Adobe soon released the PostScript vector font format and a standard
|
|
|
|
|
collection of high quality variable-width vector fonts. The ‘Desktop Publishing’
|
|
|
|
|
era took off at light speed.
|
|
|
|
|
|
|
|
|
|
The original collection of standard PostScript fonts was soon expanded to what
|
|
|
|
|
became known as ‘PostScript Level II’ with 35 fonts that any author knew would
|
|
|
|
|
be available in a ‘PostScript Level II’ printer. The ‘Desktop Publishing’ era
|
|
|
|
|
had matured.
|
|
|
|
|
|
|
|
|
|
If you take a look at the ‘PostScript Level III’ specification that followed, it
|
|
|
|
|
contains way too much and shows what happens when KISS is abandoned. That
|
|
|
|
|
specification is a joke. Way too many fonts in that specification, no one took
|
|
|
|
|
it seriously. Many of the fonts are beautiful fonts that people used, but so are
|
|
|
|
|
many fonts *not* in the specification.
|
|
|
|
|
|
|
|
|
|
For those familiar with the LaTeX world, the TeX-Gyre collection of fonts is a
|
|
|
|
|
high quality collection of Latin-based glyphs that covers *most* of the same
|
|
|
|
|
typefaces provided by the ‘PostScript Level II’ specification. Note that they
|
|
|
|
|
are not metric compatible, but (with the exception of Symbol and ITC Zapf
|
|
|
|
|
Dingbats) they provide the same typeface designs. They also provide matching
|
|
|
|
|
Unicode Math Fonts.
|
|
|
|
|
|
|
|
|
|
YJL will ship with the TeX Gyre collection of fonts, supplemented by a font I am
|
|
|
|
|
working on called ‘Platillo’ to cover non-script glyphs.
|
|
|
|
|
|
|
|
|
|
Additional fonts of course will be available. There are a lot of high quality
|
|
|
|
|
free fonts out there: Intel ClearSans, Linux Libertine, and many many more.
|
|
|
|
|
|
|
|
|
|
I do want YJL to provide a package repository specifically for packaged fonts
|
|
|
|
|
and if YJL takes off to become a distrubution used by more than a handful of
|
|
|
|
|
people, I want YJL to work with independent font foundries to make it easy for
|
|
|
|
|
users to buy fonts created by those independent font foundries.
|
|
|
|
|
|
|
|
|
|
The large commercial font foundries can kiss my ass, they want to profit from
|
|
|
|
|
the subscription model where you have to pay them every month and if something
|
|
|
|
|
happens where the payment is not made, they have bots that look to see if you
|
|
|
|
|
are still using the fonts and then they sue you knowing that if you had trouble
|
|
|
|
|
paying the subscription fee, you probably can not afford a lawyer. I hate what
|
|
|
|
|
the commercial font market has become but I also want very creative people who
|
|
|
|
|
design fonts to be able to sell their fonts, a LOT of work goes into creating a
|
|
|
|
|
qualiyt font.
|
|
|
|
|
|
|
|
|
|
When the ‘Desktop Publishing’ era was new, font licensing was much friendlier to
|
|
|
|
|
the consumer than it is now. I want YJL to help restore that.
|
|
|
|
|
|
|
|
|
|
Obviously if a software application *depends* on a specific font, that font will
|
|
|
|
|
need to provided. In most cases, the issue is actually codepoint coverage rather
|
|
|
|
|
than specific font files.
|
|
|
|
|
|
|
|
|
|
#### Google Noto
|
|
|
|
|
|
|
|
|
|
The TeX Gyre collection is fantastic (IMHO) for Latin based languages. However
|
|
|
|
|
YJL *probably* will also ship the Google Noto fonts to cover other scripts.
|
|
|
|
|
|
|
|
|
|
As the user base grows to include users of non-Latin based scripts, quality
|
|
|
|
|
collections of fonts for those scripts that serve the same purpose as TeX Gyre
|
|
|
|
|
for Latin based scripts will need to be provided.
|
|
|
|
|
|
|
|
|
|
Google Noto fonts will provide decent coverage but probably are not the best
|
|
|
|
|
collection of fonts for many scripts out there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Personal History
|
|
|
|
|
----------------
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
Some notes on my history with GNU/Linux.
|
|
|
|
|
|
2024-10-08 11:55:20 +08:00
|
|
|
|
The first GNU/Linux distribution I ever used was MKLinux DR3 on a PowerPC G3.
|
|
|
|
|
For those unaware, MKLinux DR3 was a port of Red Hat 5.1 to the Mach Mikrokernel
|
|
|
|
|
by Apple Computer.
|
|
|
|
|
|
|
|
|
|
Before long I was running LinuxPPC 1999 (a port of Red Hat 6) and it was on
|
|
|
|
|
LinuxPPC 1999 that I first did the LFS Project, LFS 2.0. That is where I learned
|
|
|
|
|
the most about GNU/Linux.
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
Eventually I ended up on `x86` hardware running Red Hat Linux. Life was good.
|
2024-10-08 11:55:20 +08:00
|
|
|
|
Red Hat provided a good base and there were several different third party RPM
|
|
|
|
|
packagers for software beyond what Red Hat provided. When I say life was good,
|
|
|
|
|
of course we will ignore the whole GCC 2.96 debacle...but the third party
|
|
|
|
|
package repositories provided GCC 2.95.
|
|
|
|
|
|
|
|
|
|
And then Fedora happened. Fedora as ‘Fedora Extras’ was a good thing, and it was
|
|
|
|
|
not the only option people had to extend software beyond what shipped with Red
|
|
|
|
|
Hat. But then Red Hat Linux ceased and became Fedora Core and then Fedora. The
|
|
|
|
|
software was always bleeding edge and just when it started to mature and become
|
|
|
|
|
stable, it became ‘End of Life’ and us users were forced to install a new
|
|
|
|
|
version with new bugs. I hated it. Basically it was not profitable for Red Hat
|
|
|
|
|
to produce a consumer distribution so they turned it into a testing ground for
|
|
|
|
|
their Enterprise product. To their corporate mindset, us users were nothing more
|
2024-10-08 18:08:41 +08:00
|
|
|
|
than free beta testers for what would go into their commercial enterprise
|
2024-10-08 11:55:20 +08:00
|
|
|
|
product (RHEL).
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
I switched to CentOS at that time. The software wasn’t bleeding edge, and it was
|
2024-10-08 11:55:20 +08:00
|
|
|
|
stable and it worked. CentOS 5 was my first version of CentOS.
|
|
|
|
|
|
|
|
|
|
When necessary---such as with Apache, MySQL, and PHP---we could install newer
|
|
|
|
|
versions on it either from source or from add-on repositories, but the operating
|
|
|
|
|
system itself was solid and stable and well-maintained.
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
CentOS (developed as a clone of RHEL) was then aquired by Red Hat and CentOS 7
|
|
|
|
|
was the last version I felt comfortable with. I simply do not like the direction
|
2024-10-08 11:55:20 +08:00
|
|
|
|
that Red Hat has gone with it.
|
|
|
|
|
|
|
|
|
|
Debian is still a really good choice, I ran it on an m68k system (Apple SE/30 to
|
|
|
|
|
be specific) back when I was first learning GNU/Linux but I felt like I just did
|
|
|
|
|
not fit into the Debian world. At the time, mail lists were the method of user
|
|
|
|
|
support and the mail lists for Debian seemed more hostile to me than they were
|
|
|
|
|
in the Red Hat world, I just did not feel welcome.
|
|
|
|
|
|
|
|
|
|
The issue, my brain works differently. I am not dumb but I do not always
|
|
|
|
|
understand explanations people give because my brain works differently. On the
|
|
|
|
|
Red Hat related lists, it seems people were more patient when I had trouble
|
|
|
|
|
with an explanation but on the Debian lists, I was treated like an imbecile. So
|
2024-10-08 18:08:41 +08:00
|
|
|
|
I never felt welcome in the Debian world.
|
|
|
|
|
|
|
|
|
|
The distribution however is fantastic and the developers are top notch.
|
2024-10-08 11:55:20 +08:00
|
|
|
|
|
|
|
|
|
At one point I tried Ubuntu. After installing it, I did not see where the GIMP
|
|
|
|
|
was installed so I used their search tool thingy to search for it, and I was
|
|
|
|
|
sent to an Amazon web page offering me books on The GIMP. Fuck that, I wiped it
|
|
|
|
|
and put CentOS on that system that very day.
|
|
|
|
|
|
|
|
|
|
I later learned that not only was Ubuntu sending my search request to Amazon but
|
|
|
|
|
it was doing it without a secure connection. Who the fuck approved that and why
|
|
|
|
|
wasn’t that caught in beta testing? It generated enough complaints that they
|
|
|
|
|
stopped doing it but I have to wonder when they will try something like that
|
|
|
|
|
again. It seems the bigger a company is, the more likely it is that they lose
|
|
|
|
|
sight on the importance of user privacy. The consumer becomes the product they
|
|
|
|
|
sell to other big companies, and that even happens in the FLOSS world. In the
|
|
|
|
|
FLOSS world though we, the users, have the power to do something about it.
|
|
|
|
|
Well, in theory we do anyway.
|
|
|
|
|
|
|
|
|
|
Fast forward several years...
|
|
|
|
|
|
|
|
|
|
When it was announced that CentOS 7 was ‘End of Life’ I tried the modern Debian,
|
|
|
|
|
Fedora, and Ubuntu options. All of them installed on my hardware and all of them
|
|
|
|
|
kernel panicked on first boot. LFS works fine, even with modern kernels, so it
|
|
|
|
|
seems that the GNU/Linux distributions have something selected in their kernel
|
|
|
|
|
that causes a kernel panic but is not used in their installer. I could try to
|
2024-10-08 18:08:41 +08:00
|
|
|
|
track it down. I suspect it was a bug in the open source nVidia driver, another
|
|
|
|
|
possibility is I needed a firmware update on my motherboard (which I have since
|
|
|
|
|
applied) but honestly I think rolling my own GNU/Linux distribution is going to
|
|
|
|
|
give me happier results.
|
|
|
|
|
|
|
|
|
|
LFS is fantastic but package management really does have significant benefits.
|
2024-10-08 11:55:20 +08:00
|
|
|
|
|
|
|
|
|
Worst case scenario, I am my only user. Would that really be so bad?
|
|
|
|
|
|
|
|
|
|
My hope is that there are others like me who agree that a small ‘Core’
|
|
|
|
|
distribution with user choice in package repositories for software beyond that
|
|
|
|
|
‘Core’ is the right way to do things.
|
|
|
|
|
|
|
|
|
|
Such a philosophy does sometimes result in conflicts between package
|
|
|
|
|
repositories but such conflicts can usually be solved without too much work.
|
|
|
|
|
|
2024-10-08 18:08:41 +08:00
|
|
|
|
Many conflicts between repositories are the result of packaging bugs. Good
|
|
|
|
|
documentation can potentially reduce such issues.
|