Skip to content

2023/05 2週目

Rust

RISC-V

OS

  • KernelVM式 nommu Linux入門/introduce of nommu Linux for KernelVM
    • 一般的なOSは仮想メモリ制御ユニット(Memory Management Unit)が基本的に必要だけど、マイコンのCPUではMMUがないっぽい?
      • wikiを見るとCPUはMMUを通して物理メモリアドレスを取得している
    • NOMMU Linuxを使うとマイコンでもLinuxを動かせる
      • ブートローダー + Linux カーネル + device tree blob + rootfs で動くらしい
        • ブートローダー
          • SDRAMの有効化
          • SDRAMへのカーネル読み込み
          • カーネル起動
        • カーネル
          • 各種ペリフェラルの初期化
          • OSの基本機能の初期化
          • rootfsのマウント
          • init処理の実行
        • rootfs
          • busyboxなどの実行バイナリの提供
    • NOMMU Linuxの一種?でuClinuxというのがある
  • コンピュータ講座 応用編
    • CPUの基礎の講座
    • バスなどについての説明がある
  • ArmのCPUとは何か
    • ARM関連の連載
    • MMUの詳細な説明もある
  • はじめて学ぶデバイスドライバ開発。組み込みLinuxによるハードウェア制御の仕組みを学ぶ
    • デバイスドライバについて解説している

      デバイスドライバは、制御対象のデバイスを適切にコントロールし、ハードウェアが提供する機能を運用。アプリケーションをはじめとする他のプログラムに対して、機能を実現するために不可欠なAPI内の実装を提供するソフトウェアです。

  • Device Tree についてのまとめ
    • デバイスツリーについて解説

      ARM Linux 向けにで使用されているプロパティ情報を記述した設定ファイルのこと。 Device Treeの仕組み自体は1994年に標準化されたOpen Firmwareというものを元にしている。 デバイスのベースアドレスや、クロック、割り込み番号といった、ハードウェア固有のプロパティをカーネルから分離しデバイスドライバの再利用性を高めることが目的の機能らしい。 Device Tree Souce に記載したプロパティをデバイスドライバから読み込んで使用する。

    • 雑なまとめ
      • デバイスツリーはデバイスのプロパティ(デバイスノード名やレジスタマップなど)を定義したもの
      • カーネルはデバイスツリーがないと正しくデバイスを認識できないらしい
      • デバイスドライバはデバイスツリーの情報を使ってデバイスを操作するためのAPIを提供
      • アプリケーションはデバイスドライバが提供しているAPIを使ってデバイスを操作する

Deno

  • deno compile が npm specifier をサポートするPRがマージされた(まだリリースされていない)

ELF

React

Next.js

k8s

アジャイル

プロトコル

認証認可

  • 基本から理解するJWTとJWT認証の仕
    • JWT(JSON Web Token)はHTTPヘッダーやクエリパラメータにJSONデータをうまく載せるための仕様
    • JWS(JSON Web Signature)は受け取ったJWTが本物(改善されていない)ものかどうかを確認する仕組み
      • 暗号鍵を使ってペイロード(JWT)を暗号化する
      • 暗号化されたペイロード(シグネチャ)を復号化して、JWTの中身が変わっていないことを確認することで改ざんされないことを検知できる
    • IDプロバイダーが提供している認証情報を持つJWSが正しいかどうかをプロバイダーに問い合わせて検証して問題ないなら、JWSにある認証情報を使ってあれこれする
  • 一番分かりやすい OpenID Connect の説明
    • トークンを発行者の署名付き名刺に例えて説明していてわかりやすかった
    • IDトークン(認証)とアクセストークン(認可)を払い出すことができる

      そもそも ID トークンは何のためにあるのでしょうか? それは、ユーザーが認証されたという事実とそのユーザーの属性情報を、捏造されていないことを確認可能な方法で、各所に引き回すためです。 一ヶ所で(=一つの OpenID プロバイダーで)ユーザー認証をおこない、発行された ID トークンを引き回すことができれば、別の場所で何度もユーザー認証を繰り返す必要がなくなります。 短く言うと、『ID 連携』ができます。

  • IDトークンが分かれば OpenID Connect が分かる
    • IDトークンの1つであるJWTについて細かく説明している
  • 一番分かりやすい OAuth の説明
    • 認可の流れがわかりやすく説明されている
  • KeycloakによるAPIセキュリティの基本
  • Certified OpenID Connect Implementations
    • OIDCの実装一覧
  • https://github.com/zitadel/zitadel
    • Kyecloakみたいなやつ(まだちゃんと見ていない)

その他

Released under the MIT License.