Reddit Reddit reviews How Linux Works, 2nd Edition: What Every Superuser Should Know

We found 34 Reddit comments about How Linux Works, 2nd Edition: What Every Superuser Should Know. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Networking & Cloud Computing
Computer Network Administration
Linux & UNIX Administration
How Linux Works, 2nd Edition: What Every Superuser Should Know
No Starch Press
Check price on Amazon

34 Reddit comments about How Linux Works, 2nd Edition: What Every Superuser Should Know:

u/archover · 20 pointsr/archlinux

> had any tips for solidifying the foundations.

I strongly recommend the book How Linux Works by Brian Ward, at No Starch Press. 392 pages.

Update: Here's a sample chapter Disks and Filesystems

While published in 2015, most of it is still very relevant. Page for page, it's the best Linux book I've encountered. Topics range from simple to complex, and intuitively organized as well. I found it applicable, of course, to most of Arch.

Good luck.

u/DucBlangis · 20 pointsr/netsecstudents

Here is a "curriculum" of sorts I would suggest, as it's fairly close to how I learned:

  1. Programming. Definitely learn "C" first as all of the Exploitation and Assembly courses below assume you know C: The bible is pretty much Dennis Richie and Kernighan's "The C Programming Language", and here is the .pdf (this book is from 1988, I don't think anyone would mind). I actually prefer Kochan's book "Programming in C" which is very beginner freindly and was written in 2004 rather than 1988 making the language a little more "up to date" and accessible. There are plenty of "C Programming" tutorials on YouTube that you can use in conjunction with either of the aforementioned books as well. After learning C than you can try out some other languages. I personally suggest Python as it is very beginner friendly and is well documented. Ruby isn't a bad choice either.

  2. Architecture and Computer basics:
    Generally you'll probably want to look into IA-32 and the best starting point is the Intel Architecture manual itself, the .pdf can be found here (pdf link).
    Because of the depth of that .pdf I would suggest using it mainly as a reference guide while studying "Computer Systems: A Programmers Perspective" and "Secrets of Reverse Engineering".

  3. Operating Systems: Choose which you want to dig into: Linux or Windows, and put the effort into one of them, you can come back to the other later. I would probably suggest Linux unless you are planning on specializing in Malware Analysis, in which case I would suggest Windows. Linux: No Starch's "How Linux Works" is a great beginner resource as is their "Linux Command Line" book. I would also check out "Understanding the Linux Kernel" (that's a .pdf link). For Windows you can follow the Windows Programming wiki here or you can buy the book "Windows System Programming". The Windows Internals books are generally highly regarded, I didn't learn from them I use them more as a reference so I an't really speak to how well they would teach a "beginner".

  4. Assembly: You can't do much better than OpenSecurityTraining's "Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration" class lectures from Xeno Kovah, found here. The book "Secrets of Reverse Engineering" has a very beginner friendly introduction to Assembly as does "Hacking: The Art of Exploitation".

  5. Exploitation: OpenSecurityTraining also has a great video series for Introduction to Exploits. "Hacking: The Art of Exploitation" is a really, really good book that is completely self-contained and will walk you through the basics of assembly. The author does introduce you to C and some basic principles of Linux but I would definitely suggest learning the basics of C and Linux command line first as his teaching style is pretty "hard and fast".

  6. Specialized fields such as Cryptology and Malware Analysis.


    Of course if you just want to do "pentesting/vuln assessment" in which you rely more on toolsets (for example, Nmap>Nessus>Metasploit) structured around a methodology/framework than you may want to look into one of the PACKT books on Kali or backtrack, get familiar with the tools you will use such as Nmap and Wireshark, and learn basic Networking (a simple CompTIA Networking+ book will be a good enough start). I personally did not go this route nor would I recommend it as it generally shys away from the foundations and seems to me to be settling for becoming comfortable with tools that abstract you from the real "meat" of exploitation and all the things that make NetSec great, fun and challenging in the first place. But everyone is different and it's really more of a personal choice. (By the way, I'm not suggesting this is "lame" or anything, it was just not for me.)

    *edited a name out





u/systemd-plus-Linux · 9 pointsr/linux4noobs

”How Linux Works” is one of the better in depth explanations of Linux I've read.

It's written in a way that anyone can read and understand it, but it gets pretty deep into Linux under the hood.

