2021-01-01から1年間の記事一覧
VPC Amazon Virtual Private Cloud AWS クラウド内でのプライベートなネットワーク環境 VPCはリージョンを選択して複数のアベイラビリティゾーンにまたがって作成できる CIDR Classless Inter-Domain Routing 10.0.0.0/16 のようにIPアドレスの範囲を定義し…
EBS EBS は Amazon Elastic Block Store の略 ブロックストレージボリューム EC2インスタンスのボリュームとして使用 EC2と同様に不要になればいつでも削除できる アベイラビリティゾーン内でレプリゲート EBS は同じアベイラビリティゾーンの複数サーバー間…
Auto Scaling 自動でインスタンスをスケーリングしてくれる機能 数の増減でスケーリングすることを水平スケーリング インスタンスそのものの性能を上げることを垂直スケーリング Auto Scalingでは水平スケーリングを自動化する Auto Scaling ポリシー ターゲ…
その4の続き EFI_MEMORY_DESCRIPTOR構造体 /// /// Definition of an EFI memory descriptor. /// typedef struct { /// /// Type of the memory region. /// Type EFI_MEMORY_TYPE is defined in the /// AllocatePages() function description. /// UINT32…
EC2 Elastic Compute Cloud 必要な時に必要なだけインスタンスを稼働させることができる 使用した分だけコストが発生 EC2稼働に対しての料金 OS, リージョン, インスタンスタイプによって料金が異なる 1時間単位で課金 Amazon Linux, Ubuntu では秒単位の課…
メインメモリ UEFIのメモリマップにおける1ページの大きさは4KiB 現実でのメモリマップはメモリ領域が隣接とならず歯抜けがあり得る メモリマップの取得の写経 EFI_STATUS GetMemoryMap(struct MemoryMap* map) { if (map->buffer == NULL) return EFI_BUFFE…
取ってきたedk2のディレクトリに自作OSのmain.c置いている場所のリンクを作る source edksetup.shを実行する Confディレクトリがその場に作られるのでその中のtarget.txtを編集する ここは本に合わせて以下へ変更する ACTIVE_PLATFORM = HogeLoaderPkg/HogeL…
AWSの責任共有モデル クラウド本体のセキュリティはAWS側 データセンターやAWSサービスのソフトウェアなど クラウド内のセキュリティはユーザー クラウド内のソフトウェア、ネットワークなど AWSクラウドのセキュリティ AWS Shield DDoS 対策サービス AWS WA…
Main.c #include <Uefi.h> #include <Library/UefiLib.h> EFI_STATUS EFIAPI UefiMain( // Loader.inf で設定したエントリポイント、ここから始まる EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *system_table) { Print(L"Hello, World!\n"); while (1); return EFI_SUCCESS; } include </library/uefilib.h></uefi.h>…
クラウドアーキテクチャの基本原理 故障に備えた設計(Design for Failure) 単一障害点(SPOF)をなくそう 1つのデータセンターのみで運用しない 単一のインスタンスのみで構成しない コンポーネントの分離 互いに過度に依存し合わないコンポーネントを構築する…
EDK II EDK II は Intel が UEFI とその周辺のプログラムを実装したもの GitHub - tianocore/edk2: EDK II EDK II でハローワールド パッケージ宣言ファイル(.dec) [Defines] DEC_SPECIFICATION = 0x0001001b # DECの仕様のバージョンを記述1.27と10進数で書…
PCの仕組みとハローワールド バイナリエディタで本のバイナリを写経してみる $ sum BOOTX64.EFI 12430 2 BOOTX64.EFI 本の値と一致した! BOOTX64.EFI を含むディスクイメージを作成する $ qemu-img create -f raw disk.img 200M -fオプションでディスクイメ…
30日OS面白かったので買いました UEFIブート, 64ビット, USBドライバ周りなどが気になる OSって何 アプリがOSの機能、周辺機器を使う際のインターフェース コンピュータの計算能力、メモリ、ストレージの読み書きなどのリソースをアプリへ配分する 人間がコ…
9章 Active Record の設計 Active Record は、Ruby のオブジェクトをデータベース のテーブルにマッピングするもの ActiveRecord::Base Active Record は、Active Support と Active Modelの2つのライブラリに大きく依存している ActiveSupport::Autoloadモ…
6章 コードを記述するコード Kernel#eval Kernel#evalは、ブロックではなくRubyのコードの文字列を受け取る これをコード文字列と呼ぶ eval は渡されたコード文字列を実行する instance_evalとclass_evalもブロックだけでなく、コード文字列も受け取れる Bin…
5章 クラス定義 Ruby の class キーワードはオブジェクトの動作を規定しているだけでなく、実際にコードを実行している クラス(やモジュール)定義の中ではクラスがカレントオブジェクトselfになる カレントクラス Ruby は常にカレントオブジェクトselfを持…
4章 ブロック ブロックはスコープを制御するのに強力なツール ブロックは「呼び出し可能オブジェクト」 Proc や lambda などが含まれる ブロックの基本 ブロックは、波括弧またはdo...endキーワードで定義できる 1行のブロックには波括弧、複数行のブロック…
3章 メソッド 重複問題 コードの重複は間違いを犯すかのせいをはらむ Ruby はいくつか解決方法を持つ 動的メソッド メソッドを動的に呼び出す メソッドを呼び出すには通常はドット記法を使う Object#sendを使って呼び出す方法もある send の第一引数はオブジ…
メタプログラミングRuby読んだメモです。 1章 頭文字M 多くのプログラミング言語では、コンパイラ後は変数やメソッドは実体を失う メモリ上に配置されるだけの存在となる 一方Rubyのような言語は、言語要素が残る 言語要素について尋ねることもできる これは…