タグ

OSとosに関するkomlowのブックマーク (38)

  • アクティブページレジスタ(Active Page Register)について - SYNjuku-ACKihabara

    Lions' Commentary on UNIX の読書会に行ってきました。 6章以降を読み進めるのに、アクティブページレジスタのことを知っていたほうが いいかなと思ったのでまとめてみました。 説明するにあたってのルール この記事では、0始まりの数字0200などは8進数とします。 それ以外は10進数です。 基礎知識 メモリはページという単位で管理されていて 1ページは最大128ブロックで構成される。 1ブロックあたりの大きさは64byte 詳しくはLionsの第2章を読んでください 仮想アドレスと物理アドレスの対応 とりあえず、仮想アドレスを物理アドレスに変換するためには 2つのレジスタを使うということを覚えておいてください。 Active Page Register(APR) んでその2つのレジスタがActive Page Registerを構成している Page Address R

    アクティブページレジスタ(Active Page Register)について - SYNjuku-ACKihabara
    komlow
    komlow 2017/05/26
  • 詳解システム・パフォーマンス 3章「オペレーティングシステム」輪読メモ - ゆううきメモ

    詳解システム・パフォーマンス 第2章「メソドロジ」メモ - ゆううきメモ の続き。今回は第3章「オペレーティングシステム」 システムパフォーマンス分析では、オペレーティングシステムとそのカーネルについての理解は必要不可欠だ。システムコールがどのように実行されるか、CPU がどのようにスレッドをスケ ジューリングするか、限られたメモリがパフォーマンスにどのような影響を及ぼすか、ファイルシステムは I/O をどのように処理するかなどのシステムのふるまいについて、あなたは頻繁に仮説を立て、それをテストすることになる。これらのふるまいを理解するためには、オペレーティングシステムとカーネルの知識を使わなければならない。 Brendan Gregg,西脇靖紘,長尾高弘「詳解システム・パフォーマンス」, オライリージャパン p.85 議論 章の内容をベースに議論

    詳解システム・パフォーマンス 3章「オペレーティングシステム」輪読メモ - ゆううきメモ
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • 自作OSにUSBを実装する - livaの雑記帳

    はじめに この記事は自作OSでUSBキーボードを実装しようとして半年くらい四苦八苦していた経緯の備忘録です。時系列で書いてくので、読みにくかったらごめんなさい。 USB周りの経験値がゼロな状態から実装した結果、遠回りやら勘違いやらいろいろしているのですが、そこら辺の苦労話が少しは伝わると良いなぁ、と思って書いたものです。 あと、上級者向けに伏線となった部分を赤字にしてあります。読んでいくにつれ、この伏線が回収される(=僕の努力が水の泡になる)のですが、是非伏線の段階で「m9(^Д^)プギャーwwwwww」してみてください。 あと、タイトルは若干釣りです。それも最後まで読んでもらえれば分かるかと。 ソースは以下の通り。 github.com 背景&きっかけ 自分でOSを書いていると、キーボードで文字を入力したくなるわけです。C言語の入門でscanfとかやるのと同じですね。 キーボードから

    自作OSにUSBを実装する - livaの雑記帳
    komlow
    komlow 2017/03/23
  • いまどきのデスクトップ処理系 steps to phantasien t(2006-09-22)

    いまどきのデスクトップは色々モダンになっている. ただモダン化は API の裏側で進んでいるため, あまり興味を持たれていないらしい. 一見いろいろウォッチしていそうな知り合いと話していてわかった. 利用者視点の話題では, いまどきのデスクトップというとたとえばウィンドウが ヘナヘナ揺れるといったアイ・キャンディばかりが連想される. でもそのアイ・キャンディに至るにはきっと山ほど苦労があったはず. そのへんをちょっとねぎらってみたい. 念頭にあるのは Windows Vista, Mac OSX, XGL あたり. まず共通の階層化されたアーキテクチャを想定し, ケーススタディを交えつつその層を下から上へ順にたどっていきます. 復習: デスクトップ処理系の階層構造 そもそもデスクトップの中味はどんな構成をとっているのか. ざっと眺めておこう. 典型的なデスクトップ処理系のアーキテクチャはだ

    komlow
    komlow 2017/02/23
  • OSのデバッグ:メモリアロケーション講座 | POSTD

    追記:やあやあHacker Newsさん!おひさしぶり!メモリ管理を深く掘り下げた私の投稿を読む邪魔はしたくないし、私の投稿のあら探しをする人たちを邪魔するつもりもありません。技術的なマル秘テクニックに注目するのもいいでしょう(いや、わかりますよ。楽しいですしね!)。でも、私たちはひとりぼっちでソフトウェアを書いているわけではないのです。だから、ためになる技術的なコンテンツ(私の記事もそうでありたいものです)を捜すだけじゃなくて、政治的な話題にも目を向けることを強くおすすめします。ソフトウェア開発者である私たちは、今後数十年にわたって社会を変える最前線に立つ特権を与えられています。私たちは、自分たちの仕事を社会全体に役立てられるようにするための情報や知識を必要としています。 そういう意味でみなさんには、 Hacker Newsが「政治的」なコンテンツを検閲すると言い出したこと に反対しても

    OSのデバッグ:メモリアロケーション講座 | POSTD
    komlow
    komlow 2017/01/20
  • UNIX/Linux互換OSをゼロから作った話 - Qiita

    こんにちはredcap97です。 私は、UNIX互換OSをゼロから作っています。 ある程度動くようになったので紹介したいと思います。 デモ 現在、QEMUの上で動作するようになっています。CPUはx86ではなくARMを対象に作っています。シェルと基的なコマンドが動作するようになっていて、リダイレクトやパイプも利用できます。 Dockerを使うと簡単にOSを動かすことができます。 概要 33のシステムコールを実装している システムコールはLinuxと互換性がある シェルはDashが利用できる Coreutilsのコマンドが使える libcはmusl libcを使用している ファイルシステムはMinix File Systemを実装している 以上です。 私は実装がとても遅いので、ここまで作るのに2年ぐらいかかっています。 Linusの偉大さを肌で感じなら、これからもノロノロと作っていきたいと

    UNIX/Linux互換OSをゼロから作った話 - Qiita
    komlow
    komlow 2015/12/20
  • TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ

    部長や副部長もプログラミングを(たまに)することで有名なサイボウズの運用部長、山泰宇です。 有名じゃないかもしれませんが、ブログに書いたので有名になるということでご了承ください。 今回は、先日発生した yrmcds に起因する障害の原因と対策を解説します。 yrmcds というのは、サイボウズが開発している memcached 互換のキーバリューストレージです。 問題の理解のため、まず TCP 通信で、通信先の相手の障害にどう対応するか解説します。 データの送信中に相手が落ちるケース このケースはさらに二つに分かれます。 相手の OS は生きているが、通信しているプログラムが落ちるケース 相手の OS ごと(あるいはネットワークごと)落ちるケース 1 と 2 の違いは、前者の場合 RST パケットが返ってくるのに対して、後者ではなにも返ってこない点です。後者の場合、ack されない

    TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • The little book about OS development

    The little book about OS development Erik Helin, Adam Renberg 1 Introduction This text is a practical guide to writing your own x86 operating system. It is designed to give enough help with the technical details while at the same time not reveal too much with samples and code excerpts. We’ve tried to collect parts of the vast (and often excellent) expanse of material and tutorials available, on th

    The little book about OS development
    komlow
    komlow 2015/05/22
  • GitHub - dom96/nimkernel: A small kernel written in Nim

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - dom96/nimkernel: A small kernel written in Nim
  • Project: A Simple Operating System

    School of Computer Science & Engineering University of New South Wales Advanced Operating Systems COMP9242 2014/S2 These pages outline what you will be expected to implement for the project. While some minor details may change during session, this has been a successful format for a number of years. It is a good idea to start thinking early and try to understand the full assignment and ask any ques

    komlow
    komlow 2015/04/28
  • softwaretechnique.jp

    This domain may be for sale!

    softwaretechnique.jp
    komlow
    komlow 2015/01/15
  • 第 5 章 オペレーティングシステムのチューニング (Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド)

    接続ハッシュテーブルのサイジング 接続ハッシュテーブルには、アクティブな TCP 接続に関するすべての情報が保持されます。接続ハッシュテーブルのサイズを取得するには、次のコマンドを使用します。 ndd -get /dev/tcp tcp_conn_hash この値によって接続数が制限されることはありませんが、接続のハッシュにかかる時間が長くなることがあります。デフォルトサイズは 512 です。 ルックアップを効率化するには、サーバーで予想される同時 TCP 接続数の半分の値を設定します。この値は、/etc/system でのみ設定可能で、起動時に有効になります。 現在の TCP 接続数を取得するには、次のコマンドを使用します。 netstat -nP tcp|wc -l ファイル記述子の設定 Solaris では、ulimit プロパティーによる開けるファイルの最大数の設定は、サポートでき

  • Front Page

    Greetings from the ReactOS Team! This year, we will start with a short summary highlighting ongoing work on the project as well as announcing the selection of our brand new developers. We will also talk about the current situation with symmetric multiprocessing (SMP) support in ReactOS. Development team enlargement Over the last decade, the number of people in the project team base has not changed

    Front Page
    komlow
    komlow 2013/12/27
  • GitHub - SamyPesse/How-to-Make-a-Computer-Operating-System: How to Make a Computer Operating System in C++

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - SamyPesse/How-to-Make-a-Computer-Operating-System: How to Make a Computer Operating System in C++
    komlow
    komlow 2013/12/11
  • 最近の仮想化界隈を知る:VMWareからCoreOSまで | 射撃しつつ前転

    仮想化の分野はどんどんと新しいものが出てくる。全部を実際に試すことは出来なくても、筋が良さそうなものについては、どういうものなのかある程度把握しておきたい。最近はちょっと忙しくてあまり情報収集ができてなかったので、追いつこうと思ってちょっと調べてみた。 ハイパーバイザ型仮想化とコンテナ型仮想化 仮想マシンの歴史をたどると、メインフレームの方では随分と昔から使われている技術である、と出てくる。一方で、x86の世界ではそれほど歴史は長くなく、1999年にリリースされたVMwareがおそらく実用的な初の仮想マシン技術だろう。 VMWareはハイパーバイザ型仮想化と呼ばれる技術で、上に乗るOS(ゲストと呼ばれる)に対して仮想的なハードウェアを提供する。ハイパーバイザ型も、どのレイヤで仮想的なハードウェアを提供するかで更に細分化されるらしいが、よく知らないので、ここではそこまでは踏み入らない。ハイパ

  • Linux/Mac/Windowsでハードウェア構成に関する情報を調べる - 元RX-7乗りの適当な日々

    サーバ/クライアントPC問わず、今使っているマシンのハードウェア構成がどのようなものかをOS上で確認したくなることもあるでしょう。 そんな時にお手軽に調べられる方法を、たまーにググったりするので、Linux/Mac OS X/Windowsの3つのOSの場合の調べ方をここに残しておきます。 Linux Linuxでは、dmidecodeコマンドを使います。 BIOSの情報とか、マシンの各種システム情報(シリアルナンバー等の各種メタ情報、CPU、メモリ、その他デバイス情報とか)が取得できます。 CentOS/RHELとかだと"kernel-utils"パッケージがインストールされていれば使えます。 ちょっと長いですが、以下のような感じです。 # dmidecode # dmidecode 2.11 SMBIOS 2.7 present. 87 structures occupying 399

    Linux/Mac/Windowsでハードウェア構成に関する情報を調べる - 元RX-7乗りの適当な日々
  • 0から始めるOS開発

    「OS自作に興味はあるけれど、どこから手をつければ良いか分からない!」 そんな人のためのOS開発初心者用スモールステップページを作る事にしました。 Livaが気ままに不定期更新する予定です。何かあったらForumにでもどうぞ。