u/bofha · 7 pointsr/linuxadmin

Tanenbaum's textbook is par for the course THE best low-level exploration of the fundamental concepts of operating systems. It is, however, HIGHLY theoretical, and requires a solid base of knowledge prior to even starting it. It also is not useful for learning specifics about every day tasks.

This is a phenomenal introduction to the concepts and some of the practice of Linux:
http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593275676/ref=sr_1_1?ie=UTF8&qid=1454103950&sr=8-1&keywords=how+linux+works
And here is a practical-first exploration of how to use Linux:
http://www.amazon.com/Linux-Command-Line-Complete-Introduction/dp/1593273894/ref=sr_1_3?ie=UTF8&qid=1454103950&sr=8-3&keywords=how+linux+works

I would highly recommended reading these two books, then picking up a copy of Tanenbaum's, and finally this:
http://www.amazon.com/s/ref=nb_sb_ss_i_2_9?url=search-alias%3Daps&field-keywords=unix+and+linux+system+administration+handbook&sprefix=linux+sys%2Caps%2C204&rh=i%3Aaps%2Ck%3Aunix+and+linux+system+administration+handbook

If you actually study and practice implementing the topics discussed in these four books then you will have a far better understanding than 90% of the Linux users I've interacted with.

u/orispy · 7 pointsr/linux4noobs

This is the best book. Sets a firm foundation that you get nowhere else.

How Linux Works, 2nd Edition: What Every Superuser Should Know

https://www.amazon.com/dp/1593275676/

u/fromagi · 6 pointsr/linux4noobs

How Linux Works was suggested on another thread. I picked it up, and while I am only on chapter 2, it seems like a good primer.

u/salamanderoil · 6 pointsr/AskComputerScience

It depends on what you already know.

​

Do you have any prior programming experience? If not, start there. My no. 1 recommendation here would be Allen B. Downey's free Think Python book. Others might come along and recommend something like SICP, which is a good book, but perhaps a bit hard for an absolute beginner. Downey also has a version of his book that uses Java, so if you know for a fact that this is the language your introductory programming class will be using, then that could be a better option (Python is a simpler language, which makes it easier for you to focus on the actual concepts rather than the language itself, but if you know that you'll be using Java, you might as well kill two birds with one stone).

​

