タグ

LINUXとシステムに関するbaboocon19820419のブックマーク (27)

  • Linuxカーネルのファイルアクセスの処理を追いかける (16) mq-deadline: dispatch_request - LeavaTailの日記

    関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (2) wb_writeback Part 10: writeback (3) writepages Part 11: writeback (4) write_inode Part 12: block (1) submit_bio Part 13: block (2) blk_mq Part 14: I/O scheduler (1) mq-de

    Linuxカーネルのファイルアクセスの処理を追いかける (16) mq-deadline: dispatch_request - LeavaTailの日記
  • 低レイヤーを学ぶための技術書をまとめてみる - Qiita

    半年前から低レイヤーに関する勉強をしている。 その中で読んだ技術書の感想、そしておすすめの読む順番をここにまとめてみる。 OS 30日でできる! OS自作入門 おすすめ度:80(満点100) 一言:自作OSの初心者向け 自作OSでまず初めに候補に挙がるのがこの。2006年に出版されたではあるが、OSの根幹を理解するにはとても良い。最初からアセンブリでメモリ操作をがっつり書くため、アセンブリの経験やレジスタ周りの知識が無いと挫折してしまうかも知れない。そこを乗り越えれば楽しくOSを実装していける。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 おすすめ度:95 一言:一からOSを作って学べる格的な指南書 論理回路と呼ばれるレベルからメモリやCPUを作っていき、アセンブリ言語やアセンブラの開発、そして独自言語とそのコンパイラ、OSまで開発する。CPUなど各要点の考え方

    低レイヤーを学ぶための技術書をまとめてみる - Qiita
  • 「RTOSとは何か」を理解できる7つの特徴

    組み込み機器をどう動かすかを考える際、選択肢として浮上するのが「RTOS(Real Time Operating System)」である。このRTOSとは何であり、なぜ必要か、どのような特長を持つのか、組み込み向けLinuxとはどう違うのか、解説する。 RTOSの存在意義 組み込み機器と一口で言ってもどのあたりをターゲットにするのかで議論は変わるが、8bit~32bit程度のマイコンを利用した比較的スタンドアロンに近い組み込みシステムを議論の対象とした際、頻出する言葉が、「RTOS(Real Time Operating System)」である。 それぞれのマイコンベンダーが開発環境に合わせ、最低限のデバイス用ライブラリや標準的なランタイム(文字列操作など)を提供してくれるのが通例であり、これだけでもシステムは構築できる。であるからして、こうしたシステムでは必ずしもOSが必要とは限らないの

    「RTOSとは何か」を理解できる7つの特徴
  • Googleの“第三のOS”「Fuchsia」、初代「Nest Hub」へ

    Googleが2016年から取り組んでいる非Linuxの新OS「Fuchsia OS」が5月24日(現地時間)、正式にリリースされた。9TO5Googleが25日、Googleに確認したとして記事で紹介した。Googleの初代スマートディスプレイ「Nest Hub」(旧「Google Home Hub」)にロールアウト中だ。 Fuchsiaは、Linuxをベースにしていない、ゼロから構築されたOSだ。Googleが自社開発した「Zircon(旧Magenta)」と呼ばれるマイクロカーネルを使用している。Googleは昨年プロジェクトを一般公開した際、Fuchsiaを「汎用OSを構築するための長期プロジェクト」と説明した。 Fuchsiaの主要なアプリ開発言語は、GoogleのクロスプラットフォームUIツールキットである「Flutter」だ。FlutterAndroid、iOS、Web、

    Googleの“第三のOS”「Fuchsia」、初代「Nest Hub」へ
  • プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ

    プログラミングにはレベルの低い・高いがある。ここでいうレベルとはCPUとかストレージデバイスといった生のハードウェアに近いかという意味である。レベルが低いほど生のハードウェアを意識しなければならない。カーネルは低レベルなソフトウェアの代表である。高尚かどうかと混同されることを嫌ってか、低レイヤ・高レイヤという言い方も良くする。私はあえて混同させたくてレベルという単語を使用している。 私は元々低レベルのプログラミングの方が計算機を操ってる感があって好きだった。しかし、しばらく離れてJavaとかPythonとか高レベルなことをやっていたが、ふと低レベルのところを再び触りたくなったので、 ハッカーのたのしみ Binary Hacks Cプログラミング高速化研究班 等を読み返しながら勉強している。低レベルはちょこちょこっとチューニングするだけで演算が高速化していき、ハッカー感が得られるので楽しい。

    プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ
  • Linux from Scratch - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Linux from Scratch" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2021年10月) Linux From Scratch (リナックス フロム スクラッチ、LFS) は、ユーザが自分自身で「スクラッチから(from Scratch、プログラミング言語のScratchではない)」Linuxシステムをビルドする、という一風変わった特徴を主旨とする、(一種の)Linuxディストリビューションである。最初のインストール(クリーンインストール)に、Live CDのようなライブイメージとバイナリパッケージを使って、最低限の機

  • Linux From Scratch

    目次 序文 はしがき 対象読者 LFS が対象とする CPU アーキテクチャ LFS と各種標準 各パッケージを用いる理由 必要な知識 ホストシステム要件 書の表記 書の構成 正誤情報 日語訳について I. はじめに 1. はじめに LFS をどうやって作るか 前版からの変更点 変更履歴 変更履歴 (日語版) 情報源 ヘルプ II. ビルド作業のための準備 2. 新しいパーティションの準備 はじめに 新しいパーティションの生成 ファイルシステムの生成 新しいパーティションのマウント 3. パッケージとパッチ はじめに 全パッケージ 必要なパッチ 4. 準備作業の仕上げ $LFSについて $LFS/tools ディレクトリの生成 LFS ユーザーの追加 環境設定 SBU 値について テストスイートについて 5. 一時的環境の構築 はじめに ツールチェーンの技術的情報 全般的なコンパイ

  • Linux Standard Base - Wikipedia

    Linux Standard Base Linux Standard Base (LSB) は、複数のLinuxディストリビューションの共同プロジェクトであり、Linux Foundationを活動母体としてLinux系オペレーティングシステムの内部構造の標準化を行うものである。LSBはPOSIX仕様、Single UNIX Specification、その他いくつかのオープン標準に基づいて、特定の分野についてそれらを拡張している。 LSBの目標は次の通りである。 「LSBの目標は、Linuxディストリビューション間での互換性を向上させ、準拠システム上でのアプリケーションの動作を保証するよう標準規格を策定・振興することである。さらに、ソフトウェアベンダーがLinux向けに製品を移植したり開発する際の調整努力を助ける。」 LSB準拠製品の認証手続きが定められている。認証はThe Open G

    Linux Standard Base - Wikipedia
  • Linux From Scratch

    目次 序文 はしがき 対象読者 LFS が対象とする CPU アーキテクチャ LFS と各種標準 各パッケージを用いる理由 必要な知識 ホストシステム要件 書の表記 書の構成 正誤情報 日語訳について I. はじめに 1. はじめに LFS をどうやって作るか 前版からの変更点 変更履歴 変更履歴 (日語版) 情報源 ヘルプ II. ビルド作業のための準備 2. 新しいパーティションの準備 はじめに 新しいパーティションの生成 ファイルシステムの生成 新しいパーティションのマウント 3. パッケージとパッチ はじめに 全パッケージ 必要なパッチ 4. 準備作業の仕上げ $LFSについて $LFS/tools ディレクトリの生成 LFS ユーザーの追加 環境設定 SBU 値について テストスイートについて 5. 一時的環境の構築 はじめに ツールチェーンの技術的情報 全般的なコンパイ

  • 「ゼロからのOS自作入門」の副読本的記事

    最初に 「ゼロからのOS自作入門」を実践するための、環境構築方法及びコマンドリストと実行結果のメモです。最短で実行したい方、うまく動かすことができない人用の記事となります。 書籍に関する感想は、以下ブログ記事に書いているので、書籍自体を買おうか迷っている人はこちらを参考にしてみてください。 記事は「ゼロからのOS自作入門」を読んで、個人的にまとめたものとなります。内容に関して、もし問題や誤りがあった場合の文責は私にありますので、この記事に関しての疑問は私に問い合わせください。もちろん書籍自体の質問は、書籍のサポートに連絡ください。 この記事を読むと、書籍を読まなくてもOSを動かすことはできます。ただ、書籍を読みながら自分で理解したり改造したりしながら動かさないと何も身につかないと思うので、興味ある人は書籍を買いましょう。価格の何倍もの価値がある良書だと思います。 ゼロからのOS自作入門

    「ゼロからのOS自作入門」の副読本的記事
  • Linuxに勝てなかったPlan 9 - @IT

    2002年頃、とある雑誌でPlan 9の記事を6ページほど作ったことがある。冷静に考えると、とても流行するようには思えなかったのだが、私にはPlan 9はまぶしく輝いて見えた。それは紛れもなく未来のUNIXだったし、日々コンピュータやネットワークを利用する環境として、ぜひとも使いたいと思えるような機能が多くあった。 「Plan 9」(プラン・ナイン)はUNIXが生まれたベル研究所で、次世代UNIXとして開発されていた分散OSだ。UNIXやC言語を生み出したケン・トンプソン、デニス・リッチー、ロブ・パイクらのチームが、当時UNIXが抱えていた限界を打ち破るために、ネットワークやGUIを最初からUNIXの設計思想に基づいて取り入れた先進的なOSだった。それは、未来のUNIXとなるはずだった。 UNIXの大きな特徴として、デバイスをファイルにマッピングして抽象化するというものがある。各I/Oポー

  • Go言語とコンテナ

    長かった連載も今回が最終回です。 この連載では、プログラムがコンピュータ上で動くときに何が起きているのかを、Go言語のコードを通して覗いてきました。 今回は、その締めくくりとして、コンテナについて紹介します。 現在広く利用されているコンテナ技術であるDockerのコアは、Go言語製のlibcontainerというライブラリです。 このライブラリを使って自作のコンテナを仕立ててみます。 今回の原稿にあたっては、仮想化周りでsyohexさんに細かく指摘をいただきました。ありがとうございました。 仮想化 コンテナの話に入る前に、コンテナと目的がよく似た技術である仮想化について説明します。 仮想化は、コンテナよりも先に広く使われるようになった技術ですが、 歴史的にさまざまなソリューションがあり、どのような仕組みか、どのようなメリットがあるか、どのような制約があるか、どこにフォーカスするかで分類の

    Go言語とコンテナ
  • Linuxカーネルの起動時トレースの話 - Qiita

    カーネル起動時トレース Linuxカーネルの起動処理は、様々なことが行われるのにそれをデバッグする方法はprintkだったり、逆にkgdbを外部デバッガから繋いだりと、結構な手間がかかっていました。カーネルが起動してしまえば、ftraceにperf, BPF, systemtapと複数の手段が使えるのに、起動時のデバッグは細かいことが出来ません。これは、起動時に指定できるオプションが大雑把になるのが大きな理由の一つでした。シェル芸ではないですが、1行プログラミングだけで様々なことをするのは大変です。 そこで導入されたのがExtra Boot Configuration (bootconfig)です。Bootconfigについては前回の記事を参考にしてください。 ここではカーネルコマンドラインのトレースオプションと、Bootconfigによって拡張されたBoot-time trace(CON

    Linuxカーネルの起動時トレースの話 - Qiita
  • Canonicalが開発したパッケージ管理システムSnappy(Snap)を使う - CLOVER🍀

    これは、なにをしたくて書いたもの? 以前MicroK8sを試す時に、よくわからないままsnapコマンドでMicroK8sをインストールしたのですが、またsnapを見る機会が できたので、1度ちゃんと調べてみようかなと思いまして。 Snappy? Snappyとは、Ubuntu Linuxの開発元であるCanonicalが開発したパッケージ管理システムです。 Snappy - Wikipedia Snappyで管理されるパッケージのことをSnapと呼ばれ、操作には「snap」というコマンドを使用します。 Linuxのパッケージ管理システムといえば、特にUbuntu Linuxであればaptやdebパッケージを思い浮かべますが、こちらは様々な Linuxディストリビューションで使えることと、パッケージが自己完結型であることが特徴です。 サポートされているLinuxディストリビューションは、こち

    Canonicalが開発したパッケージ管理システムSnappy(Snap)を使う - CLOVER🍀
  • 実行してはいけないLinuxコマンド(1) Ubuntu Serverで『rm -rf /』を実行

    禁断のコマンドを味わう Linuxは、Webサーバやクラウド・プラットフォームでのコンテナ・オペレーティングシステムとして高いシェアを持っている。今や、スーパーコンピュータTOP500のOSはすべてLinuxだ。デスクトップ・オペレーティングシステムとしてのシェアは2%前後だが、Macの5分の1程のシェアがあると考えると、かなりの台数が使われていることになる。 このLinuxだが、スーパーユーザーで『あるコマンド』を実行すると簡単にシステムを壊すことができる。チュートリアルやティップス系の記事では、そうしたコマンドは実行しないようにと必ず注意書きが追加されている。 しかし、「実行するな」と言われると、実行したくなるのがお茶目な管理者やユーザーの常というものだ。連載では、こうした「絶対に実行してはいけない」というコマンドを淡々と実行して、その結果をお伝えする。 すべてを削除する『rm -r

    実行してはいけないLinuxコマンド(1) Ubuntu Serverで『rm -rf /』を実行
  • Goならわかるシステムプログラミング

    Goで始める、すこし低レイヤのプログラミング入門。入出力、ネットワーク、メモリなど、現実の世界でプログラムが動くために必要な機能をプログラム言語Goを通して覗いてみよう。OSの機能とは何か、それをプログラミングでどう利用するのか、システムプログラミングの世界をプログラマの視点から眺めていく連載企画。 2017年06月21日 17時00分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第20回 Go言語とコンテナ 連載の最終回。この連載ではプログラムがコンピュータ上で動くときに何が起きているのかをGo言語のコードを通して覗いてきました。今回はその締めくくりとしてコンテナについて紹介します。 2017年06月07日 21時30分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第19回 Go言語のメモリ管理 ソフトウェアにとってメモリは不

    Goならわかるシステムプログラミング
  • Linux暴走時にやる奥の手(Magic System Request Key)

    INSANEWORKS,LLC What You Need Is What You Get!! Hostname: 133.242.243.6 IP Addr: 133.242.243.6 Kotaです。 LinuxがRebootもShutdownも受け付けなくなった時、、 パワーボタン長押し?Ctrl+Alt+Delもうけつけない? どーします?どっちみちFilesystemの破損が怖いですよね。。 強制パワーダウンの前に、、方法があります。キーボードをよーく見てみてください。 画像のSysreqというキーがあります。たぶんほとんど使った事ないと思いますw だけどもこいつはなかなかスグレモノです。 KernelPanic以外ならプロセスが暴走してようがKernelに割り込み処理を行えます。 よーは比較的安全にShutdownができます。 もちろんどーしようも無い時の最終手段ですが電源落と

    Linux暴走時にやる奥の手(Magic System Request Key)
  • 自分Linuxを作り出せ---目次

    自分自身の好みに合うLinuxを作ることは,決して難しくない。オープンソース・ソフトウエアを手順よく組み合わせていけば,Linuxの専門家ではなくても,自分だけのLinuxを作成できる。 講座を読みながら,Linuxの仕組みを理解して,自分だけのオリジナルLinux OS『自分Linux』を完成させよう。 1:まずは仕様を決めよう 自分自身の好みに合うLinuxを作ることは,決して難しくない。フリーソフトを手順よく組み合わせていくことで,ごく普通のユーザーであっても自分だけのLinuxを作成できる。Linuxの仕組みを理解して『自分Linux』を完成させよう。 2:構築に必要なシステムなどをそろえる 前回は自分Linuxの仕様を決めた。今回は,構築に必要な(1)自分Linux開発マシン,(2)自分Linux稼働マシン,(3)基になるLinux,(4)自分Linuxのソフトウエアについて説

    自分Linuxを作り出せ---目次
  • プロキシ下でLinuxを使う際のメモ - Λlisue's blog

    どうもAlisueです。研究室は完全Proxy環境下のため、通常の方法ではダウンロード等ができない場合が多々あります。 再インストールなどを行った際に毎度Google先生と格闘しながら設定を行なっていたのですが、いい加減面倒くさくなったのでまとめます。 必須設定 まずは下記設定をすべて行なってください。大抵の場合この設定だけですべてが解決します。 プロキシ用環境変数の設定(ターミナル環境) 通常環境設定は下記に上げるどれかで行います。 /etc/environment デフォルトの環境変数を設定するファイル。 今回のようにシステム全体の環境変数を変更する場合はこのファイルを編集するのが常套手段である。 /etc/profile ログイン時に実行されるシェルスクリプトファイル。 ログインシェルとして登録されているシェルが起動した際に自動的に読み込まれる。 /etc/profile.d/XXX

    プロキシ下でLinuxを使う際のメモ - Λlisue's blog
  • sanonosa システム管理コラム集

    インフラエンジニアの教科書」シリーズや「クラウドエンジニアの教科書」などの著者。現在(株)ハートビーツ勤務。LINE社元創業メンバー。K-POP/韓国語/お酒/サイゼリヤワイン好き。

    sanonosa システム管理コラム集