2015-01-01から1ヶ月間の記事一覧
エスケープシーケンスを試してみる。 カーソル移動も可能だが、とりあえず文字表示の装飾機能を試す。 文字装飾エスケープシーケンスは、C言語だとprintfで\x1b[制御コードmを出力すればいい。 制御コードは1〜107まであるらしい。0はリセット。 (参照:ANS…
'The Unix Programming Environment'の第3章の「USING THE SHELL」で bundle というツールが紹介されている。 これは以下のような小さなshellスクリプトのプログラムだ。 (作ったのはAlan Hewett, James Gosling.) #bundle: group files into distributio…
Rubyでバッファリングなしのキー入力読み込みを試す。 普通の標準入力の getc を使った場合は、 入力された文字はターミナルに出力されつつ、バッファリングされて、 Enterが押されて初めて文字列がプログラムに送られる。 例: ソース: t_getc.rb while c =…
以前、Swiftでもjavascriptでも試したクロージャを、Rubyでもやってみた。 つい今日覚えたlambdaを使って。 以下コード: def func_generator() a = 0; return lambda { a += 1 } end f_add = func_generator puts f_add.call puts f_add.call 出力: 1 2 参…
Rubyでjavascriptっぽく、ハッシュテーブルに関数の定義を入れて、 別の関数に渡すてのをやってみた話。 javascripは便利で、関数=オブジェクトというところが分かってしまえば、 かなり何でもできてしまう(記述の自由度が高い)。 なにかしら構造体的なも…
KernighanさんとRob Pikeさんの著書、 'The Unix Programming Environment'の第3章の「USING THE SHELL」にechoコマンドの話が出てくる。 echoコマンドはおそらくコマンドの中で一番シンプルな部類に入る。 このコマンドの仕事は「引数を標準出力に出力する…
"Software Tools"(邦題:ソフトウェア作法)はやはり素晴らしくて、以前に記事で書いたが、英語の原書を改めて読むと、もっとぜんぜんメモっておかねばと思う。 Kernighan先生とPlaugerさんの本書はUNIXについて語った本ではないが、UNIX精神が宿った名著で…
ひさびさBBBをまた触ろうかと。以前別のブログに書いていたメモを復習がてらにはてなに移す。 BBBに採用されているSoCはTIのAM3359 以下に技術マニュアルがある。 AM335x Sitara™ Processors Technical Reference Manual BBBのブートシーケンス リセット時に…
手順は前記事と同じ。 VerilogでPapilio ProのLEDを光らせる - Programmer's Dialy ソースを以下に修正: `timescale 1ns / 1ps module led_control ( CLK, LED1); input CLK; //clk 40MHz output LED1; //led control 0:on 1:off reg LED1; reg [25:0] led_…
PapilioはVHDLをベースに語られてるが、個人的にはVerilog文法の方が分かりやすい。 世の中に転がってるサンプルは、そんなにシンプルでもないので、 一番シンプルにボードについているLEDを光らせるまでをやった。 あまりまとまった情報がなかったため、な…
ちょっと前に買ったPapilioをふたたび触ってみようと。 Ubuntu on VertualBox on Mac OS X の環境で、以前パッケージのインストールまで行った。 (1) Xilinx ISE Design Suite 14.7をUbuntu 14.04にインストールする http://cellspe.matrix.jp/parallella/in…
すでに読んだものも含めて、とりあえず興味あるものだけ整理。 year title 1974 Dennis M.Ritchie and Ken Thompson, 'The UNIX Time-sharing System', ACM, 1974. 1976 Brian W.Kernighan and P.J.Plauger, 'Software Tools',1976. (UNIX本ではないがKernig…
D.M.Ritchieさんの1979年の講演をもとにした論文 "The Evolution of Unix Time-sharing System"を読了。 前に読んだACMの論文*1 はUNIXの主な機能と考え方の紹介だったが、 こちらの方は歴史的な経緯も含めて、UNIX OSがどう機能的に発展したかが分かる。非…
vimを使い始めて間もないが、いろいろ記事や本を読んでいる。 Learning Vim in 2014というサイトでは、vimの使い方を基本となる考え方から紹介していて、なおかつ1ステップが短くて読んでいてなかなか楽しい。(個人的にはフォントが好きだ、結構大事) 上…
「The Unix Programming Environment」 を読んで、感動しちまった。 ファイルシステムを語っている第2章で、 なんとディレクトリ自身に対して od して中身を確認して解説している! 環境はUNIX V7。(本の冒頭では、System V、4.1BSDの環境も試しているとあ…
前回はPDP11の磁気ディスクについての概要だったが。今回はアクセス方法について。 ディスクに対してデータを読み書きするためには、RK11の制御レジスタにアクセスして行う。 PDP-11はMemory-mapped I/O なので、ペリフェラルのレジスタは特定のメモリ番地の…
PDP-11の磁気ディスク装置RK11の勉強メモ。 構成物は3つで下記の通り: ディスクコントローラ: RK11 ディスクドライブ: RK05 ディスクカードリッジ: RK03-KA RK11ディスクコントローラには最大8台のドライブを接続できる。 また、RK11-DとRK11-Eと2種類ある…
UNIX V6はPDP-11という古いDECのミニコンピュータ上で動く。このPDP-11のディスク装置(いわゆる磁気ディスク)は、アクセスの単位がブロックで区切られている。1ブロックは512バイト。 UNIXのファイルは単にバイトの並びでしかなく、ファイル自体に管理用の…
UNIX V6のコードをまじめに読み始めようかと。 去年から『はじめてのOSコードリーディング』をぽつぽつと読んで、UNIX V6のソースの理解をし始めてはいるが、やはり全体像を知るにはまだまだ道のりは遠い。 動かしながら読めるのが一番ベストなのだが、まあ…
最近、UNIX関連の資料をあさっているが、読まねばと思っていた、Dennis Richie & Ken ThompsonのACM論文(The UNIX Time-Sharing System)を読んだ。これが世にUNIXの存在を知らしめた最初の論文で、内容はUNIXのコンセプトと機能の紹介がメインで、普通にUNIX…