タグ

kernelに関するtdakakのブックマーク (8)

  • 読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    きっかけはこのツイート。 基礎的なことなんだろうけど理解できてないこと。 読み取り権限のない実行権限だけのファイルってどういう扱いになるんだろう。— ゑぬぽい改@電探が出(ん)たん? (@NPoi) March 27, 2014 実際にやってみるとわかるけど、実行権限だけついてるファイルは実行可能です。でも、「読み込めないのに実行できる」というのは直感に反するような気もしますね。だって、実行するためにはプログラムをメモリに読み込む必要がありますから!ではなぜ実行権限だけのファイルが実行できるのか、その仕組みを解説します。 実行とはなにか、どういう仕組みなのか Linux において実行とは「forkしてexecする」です(そのへんの詳しい話は プロセスさん を読もう!)。 fork も exec もシステムコール(正確には execve がシステムコールで exec はそのフロントエンドだけ

    読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    tdakak
    tdakak 2020/05/03
    ソースコード追っていく過程が好き、めちゃくちゃおもしろい
  • Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    はじめに 名前空間 名前空間の利点 名前空間の種類 Mount名前空間 IPC名前空間 UTS名前空間 Net名前空間 PID名前空間 User名前空間 名前空間の管理 プロセスと名前空間 名前空間のエクスポート nsfs 名前空間共通データ NSProxy構造体 NSProxyと名前空間 参照カウンタ NSProxyと名前空間の関連 名前空間へのアクセス デフォルトの名前空間 名前空間の共有・分離・移動 名前空間の共有と複製 fork(2) clone(2) fork(2)・clone(2)時の処理 unshare(2) 名前空間の分離処理 名前空間の移動 setns(2) 名前空間の移動処理 Mount名前空間 Mount名前空間の実装 Mount名前空間の初期化 Mount名前空間の分離 IPC名前空間 IPC名前空間の実装 IPC名前空間の初期化 UTS名前空間 UTS名前空間の実

    Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • インサイドNintendo Switch

    My talk @ kernelvm 関西 #8

    インサイドNintendo Switch
  • Linux Insides : カーネル起動プロセス part1 | POSTD

    ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと

    Linux Insides : カーネル起動プロセス part1 | POSTD
  • システムコールを経由する生のLinuxスレッド | POSTD

    Linuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メイン”スレッドの”親プロセスに追加された子プロセスです。これらは同じプロセス管理のシステムコールを通して処理されるので、スレッドに関するシステムコールのセットを分ける必要性を取り除きます。これはファイルディスクリプタと同様に洗練された方法です。 一般的に、UNIX系のシステムではfork()を使ってプロセスを生成します。新しいプロセスは、オリジナルのコピーとして独自のアドレス空間とファイルディスクリプタテーブルを取得します。(Linuxではコピーオンライトを使用して、この部分を効率的に処理します。)しかし、これは非常に高度なスレッドの生成方法なので、Linuxでは別の clone() システムコールを使用します。

    システムコールを経由する生のLinuxスレッド | POSTD
  • 第1回 カーネルやinitを刷新

    3年8カ月ぶりのメジャーバージョンの新版となる「Red Hat Enteprise Linux 7」(RHEL 7)が米国では6月10日、国内では7月10日に発表された。リリースに際し、開発・提供元の米Red Hat社は、この新版が「エンタープライズOSを再定義したもの」(Redefining the Enterprise Operating System)とのメッセージを発信している。 RHEL 7もOSの中核としてLinuxカーネルを採用しているという点では、従来通りに「Linuxディストリビューション」であり、この点では連続性を維持している。しかし、誕生から20年を超えたLinux歴史において、「エンタープライズOSを再定義した」といえるほど大きな変更が、カーネルとユーザースペースに大別されるLinuxの処理のいずれにも加えられている。まずは、その“大きな変更”について説明する。

    第1回 カーネルやinitを刷新
  • Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ

    Linux kernel 3.9 のマージウィンドウでは SO_REUSEPORT というソケットオプションがマージされました。 Merge branch 'soreuseport' · c617f39 · torvalds/linux · GitHub これは同一ポートに複数のリスナー(listen ソケット)が bind できるようになるというもので、Webサーバなど単一のポートに多くのコネクションが来るようなワークロードで、複数プロセスでうまく負荷分散ができるようになるそうです。 (これまでだと一人がaccept()してそれぞれの worker に渡すというようなモデルがありましたが、これでは accept() する部分がボトルネックになってしまいがちでした。) BSDでは元々 SO_REUSEPORT オプションはあったようですが、マルチキャスト通信で使うもののようです。Linux

    Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ
  • 「はじめてのOSコードリーディング」という本を出版します - やる気のないブログ(A boring diary)

    はじめに 「はじめてのOSコードリーディング 〜UNIX V6で学ぶカーネルのしくみ〜」というを2013年1月8日に技術評論社から出版します。 はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus) 作者: 青柳隆宏出版社/メーカー: 技術評論社発売日: 2013/01/09メディア: 単行(ソフトカバー)購入: 56人 クリック: 1,959回この商品を含むブログ (29件) を見る このエントリでは、そのの紹介を行います。もし興味を持ったならば、書店などで手に取っていただけると幸いです。 追記 追記 2013/08/17 PDP11エミュレータをJavaScriptで実装しました。WebBrowser(Crhome)上でUNIX V6の動作確認を行うことができます。デバッグ機能もありますので、読者の方はコードリーディ

    「はじめてのOSコードリーディング」という本を出版します - やる気のないブログ(A boring diary)
  • 1