はてなキーワード: アクセス制御とは
ファーウェイが初の独自OSパソコン キーボード部分も全面有機EL
https://www.nikkei.com/article/DGXZQOGM198JT0Z10C25A5000000/
もし現代に0からOSを作成する場合、これらのOSの技術的負債や欠点を教訓として設計するならどのようなものが考えられますか?
観点 | Linux で顕著 | Windows で顕著 | 共通課題 |
---|---|---|---|
カーネル構造 | 巨大モノリシック + 常に ABI が流動的(外部モジュール苦労) | 歴史的にモノリシックに近く高密度・複雑 | 信頼境界が広く、脆弱性が権限昇格に直結 |
安全性 | Unix-型「ユーザー/グループ + SUID」が限界 | ACL/SID が複雑化・分散 | “一発 root/SYSTEM” を許すモデル |
ドライバ | OSS/ベンダ混在・署名不足・上流統合が負担 | 内部 API 長期固定の重荷、古い HW サポートが尾を引く | カーネル空間に巨大コード |
更新 | ディストロごとに仕組み相違、再起動依存 | 累積パッチ巨大・Reboot 必須 | 取替え可能性 ≈ 可用性低下 |
ユーザー空間 | バイナリ互換よりソース互換優先で「壊れやすい」 | DLL Hell / COM 登録 Hell | グローバル名前空間汚染 |
設定管理 | /etc + 点在 config → 形式・権限バラバラ | Registry 巨大モノリス → 腐敗 | アトミックではない変更が多発 |
開発プロセス | メーリングリスト文化でレビューボトルネック | 閉鎖的で古いコード維持不可避 | 純粋なモジュール性が欠如 |
マイクロカーネル(あるいは hybrid microkernel)+ ユーザー空間ドライバ。
カーネル定義の “secure capability” ハンドルのみを他プロセスへ授与。
seL4 や Fuchsia の Zircon が示す「検証可能サイズ」を目標に。
観点 | デメリット | 旧 OS が採用しなかった背景 |
---|---|---|
性能 | コンテキストスイッチと IPC が頻発し、90 年代 CPU では大きなオーバーヘッド。 | ハードウェア性能が不足し、リアルタイム性やスループットを優先した結果、モノリシック構造に。 |
実装コスト | OS サービスが分散し、デバッグやトレーシングが煩雑。 | 完全分離を行うツールチェーン/デバッガが未成熟だった。 |
ドライバ移植 | ユーザー空間化で ABI は安定するが、低レイテンシ要求デバイス(GPU など)の処理が難しい。 | 当時は “音声が途切れる” 程度でも市場競争力を失うためカーネル内に残す決断。 |
Rust や Zig のような safe systems 言語。
C 部分は必要最低限に隔離し、unsafe 領域は形式検証 / fuzz 前提。
デメリット | 背景 |
---|---|
ランタイム負荷 言語ランタイムを最小に削る必要があり、一部 unsafe が不可避。 | 70〜90 年代は C 以外に bare-metal 向け安全言語が事実上存在せず。 |
コンパイラ信頼性 コンパイラ自身の欠陥がカーネル欠陥に直結。 | “自己ホスト” 安全言語を実機に載せる環境が不足。 |
学習コスト OSS/商用エコシステムが C 前提で巨大。 | ドライバサンプル・書籍・人材が C/C++ に集中していた。 |
外部インタフェース(syscall, driver ABI)は長期安定。
その裏で内部サービスは gRPC/FlatBuffers 相当の IDL で世代管理し交換可能。
デメリット | 背景 |
---|---|
進化速度の拘束 ユーザ空間から見える syscall を変えにくい。 | MS-DOS 互換・Unix 互換という既存ソフト資産が最重視された。 |
バイナリサイズ肥大 旧世代 ABI を残すため “脂肪” がたまる。 | ストレージ単価が高く「後方互換より容量削減」が優先された時期が長い。 |
アプリは原則 container-like sandbox(Wasmtime, OCI など)で実行。
ファイルシステムは per-app の仮想 Namespaces、権限委譲は capability passing。
デメリット | 背景 |
---|---|
複雑な権限委譲 ファイルダイアログすら Capability 伝搬を要し、開発者負担。 | “単一 PC=単一ユーザー” が前提で、砂箱の必要性が薄かった。 |
互換レイヤ 既存ネイティブアプリを仮想化するとパフォーマンス低下。 | RoM の小規模ゲームですら速度が死活問題だった 80~90 年代。 |
A/B partition や OSTree 型 “全イメージ” 交換。
任意時点へ atomic rollback;カーネル更新も Live-patchable。
デメリット | 背景 |
---|---|
ストレージ消費 OS イメージを常時二重に保持。組み込みでは致命的。 | HDD が高価・遅い、SSD がない時代には非現実的。 |
アップデート粒度 小パッチ配布より帯域を食う。 | ダイヤルアップ回線や CD リリースが主流で “差分パッチ” が合理的だった。 |
systemd-や Kubernetes-風の “状態 = 宣言” を1か所に。
デメリット | 背景 |
---|---|
学習曲線 既存の `vim /etc/xxx.conf` 流儀や regedit から大きく変わる。 | 管理者層が “設定=テキスト or レジストリ” に慣れ切っていた。 |
複雑なマイグレーション 全サービスが同時に対応しないと一貫性が壊れる。 | OSS は分散開発で統一仕様を打ち立てる強権がなかった。 |
ベンダーは署名した “driver capsule” をリリースするだけ。
デメリット | 背景 |
---|---|
パフォーマンス JIT / interpreter を挟むぶんネイティブより遅い。 | 当時 JIT 技術が未成熟で、リアルタイム I/O を捌けなかった。 |
ハード依存 API DMA や割込みの抽象化が難しく、結局 “逃げ” でネイティブ部が残る。 | 旧 OS ではベンダがアセンブリ最適化で差別化していた。 |
ユーザー空間 API は async/await; カーネルはメッセージ転送中心。
NUMA・GPU・FPGA などヘテロ資源を first-class に。
デメリット | 背景 |
---|---|
コード複雑化 async/await で “状態機械” を書けないとデッドロックを誘発。 | 90 年代はシングルコア前提で同期 API が単純・高速だった。 |
デバッグ困難 スタックトレースが非同期に飛び、ツールチェーンが未整備。 | OS デバッガ/プロファイラがプリエンプティブスレッド中心に設計されていた。 |
Capability + Labels (MAC) + Hardware root-of-trust (TPM, DICE) を統合。
デメリット | 背景 |
---|---|
ポリシー設計負担 SELinux でも “設定が難し過ぎて結局無効化” が多発。 | 当時はネット接続率が低く、ローカル攻撃ベクトルのリスク認識が薄かった。 |
互換問題 古いアプリが過剰特権を要求し、制御を有効にすると動かない。 | 商用ソフト対応を優先し無効化せざるを得なかった。 |
すべての公式バイナリは reproducible build エビデンスと SBOM 付与。
脆弱性スキャンと revocation を OS レイヤが自動化。
デメリット | 背景 |
---|---|
ビルドパイプライン整備コスト 全パッケージを byte-identical に再現するにはツール統制が必要。 | オープンソース文化自体が黎明期で、ビルド環境を標準化する動機も手段も希薄。 |
秘密ロジック公開の葛藤 一部ベンダはソースハッシュ公開を嫌がる。 | IP 保護が優先され、署名のみ・SBOM なしがデファクトだった。 |
User Apps (Wasm / OCI Sandboxes) ------------------------------------- │ Capabilities ▼ Services ──▶ Driver Svcs(user-space) (Pkg, GUI, FS) ------------------------------------- │ syscalls = message send / recv (stable ABI) ▼ Microkernel ~100 kLoC, memory-safe (sched, vm) ------------------------------------- │ Secure IPC (SMC / VTL) ▼ Hypervisor(optional, for legacy guests / composable sandboxes)
Legacy Compatibility は Type-2 ハイパーバイザで提供し、歴史的 API を隔離。
UI Stack もユーザー空間サービスとしてホットリロード可。
Policy Engine で JSON/YAML 宣言→バイトコードへ compile、ランタイム適用。
教訓 | 新 OS プロジェクトでの対策 |
---|---|
Linux: 大規模パッチはレビューパンクする | GitHub PR + 公式 LTS gatekeeper、CLA & コーディング規約を機械検証 |
Windows: Close-source で内部知識が属人化 | 100% open-design、Spec⇄Impl 双方向ドキュメント、自動生成 |
両者: “一社主導 vs 実質無政府” の二極端 | 財団モデル (Rust, Cloud Native) で技術運営と商用版の両輪 |
これらを先天的に組み込むことで、Linux/Windows が数十年かけて抱えた技術的負債(巨大特権領域・ABI拘束・設定の散逸・更新の非原子性 etc.)を回避しながら、クラウド・エッジ・IoT・AI アクセラレータ が混在する 2020-30年代以降の計算環境に即した OS が実現できます。
国家プロジェクトれべるだわ
要件満たすため・社内政治的な理由でピンポイントで別のところ使う+併用はあっても、
ゼロトラストセキュリティは、「信頼せず、常に検証する」という原則に基づいています。主な特徴として、常時の認証と承認、最小権限アクセス、アクセスの継続的な監視があります。以下の技術やソリューションを組み合わせることで、包括的なゼロトラストセキュリティモデルを構築できます。
1. Microsoft Entra ID(旧Azure AD):
3. 多要素認証(MFA):
1. 暗号化:
最近コンピューターサイエンスがプログラマーに必要か否かみたいな話が上がっているが、そもそもコンピューターサイエンスって何だよ。どこまでの範囲をさしてんの?
ググって出てきた情報を整理しただけなので詳しい人、補足・訂正よろしく!
https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
CS2013はACM/IEEE-CSによるカリキュラム標準。
ACM(計算機協会)はコンピュータ分野全般の国際学会、IEEE-CSはIEEE(米国電気電子学会)の中にあるテクニカルソサエティ。
https://www.ipsj.or.jp/12kyoiku/J07/20090407/J07_Report-200902/4/J07-CS_report-20090120.pdf
J07-CSは一般社団法人情報処理学会がCC2001CSをベースにアレンジを加えたカリキュラム標準。今はCS2013を反映したJ17-CSがあるらしいけどその辺は良く分からん。
https://www.ipa.go.jp/files/000024060.pdf
J07ーCSから抜粋。CS2013と比較するとナレッジエリアがあったり無かったり。
なんでPrimeユーザ・購入したことない人限定にしないのかさっぱり分からないし
まぁPS5に関してはそもそも生産体制整えないでNUROと抱きかかえ商法をやってるSONYとか
アイデア料俺にくれ!
しかし今の情勢から言って、すんなりと開催に至ることはもはや不可能だろう。中止にするか、なんとしてもやるか、それぞれの派閥がバチバチになって、ポストコロナ時代にも悲しい世代間軋轢が残るだろう。
そこでだ!今のうちに祭りを「オンラインでやる仕組み」を構築して(PaaS型がいいだろう)、いざ夏の準備だ!と意気込む老若男女が祭りのことで喧嘩の果てに妥協案として「じゃあリモート開催で!」と言うときに駆け込める場所を作ってやって、ついでに金儲けもしてやろうじゃないか!
機能的には
・出店(物理的なもんは事前注文で宅配式がいいだろう!オンラインでしかできない商品なんて出れば最高だな!)
・音頭中継(ユーザーがライブで踊ってる様をシェアしてウィンドウを分割して一定時間ごとにラウンドロビンで切り替え表示できれば最高だな!)
・画面は日照を考慮した色合いに
・最後は〆のオンライン花火!(ここにイカした工夫ができれば最高だな!)
って感じか!
祭りの運営者は登録・ログインして、上記をオリジナルに差し替えも可能なテンプレートとして選択や作成していき「我が町祭りオンライン」を作成する!
各祭りのURLはサブドメインに分けて、それぞれの町祭り用のURLとする!初期版は祭り参加者のログイン機能は難しいだろう、全町の祭りにURL経由でアクセスできるようにしよう!のちのちアクセス制御したくなるだろう、ただし公共良俗を保つのが難しいかもしれないので、トレードオフの認識は必要だ!
アクセス数ランキングの後日発表はあってもいいが、イイねランキングやリアルタイムランキングはやらない!イイねやらスターはクソだ!ショボい祭りも盛大な祭りもバカにされずにドンとこいにしてぇ!そこにイイねは邪魔だぜ!
時間もねえしオープンソースだ!後ろも前も得意な奴がやろうぜ!CI/CDは詳しくねぇしドメインやらデータソースの置場所も考えなきゃなんねぇが、俺はそういう面倒はごめんだ!得意な奴やってくれよな!
タグはアクセス制御ではない。タグはゾーニング機能でもない。タグはコンテンツの属性を列挙したもので、コンテンツを客観的中立的機械的に分類するためにある。"一松(おそ松さん)"が適切なタグだ。注意タグが欲しければ別に足せ。入れられるタグの数が足りなければ運営に言え。国内サービスは大体足りてないが。
検索避けは記号に文脈を持ち込む。媒体が受け持つべき内容を管理情報の領域にはみ出させている。文脈はいずれ失われ、検索避けタグは意味をなさなくなる。タグ自体のコンテンツ性が失われることには問題はないかもしれないが、コンテンツの分類情報は失われる。図書館の閉架だって番号は振られている。そこに番号体系から外れた勝手な付番をすれば索引の意味がなくなってしまう。誰かがそれをやり直さねばならないし、そうなれば勝手なゾーニングも意味をなさない。
よく機械処理する様式があって「この部分には何も書かないでください」なんて書かれた枠があるだろう。検索避け遊びはあの部分へのいたずら書きだ。うまく書けばその用紙は見て面白いかもしれないが、いたずら書きをした紙をシステムへ読み込ませ、あまつさえ他人に推奨するのは迷惑行為でしかない。