The Linux Application Server
This is an in-progress online “book” by Micah Yoder. He thought about writing a real book, but was talked into blogging it instead. Maybe someday it will be collected into a real book. An interested publisher can feel free to make contact.
Who Should Read This Book?
The intended audience is someone who deals with Linux servers and has an advanced-beginner to intermediate knowledge of the subject. This would include: software engineers, DevOps engineers, site reliability engineers, database administrators, system administrators, platform engineers, and related roles.
It is assumed that the reader has some general Linux experience, with knowledge of: the bash shell and basic commands, starting and stopping services, at least one programming language, and general web development knowledge (HTML, etc).
Topics we’ll cover:
We’ll talk about anything related to Linux application servers at both a high level and at a low level, to give the reader as complete an understanding as possible. Topics will include:
- Understanding Linux processes
- Making the most of systemd
- Overview of various language and framework stacks
- Photo and video processing
- Databases
- Message queues
- Monitoring
- System management
- Hosting
- … and more!
Target Platform
This content is intended to apply primarily to applications hosted on Linux servers. It may seem archaic, but we are not primarily considering cloud computing or even Kubernetes. Much of the information, however, will be applicable to those environments.
What You Need to Know About C
You may want to read this in tandem with our article Compiling and Running C and C++
C was designed in the early 1970s at Bell Labs for the purpose of writing software for UNIX, including its kernel. It is known for being low level, very close to the hardware. Anything you can do on a computer, you can do in C! It is also a rather simple language, in that once you learn its rules, you can pretty much figure out what any piece of software written in C does. It is not going to do anything funny behind your back, as many modern languages do.
Compiling and Running C and C++
You’ll be coming across a lot of software written in C and C++, and it’s useful to have a primer on how to build and run it. This is true even if you’re not writing your own software in these languages. There are various build systems for these languages, and we’ll need to take a quick look at all of them.
Invoking gcc
or clang
manually.
For projects with a single source file, or perhaps a small number of them, it is fine to invoke the compiler manually.
If you want to play with this, see the article What You Need To Know About C and
creating the three files test.h
, test.c
, and main.c
in an empty directory.
systemd Services: An Introduction
Nearly every modern Linux distribution uses systemd
, which … pretty much manages the system.
It has an enormous wealth of features, many of which we will describe, but we will begin with
its service manager.
A systemd
service is basically a unique application that can be controlled separately and has
its own resources. That can include things that run in the background on the system, such as
NFS drive shares, printing services, or DBUS. It can also include the things you actually
want the system to do: Your web server, database server, and your own application server.
C
Cpp
Home
The Linux Application Server
This is an in-progress online “book” by Micah Yoder. He thought about writing a real book, but was talked into blogging it instead. Maybe someday it will be collected into a real book. An interested publisher can feel free to make contact.
Who Should Read This Book?
The intended audience is someone who deals with Linux servers and has an advanced-beginner to intermediate knowledge of the subject. This would include: software engineers, DevOps engineers, site reliability engineers, database administrators, system administrators, platform engineers, and related roles.
Tags
Lang-Intro
Systemd
About Micah
About Micah
Micah Yoder has been eating, drinking, and breathing Linux servers for nearly 30 years. He has a computer science degree (BA) from Eastern Mennonite University.
His career has included:
- Helping his university get online while learning UNIX on a Sun box and implementing the first online application for admission
- Working as a software developer for small consultancies and did some freelancing
- Hosting sites based on Slashcode, a once-popular tech blogging system, for customers
- Worked in IT with a missionary organization in Ecuador
- Spent nearly 14 years at a well-known managed hosting company; over 5 in third shift Linux server support and the rest in systems engineering and DevOps
- DevOps engineer at a couple companies in the e-commerce space
He loves learning and working with new technologies. Top skills and passions include:
The Book
The book …