How linux works what every superuser should know
How linux works what every superuser should know
How linux works what every superuser should know
How Linux Works What Every Superuser Should Know
Table of contents:
Chapter 1: The big picture
Levels and layers of abstraction in a linux system
A layer or level is a classification (or grouping) of a component according to where that component sits between the user and the hardware. A Linux system has three main levels: Hardware, kernel and processes which makes collectively the user space. The kernel runs in kernel mode, which has unrestricted access to the processor and main memory. User processes run in user mode, which restricts access to a (usually quite small) subset of memory and safe CPU operations.
Hardware: understanding main memory
Running kernel and processes reside in memory (most important part of hardware), a CPU is just an operator on memory. State in reference to memory, is a particular arrangement of bits.
One of the kernel’s tasks is to split memory into many subdivisions, and it must maintain certain state information about those subdivisions at all times. The kernel is in charge of managing tasks in four general system areas:
Process management describes the starting, pausing, resuming, and terminating of processes. The act of one process giving up control of the CPU to another process is called a context switch (kernel is responsible for this).
The kernel must manage memory during a context switch, for this CPUs include a memory management unit (MMU) which acts like a proxy between process memory and physical location of the memory itself (The implementation of a memory address map is called a page table).
Device Drivers and Management
A device is typically accessible only in kernel mode because improper access could crash the machine and the impedance between devices programming interfaces.
System Calls and Support
system calls (or syscalls) perform specific tasks that a user process alone cannot do it or do well. Two important ones:
Other than init, all user processes on a Linux system start as a result of fork(), and most of the time, you also run exec() to start a new program instead of running a copy of an existing process.
The main memory that the kernel allocates for user processes is called user space. Because a process is simply a state (or image) in memory, user space also refers to the memory for the entire collection of running processes.
A user is an entity that can run processes and own files. A user is associated with a username, the kernel does not manage the usernames, instead, it identifies users by simple numeric identifiers called userids. Users exist primarily to support permissions and boundaries. Every user-space process has a user owner, and processes are said to run as the owner. Groups are sets of users. The primary purpose of them is to allow a user to share file access to other users in a group.
Chapter 2: Basic Commands and Directory Hierarchy
The Bourne shell: /bin/sh
Every Unix system needs the Bourne shell in order to function correctly. The bash shell is the default shell on most Linux distributions, and /bin/sh is normally a link to bash on a Linux system. When you install Linux, you should create at least one regular user in addition to the root user.
Using the Shell
The Shell Window
Standard Input and Standard Output
cat outputs the content of one or more files. Unix processes use I/O streams to read and write data, the source of an input stream can be a file, a device, a terminal, or even the output stream from another process. Pressing ctrl-D on an empty line stops the current standard input entry from the terminal, ctrl-C terminates the process. Standard output is similar. The kernel gives each process a standard output stream where it can write its output.
Some basic commands:
Some essential directory commands:
Shell Globbing (Wildcards)
The shell can match simple patterns to file and directory names, a process known as globbing (i.e. * matches any number of arbitrary characters). The shell matches arguments containing globs to filenames, substitutes the filenames for those arguments, and then runs the revised command line, this is called expansion. The shell glob character ‘?’ instructs the shell to match exactly one arbitrary character. If you don’t want the shell to expand a glob in a command, enclose the glob in single quotes.
Other essential intermediate Unix commands:
Changing your Password and shell
Use the passwd command to change your password, which will ask you for the old password before allowing you to enter the new one.
Environment and shell variables
The Command Path
PATH is an environmental variable that contains a list of system directories that the shell searches when trying to locate a command.
There are two standard de facto for text editors in Unix: vi (faster) and emacs (can do almost anything requires some extra typing to get these features).
Getting online Help
Shell Input and Output
Standard Input Redirection
To channel a file to a program’s standard input, use the operator: head
Understanding Error Messages
Unlike messages from other operating sys- tems, Unix errors usually tell you exactly what went wrong.
Anatomy of a UNIX Error Message
A UNIX error message usually consist of several parts like the command that was erroneous, the file it was acting upon, and the error message. When troubleshooting errors, always address the first error first.
A list of the most common error messages:
Listing and Manipulating Processes
For a quick listing of running processes, just run ps on the command line. This displays the following fields:
The ps command has some useful options:
Shells also support job control, using various keystrokes and commands. You can send a TSTP signal (similar to STOP) with ctrl-Z, then start the process again by entering fg (bring to foreground) or bg (move to background).
file modes and Permissions
Every Unix file has a set of permissions that determine whether you can read, write, or run the file. The first character of the mode is the file type. A dash (-) in this position, denotes a regular file and a (d), denotes a directory. The rest of a file’s mode contains the permissions, which break down into three sets: user, group, and other. Some executable files have an s in the user permissions listing instead of an x. This indicates that the executable is setuid, meaning that when you execute the program, it runs as though the file owner is the user instead of you.
To change permissions, use the chmod command. The command is like this: chmod (target)[+-](permissions) where target is g for group, o for others u for user. You can do this with numbers too, for example with the number 644 you set the following permissions user: read/write; group, other: read You can specify a set of default permissions with the umask shell command, which applies a predefined set of permissions to any new file you create (most common is 022).
A symbolic link is a file that points to another file or a directory, effectively creating an alias (names that point to other names). Denoted by the ‘->’ if the ls command is executed.
Creating Symbolic Links
Archiving and Compressing Files
Compressed Archives (.tar.gz)
Other Compression Utilities
There are other compression utilities like the bzip2. The bzip2 compression/decompression option for tar is j.
Linux Directory Hierarchy Essentials
Here are the most important subdirectories in root:
Other Root Subdirectories
There are a few other interesting subdirectories in the root directory:
The /usr Directory
In addition to /usr/bin, /usr/sbin, and /usr/lib, /usr contains the following:
On Linux systems, the kernel is normally in /vmlinuz or /boot/vmlinuz. A boot loader loads this file into memory and sets it in motion when the system boots. You’ll find many modules that the kernel can load and unload on demand during the course of normal system operation (Called loadable kernel modules).
Running Commands as the Superuser
You can run the su command and enter the root password to start a root shell. This practice works, although: * You have no record of system-altering commands * You have no record of the users who performed system-altering commands * You don’t have access to your normal shell environment * You have to enter the root password
sudo allows administrators to run commands as root when they are logged in as themselves. When you run this command, sudo logs this action with the syslog service under the local2 facility.
To run sudo, you must configure the privileged users in your /etc/sudoers file. An example of this file is below:
The first line defines an ADMINS user alias with the two users, and the second line grants the privileges. The ALL = NOPASSWD: ALL part means that the users in the ADMINS alias can use sudo to execute commands as root. The second ALL means any command. The first ALL means any host. The root ALL=(ALL) ALL means that the superuser may also use sudo to run any command on any host. The extra (ALL) means that the superuser may also run commands as any other user. You can extend this privilege to the ADMINS users by adding (ALL) to the /etc/sudoers line: ADMINS ALL = (ALL) NOPASSWD: ALL
Chapter 3: Devices
The sysfs Device Path
The program dd is extremely useful when working with block and character devices, its function is to read from an input file or stream and write to an output file or stream (dd copies data in blocks of a fixed size). Usage: dd if=/dev/zero of=new_file bs=1024 count=1
device name summary
It can sometimes be difficult to find the name of a device. Some common Linux devices and their naming conventions are:
Hard Disks: /dev/sd*
These devices represent entire disks; the kernel makes separate device files, such as /dev/sda1 and /dev/sda2, for the partitions on a disk. The sd portion of the name stands for SCSI disk (Small Computer System Interface). To list the SCSI devices on your system, use a utility that walks the device paths provided by sysfs. Most modern Linux systems use the Universally Unique Identifier (UUID) for persistent disk device access.
CD and DVD Drives: /dev/sr*
The /dev/sr* devices are read only, and they are used only for reading from discs.
PATA Hard Disks: /dev/hd*
The Linux block devices /dev/hd* are common on older versions of the Linux kernel and with older hardware.
Terminals: /dev/tty*, /dev/pts/*, and /dev/tty
Terminals are devices for moving characters between a user process and an I/O device, usually for text output to a terminal screen. Pseudoterminal devices are emulated terminals that understand the I/O features of real terminals. Two common terminal devices are /dev/tty1 (the first virtual console) and /dev/pts/0 (the first pseudoterminal device). The /dev/tty device is the controlling terminal of the current process. If a program is currently reading and writing to a terminal, this device is a synonym for that terminal. A process does not need to be attached to a terminal. Linux has two primary display modes: text mode and an X Window System server (graphics mode). You can switch between the different virtual environments with the ctrl-alt-Function keys.
Parallel Ports: /dev/lp0 and /dev/lp1
Representing an interface type that has largely been replaced by USB. You can send files (such as a file to be printed) directly to a parallel port with the cat command.
Audio Devices: /dev/snd/*, /dev/dsp, /dev/audio, and More
Linux has two sets of audio devices. There are separate devices for the Advanced Linux Sound Architecture (ALSA in /dev/snd) system interface and the older Open Sound System (OSS).
Creating Device Files
The mknod command creates one device (deprecated). You must know the device name as well as its major and minor numbers.
The Linux kernel can send notifications to a user-space process (named udevd) upon detecting a new device on the system. The user-space process on the other end examines the new device’s characteristics, creates a device file, and then performs any device initialization.
The devtmpfs filesystem was developed in response to the problem of device availability during boot. This filesystem is similar to the older devfs support, but it’s simplified. The kernel creates device files as necessary, but it also notifies udevd that a new device is available.
udevd Operation and Configuration
The udevd daemon operates as follows:
The udevadm program is an administration tool for udevd. You can reload udevd rules and trigger events, but perhaps the most powerful features of udevadm are the ability to search for and explore system devices and the ability to monitor uevents as udevd receives them from the kernel.
To monitor uevents with udevadm, use the monitor command: udevadm monitor
in-depth: scsi and the linux kernel
The traditional SCSI hardware setup is a host adapter linked with a chain of devices over an SCSI bus. This adapter is attached to a computer, the host adapter and devices each have an SCSI ID and there can be 8 or 16 IDs per bus, depending on the SCSI version. The host adapter communicates with the devices through the SCSI command set in a peer-to-peer relationship; the devices send responses back to the host adapter. The SCSI subsystem and its three layers of drivers can be described as:
USB Storage and SCSI
USB is quite similar to SCSI—it has device classes, buses, and host controllers. The Linux kernel includes a three-layer USB subsystem that closely resembles the SCSI subsystem, with device-class drivers at the top, a bus management core in the middle, and host controller drivers at the bottom.
To connect the SATA-specific drivers of the kernel to the SCSI subsystem, the kernel employs a bridge driver, as with the USB drives. The optical drive speaks ATAPI, a version of SCSI commands encoded in the ATA protocol.
Chapter 4: Disks and Filesystems
Partitions are subdivisions of the whole disk, on Linux, they’re denoted with a number after the whole block device. The kernel presents each partition as a block device, just as it would an entire disk. Partitions are defined on a small area of the disk called a partition table. The next layer after the partition is the filesystem, the database of files and directories that you’re accustomed to interacting with in user space.
Partitioning disk devices
There are many kinds of partition tables. The traditional table is the one found inside the Master Boot Record (MBR). A newer standard is the Globally Unique Identifier Partition Table (GPT). Some linux partition tools are:
Viewing a Partition Table
Changing Partition Tables
Changing the partition table makes it quite difficult to recover any data on partitions that you delete because it changes the initial point of reference for a filesystem, yo need to ensure that no partitions on your target disk are currently in use. Different tools can be used to create the partitions, like parted, gparted, gdisk or fdisk. fdisk and parted modify the partitions entirely in user space.
Disk and Partition Geometry
The disk consists of a spinning platter on a spindle, with a head attached to a moving arm that can sweep across the radius of the disk, even though you can think of a hard disk as a block device with random access to any block, there are serious performance consequences if you aren’t careful about how you lay out data on the disk.
Solid-State Disks (SSDs)
In olid-state disks (SSDs), random access is not a problem because there’s no head to sweep across a platter, but some considerations like partition alignment (data is read in blocks of fixed size, if data is laid in two blocks you need to do two reads even if the amount of data to read is less than the block size).
A filesystem is a form of database; it supplies the structure to transform a simple block device into the sophisticated hierarchy of files and subdirectories that users can understand. Filesystems are also traditionally implemented in the kernel, but there are also file System in User Space (FUSE) and Virtual File Systems (VFS).
These are the most common types of filesystems for data storage. The type names as recognized by Linux are in parentheses next to the filesystem names:
Creating a Filesystem
To create filesystems as with partitioning, you’ll do this in user space because a user-space process can directly access and manipulate a block device. The mkfs utility can create many kinds of filesystems:
Mounting a Filesystem
The process of attaching a filesystem is called mounting. When the system boots, the kernel reads some configuration data and mounts root (/) based on the configuration data.In order to mount a filesystem, you must know the following:
Disk Buffering, Caching, and Filesystems
Unix buffers writes to the disk, when you unmount a filesystem with umount, the kernel automatically synchronizes with the disk. You can force the kernel to write the changes in its buffer to the disk by running the sync command.
Filesystem Mount Options
Some important options of the mount command:
Внутреннее устройство Linux или как работает Linux
В течение года мы издали три книги по Linux, которые положительно приняли:
Сейчас мы планируем сделать новую книгу и остановились на варианте — How Linux Works: What Every Superuser Should Know. Мы хотим узнать ваше мнение и принять решение делать ли книгу.
Небольшая рецензия на прошлое издание:
Эта книга познакомит вас с внутренней организацией операционной системы Linux. Если вы новичок (книга отлично написана даже для новичков), программист, системный администратор, обычный пользователь или исследователь — впрочем, если вы просто всегда интересуетесь, как именно работает та или иная штука, то это книга для вас. Например, я — программист, прочитал ее, чтобы лучше изучить Linux, так как ранее мое знакомство с этой системой ограничивалось чтением онлайновых руководств. Книга разделена на три части. В части 1 описываются общие принципы конструкции и функционирования Linux. Во второй части рассматриваются инструменты программирования, доступные в Linux. В третьей части собраны специализированные темы, в частности, разъясняется работа с ядром, печать и т.д.
Часть 1: основы изложены весьма подробно. Я заметил, что для уточнения информации по некоторым командам, рассмотренным в этой части достаточно просто почитать справку man или info, но автор явно задумывал книгу иначе. Правда, для справки автор описывает все основные команды Linux и делает краткое введение по каждой из них. Книга исключительно простым языком рассказывает, как именно и по каким принципам работают файловые системы Linux. Я, например, всегда в них путался, но, прочитав эту книгу, выяснил для себя все нюансы. В ходе изучения основ Linux мы также знакомимся с загрузчиками этой операционной системы — GRUB и LILO. Отмечу, что в книге отлично рассмотрены сетевые аспекты работы в Linux. Не могу прокомментировать часть о ppp, но темы Ethernet, iptables и трансляции сетевых адресов (NAT) рассмотрены очень хорошо. Более того, автор подробно объясняет, как обеспечивать безопасность в беспроводных сетях.
Часть 2. Вторая часть начинается с вводного курса по написанию скриптов для командной оболочки (Shell scripting). Правда, следует вновь оговориться о целевой аудитории данной книги — далеко не все аспекты написания таких скриптов можно рассмотреть в столь небольшом пособии. Темы GCC и Make объяснены очень хорошо (в сущности, я разобрался в Make, только прочитав эту книгу). Более того, скрипты в этой книге пишутся на Python! Далее автор переходит к самой интересной (для некоторых, правда, самой несносной) теме в Linux – компилированию ядра. Работе с ядром посвящена целая глава, прочитав ее, я совершенно уверен, что смогу сам перекомпилировать мою систему.
Часть 3: Эту часть можно читать отдельно от всей книги. В ней рассматриваются специализированные темы, каждую из которых можно изучать независимо. Например, как настроить сетевой принтер? Как работать с CUPSd? Как пользоваться Ghostscript для преобразования Postscript в PDF? Ответы на все эти вопросы вы найдете здесь. Так, мне было просто необходимо научиться работать с файловой системой SAMBA. Моя домашняя сеть состоит из компьютеров с Windows, и мне периодически приходилось обращаться к тем или иным файлам, расположенным на них. Теперь все изменилось! Я без труда могу просматривать все домашние каталоги прямо с ноутбука, который подключается к сети по беспроводному соединению.
Пользователи часто сетуют, что в Linux возникает множество багов при работе с аппаратным обеспечением. В этой книге есть целая глава, рассказывающая, как покупать оборудование, совместимое с Linux. Этот материал очень вам пригодится, особенно если вы стараетесь оснастить свой компьютер по последнему слову техники. Кроме того, эта глава очень поможет системным администраторам, занятым обслуживанием больших корпоративных сетей.
Итак, я рекомендую эту книгу всем читателям, которых интересует внутренняя организация Linux. Вы найдете ответы на все интересующие вас вопросы и отлично освоите все механизмы Linux. Конечно, после ее прочтения вы не станете экспертом по Linux, но она поможет вам ответить на многие вопросы «как»? и «почему»? В дальнейшем она послужит вам солидным базисом для профессионального роста в области Linux.
How linux works what every superuser should know 2nd edition
How Linux Works: What Every Superuser Should Know. Brian Ward
Preface I wrote this book because I believe you should be able to learn what your computer does. You should be able to make your software do what you want it to do (within the reasonable limits of its capabilities, of course).
The key to attaining this power lies in understanding the fundamentals of what the software does and how it works, and that’s what this book is all about. You should never have to fight with a computer.
Linux is a great platform for learning because it doesn’t try to hide anything from you. In particular, most system configuration can be found in plaintext files that are easy enough to read.
The only tricky part is figuring out which parts are responsible for what and how it all fits together. Who Should Read This Book? Your interest in learning how Linux works may have come from any number of sources. In the professional realm, operations and DevOps folks need to know nearly everything that you’ll find in this book.
Linux software architects and developers should also know this material in order to make the best use of the operating system. Researchers and students, often left to run their own Linux systems, will also find that this book provides useful explanations for why things are set up the way they are. Then there are the tinkerers—people who just love to play around with their computers for fun, profit, or both.
Want to know why certain things work while others don’t? Want to know what happens if you move something around? You’re probably a tinkerer.
Если вам понравилась эта книга поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересных и нужным вам книг!
How linux works what every superuser should know 2nd edition
Название: How Linux Works, 2nd Edition
Автор: Brian Ward
Издательство: No Starch Press
Год: 2014
Формат: PDF
Размер: 16 Мб
Язык: английский / English
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you’ll find the kind of knowledge that normally comes from years of experience doing things the hard way.
You’ll learn:
How Linux boots, from boot loaders to init implementations (systemd, Upstart, and System V)
How the kernel manages devices, device drivers, and processes
How networking, interfaces, firewalls, and servers work
How development tools work and relate to shared libraries
How to write effective shell scripts
You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input and output, and filesystems. With its combination of background, theory, real-world examples, and patient explanations, How Linux Works will teach you what you need to know to solve pesky problems and take control of your operating system.
How linux works what every superuser should know 2nd edition
How Linux Works, 2nd Edition (2015)
Автор: Brian Ward
Целевая аудитория: опытные разработчики.
Сегодня без Linux и его многочисленных дистрибутивов невозможно представить какую-либо разработку: будь то веб-разработка, сетевое программирование или создание системного ПО. В этом знаменитом руководстве автор расскажет про то, как устроен Linux, как работает он и как работать с ним. Также в нём вы найдёте многочисленные советы и решения различных проблем использования данной ОС.
В книге рассматриваются следующие темы: основные команды и структура папок;
файловая система;
как работает ядро Linux;
работа с сетью;
введение в программирование на shell;
пользовательское окружение и многое другое.
Преимущества: актуальный материал по теме;
многочисленные примеры и советы.
Недостатки: не замечено.
How Linux Works, 2nd Edition
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you’ll find the kind of knowledge that normally comes from years of experience doing things the hard way. You’ll learn:
You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input and output, and filesystems. With its combination of background, theory, real-world examples, and patient explanations, How Linux Works will teach you what you need to know to solve pesky problems and take control of your operating system.
Brian Ward has been working with Linux since 1993. He is the author of The Linux Kernel-HOWTO, The Book of VMware (No Starch Press), and The Linux Problem Solver (No Starch Press).
Chapter 1: The Big Picture
Chapter 2: Basic Commands and Directory Hierarchy
Chapter 3: Devices
Chapter 4: Disks and Filesystems
Chapter 5: Linux Booting: Boot Loaders and Kernel
Chapter 6: How User Space Starts
Chapter 7: System Configuration: Logging, System Time, Batch Jobs, and Users
Chapter 8: A Closer Look at Processes and Resource Utilization
Chapter 9: Understanding Your Network and Its Configuration
Chapter 10: Network Applications and Services
Chapter 11: Introduction to Shell Scripts
Chapter 12: Moving Files Across the Network
Chapter 13: User Environments
Chapter 14: A Brief Survey of the Linux Desktop
Chapter 15: Development Tools
Chapter 16: Compiling Software from Source Code
Chapter 17: Building on the Basics
View the detailed Table of Contents (PDF)
View the Index (PDF)
“If you are interested in Linux, How Linux Works: What Every Superuser Should Know is a must-read title.”
—Linux Insider (Read More)
“Lots to offer on almost every aspect of the Linux architecture.”
—Everyday Linux User (Read More)
“You’ll get an essential understanding of what’s going on under the hood without getting bogged down in minutiae – making this a very refreshing (and wholly recommended) addition to the Linux literature.”
—Phil Bull, co-author of Ubuntu Made Easy and member of the Ubuntu documentation team (Read More)
“Dives straight into the transparent depths of Linux-based operating systems and shows us how all the pieces fit together.”
—DistroWatch (Read More)
“Earns its place on the shelf as an essential reference.”
—MagPi Magazine (Read More)
In Section 2.18.2 on page 37, the sentence “The r and f flags have more specific roles.” should read “The v and f flags have more specific roles.”
How Linux Works, 2nd Edition : What Every Superuser Should Know
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you full control of your computer. But to truly master Linux, you need to understand its internals, like how the system boots, how networking works, and what the kernel actually does.
In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you’ll find the kind of knowledge that normally comes from years of experience doing things the hard way. You’ll learn:
* How Linux boots, from boot loaders to init implementations (systemd, Upstart, and System V)
* How the kernel manages devices, device drivers, and processes
* How networking, interfaces, firewalls, and servers work
* How development tools work and relate to shared libraries
* How to write effective shell scripts
You’ll also explore the kernel and examine key system tasks inside user space, including system calls, input and output, and filesystems. With its combination of background, theory, real-world examples, and patient explanations, How Linux Works will teach you what you need to know to solve pesky problems and take control of your operating system.
Книги о том, как работает Linux
Подскажите, пожалуйста, книгу(и) про то, как под капотом работает Линукс. О тезисе «пока автор писал книгу, Линус и компания пол ядра переписали» осведомлен, но полагаю фундаментальные понятия остаются неизменными.
Понимаете, каждый раз, когда я ложу голову на подушку и закрываю глаза- в голове (у меня) кто-то начинает мне задавать неудобные вопросы: Как ядро алоцирует ресурсы приложениям? Как вообще скедулинг происходит? А как работает ext4? А почему fuse не наше все? А как процессы обмениваются информацией? а что там интересненького в /proc лежит? (и откуда оно там появилось?)
Очень хочется окунуться в этот чудный и загадочный мир ( на самом деле хочется что бы эти голоса замолчали )
Да, я гуглил. Там все сводится к «линукс для чайников», «10 простых шагов изучить линукс». Да я искал и тут тоже (и по тегу и просто текстом). Да код расскажет лучше тысячи книг, но код и длиннее тысячи книг
Английский язык не пугает (скорее приветствуется)
«Современные операционные системы» Таненбаум Эндрю
«Внутреннее устройство Linux» Уорд Брайан
«Ядро Linux. Описание процесса разработки» Лав Роберт
Если захочется собрать свой дистрибутив то, Linux From Scratch
http://www.linuxfromscratch.org/lfs/view/stable/
http://www.linuxfromscratch.org/lfs/downloads/stable/
Таненбаум Эндрю «Внутреннее устройство Linux»
Прочитал так. Взоржал.
Пошёл на Amazon искать книги по слову Systemd, первым выдало вот это:
коммент к книге, наверное, лучшее за этот год
How Linux Works What Every Superuser Should Know
Modern Operating Systems Forth edition Таненабаума.
linux device drivers?
Understanding the linux kernel.
коммент к книге, наверное, лучшее за этот год
“Declared «inappropriate for all audiences» by Amazon Advertising!”
А вообще, грустная книга. Что пока будешь сидеть на Линуксе, в любой момент может явиться systemd, всё переломать и устроить потрахушки. И жизнь будет состоять из непрекращающегося латания дыр в рабочее время и жёсткого секса после работы. И надо валить на BSD.
в любой момент может явиться systemd
Кому как… Мне понравилось.
Робачевский «Операционная система UNIX». Ну еще Стивенс. Остальное всё, включая Лава можно смело отправлять в топку – бесполезное чтиво.
Все основные книги уже тут перечислили.
Сводка
Основываясь на том что на гуглил и отзывам на амазоне составил сводку. Может кому-нибудь пригодится
Modern Operating Systems (4th Edition)
Отзывов на амазоне: 68
Примерный рейтинг: 4.1
Страниц: 1136
Краткое описание: Про операционные системы в целом. Считается классикой. Не подойдет для тех, кто хочет начать писать что-нибудь в ядре
Linux Kernel Development
Отзывов на амазоне: 103
Примерный рейтинг: 4.5
Страниц: 470
Краткое описание: Быстрый, достаточно поверхностный, но весьма качественный обзор основных «тем» в ядре. Без воды, хороша как вводный материал. Подойдет для тех, кто хочет начать что-то писать в ядре.
How Linux Works, 2nd Edition: What Every Superuser Should Know
Отзывов на амазоне: 300
Примерный рейтинг: 4.7
Страниц: 392
Краткое описание: Из того что я понял по комментариям: эта книга не такая хардкорная как все остальные. Знания С совсем не обязательны. Интересно, что слово «ядро» практически не упоминается в комментариях.
Understanding the linux kernel
Отзывов на амазоне: 92
Примерный рейтинг: 4.2
Страниц: 944
Краткое описание: Это кинга с очень глубоким погружением в то как работает и как написано ядро. Знания С маст хэв. Не подготовленным не подойдет. Немного ругают за неконсистентность подхода к разным «темам» в ядре. Описывает ядро 2.6, что при таком высоком уровне детализации уже может считаться значительным минусом.
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
Отзывов на амазоне: 266
Примерный рейтинг: 4.8
Страниц: 1553
Краткое описание: Таких восторженных отзывов я невидал еще нигде. Если в кратце: бессмертная классика, неповторимый оригинал, самая полная энциклопедия. Имхо слишком детальная для тех, кто хочет просто чуть больше понимать как все внутри работает, но в целом наверное одна из самых лучших книнг
The Design of the UNIX Operating System
Отзывов на амазоне: 76
Примерный рейтинг: 4.3
Страниц: 471
Краткое описание: фундаментальная, но очень старая книга. Хороша как вводная, но мне кажется это заход «слишком из далека»
Операционная система UNIX
Не нашел на амазоне
Краткое описание стоит принимать как имхо. Для себя выбрал «Linux Kernel Development»
Операционная система UNIX
Не нашел на амазоне
Книга русских авторов, на Амазоне искать не нужно. Но книга хорошая. В 1999 году вообще была офигенной.
Подборка книг для изучения Linux
Операционные системы на базе Linux любят за гибкость, масштабируемость и обширные возможности в настройке и персонализации. Благодаря этому существует множество Linux-дистрибутивов для различных целей: от домашнего использования до управления кластерами серверов. Но чтобы добиться максимальной производительности и безопасности, нужно понимать процессы, проходящие внутри этой ОС, и изменять настройки системы, стоящие по умолчанию. Книги, указанные ниже, помогут в администрировании системы и создании собственных дистрибутивов.
Just for Fun: The Story of an Accidental Revolutionary
Книга, написанная самим создателем Linux Линусом Торвальдсом. В ней он рассказывает о своей жизни и о том, с чего началась разработка Linux. Также в ней Линус поделился своим видением по разработке открытого программного обеспечения и Linux в частности. Если хочется посмотреть на Linux со стороны «отца» системы, а также больше узнать о его личности, то эта книга обязательна к прочтению.
Командная строка Linux. Полное руководство
Командная строка в Linux — основной инструмент для работы с этой ОС. Поэтому, чтобы полноценно настроить систему под свои нужды и ускорить рабочий процесс, нужно обучиться работе с этим инструментом и основным командам. Данная книга познакомит читателя с возможностями командной строки в Linux. В частности, здесь рассказывается о том, как:
Linux глазами хакера
Несмотря на название книги, она подойдёт не только специалистам в информационной безопасности, но и системным администраторам. В данной книге по полочкам разложены многие аспекты настройки ОС Linux с целью повышения безопасности и производительности системы. Автор Михаил Флёнов рассмотрел потенциальные уязвимости и атаки злоумышленников, а также методы борьбы с ними. Книга хороша также тем, что с её помощью можно изучить «внутреннюю кухню» Linux.
Ten Steps to Linux Survival
Книга подойдёт системным администраторам, которые обеспечивают стабильную работу серверов на Windows, но сталкиваются с настройкой Linux-окружения. Она поможет быстро освоиться с работой на Linux. В ней вы найдёте информацию по настройке сетей, работе с файловой системой, диагностике работы серверов, а также управлению процессами.
Linux. Карманный справочник
Второе издание книги, главная особенность которой — небольшой размер и максимум практики. В ней содержится более 100 готовых к использованию фрагментов программ и команд для выполнения типичных задач в Linux. Материал книги охватывает как командную строку, так и различные оболочки Linux. Но она не заменит полноценное руководство по Linux, поскольку предназначена именно для быстрого поиска решения возникающих задач.
Linux Bible
Девятое издание этой книги является достаточно полным руководством по работе с Linux, в том числе с Red Hat Enterprise Linux 7 (RHEL 7), Fedora 21 и Ubuntu 14.04 LTS. Отличительной особенностью книги стало разделение материала по уровням. Сначала даётся базовая информация о Linux, затем необходимые знания для рядового пользователя, системного администратора, потом рассматриваются серверное администрирование и безопасность. За счёт такой многоуровневости книга подойдёт всем желающим уверенно работать с этой ОС.
Официальная документация Ubuntu
Официальная документация популярного Linux-дистрибутива Ubuntu постоянно поддерживается, поэтому в ней можно найти подробную информацию о наиболее последних версиях системы. Оно содержит информацию о том, как устанавливать и настраивать различные приложения в пользовательской и серверной версиях Ubuntu в соответствии с заданными требованиями. Документация по Ubuntu Desktop доступна для чтения только онлайн, по Ubuntu Server — онлайн и в PDF-формате.
Red Hat Enterprise Linux 6 Essentials
В корпоративной среде популярностью пользуется дистрибутив Red Hat Enterprise Linux, считающийся одним из самых стабильных. Данная книга призвана рассказать об особенностях системы как новичкам, так и опытным пользователям. Новичку будет интересно почитать о настройке рабочей среды, электронной почты и веб-сервера. Более опытные пользователи RHEL найдут в книге такие темы, как удалённый доступ, управление логическими томами (LVM), разделение дисков, виртуализация KVM, SSH и совместное использование файлов с использованием Samba и NFS. В книге рассматривается немного устаревший RHEL 6, но в ней описаны концептуальные вещи, не теряющие актуальность со временем.
Современные операционные системы
Эту книгу нельзя было обойти стороной, хоть и Linux рассматривается только в одном разделе. Это классический труд Эндрю Таненбаума, в котором рассказывается обо всех аспектах современных операционных систем. В разделе про Linux можно найти информацию об истории возникновения UNIX и Linux, архитектуре системы, её процессах, управлении памятью, вводе-выводе, файловой системе и безопасности. Кроме того, а этой главе рассматривается и Android как отдельная система на базе Linux.
Внутреннее устройство Linux
Книга является хорошим руководством по работе с ядром Linux. В ней рассказывается о различных нюансах при эксплуатации этой ОС, системном администрировании Linux, а также о низкоуровневых механизмах системы. Также в книге рассматривается программирование shell-скриптов, программирование на языке Си, безопасность системы, виртуализация, компьютерные сети и многое другое.
How Linux Works: What Every Superuser Should Know
Книга будет интересна всем, кто интересуется внутренней составляющей Linux. Здесь рассказывается о загрузке ОС, управлении устройствами, драйверами устройств и процессами, работе сетей и интерфейсов, инструментах для разработки, написании эффективных shell-скриптов, а также ключевых функциях ядра в пользовательском пространстве: системные вызовы, ввод/вывод и файловая система. Все эти знания помогут тщательно настроить систему под себя.
UNIX and Linux System Administration Handbook
Книга является полным руководством по установке, настройке и обслуживанию любых UNIX- или Linux-систем, в том числе обеспечивающих облачную инфраструктуру. Руководство охватывает такие темы, как управление хранилищем, проектирование и администрирование сети, безопасность, веб-хостинг, автоматизация, управление конфигурацией, анализ производительности, виртуализация и DNS.
Встраиваемые системы на основе Linux
В книге описано поэтапное конструирование собственной системы на базе Linux только с необходимыми open source программами. В частности, автор Крис Симмондс рассматривает:
Linux From Scratch
Данная книга поможет пошагово создать собственный Linux-дистрибутив с необходимыми программами. Руководство описывает как процесс подготовки к сборке дистрибутива, так и его установку, конфигурирование, настройку загрузчика для запуска системы, а также финальные штрихи.
Сама онлайн-книга является дополнением к одноимённому проекту. Его цель — создание гибкой и производительной системы, заточенной под нужды конкретного пользователя. Однако созданием собственной ОС можно заняться ещё и для того, чтобы лучше изучить структуру Linux изнутри.
Настольная книга администратора Debian
Одна из немногих качественных книг о Linux-дистрибутиве Debian. Её поддерживают опытные участники сообщества этой ОС, что означает качественную и понятную подачу материала. Книга призвана собрать всю необходимую информацию об этой системе в одном месте, чтобы сделать дистрибутив популярным у пользователей. В силу того, что экосистема Debian состоит только из свободного ПО, то и сама книга доступна для прочтения всем желающим на нескольких языках, включая русский. Седьмое издание книги описывает Debian версии 8.
Какие книги помогли вам освоиться в Linux? Пишите своё мнение в комментариях. Лучшие книги из комментариев также войдут в эту подборку.