ikemonn's blog

技術ネタをちょこちょこと

コンピュータアーキテクチャのエッセンス 5章

CPU

さまざまなプロセッサと命令セット 各プロセッサではサポートする演算群から構成される命令セットが定義されている プログラマへの利便性とハードウェアコストの間で妥協しながら選択される たいていのプロセッサには高速な記憶機構である汎用レジスタが備わ…

コンピュータアーキテクチャのエッセンス 4章

CPU

さまざまなプロセッサと計算エンジン プロセッサは多数の命令からなる計算を実行できるデジタル機器 下記の論理を使い分けられる 固定論理 選択可能論理 パラメータ化された論理 プログラム可能論理 プロセッサは様々な役割において下記のように分類される …

コンピュータアーキテクチャのエッセンス 3章

CPU

データやプログラムの表現 基礎となるディジタルハードウェアには0,1の出力がある これをビットとし、データやプログラムを表現するのに複数のビットを使う コンピュータは各々でバイトのサイズを定義していて、現行システムでは通常8ビット = 1バイトである…

コンピュータアーキテクチャのエッセンス 2章

CPU

ディジタル論理回路の基礎 フリップフロップ ちょうど電源スイッチのように働く、状態を扱う電子回路 入力の過程に対して反応し、現在の入力値に対しては単純には反応しない 入力が最初に1になると出力をオンにし、入力が次に(0になったあと)1になると出力を…

はじめて読む486 12章

CPU

DOSエクステンダー MS-DOS上でプロテクトモードを活用するプログラムの実行を可能にする リアルモードの状態でMS-DOSメモリ領域にプロテクトモードプログラムファイルを読み込み、プロテクトモードに移行してからそれをプロテクトモードメモリに転送する MS-…

はじめて読む486 11章

CPU

仮想8086モード プロテクトモードではセグメントの扱いが違うので、プログラムをそのまま実行できない 286ではMS-DOS用のアプリを実行する際には、いったんリアルモードに戻した リアルモードだとプロテクトモードの保護機能が全く使えない 386では「仮想808…

はじめて読む486 10章

CPU

OSのセキュリティ 特権レベルとスタック切り替え 486は特権レベルによって、アプリケーションソフトウェアの権限を制限し、セキュリティを実現する アプリケーションを実行している状態からコールゲート、割り込み、例外によってOSが呼び出されると、CPUの動…

はじめて読む486 9章

CPU

ページング メモリ管理方式の一つ メモリを「ページ」と呼ばれる固定長の単位に区分けする方法 本来フラットなメモリ空間のアドレス割り当てのまま、全メモリに連続したアドレスが割り付けられる ページングとアドレス変換 ページ単位でアドレス変換を行う …

はじめて読む486 8章

CPU

タスク タスク(プロセス)とは 独立した資源を保持するプログラムの実行単位 実行単位 = プログラムが起動して処理を行い、終了するまでの一連の流れの実行 資源 = メモリ空間やファイルやデバイスの操作状況、それらを処理するプログラムの実行時間 各タスク…

はじめて読む486 7章

CPU

割り込み 割り込みとは 仕組み プログラムの実行を何らかのきっかけで中断し、一時的に他のプログラムを実行すること 流れ 割り込みの発生 割り込み処理ルーチンの呼び出し 割り込み処理ルーチンの実行 割り込み処理の終了 種類 ハードウェア割り込み 周辺機…

はじめて読む486 6章

CPU

保護機能 プロテクトモードでは下記のチェックをCPU内部で行っている セグメントの属性 セグメントリミット 特権レベル タスク セグメントリミット アクセスしようとするメモリのオフセットアドレスがリミット値を超えていないかをチェックする セグメントの…

はじめて読む486 5章

CPU

セグメント メモリの区画割り 8086のセグメント機構は64Kバイトに制限されていたため有害無益と言われていた プロテクトモードではセグメント機構が持つメリットを十分に発揮できるようになっている セグメント方式 メモリを区画割りする方式の一種 8086のセ…

はじめて読む486 4章

CPU

プロテクトモード リアルモードからプロテクトモードに移行するには システムレジスタのCR0(コントロールレジスタ0)の最下位ビットPE(プロテクションイネーブル)を1にする セグメントの設定→割り込みの設定→アドレス制限の解除→プロテクトモードへ移行

はじめて読む486 3章

CPU

OSの役割 プロセス管理 メモリ管理 ファイルシステム 入出力管理 マルチタスク 複数のタスクを順番に少しずつ実行していく タスク切り替えの実現方法 タスク1を2に切り替える方法 タスク1の状態を保存するために、レジスタの内容をすべてメモリに保存する メ…

はじめて読む486 2章

CPU

