StudyCS.log

ただの日記

低レイヤ学習のモチベを保つ方法を教えてもらったかも

2021年3月13日

 僕は学部時代の学習を目標を「基礎的なセキュリティ技術の習得」としているが、セキュリティ分野の内外を問わず、様々な分野の技術習得に興味がある。(しかし本格的に取り組む意欲と覚悟があるわけではない。)当然低レイヤの種々の技術は魅惑的な輝きを放っており、これは多くの人にとってそう見えるものだと思う。

 しかし大きな障壁は 

    (i)何から始めたら良いのかわからない問題;

    (ii)一人でモチベを保つのが辛い問題;(僕の場合はこれが深刻)

 の2つの問題だと思う。これについて先日youtubeで動画を漁っているとき(もちろん休憩時間中に!)に、これらの問題ととても上手に付き合っている素晴らしい実例を見つけた。

 

 このLT大会の一発目の発表、「思い立ちからCPUを完成させるには」に大変感銘を受けた。

 吉川さんはCPU自作本をもとに実際のCPUを自作したようだ。演習系の本を読み、実際に演習を行うことで、その成果物を得ることがとても大きなモチベーションになるのだということが伺い知れる。本を読んで購入リストをやや力任せに決めるという点も、是非取り入れたいと思った。いわゆる「エイヤ」で決める、という要素が個人の学習でも必要なのだろうなぁ。

 この発表会と同時期に行われた「低レイヤ相談室」( 低レイヤ相談室 2020-6-27 F-4 - YouTube )において、内田先生は、低レイヤは広大な分野であるから浅く掘って興味分野を探るのが良い、とコメントしており、いろいろな分野の演習に手を出してみることの大切さを再認識した。

 そして、学生である今は時間のかかる演習にとりくむ最大のチャンスである。コンパイラ、OS、Linux等いろいろなことに手を出していきたいと思った。

学習記録

 ・今日も「コンピュータアーキテクチャの基礎」の8章を読んだ。直接制御、間接制御、メモリマップドIOなどについての理解を更新できた。しかし、それにしても8章は特にわかりにくいような気がする。例えば、バーストモードなどについて、「データのかたまり(ブロック)のすべてのデータ転送が完了するまで結合関係を解かない。高速かつ大量のデータ転送向きであり、”ブロック転送方式”、”連続転送方式”といもいう。」と書かれている。たしかにその通りではあるのだが、なぜブロック単位でデータを転送することが高速で大量の送信に向いているのかが書かれていない。バーストモードは最初の送信でブロックのアドレスを指定することで、以降のアドレス指定を省略できるので、データを高速に送信できるのだ。そう書いてほしい。

 ・メイン機のvimvim-plugを導入した。僕はプラグインはほとんど入れていないので、プラグイン管理用のプラグインは要らないといえば要らないのだが、今後プラグインを増やすことを考えれば早めに導入しておくことは有益だろう。ただしvim-plugはvim-plug自身を更新することはないので、そこは自分で注意しておこう。

 ・EssentialGrammerInUse Unit65を完了した。a,anを忘れずにつけられるようになった。