Linuxカーネルの内部を理解し、ソースコードとモジュールコードを書く方法を学ぶ!
Linuxカーネルプログラミングが初めてのエンジニアに対して(ただしCの知識は必要)、ソースコードからビルドすることからはじめ、カーネルソースコードの修正、モジュールの作成方法を説明します。またパフォーマンス向上のために必要な、メモリの割り当て、スケジューラ、同期といった複雑なテクニックを説明し、実際にどのようにプログラミングして活用すればよいのか、その要点と、つまづきやすいポイントなども教えてくれます。Linuxカーネルに関する知識を広く学ぶことが可能です。
Windows 10のサポート切れが迫る!
WindowsからLinuxへの乗り換えを支援!
Windows 10のサポートが2025年10月14日に終了します。以降はセキュリティパッチが提供されないため、Microsoft社はWindows 11へのバージョンアップを推奨しています。けれどもWindows 11の動作要件が厳しく、バージョンアップできないPCも多いようです。
そんなPCであっても、Linuxなら問題なく動作します。これを機にWindowsからLinuxへ乗り換えてみてはいかがでしょうか?本誌は、WindowsユーザーにもわかりやすいようにLinuxの概要やインストール方法、基本的な使い方から応用までを詳しく解説しています。
現在のLinuxはGUIの環境が整っており、Windowsとそん色ない見た目、操作性、機能を実現しています。特集1では、そのことをWindowsとLinuxの画面を並べながら解説しています。実際に乗り換えるとなると、ファイルやデータ、アプリの引っ越しが伴います。特集2では、こうした引っ越しの手順を解説しています。オープンソースソフトウエアのLinuxは、機能拡張やカスタマイズが柔軟にできることが特徴です。特集3では、Linuxを自分好みに仕立てる方法をまとめました。
Linuxには、多数の種類のOS(ディストリビューションと呼びます)が開発されています。けれども中核となる技術「カーネル」は共通です。この辺りの技術的な解説を、Linuxが初めてのWindowsユーザーにも理解しやすいように、QA形式で簡潔にまとめました。
実は、LinuxはWindows 10/11に標準機能として組み込まれています。つまり、PCにLinuxをインストールすることなく、いまのWindows PCのままLinuxを試せるわけです。特集5では、この標準機能「WSL2」の使い方を解説しています。
いま最も関心の高い技術トレンドといえば「生成AI」でしょう。Linuxでは、生成AIを動かすためのツールや環境が整っています。そこで「チャットAI」と「画像生成AI」を利用するための環境構築の手順を特集6でまとめました。
本誌を読んで、Windows 11に対応しないPCを復活させましょう!
LPIC合格へのはじめのい〜っぽ。まずはリナックスの基礎を身に付けよう!
現場で必要なサーバの根幹技術を、実際にマシンに導入・操作しながら28日間で即戦力を身につける本です。Linux/UNIXベースのサーバOSを導入し、ネットワークなどの環境を設定、DNS・メール・WWW・プロキシ・Samba等の個別アプリケーションを構築・設定して動作検証します。さらにはSSHやSSL、ファイアウォールなどのセキュリティ基礎、データベース、仮想化技術と広範囲に技術・運用管理の基礎を習得します。なお、サーバOSにはRed Hat Enterprise Linux 9互換を使用しており、解説アプリケーションはほとんどOSに依存しないため、様々な環境に応用可能です。学習の診断プログラムや、学習環境の自動インストールパッケージなども提供。独習用にも研修用にも最適、待望の改訂4版。
ステップアップ学習で初心者でも理解できる!つまずきポイントを動画でフォロー!
本書は単なるLinuxコマンドのリファレンス集ではありません。
Linuxコマンドの基本操作からシェルスクリプトの実行までを、全27ステップに分けて詳しく解説しています。
ただし、使いたいコマンドをすぐ見つけられる「目的別リファレンス」もまとめています。
さらに、紹介しているサンプルファイルとシェルスクリプトはすべて、サポートサイトから入手できるようにしました。
◆文章だけでは理解しづらい内容は図解で視覚的に理解できるようにしました
◆それぞれのLinuxコマンドで利用するオプションは可能な限り網羅しました
◆実践的なスキルが身に付くように多くの実行例を示しながら解説しました
本書は、サーバー管理者やプログラム開発者などのエンジニアを目指す方のためのLinuxにおけるCUIコマンドの解説書です。基本的にデスクトップ環境を使用したGUI操作はマスターされているものとして、「端末」アプリなど端末エミュレーターでのコマンドライン操作をベースに解説しています。
Linuxにはさまざまなディストリビューションがあり、用意されているパッケージの種類、および、その内容やファイルシステムの構造が若干異なります。本書ではUbuntuを基本に解説しています。Red Hat系のディストリビューションの利用者も、パッケージ管理やサービス管理以外の基本部分について参考にできます。
本書は、7つのChapterで構成しています。コマンドラインがはじめてという方は、Chapter1からChapte3までを順に読み進めていただくとよいでしょう。
Chapter1 コマンド操作の基礎知識
Step1 引数と変数を理解する
Step2 環境変数と履歴を理解する
Chapter2 ファイルとディレクトリー
Step3 コピー・移動・作成・削除する
Step4 ファイルを検索する
Step5 ファイルを圧縮・アーカイブする
Chapter3 テキスト操作
Step6 テキストファイルの中身を表示する
Step7 テキストファイルの中身を操作する
Step8 文字列を検索・置換する
Step9 テキストエディタ「vim」の基本操作
Step10 「vim」で文字列をコピー・置換する
Chapter4 プロセスとユーザー
Step11 ジョブとプロセスを管理する
Step12 ユーザーを作成・削除・グループ化する
Step13 アクセス権限を設定する
Chapter5 シェルとスクリプト
Step14 シェルの環境を設定する
Step15 スクリプトファイルを作成・実行する
Step16 スクリプトでの変数の扱い方
Step17 条件式を使って処理を分岐する
Step18 処理の繰り返しと分岐を制御する
Chapter6 ネットワーク管理
Step19 接続しているネットワークを調べる
Step20 ホストと通信する経路を調べる
Step21 Telnet とFTP サーバーを起動・接続する
Step22 高機能なFTP クライアントを使いこなす
Chapter7 サーバー管理&便利コマンド
Step23 SSH でリモートログインする
Step24 サーバーのファイルを遠隔操作する
Step25 パッケージを管理する
Step26 サービスを管理する
Step27 バックアップから四則演算まで
定番書籍『Linuxをマスターしたい人のための実践Ubuntu』が、24.04 LTSに対応して改訂されました。Ubuntuの導入方法やLinuxの基礎的な知識から、サーバーの構築と運用、クラウドでの活用、シェルスクリプトの活用まで、体系的に学び、そしてLinuxを実践的に活用できるように、わかりやすく徹底的に解説しています。
・第1章 Ubuntuを始めよう
OSの役割、Linuxの歴史、Ubuntuの歴史と現状など、Ubuntuを使う際に知っておくべきことをまとめています。Ubuntuを初めて使う人は読んでおくとよいでしょう。
・第2章 Ubuntuデスクトップを始めよう
Ubuntu 24.04 LTSを、VirtualBox(仮想マシン)および実マシンにインストールする方法を解説しています。デフォルトアプリケーションの紹介、デスクトップ環境の基本的な使い方、設定と応用を説明しています。
・第3章 コマンドライン操作を習得しよう
Linuxを使う上で避けては通れないシェルについて、仕組みと基礎から、便利な使い方、カスタマイズまで、一通りのことを学びます。さらには、GitやPowerShellについても解説しています。
・第4章 Ubuntuを管理しよう
ユーザー管理、ファイル管理、ストレージ管理などの運用管理を学びます。パッケージシステムやOSのアップグレードといったソフトウェア管理も詳しく解説しています。etckeeperを使った設定ファイルの管理も取り上げています。
・第5章 Ubuntuをサーバーとして使おう
デスクトップ環境を持たないサーバー版の使い方を解説しています。VPSやクラウドへの導入も、具体的な例で説明しています。
・第6章 Ubuntuサーバーの運用
サーバー管理で必須となるSSH接続によるログイン、セキュリティ設定、ログの取得と読み方、バックアップの取得方法などを解説しています。
・第7章 コンテナでUbuntuを使おう
Dockerの実行からDockerfileの作成までを解説しています。また、Docker互換のコンテナ実行環境Podmanや次世代のコンテナ管理システムのLXDについても説明しています。
・第8章 サーバーアプリケーションを動かそう
Nextcloudを例に、サーバーアプリケーション構築を解説しています。「送信専用メールサーバー」の構築も触れています。
・第9章 Windows上でUbuntuを使おう
WSL2でのUbuntuの導入と使い方を解説しています。LinuxのGUIアプリケーションをシームレスに動かすWSLgも取り上げています。
・第10章 Ubuntuでスクリプティング
Linux使いこなしには必須のシェルスクリプトの基礎を解説しています。近年、活用が増えているPowerShellのスクリプティング、スクリプト言語Pythonの開発環境構築も説明しています。
SoftwareDesign誌を後ろから読ませるという連載漫画が10年120回の連載を終え1冊の単行本として降臨。筆者がインフラエンジニアとして経験から得られたUNIXコマンドを漫画で解説! 読みながらコマンドを覚える(ことができるのか?)、使える(マジで?)、役立つ(うっそー?)という多機能な本です。今回は、紙幅の余りを利用して、新規描きおろしの漫画も多数収録、合間に挿絵もたっぷり追加、カバーを外して裏返しにすると、別の本に変身するというダブルフェイス! ああ物理本っていいですね(感嘆)。電子版ももちろん発売しております! 楽しみながらUNIX文化に触れてなじみましょう! Rubyのまつもとゆきひろさんも推薦の本書をぜひ手に取ってください!
第1章 天地開闢 2014年
第2章 生生流転 2015年
第3章 春風駘蕩 2016年
第4章 蕩佚簡易 2017年
第5章 慎始敬終 2018年
第6章 安居楽業 2019年
第7章 泰然自若 2020年
第8章 豪放磊落 2021年
第9章 魑魅魍魎 2022年
第10章 疾風怒涛 2023年
Linuxサーバーの構築や運用を手掛けたい人や、あるいは業務で担当することになったエンジニア向けに、最新版のLTS「Ubuntu 24.04 LTS」を用いて、実際のサーバー構築のツボをご紹介します。
■第1章では、Ubuntu Server 24.04 LTSのインストール方法と、LAN内でよく使われる8つの基本的なサーバーの構築方法を紹介します。
■第2章では、省電力でありながら実用的なLinuxサーバーを構築するための方法や手順を徹底解説します。
■第3章では、ブログサーバー「WordPress」の構築を「AWS」(Amazon Web Services)に、IoTデータの収集を「Microsoft Azure」に任せる方法を紹介します。
■第4章では、各種仮想化技術の基本的な仕組みから、VirtualBoxやDockerなど主要な仮想化ソフト&コンテナー管理ツールの導入方法、便利な活用方法を紹介します。
≪目次≫
第1章 Ubuntu Server 24.04 LTSでサーバーを構築してみよう
Part1 Ubuntu Server 24.04 LTSのインストール
Part2 LAN内で利用できる基本的なサーバーを構築
Part3 作って理解するWebサーバー
第2章 省電力&実用サーバー構築術
Part1 省電力サーバー機を用意する
Part2 サーバー向けディストリ選び&チューニング
Part3 目的別・家庭内サーバー構築
Part4 インターネットサーバー構築
第3章 面倒なことはクラウドに任せよう
Part1 AWSでWordPressを動かす。「クラウドネイティブ」にもトライ
Part2 Azureでセンサーデータを集計。ラズパイ使い冷蔵庫を見張る
第4章 仮想化&コンテナーのはじめ方
Part1 仮想化&コンテナーの全体像を10分で理解しよう
Part2 三つの定番仮想化ソフトで仮想マシンを作成
Part3 DockerとDocker Composeでコンテナーの活用を始めよう
Part4 lxcコマンドとLXDMosaicでシステムコンテナーを管理する
Part5 仮想マシンとコンテナーをProxmox VEで一元管理
第5章 コマンド&シェルスクリプト超入門
Part1 コマンドライン操作の全体像を知る
Part2 コマンド実行環境を整備する
Part3 コマンド操作の基本を押さえる
Part4 コマンドを自由自在に使いこなす
Part5 シェルスクリプトの基本をマスター
Part6 実用的なシェルスクリプトを作る
ソフトウェアの開発・利用において、カーネルのような根幹部分について理解せずにすむのがOSの役割ではあるものの、エンジニアとしてはこうしたシステムの根本的な仕組みを知り、具体的にイメージできることが大きな強みになります。本書では、長くLinuxカーネルを扱ってきた著者陣が、スケジューリングやメモリ管理など古典的なOS機能はもちろん、VMやコンテナ、セキュリティ機能など、より新しい内容も幅広く、多くのイラストを交えて解説します。これまで専門的な知識がなければなかなかアプローチできなかったLinuxカーネルの構造や仕組み、働きについて、さまざまな視点から解説する一冊といえるでしょう。
Raspberry Pi(ラズパイ)を使うのが、まったくの初めての人でも理解できる入門書です。
ラズパイ専門誌の「ラズパイマガジン」やLinux専門誌の「日経Linux」に掲載した記事を選りすぐり、再検証・再編集してまとめました。
全ての記事は最新モデル「Raspberry Pi 5」(ラズパイ5)で動作確認済みなので、最新モデルを購入した人にも、すぐに試せます。
■第1章ではラズパイの買い方やOSの導入方法、電子工作の基礎知識などラズパイを始めるための基本を解説。さらに最初のステップとしてラズパイをLinuxマシンとして楽しむためのフリーソフトを50本、紹介しています。
■第2章ではラズパイを電子工作の用途で使う方法を紹介しています。電子工作が初めてでも何から始めればよいのかが分かるように記事を構成しています。
■第3章では電子工作以外のラズパイの活用方法を紹介しています。具体的には、公式カメラモジュールの使い方、ミニサイネージの電子工作、AI画像認識で動くリモコンカーの電子工作、ファイル共有+動画配信サーバーの構築です。
■第4章では「ラズパイマガジン」でも好評だった連載漫画を転載しました。
≪目次≫
第1章 ラズパイを準備しよう
1.1 ラズパイと周辺機器の買い方からOS導入方法、工作基礎まで解説
1.2 厳選フリーソフト50選 導入もバーションアップも簡単!
1.3 I/O、CPUが高速になったラズパイ5 「NVMe」対応でSSDアクセスは2倍速に
第2章 ラズパイで電子工作
2.1 ラズパイ5完全対応 電子工作の始め方
2.2 ラズパイPicoWでネットワーク電子工作
第3章 ラズパイを活用しよう
3.1 Raspberry Pi Cameraで遊んでみよう
3.2 SDカード付きサイネージを楽々実現 ArduinoライブラリでラズパイPicoを動かす
3.3 ラズパイ&AIによる画像認識で アームクローラーを制御しよう .
3.4 「ファイル共有+動画配信」サーバーを1台のラズパイZeroの上に構築しよう
第4章 マンガ「女子校生とラズベリーパイ」
第1話 100m走の測り方(その1)
第2話 100m走の測り方(その2)
コラム ラズパイで使えるLinuxコマンド
ファイル・フォルダー操作編
コマンド実行・テキスト編
アプリ・ネットワーク編
従来型サーバからクラウドネイティブ型サーバの構築に至るまで、RHEL9互換OSにおける最新のサーバ構築手法を解説。
Linuxにおいてカーネル寄りの話になると、あれもこれもよく分からずにパニックになってしまう人が多いです。
本書では、そのような人に向けて、LinuxやLinuxカーネルとは何かなどの基礎的な部分をはじめ、自分の手でLinuxの環境構築を行ない、
ソースコードを読み込む方法を解説。
20年以上Linuxカーネルに取り組んできた著者が、苦い経験をもとに積み上げた知識とノウハウをこの一冊に濃縮しました。
はじめに
第1章 Linuxカーネルの基本
[1.1] Linuxとはなにか
[1.2] Linuxはどんなところで使われているか
[1.3] Linuxカーネルとはなにか
[1.4] オープンソースとライセンス
[1.5] Linuxカーネルはどうやって学べばいいのか?
第2章 ログ・ソースコードの確認
[2.1] Rust
[2.2] ログとソースコード
第3章 Yocto
[3.1] Linuxシステムを構築する
[3.2] ドキュメント
[3.3] Yoctoが提供するもの
[3.4] ビルドの流れ
[3.5] ソースコードを手動でビルドしてみる
[3.6] レシピ
[3.7] 環境構築を始める
[3.8] Ubuntuのセットアップ
[3.9] Yoctoのビルド環境構築
[3.10] Yoctoのビルド準備
[3.11] Yoctoのビルド
第4章 Linuxの起動とビルド
[4.1] Linuxの起動
[4.2] ファイルの送受信
[4.3] ビルド物件
[4.4] レシピを作ってみる
第5章 UbuntuのBIOS破壊問題を振り返る
[5.1] きっかけ
[5.2] どのような問題だったか
[5.3] Ubuntu公式によるバグレポートを解釈する
[5.4] 再現条件にBIOSが含まれる?
[5.5] フラッシュメモリを理解する
[5.6] フラッシュメモリを制御する
[5.7] フラッシュメモリのライトプロテクト
[5.8] 発生条件をまとめる
[5.9] カーネルパッチの読み方
[5.10] ICHを理解する
[5.11] PCHを理解する
[5.12] BARを理解する
[5.13] RCBAを理解する
[5.14] LPCインターフェイスを理解する
[5.15] SPIフラッシュメモリを理解する
[5.16] SPIフラッシュメモリの区分け
[5.17] デバイスドライバの実装を読む
[5.18] probe処理
[5.19] SPI領域へのアクセス
[5.20] 問題の実装をチェックする
[5.21] BIOS Write Enableの意味
[5.22] SMMを理解する
[5.23] 根本原因を探る
あとがき
索引
本書は、「Linux(リナックス)」の心臓部にあたるカーネルについて理解を深め、Linuxを本格的に学ぶ人のための「初めて読むLinuxカーネルの専門書」です。1991年に一人の大学生が趣味で開発を始めたLinuxというOSは、今や、あらゆる分野で使われていると言っても過言ではありません。組み込み機器やスマートフォンなどのモバイル機器、パソコンのOSとしてはもちろん、スーパーコンピュータのOSとしても使われています。
LinuxのカーネルはOSS(Open Source Software)として開発されていて、ソースコードがすべて公開されています。そのソースコードを調べれば、機能の詳細や動作の仕組みが分かりますし、改造して好きなようにカスタマイズすることもできます。
本書の狙いは、Linuxカーネルについて知りたい方に、学習の「入り口」を提供することです。まずはカーネルの全体像を把握して実験できるように、概要解説とモジュールの管理方法、ビルド手順の紹介から始めています。後半では、主だった機能をピックアップし、動作に必要なハードウエアに関するものを含めて仕組みをやや詳しく解説しています。
今回改訂した第2版では、カーネルやディストリビューションの変化に合わせて内容をアップデートすると共に、「プロセス間通信」「仮想化機能」についての解説を追加しました。
第1章 Linux カーネルの基礎
第2章 Linux カーネルのモジュール管理
第3章 Linux カーネルのビルド方法
第4章 タスクスケジューラの仕組み
第5章 仮想メモリーを実現する仕組み
第6章 コンテキストスイッチの仕組み
第7章 物理メモリー管理の仕組み
第8章 ファイルシステムの仕組み
第9章 プロセス間通信の仕組み
第10章 仮想化機能「KVM」の仕組み
Linux初心者でも安心して学習できます。イラストをたくさん使って説明しています。大きな文字で読みやすい紙面です。