![はじめに | ちいさな Web ブラウザを作ってみよう](https://cdn-ak-scissors.b.st-hatena.com/image/square/c99b2d7933f38a2b39b7cf580c3bf8d3845de3d0/height=288;version=1;width=512/https%3A%2F%2Fbrowserbook.shift-js.info%2Fbanner.png)
すべてがファイルというモデルの Linux (Unix) において、ファイル I/O (以降単に I/O と書く) を知っておいて損はない。 この記事では、基本的なファイルと関連する I/O について、対応する Linux システムコールも併せて説明する。 次回はこれらを実際に Linux 上で確認する予定。 ファイルUnix におけるファイルとは、普通「通常ファイル」のことを指し、バイトがリニアに並んだデータ (byte stream) のことである。 ファイル内のバイトは読み書きが可能で、指定されたバイトから開始する。この開始バイトはファイル内の「位置」と考えることができ、ファイルポジションまたはファイルオフセットという。 通常ファイルとは別に、スペシャルファイルというファイルとして表現されたカーネルオブジェクトがある。Linux では、スペシャルファイルとしてデバイスノード・名前付き
2023/04/29: これくらいの情報はググればすぐに出てくると思いいったん非公開にしましたが、意外とそうでもなかったので自分用メモとして再公開しました。 1. ソフトウェアのダウンロード元を変更してシステムをアップデートする (*) Super キー(= Windows キー)を押して、software と入力し、「ソフトウェアとアップデート」を選択します。 「設定...」ボタンを押して、「Ubuntu のソフトウェア」タブの「ダウンロード元:」から ftp.jaist.ac.jp などの国内ミラーサーバーを選択します。 アップデートが存在する場合は、表示されるウィンドウの指示にしたがってパッケージを更新し、Ubuntu を再起動します。 2. キーボードの CapsLock キーを Control へ置き換える /etc/default/keyboard を編集します。
極限まで詳細を省けば何とか20分で雰囲気だけでも伝えられるんじゃないかと思って書きました。書き終えてから見返したら多分無理なので誇大広告となったことを深くお詫び申し上げます。 背景 概要 脆弱性の影響 ページキャッシュやsplice パイプ マージの可否 下準備 攻撃手順 まとめ 背景 先日Dirty PipeというLinuxカーネルの脆弱性が公表されました。 dirtypipe.cm4all.com Linuxのパイプに関する脆弱性なのですが、仕組みは意外とシンプルでぎりぎりブログでも伝わるかもしれないと思ったので自分の理解を書きました。あといつも細かく書きすぎて長くなるので、今回は雰囲気だけでも伝わるようにとにかく説明を簡略化し、ふわっとした概要だけでも理解してもらえるように頑張りました。その結果、若干正確性に欠ける部分があるかもしれませんがお許しください。細かい部分はまた別の記事でま
Android端末にも搭載されているLinuxのカーネルに任意のファイルを上書きできる脆弱(ぜいじゃく)性が発見されました。ルート権限が必要なファイルについても上書き可能で特権昇格を行うことができるため、非常に影響の大きいものとなっています。 The Dirty Pipe Vulnerability — The Dirty Pipe Vulnerability documentation https://dirtypipe.cm4all.com/ この脆弱性は「Dirty Pipe(CVE-2022-0847)」と名付けられている通りLinuxで複数のプログラムの通信を担うパイプに起因するものとのこと。Linuxには一度読み込んだファイルをメモリ上にキャッシュとして置いておくことで再度アクセスする際の読み込み速度を高速化する「ページキャッシュ」という仕組みが存在していますが、Dirty P
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2022-03-04 11:33 LinuxカーネルがCで記述されているというのは誰もが知るところだ。ただ、そのCがかなり昔のC、すなわち1989年の規格である「C89」だという事実については知らない人もいるかもしれない。C89は「ANSI X3.159-1989」、あるいは「ANSI C」としても知られている。Linus Torvalds氏は、そろそろC89に別れを告げる時だと判断し、Linuxカーネルの公式な開発言語を2011年規格の「C11」に移行しようとしている。 これは見かけほど大きな変更ではない。C89は現在でもほぼ普遍的にサポートされている。どのようなCコンパイラーでも以前の規格との後方互換性を備えているため、C89で記述されたプログラムのコンパイ
2021年の11月に、業務端末としてDELL XPS 13を購入して、Linuxデスクトップに移行しました。いまでは快適に使えるようになりましたが、Linuxデスクトップに慣れていないこともあって思ったように動かず困ったところがあったので、導入にあたって悩んだところをまとめました。 ディスクの暗号化 業務利用の要件にディスクの暗号化があるので、bootパーティションを除いて暗号化しました。手順は過去記事に追記しました。 blog.lufia.org GNOME KDE Plasmaの方がスタイルは好みですし、実際に業務端末でも2ヶ月ほど使っていましたが、Wayland環境ではタッチパッドの左右スワイプが動かないとか、XWaylandで動作するアプリケーションを4Kディスプレイで表示するとぼやけた表示になるなど厳しいなと思いました*1。個人で使うものなら、少し効率が悪い程度なら問題にしません
ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基本的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお
by Nguyen Hung Vu オープンソースOS・Linuxの開発者として知られるリーナス・トーバルズ氏が反ワクチン派の投稿に対し、「予防接種を受けろ。反ワクチンの嘘を信じるのは止めろ」という返信を投稿しました。同氏は「ワクチンは文字通り何千万人もの人々の命を救ってきた」「どこから間違った情報を得たとしても、Linuxカーネルメーリングリスト上ではあなたのばかげた戯言を私が見逃すことはない」と怒りをあらわにしています。 LKML: Linus Torvalds: Re: Maintainers / Kernel Summit 2021 planning kick-off https://lkml.org/lkml/2021/6/10/957 トーバルズ氏が激怒したのは、Linuxカーネルメーリングリストに投じられた、「遺伝子配列が自然なものとは全く異なるスパイクタンパク質を生み出す新
サーバ業務周りの管理、運用について役に立ちそうなナレッジをまとめました。 長期的に書いているため用語に統一性がなかったり、不足分など随時修正したいと思います。 1. サーバ設計 サーバスペックはどうするべき? 使用するOSは? CentOS開発終了について MWは何を使うべきか Webサーバ構築にはどちらを使うべき?Apache?Nginx? サーバセキュリティで最低限押さえておきたいことは? listenするポートは最小限にしましょう ファイアウォール設定で送受信IPアドレス、ポートの通信制御はしておきましょう 外部に出る際にはプロキシサーバを経由するようにする 随時パッチを当てるようにする linuxでのアンチウイルスソフトの検討 個人アカウントで変更系コマンドは実行させないようにする ログについて考えること ストレージ容量には気をつける データベースはどう決めたら良いか MySQLか
chmod -R 777 /usr を実行したCentOS7で、一般ユーザがroot権限を得られることを確認するLinuxSecurityrootpermission Teratailで、suコマンドでrootログインできないという質問があり、てっきり/etc/pam.d/suまわりの設定かと思いきや、そうではなく、自己解決で説明された原因に一同驚愕ということがありました。 /usr/share/nginx/html に権限を追加したくて、横着して chmod 777 -R /usr とコマンド実行した記憶があります。 CentOS7、suコマンドでrootにログインできない、パスワードは絶対あっているのになぜ? /usr 以下のパーミッションをすべて777に設定したら、逆に動くべきものが動かなくなる例なのですが、これをやるとセキュリティ上問題であることは言うまでもありません。究極的には、
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-03-31 07:30 Linuxはプログラミング言語Cの申し子のような存在だ。しかし時は流れ、状況は変わった。RustをLinuxのシステム記述言語として採用しようという動きが少しずつ支持を集めてきている。例を挙げると、Linuxカーネル開発者のための年次カンファレンス「Linux Plumbers Conference(LPC)2020」において、開発者らはLinuxのインラインコード部分でのRustの採用を真剣に議論していた。その議論は現在どうなっているのだろうか?筆者はLinuxの父と目されるLinus Torvalds氏と、Linuxの安定版カーネルのメンテナーであるGreg Kroah-Hartman氏から考えを聞いた。 これはRustに魅
AWSが生まれたのは、Amazonが経費削減のためにSunのサーバからHP/Linuxサーバへ切り替えたことがきっかけ。当時の社員が振り返る 1990年代後半に、米Yahoo!などに代表されるインターネット系企業の株が高騰したインターネットバブルが発生しました。 そのバブルが2000年前後にはじけると、ユーザー数の拡大を背景に資金調達をしてきた企業の多くが投資家からの資金を得られなくなり、行き詰まり始めます。 Amazon.comもそうした状況のなかで先行きを不安視された企業の1つでした。2001年4月の週刊東洋経済の記事には、最高値の10分の1程度にまで下がった株価のグラフとともに、「莫大な酸素(キャッシュ)を燃やし続けている」「2000年12月末時点で2000億円を超える債務超過だ」と記されています。 当時Amazon.comのデジタルメディア部門ディレクターであったDan Rose氏
Linuxカーネルの開発者であるLinus Torvalds氏は5月29日(米国時間)、「LKML: Linus Torvalds: Re: clean up kernel_{read,write} & friends v2」において、ソースコードの1行当たりの文字数を80までとする現在の制限によって生まれる過度の改行はソースコードにとって良くないことであり、さまざまな問題を引き起こすと指摘した。 同氏はメールの中で次のような意見を述べ、制限を緩和する方向の意見を示している。 grepのようなコマンドは基本的に行単位で検索を行うので、過度に改行されたソースコードだと扱いにくい。 すでに多くのユーザーが80カラムの幅のターミナルを使用せず、より広げて使用している。同様の理由で、高さも25行よりも広げて使っている。 少数のユーザーが小さいターミナルウィンドウを使用しているという理由で、80カラ
Linuxディレクトリ構造とファイルの種類 Linuxのディレクトリ構造もまともに把握できないまま開発をしていたのでこの機会に勉強してみました。 Linux入門者は、まずLinuxの構造について先に習得し、Linuxに適応するのに早いです。 Linuxファイルシステム構造 [全体構造図] 🚩me/はただのユーザー名の例として認識してください。 / (root) 最上のディレクトリであるルートディレクトリを意味。リナックスのすべてのディレクトリたちのスタート地点。すなわち、すべてのディレクトリを絶対経路で表記する際にこのディレクトリから始める必要がある。 /bin /binフォルダはBinary Folderの略で、OSの最小限の正常な駆動のため、すべてのユーザーが使用する実行ファイルが入っているフォルダ。 つまり、基本的なコマンドが保存されたディレクトリで、cat、chmod、chown
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く