Gentoo
This commit is contained in:
parent
58e03280d7
commit
6ed91fb8ac
143
Gentoo.html
Normal file
143
Gentoo.html
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
<div style="display: grid; grid-template-columns: 2fr 1fr;">
|
||||||
|
<div>
|
||||||
|
<p>Gentoo is a great linux distro. I'd argue the best distro for an
|
||||||
|
enthusiast/programmer. For those out of the loop, gentoo is a gnu/linux
|
||||||
|
distrobution that compiles packages from source. All packages are managed with
|
||||||
|
portage by default, and packages are first downloaded and compiled, using
|
||||||
|
specific compiler flags for your system. The biggest advantage gentoo provides
|
||||||
|
is the use of:</p>
|
||||||
|
|
||||||
|
<blockquote>march="native" -O3</blockquote>
|
||||||
|
|
||||||
|
<p>that line above basically makes the case for gentoo. Allowing the user to choose the
|
||||||
|
optimization level used on their system, and compiling for their specific
|
||||||
|
processor and all of the optimizations it provides, is simply unmatched.</p>
|
||||||
|
|
||||||
|
<p>Gentoo also lets the user use certain "use flags". A use flag is simply a
|
||||||
|
common key word like "X", "GNOME", or "SSL". Different packages may have
|
||||||
|
different options that can be enabled at compile time, and gentoo lets the user
|
||||||
|
choose what components of a piece of software they would like included when
|
||||||
|
building any package. If you don't plan on using KDE for example, but want to
|
||||||
|
use gnome, you can just use:</p>
|
||||||
|
|
||||||
|
<blockquote>USE="KDE -GNOME"</blockquote>
|
||||||
|
|
||||||
|
<p>And just like that, you won't compile GNOME support into any of your
|
||||||
|
packages. Now you save on disk space and resources that would have gone to
|
||||||
|
GNOME support. Just like that your system is a little leaner and runs a little
|
||||||
|
faster. Although on modern hardware it may not seem like a huge improvement,
|
||||||
|
you'll be amazed just how much faster your system will wind up running.</p>
|
||||||
|
|
||||||
|
<p>Due to Gentoo's lack of any enviroment beyond a bash tty with the base
|
||||||
|
installation, the user is also afforded a HUGE variety of choices when setting
|
||||||
|
up their working enviroment. Just want something that works? Install
|
||||||
|
GNOME/KDE/XFCE and get to work. Comes with a window manager, file manager,
|
||||||
|
system utilities such as a settings program, graphical monitor configuration,
|
||||||
|
etc. This would be the best option for someone coming from MAC/Windows as
|
||||||
|
well.</p>
|
||||||
|
|
||||||
|
<p>If you're the more adventurous type, however, you can make your own working
|
||||||
|
enviroment from different pieces of software, or even write your own! Programs
|
||||||
|
such as i3/dwm/awesomewm are great to get you going, providing a way to display
|
||||||
|
and manage windows, with nothing extra. Dwm lets you add features by modifying
|
||||||
|
its source code and compiling it, or using premade patches and applying them to
|
||||||
|
add features that you would like. Its similar to the use flag system, but by
|
||||||
|
hand instead of being managed by portage.</p>
|
||||||
|
|
||||||
|
<p>Once you have a window manager you can start adding software like web
|
||||||
|
browsers, file managers, media players, text editors, and terminal emulators.
|
||||||
|
You can build your own enviroment tailored to your work flow, to make the most
|
||||||
|
comfy system possible.</p>
|
||||||
|
|
||||||
|
<p>Gentoo also has the advnatage of running on literally <i>anything</i>. Like
|
||||||
|
whatever you can think of. Chances are you can run it on that SOC in your
|
||||||
|
fridge right now. Due to its nature of being compiled, all you need is a
|
||||||
|
working gentoo system, and to setup a cross compiler toolchain. Once you have
|
||||||
|
that you just build a bootable gentoo image, flash it to the device of choice,
|
||||||
|
and it should be able to compile everything it needs to keep updating forever.
|
||||||
|
Raspberry pi's, decade old laptops, your phone (in the works :D),
|
||||||
|
that obscure little MIPS machine you have,
|
||||||
|
anything. Gentoo is the distro to bring any device back to life!</p>
|
||||||
|
|
||||||
|
<p>Gentoo also happens to be what <a href="https://www.zdnet.com/article/the-secret-origins-of-googles-chrome-os/">Chrome
|
||||||
|
OS is based on</a>, as well as being
|
||||||
|
<a href="https://dberkholz.com/2006/02/02/gentoo-e-trade-and-gentoo/">used for
|
||||||
|
High Frequency Trading</a>!</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<figure>
|
||||||
|
<img src="../img/gentoo-3d.png" class="fig-img"></img>
|
||||||
|
<figcaption>The Gentoo Logo</figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="display: grid; column-grid-template: 1fr 2fr;">
|
||||||
|
<div class="col-md">
|
||||||
|
<figure>
|
||||||
|
<img src="../img/gentoo-powered.png" class="fig-img"></img>
|
||||||
|
<figcaption>This server is (sadly) not powered by gentoo, but my laptop
|
||||||
|
and soon my phone will be!</figcaption>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-10 mx-2">
|
||||||
|
|
||||||
|
<h4>Common concerns</h4>
|
||||||
|
|
||||||
|
<h5>Compile times</h5>
|
||||||
|
|
||||||
|
<p>If you've been programming for a while, or are familiar with how the build
|
||||||
|
process works, you may be thinking "what about compile times?". Thats a valid
|
||||||
|
worry, considering <a href="https://cs.stackexchange.com/questions/22435/time-complexity-of-a-compiler">
|
||||||
|
the time complexity of a compiler tends to be O(n^2)</a>. Despite this, I find
|
||||||
|
that this only effects the intial setup. Because Gentoo has no installer, and
|
||||||
|
you have to build up the system yourself from a live enviroment, this can be
|
||||||
|
quite a headache if you mess up when installing and have to restart the
|
||||||
|
installation process. But on my i7-9750H with 16GBs of ram, in total building
|
||||||
|
the base system (no X11, firefox, window manager, etc), only took about half an
|
||||||
|
hour. Thats enough time to read through some documentation on whats coming up
|
||||||
|
in the installation, research kernel compiler options, or make some good
|
||||||
|
coffee.</p>
|
||||||
|
|
||||||
|
<h5>Stability</h5>
|
||||||
|
|
||||||
|
<p>You may be worried about having your system break every week and having to
|
||||||
|
waste time fixing it, however I've had no crashes/breaks that were the fault of
|
||||||
|
the system. Only issues of me being negligent and not configuring things
|
||||||
|
properly. I know that "works on my machine" isn't an argument, however if you
|
||||||
|
know how to read man pages, read log files, and understand some jargon, you can
|
||||||
|
setup a very stable system within only a few days. I know thats not an answer
|
||||||
|
for everyone, but Gentoo doesn't want to be a system for everyone. It wants to
|
||||||
|
be a system for those who are willing to put in the time and effort to learn
|
||||||
|
how to leverage its customization.</p>
|
||||||
|
|
||||||
|
<h5>Time sink</h5>
|
||||||
|
|
||||||
|
<p>Some worry that its just a pain having to put in so much time to
|
||||||
|
troubleshoot the system, to get it working with every piece of hardware on your
|
||||||
|
machine, get a working kernel, setup a DE, wait to compile, its just all to
|
||||||
|
much of a time sink. Some people just want to get started working on their
|
||||||
|
codebase, using a browser, playing their games, etc. I really don't have much a
|
||||||
|
counter to this. That is the reality of gentoo, and honestly its not a bad
|
||||||
|
thing. If you want to put in the time, you will be rewarded. If you want to
|
||||||
|
have something that "just works", then you will get something that is not as
|
||||||
|
customized and optimized as you may like. And thats ok, some people want to
|
||||||
|
make that sacrifice, I just happen to be someone who sees that time as
|
||||||
|
worthwhile.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row no-gutters">
|
||||||
|
<div class="col-sm">
|
||||||
|
<h4>How do I get started?</h4>
|
||||||
|
|
||||||
|
<p>You can get started with:</p>
|
||||||
|
<ul>
|
||||||
|
<li class="link-list-item"><a href="https://wiki.gentoo.org/wiki/Main_Page">Gentoo Wiki</a></li>
|
||||||
|
<li class="link-list-item"><a href="https://www.youtube.com/watch?v=Qv-H13sKrGY">A Gentoo installation tutorial</a></li>
|
||||||
|
<li class="link-list-item"><a href="https://www.youtube.com/watch?v=2sOfX_Lb1As&t=1s">Another good gentoo installation tutorial</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Thats about all I have, I plan on putting up more gentoo related info over
|
||||||
|
time. I hope I've convinced you to try the best GNU/Linux distro!</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
Reference in New Issue
Block a user