If you do have prior programming experience, you have all sorts of options:

  • You could learn a functional language, like a Lisp (Clojure, Racket, Scheme, LFE, ...) or something in the (extended) ML family (Standard ML, OCaml, F#, Haskell, Elm, ...).
  • Or, you could go the other way and learn something low-level, like C. You could even learn about C and Lisp at the same time by building your own.
  • Or learn a logic programming language, like Prolog.
  • Or, if you really want to understand object-oriented programming (and how languages like Java managed to stuff it up), you could learn Smalltalk.
  • If you don't know what a unit test is or how to write one, you should learn.
  • Learn about data structures and algorithms. As a CS student, you'll be learning about them at some stage anyway, so there's no harm in starting early. Some people might recommended CLRS for this, but for someone just starting out, I'd recommend something a bit friendlier, such as this series of videos from Princeton (presented by Robert Sedgewick, author of one of the most popular books on the subject). If you'd prefer a book, this free one from Allen B. Downey (who also wrote the introductory programming text I recommended earleir) looks quite good.
  • Work your way through NAND2Tetris. It will take way longer than a month, but it will definitely set you apart from the rest of the class. Even if you don't do this now, you should definitely plan to do it at some point.
  • Learn about databases. Again, you'll have to study them eventually, so why not start early? You could start by trying to build something that uses a database, like a simple todo utility.

    ​

    Regardless of whether or not you have programmed before, I would also recommend doing the following:

  • Learn some basic Unix skills. It doesn't have to be too much – just enough to be able to sit down at the command line and have a vague idea of what you're doing is fine for now. You'll learn more as you use it more. That said, if you really want to dive in and learn how everything works, then something like How Linux Works could be a good read.
  • Learn some discrete mathematics. As a CS student, you'll be required to learn it at some stage – it's the mathematical backbone of CS, much like calculus is to physics – so you might as well start early. This free, book-length set of notes from MIT is very well-regarded (but don't expect to get through it all in a month!). There is also a set of video lectures if you prefer. If you're keen on learning functional programming, another option could be to integrate that with your discrete maths studies by reading Thomas VanDrunen's Discrete Mathematics and Functional Programming (if the physical book is a bit expensive for you, there's also a cheaper ebook version available).
  • For bonus points: learn to use either Vim or Emacs. There probably isn't a massive practical advantage to using these this early in your career (although they could certainly come in handy later), but if other students see you writing code in one of them, you'll look like an absolute badass. Your teachers will probably be quietly impressed, too.

    ​

    if you have any questions about my above suggestions, let me know, and I'll see if I can point you in the right direction.

    ​

    Good luck!
u/SweatyAcademic · 5 pointsr/ManjaroLinux

The fact is that there aren't that many things to learn IN DEPTH that are specific to Manjaro aside its package manager (which came from Arch btw).

But you can, of course, learn IN DEPTH GNU/Linux itself, and you'll be able to apply this knowledge to every distro you'll end up with any time soon. There is a book, which can help you understand GNU/Linux better: How Linux Works. I can't recommend it enough, it's just so good.

But if you want to learn something for free I recommend Linux Fundamentals series. It's one of the best introduction articles out there, but even if you are experienced user, you may find it useful anyway. These 4 articles will help you understand the system much better.

And, of course, don't forget about ArchWiki.

u/chillysurfer · 4 pointsr/linux4noobs

For that purpose I can highly recommend the book How Linux Works. I thoroughly enjoyed it and it'll give you plenty of info.

Just to stack hands and echo what was said before, reading about will keep it in your brain for a day. Doing it keeps it there forever though.

u/Nezteb · 4 pointsr/linux4noobs

Some info on distro differences:

u/phabeon · 4 pointsr/linux4noobs

Just get these 2 books(all you'll need, peep the reviews for proof) and thank me later

Linux Command Line

How Linux Works

u/ultrabowser · 3 pointsr/linuxmasterrace

This book will answer a lot of your questions.

u/drpinkcream · 3 pointsr/bash

I recommend How Linux Works and The Linux Command Line. Those will take a total beginner and take you through the basics up to shell scripting.

The Linux Command Line is a work book where you type what it says and follow along. How Linux Works is more of an explanation with less hands-on. I went through both at the same time as the chapters align very well, particularly at the beginning.

u/mindful_island · 3 pointsr/WGU

That is prepping for the Linux+ right?

I haven't done this course or the exam, but I've been using Linux for a decade. I think for Linux in general - if you are coming into it from scratch then you really need to practice setting up a system, configuring services, compiling software, use a variety of package managers, writing some basic bash scripts and so on. Then you'll have a framework for a lot of the arbitrary stuff they want you to memorize - all the various flags, switches and options. At that point you probably want to do heavy flash-carding for the real arbitrary stuff.

Basically I'm not sure there is a way around simply using it - unless you are great at memorizing stuff without relating it.

I don't know if this book covers the objectives better than the course material, but I found it excellent back when I first got into Linux (I used the 1st edition). http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593275676

It was the kind of book that you could simply read through, play with what you learned in each section and it made a lot of sense. A real learning guide rather than a dictionary/reference.

Oh and if you want to learn a lot of really useful command line tips and tricks, this memrise was super helpful: http://www.memrise.com/course/50252/shell-fu/

If you master that memrise it'll make you super productive when working in a linux environment.

u/kramer314 · 3 pointsr/linux

https://debian-handbook.info/ is super high quality (and free! although if you have the money I think it's well worth donating and / or purchasing a hard copy)

I also like https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ and https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/

u/Lanfranc_di_Cambria · 2 pointsr/cscareerquestions

"How Linux Works." It gives a really solid explanation of what an operating system fundamentals.

We just kind of think of them as managing things in the background, but this book really goes into what that means.

It totally changed the way I view programs.

u/Herdo · 2 pointsr/linux

I just bought "How Linux Works" published by no starch press.

Excellent so far, and while I was familiar with all the topics in the book to begin with, I still learn something new every chapter. It's listed as an "Intermediate" level book, but there is a wide range of topics from absolute beginner to some more advanced stuff, all with easy to understand explanations. The topics build on themselves nicely, so you aren't just dropped into a chapter having no idea what the author is talking about.

Supposedly most of the no starch press books are great. /u/C0rn3j mentioned "The Linux Command Line" as well.

u/PlumpFish · 2 pointsr/FindMeADistro

I can relate to your attitude and desire to learn Linux, I've felt the same.

I highly recommend this book: https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/ref=sr_1_2?keywords=how+linux+works&qid=1558200935&s=gateway&sr=8-2

I read about a chapter or two a day with some coffee. It's fun and interesting. I think it's right up your alley.

For me, there's two types of Linux learning. Things I learn for fun, and things I learn because I have to or my stuff doesn't work. I started with a lot more things I learn for fun, but now most things I learn because I have to.

I do web development on a Manjaro machine using KDE. I love the distro, but I didn't try any others. I don't need to. It's fine. I use Debian on a lot of the webservers, that's fine too.

My feeling is, all these distros you're looking at have much more in common than not. If you set up a Desktop Environment, a popular one like GNOME or KDE on ANY distro, it's gonna be pretty similar. If you just want to use the shell on any distro, well, you can install whatever shell you want, use of that shell on any distro will be pretty similar.

IMO, you should focus MUCH more on deciding what DE/WM and shell you'll be using. This is going to play a much bigger role in your daily use than what distro you use. I think you should look up youtube videos and online tutorials of different people using different shells, scripts, WMs, VIM, etc, and see what excites you.

You can install Arch, step by step, using the wiki, and it's not that hard. It feels scary and weird at first, but you're just cooking, you're following a recipe, and if you mess up a step, a bunch of people have messed that step up too, google it.

Don't think too much. Just jump in.

u/super_tight_xyz · 2 pointsr/linuxquestions

How Linux Works 2nd ed. is a great book for learning the overall concepts. It also goes into enough depth so that it’s a great read for those who already have a good bit of Linux experience but want insight into what’s going on underneath the hood.

https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/

u/medzernik · 1 pointr/linux4noobs
u/jkurthoconnor · 1 pointr/linuxadmin

Very much not a recipe book, but I think a good fit for deeper understanding: How Linux Works

u/_a9o_ · 1 pointr/cscareerquestions

I like this book as a starting point.

How Linux Works, 2nd Edition: What Every Superuser Should Know
https://www.amazon.com/dp/1593275676/ref=cm_sw_r_sms_apa_i_GWiNDb5HH68D6

u/hzer0 · 1 pointr/hacking

You learn linux by using it, and trial and error. No joke. Just dive in when it comes to Linux. Get a book like http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593275676/ref=sr_1_4?s=books&ie=UTF8&qid=1418113534&sr=1-4

Use it as a reference at first, or even start reading if you like. Then whenver you have the opportunity, take the hard road and try to accomplish your task using command line tools.

As far as networking, check out securitytube as someone mentioned, maybe go for network+ to get the basics.

You may want to read the more in-depth answer I gave a similar question here: http://www.reddit.com/r/hacking/comments/2oljm2/looking_for_a_good_starting_point/cmokwtg

Good luck!

u/MattTheFlash · 1 pointr/sysadmin

Okay then. I'm glad that you have a can-do attitude and sound hungry. First let's get something settled. You're nearly as high up in the certifications chain as you can be with Microsoft and you're noticing it's not getting you the places you need to go. This is a supply and demand problem. Employers can get people like you on the cheap from contracting agencies, and often they needn't even be in the united states. You need to increase your value. Here's what you do, you're going to dive in head first. There are two distributions of Linux that are widely known to have some level of enterprise support, which means enterprises (the companies that will pay you lots of money) will be attracted to them. These distrubutions are Red Hat Enterprise Linux (RHEL) and Ubuntu Server Edition. I recommend that you start with Red Hat, but not necessarily because it's a better distro but because they have a well-designed certification program.

  • Subscribe to /r/linuxadmin

  • You're currently using Windows. This is going to be extremely uncomfortable for you at first but you will need to start using Linux on the desktop, and this shouldn't be your side project, this should be your daily laptop you rely upon for everything. There are two distributions that match RHEL exactly in every way but remove the redhat enterprise stuff so you don't have to pay for a license. These distros are Scientific Linux and CentOS. They're both fine to use for the desktop, i'd recommend going Scientific just a matter of personal preference.

  • I typed the previous because of some encounters I've had with Windows admins who have been forced to learn the bare minumum of linux and hated it. They installed it on some ancient piece of crap computer or just on a virtual machine on Windows. They didn't have to rely upon it and therefore learned basically nothing. Linux isn't a toy for you to play with on the side, it's your primary computer now. I cannot stress enough how important this is if you are going to be successful. Sometimes things aren't going to work and you're going to have to figure it out.

  • Go to IRC on Freenode when you have questions and can't find the answers from googling, there are general ##linux channels but there are also ones more specific to your distro like #centos or what you are trying to accomplish like #bash or #nginx

  • From your linux laptop set up VM's there for your research. you can use virtualbox for a straight VM or it would be much more career relevant to learn how to use docker. You can also get a small number of free AWS machines in their free teir program.

  • Your goal is to obtain an RHCE. Red Hat Certified Engineer. As a prerequisite, you will need an RHCSA, a Red Hat Certified Systems Administrator.

  • It seems that now even every linux bash command has a video for it on youtube. There's a ton of resources on youtube now for linux training. Utilize them.

    Books

  • With linux you have the ability to, for free, set up any number of web servers, databases, authentication services, filesystems and security features. The only way you are going to learn is by doing, check out this post which is basically an outline of setting up every major system for an enterprise environment running 100% on linux. You could build up an entire company's infrasructure by learning how to do this, with no software licensing costs whatsoever.

    Pick a language, I recommend first getting really good at BASH then Python.

    Don't stay at jobs. We get raises by moving to new companies. Your median stay should be about 18 months if it seems like you've topped out. Don't be afraid to GTFO of Florida. I stayed close to home for too long and wasted a lot of time limiting myself in the Midwest. If you are able to relocate and have an RHCE i guarantee your salary will double in 3 years. DOUBLE. And it will keep increasing. And you'll be working on way more interesting stuff.
u/Piestrio · 1 pointr/linuxquestions

How Linux Works, 2nd Edition: What Every Superuser Should Know https://www.amazon.com/dp/1593275676/ref=cm_sw_r_cp_api_i_vm5YCb4B6GH8X

u/jbod-e · 1 pointr/linux

Load it onto an old computer and play with it.


Checkout this book: How Linux Works: What Every Superuser Should Know https://www.amazon.com/dp/1593275676/ref=cm_sw_r_cp_apa_fQ1MybTDN9VRP

Checkout this book: The Linux Command Line: A Complete Introduction https://www.amazon.com/dp/1593273894/ref=cm_sw_r_cp_apa_pR1MybNQRR2FK

u/OrangeOctoberLibra · 1 pointr/linux4noobs

Read Books: I recommend this, this and this.

u/zayn1000 · 1 pointr/linuxquestions

This book is freakin awesome, i've used it and it's an amazing start and teaches you all sorts of stuff. I don't know how much information you actually know about the command line but this has helped me a lot. This book I have heard was pretty good but I unfortunatly haven't made my way to reading it. besides those two and actually installing and forcing yourself to use it everday there isn't much else you can do.

u/jjanel · 1 pointr/linux4noobs

TL;dr sorry. +1 chillysurfer: "How Linux Works" 2nd ed. (yes, ok for a HiIQ_n00b)

http://amazon.com/How-Linux-Works-Superuser-Should/dp/1593275676

Please @JAU, let me know what you think of it (via Amazon 'Look Inside' or AllITeBooks etc)

u/pope4president · 1 pointr/AskComputerScience

If you'd like further reading on this topic, I enjoyed reading How Linux Works: What Every Superuser Should Know. I didn't really understand what a kernel is until I read that.

u/greengobblin911 · 1 pointr/linuxquestions

Many people may disagree with me, but as a Linux user on the younger side of the spectrum, I have to say there was one thing that really worked for me to finally switch for good- books.

There's tons of wikis and forums and of course Reddit to ask questions, but it is hard to get good answers. You may end up paying for books (unless you look on the internet for books) but it doesn't beat having a hard copy in front of you. It boils down to a time vs money trade off. The only wiki I would follow is one directly from the developers that act as documentation, not a community wiki. Also worth nothing certain wikis are more tied to linux and the kernel than others, meaning some are comparable/interchangable with the distro you may be using. Still, a novice would not easily put this together.

Forums are also useless unless you have the configuration mentioned in the post or that forum curates tutorials from a specific build they showcase and you as a user decided to build your system to their specifications. There's way too many variables trying to follow online guides, some of which may be out of date.

This i've realized is very true with things like Iommu grouping and PCI Passthrough for kernel based virtual machines. At that point you start modifying in your root directory, things like your kernel booting parameters and what drivers or hardware you're gonna bind or unbind from your system. While that does boil down to having the right hardware, you have to know what you're digging into your kernel for if you dont follow a guide with the same exact parts that are being passthrough or the cpus or chipsets are different.

Books are especially handy when you have a borked system, like you're in a bash prompt or an initramfs prompt or grub and need to get into a bootable part of the system. Linux takes practice. Sometimes its easier to page through a book than to search through forums.

Another thing about being an intermediate or expert Linux user is that you don't care much about distros or what other users or communities do. It wont matter as under the hood it's all the same, spare the desktop and the package managers. Once you're out of that mentality you just care about getting whatever you want done. I'm not one of those guys that's super gung-ho FOSS and open source. I just use what gets the job done. Also from a security perspective, yes Linux is in theory MORE secure but anything can be hardened or left vulnerable. It's more configuration tied than many uses and forums or threads lead it on to be.

My workload involves talking to servers and quite a bit of programming and scripting, in a variety of capacities. That's what led me to linux over the competitors, but I'm not so prudent to never ever want to use the competitor again or have a computer with it. With understanding Linux more, I use it more as a tool than to be part of the philosophy or community, though that enthusiasm pushes for new developments in the kernel.

I'm assuming you're a novice but comfortable enough in linux to get through certain things:

In any computer related thing, always TEST a deployment or feature first- From your linux system, use KVM or Virtualbox/vmware to spin up a few linux VMs, could even be a copy of your current image. This way any tweaks or things you want to test or try out is in an environment you can start over in.

The quickest way to "intermediate-expert" Linux IMO is learning system administration.

My go to book for this is "The Unix and Linux System Administration Handbook 5th edition"

https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ref=sr_1_1?keywords=The+Unix+and+Linux+System+Administration+Handbook+5th+edition&qid=1564448656&s=books&sr=1-1

This edition is updated recently to cover newer kernel features such as could environments and virtualization. This book also helps when learning BSD based stuff such as MacOS or FreeBSD.

Another good read for a "quick and dirty" understanding of Linux is "Linux Basics for Hackers" It does focus on a very niche distro and talks about tools that are not on all Linux systems BUT it does a good concise overview of intermediate things related to Linux (despite being called a beginners book).

https://www.amazon.com/Linux-Basics-Hackers-Networking-Scripting/dp/1593278551/ref=sr_1_3?crid=396AV036T1Y0Q&keywords=linux+basics+for+hackers&qid=1564448845&s=books&sprefix=linux+bas%2Cstripbooks%2C119&sr=1-3

There's also "How Linux works" but I cannot vouch for this book from personal use, I see it posted across various threads often. Never read this particular one myself.

https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/ref=pd_bxgy_14_img_2/137-6604082-4373447?_encoding=UTF8&pd_rd_i=1593275676&pd_rd_r=feffef24-d3c3-400d-a807-24d8fa39cd1e&pd_rd_w=8GX0o&pd_rd_wg=3AMRB&pf_rd_p=a2006322-0bc0-4db9-a08e-d168c18ce6f0&pf_rd_r=WBQKPADCVSABMCMSRRA1&psc=1&refRID=WBQKPADCVSABMCMSRRA1

​

If you want a more programming oriented approach, if you're confortable with the C language, then you can always look at these books:

The Linux Programming Interface

https://www.amazon.com/Linux-Programming-Interface-System-Handbook/dp/1593272200/ref=zg_bs_3866_1?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

Unix Network Programming VOL 1.

https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551/ref=sr_1_1?keywords=Unix+Network+Programming+VOL+1.&qid=1564448362&s=books&sr=1-1

Advanced Programming in the Unix Environment

https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739/ref=zg_bs_3866_2?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

These books would take you to understanding the kernel level processes and make your own and modify your own system.

As many have mentioned, you can go into these things with "Linux from scratch" but it's also feasible to do Linux from scratch by copy/pasting commands. Unless you tinker and fail at certain things (hence do it on a vm before doing it to the main system) you won't learn properly. I think the sysadmin approach is "safer" of the two options but to each their own.