タグ

メモリに関するhatatyuのブックマーク (6)

  • プログラムを動かす時にメモリがどのように割り当て・解放されるのかをめちゃくちゃわかりやすいイメージ画像で解説してくれるサイト「Memory Allocation」

    コンピューター上でプログラムを動作する際に必要になるのがメモリです。プログラム自体をメモリに読み込む必要があるのはもちろん、プログラムが行う動作はほとんど「メモリから値を取りだして計算し、メモリに保存する」であるといっても過言ではありません。プログラムが動作する際にメモリがどのように管理されているのかについて、ベテランプログラマーのサム・ローズさんがブログで解説しています。 Memory Allocation https://samwho.dev/memory-allocation/ C言語の標準ライブラリには「malloc」と「free」という2つの関数が用意されています。この2つはなんと1979年のUnix v7から存在している歴史ある関数で、mallocがメモリの割り当てを担当し、freeがメモリの解放を担当しています。サム・ローズさんの解説は「この2つの関数の中身を自分で実装する」

    プログラムを動かす時にメモリがどのように割り当て・解放されるのかをめちゃくちゃわかりやすいイメージ画像で解説してくれるサイト「Memory Allocation」
  • チップセットの誕生と隆盛、そして消滅へ

    チップセットの誕生と隆盛、そして消滅へ:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/5 ページ) 昔ながらのIBM PCPC/AT互換機からDOS/Vマシン、さらにはArmベースのWindows PC、M1 Mac、そしてラズパイまでがPCと呼ばれている昨今。その源流から辿っていく第21回は、チップセットが消滅に至る流れ。Chips and Technologiesなどが作っていたアレである。 第1回:“PC”の定義は何か まずはIBM PC登場以前のお話から 第2回:「IBM PC」がやってきた エストリッジ、シュタゲ、そして互換機の台頭 第3回:PCから“IBM”が外れるまで 「IBM PC」からただの「PC」へ 第4回:EISAの出現とISAバスの確立 PC標準化への道 第5回:VL-Bus登場前夜 GUIの要求と高精細ビデオカードの台

    チップセットの誕生と隆盛、そして消滅へ
  • プログラムがメモリをどう使うかを理解する(1)

    この記事の狙い この記事は、端的に言えば この図が言わんとしていることを理解できるようになるための解説を目指しています。 昨今のプログラミング環境において、メモリの管理方法やその実態は、詳細を知らずとも目的を達成できるようになっています。といっても、実際にはメモリは無尽蔵に使えません。制約が厳しい環境下で動かさねばならないプログラムもありますし、多少潤沢に使える環境であっても、無駄に浪費するよりは、必要最低限のメモリで効率よく動作するプログラムの方が、多くの場面においては良いプログラムと言えるでしょう。 メモリのことなど知らなくてもプログラムを書けるのは一つの理想ではありますが、現実的にはその裏に隠されている(抽象化されている)仕組みを知っておいたほうが有利です。また、昨今のレトロゲームにおけるタイムアタックで駆使されるメモリ書き換えのテクニックなども、何故そういったことが可能なのかを知る

    プログラムがメモリをどう使うかを理解する(1)
  • メモリに繰り返しアクセスするだけで権限のないメモリ内容を変更可能、Googleが攻撃手法を発見

    「メモリ内の(アクセス権限のある)ある1つのアドレスに繰り返しアクセスするだけで、(アクセス権限のない)他のアドレスに格納されたデータを改ざんできてしまう」という脆弱性がDRAMにはあった。これを悪用した攻撃手法はローハンマーと呼ばれる。 CPUの投機的実行の脆弱性を突く(SpectreやMeltdownといった)攻撃と同様に、ローハンマーはメモリハードウェアにおけるセキュリティを侵害する。メモリ回路内部の電気的結合現象を悪用するローハンマーは、ハードウェアのメモリ保護ポリシーをくぐり抜けてしまう可能性がある。もしそうなれば、例えば不正なコードがサンドボックスから出て、システムを乗っ取る恐れがある。 Googleの回避策はこれまでメモリメーカーに採用されてきた ローハンマーを初めて扱った論文が登場した2014年当時、DRAMの主流世代は、「DDR3」だった。2015年にはGoogleのPr

    メモリに繰り返しアクセスするだけで権限のないメモリ内容を変更可能、Googleが攻撃手法を発見
  • 作って理解するOS x86系コンピュータを動かす理論と実装

    2019年9月26日紙版発売 2019年9月26日電子版発売 林高勲 著,川合秀実 監修 B5変形判/736ページ 定価4,048円(体3,680円+税10%) ISBN 978-4-297-10847-2 Gihyo Direct Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 現在広く普及している,x86系CPU搭載のコンピュータ。 書はOSの機能を実装しながら,その姿を明らかにしていきます。 第1部ではまず,ハードウェア,ソフトウェアの基概念や,CPUとOSの関係など,コンピュータの核となる理論を丁寧に解説します。 第2部では,x86系コンピュータに対象を絞り,レジスタの構成や,

    作って理解するOS x86系コンピュータを動かす理論と実装
  • Linux メモリ管理を理解したい - Qiita

    Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

    Linux メモリ管理を理解したい - Qiita
  • 1