486の位置づけ CPUはCISCとRISCに分類される 486はCISCに属する86系 8080というインテル製の8ビットCPUを源流としている 86系CPUの発展 8086 16ビットCPU 8ビットCPUである8080からの移行を容易にすることを主眼に作られた セグメント方式やレジスタの種類に…

はじめて読む486 1章

CPU

3つの動作モード 486は下記の3つの動作モードをもっている リアルモード プロテクトモード 仮想8086モード リアルモード 従来との互換性を保っているモードで、MS-DOSを利用できる 8086とほぼまったく同じ動作をする プロテクトモード MS-DOSからWindowsを起…

Laravel HomesteadにSequel Proを使う

概要 $ homestead up した後に、下記のように設定すればよい。 参考 Using Sequel Pro with Laravel Homestead Vagrant Environment

VagrantとHomesteadでLaravel5.Xを楽しむ

概要 Laravel Homestead - Laravel - The PHP Framework For Web Artisansを使うと簡単です。 やり方 // 予めLaravelのプロジェクトを作っておく $ larval new yourProject $ vagrant box add laravel/homestead $ composer global require "laravel/homeste…

【Git】間違ってpushしたコミットを履歴も残さず削除したい

状況 間違ってcommitしたものをpushしてしまったので、リモートブランチから履歴を消したい。 revertで履歴が残るのも困る。 解決方法 手元のローカルブランチをreset --hardで戻りたい位置まで戻す リモートブランチに強制的にpushする $ git reset --hard …

【Haskell】SortByを使う

Ninety-Nine Haskell Problems Haskellの勉強をしていて、(Ninety-Nine Haskell Problems)https://wiki.haskell.org/99_questionsを解いている。 そこで、sortの問題が出てきたので解いた。 Problem 28 Sorting a list of lists according to length of subl…

【書評】春風夏雨

春風夏雨 (角川ソフィア文庫)作者: 岡潔出版社/メーカー: KADOKAWA / 角川学芸出版発売日: 2014/06/12メディア: Kindle版この商品を含むブログを見る この本との出会い 大学時代の友達が「春宵十話」をオススメしてくれて、その時に数学者、岡潔を知った。 …

【書評】なぜ、週4時間働くだけでお金持ちになれるのか?

なぜ、週4時間働くだけでお金持ちになれるのか?作者: ティモシーフェリス,田中じゅん出版社/メーカー: 青志社発売日: 2007/09/21メディア: 単行本購入: 13人 クリック: 47回この商品を含むブログ (36件) を見る この本との出会い 就活生のころ、Zawatt Inc. …

【Vagrant】実践Vagrantを読んだ際のメモ

実践 Vagrant作者: Mitchell Hashimoto,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2014/02/21メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る Vagrantについて改めて勉強したくて上記の本を読んだ。 そこで覚えて…

【Ruby】ヒアドキュメントで与えられた数値を配列に入れる

numbers = <<-EOS 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 …

Rubyでエラトステネスの篩を書いた

Rubyでエラトステネスの篩を書いた - Qiita

VagrantでLAMP環境構築する

毎回LAMP環境整えるの辛いのでr8/vagrant-lampを試してみた。 開発環境構築 # VagrantとVirtualBoxをMacにInstallしておくこと $ vagrant box add precise32 http://files.vagrantup.com/precise32.box $ git clone https://github.com/r8/vagrant-lamp.git …

「LeanUXの現場」のメモ

IT業界は変化が恐ろしいほど速い 流れが速いからこそ、流行りに流されずに本質を見極めなければならない 実際に実践している会社は? Yahoo! 1つのYahoo!になるべきだ。物理的に同じ場所にいないといけない これは現在の流れと逆を行っている 3人よれば文殊…

Vimdiffの使い方

vim

コマンド $ vimdiff file1 file2 左の差分を右にマージ #差分部分にカーソル合わせて(diff put) dp 右の差分を左にマージ #差分部分にカーソル合わせて(diff obtain) do 差分にジャンプ #次の差分へ ] + c #前の差分へ [ + c [Vim]vimdiffで差分を表示・マー…

【Vim】後方一致とハイライトを消す、スラッシュが含まれるものの置換

vim

後方一致 #/home/ec2-user/htdocs/のようなものを検索する時は後方一致をすると便利 ?/home/ec2-user/htdocs/ ハイライトを消す :noh スラッシュが含まれるものの置換 #;をセパレータに使えばOK :%s;/home/ec2-user/htdocs;/home/hoge/htdocs/;gc 参考 Viで…

vimrcをsourceすると「unmatched "」と出る時

vim

現象 .vimrcを編集し、読み込ませるために以下のコマンドを打つと以下のメッセージが出た。 source ~/.vimrc > .vimrc:24: unmatched " 解決方法 .vimrcはvimが起動する際に自動で読み込まれるので、コマンドライン上から打つ必要はないらしい。 もし手動で…