東京で勝手に消耗してる

東京で勝手に消耗してる地方人の日々、思う事。あんまりいい話は無い。

自作OS 1日目

www.amazon.co.jp

これタイトルだけでめっちゃ面白そうですよね。

やり始めます。

1日目

アセンブラでディスクイメージを作る。

ディスクイメージとは、CDやDVD、ハードディスクなどの記憶装置に保管されているデータを、ファイルシステムの構造や制御情報などと一緒に丸ごと写しとって一つのファイルにしたもの。

単にすべてのファイルをコピーしただけでは、特殊な領域に記録されているブートに関連するデータや、OSがアクセスをブロックしている部分などはコピーできないが、ディスクイメージ作成ソフトなどを使うと、ディスクに記録されたすべてのデータをそのまま写しとってファイルに記録してくれる。

環境は本書ではWinでしたが私はMacなので以下を参考に進めます。

github.com

この章ではバイナリエディタを使ってディスクイメージを作る所からテキストエディタを使ってディスクイメージを作る所までをやります。

バイナリエディタでの作成は読むだけ(作るのかなり怠い

テキストエディタでの作成は以下。

; hello-os
; TAB=4

; 以下は標準的なFAT12フォーマットフロッピーディスクのための記述

DB 0xeb, 0x4e, 0x90
DB "HELLOIPL" ; ブートセクタの名前を自由に書いてよい(8バイト)
DW 512 ; 1セクタの大きさ(512にしなければいけない)
DB 1 ; クラスタの大きさ(1セクタにしなければいけない)
DW 1 ; FATがどこから始まるか(普通は1セクタ目からにする)
DB 2 ; FATの個数(2にしなければいけない)
DW 224 ; ルートディレクトリ領域の大きさ(普通は224エントリにする)
DW 2880 ; このドライブの大きさ(2880セクタにしなければいけない)
DB 0xf0 ; メディアのタイプ(0xf0にしなければいけない)
DW 9 ; FAT領域の長さ(9セクタにしなければいけない)
DW 18 ; 1トラックにいくつのセクタがあるか(18にしなければいけない)
DW 2 ; ヘッドの数(2にしなければいけない)
DD 0 ; パーティションを使ってないのでここは必ず0
DD 2880 ; このドライブ大きさをもう一度書く
DB 0,0,0x29 ; よくわからないけどこの値にしておくといいらしい
DD 0xffffffff ; たぶんボリュームシリアル番号
DB "HELLO-OS " ; ディスクの名前(11バイト)
DB "FAT12 " ; フォーマットの名前(8バイト)
RESB 18 ; とりあえず18バイトあけておく

; プログラム本体

DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd

; メッセージ部分

DB 0x0a, 0x0a ; 改行を2つ
DB "hello, my OS"
DB 0x0a ; 改行
DB 0

RESB 0x1fe-$ ; 0x001feまでを0x00で埋める命令

DB 0x55, 0xaa

; 以下はブートセクタ以外の部分の記述

DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432

コメントなど入れた状態。 おまじない的なものがほとんど。まだよくわからないけどこれでもちゃんとしてOSとして起動しました。 メッセージ部分もちゃんと出力されてたし。

エミュレータで起動。 f:id:Landroid:20150901123250p:plain

www.amazon.co.jp

ガイコクジンとらぶる

headlines.yahoo.co.jp

Airbnbを「民泊ビジネス」と言うの面白い。

 

が、しかし正直このまま野放しは割りと良くないと思ってます。

 

理由は客の質と貸主のトラブル問題です。

 

私も間接的にですが、Airbnbを利用したことがります。

 

トラブル起きました。

 

私は直接やり取りはしていなかったので聞いた話ですが、

 

旅行客が深夜に煩いとか

警報機鳴らしたとか

 

かなりトラブルがあったようです。

 

多分初期はITリテラシー高い良質(?)なユーザが多かったのかもしれませんが、

 

流行りまくってしまって、言葉もわからない文化もわからない人間がそういう土地に来るようになってしまったのかもしれません。

 

まぁめちゃくちゃ安く泊まれるんですから、お金持って無いような人とかが群がってしまったんでしょうか。

 

日本って海外に比べて英語が通じにくい国なんですが、英語なら世界中どこでも大丈夫だろ的な考えで日本語全くわかんない外国人って結構いますよね。

 

日本にいるのに

 

「Can you speak English?」

 

って平気で聞く外国人は正直嫌いです。

英語でしか話してこない外国人も。

 

英語が嫌いなわけではないですが、

仮に私がアメリカに行ったとして通行人に何か訪ねたいときに日本語で

 

「日本語わかりますか?」

 

って聞くのってとてもおかしいと思うんですよ。

日本人はもっと英語勉強すべきとか言われますけど、正直生きていく中で英語話せないと損する様な人間ってめっちゃ少ないですからね。

 

特に島国日本とかだと観光くらいでしか外国人入ってこないですし。

 

郷に入らば郷に従え。

 

外国語即座に翻訳してくれるデバイス待ってる(生きてるうちにはできないと思う)

技術を学ぶ

speakerdeck.com

これ。

今は東京に住んでますが、勉強会とかは全然行きません。

いえ、自分のレベルが高いとかは全く思っていないです(むしろ低いくらい)。

 

行かない理由は、発表しないならあまり行く意味がないと思っているからです。

自分も以前勉強会行ってましたが、勉強会に沢山行ったからといって自分のレベルが上がるとは思えないです。

結構発表内容とかはWebに公開されますし、プレゼンとかは要点だけまとめてあるのでそれだけ見ても何が言いたいのかはわかります。

ですので、行かなくても情報は入ってくると思っています。

私は刺激としてはTwitterから流れてくる勉強会のスライドやブログなどの話題で刺激になってると思います。

 

NaoyaItoさんも言ってますが、

 

「あちこちの勉強会に出て憂鬱になる。トレンドに手を出す」

 

「東京は勉強会や交流が多すぎて雑多に感じる」

 

東京は土地柄ベンチャーも多く沢山の情報がいち早く集まります。

勉強会も沢山あります。新しいもの・情報・技術、すぐに耳に入ってきます。

 

「やばい、こういうのが流行りなのか。覚えないと」

 

「これが今トレンドだからやっとけば大丈夫」

 

ですが、自分のレベルを考えた時にそれって本当に必要なのでしょうか。

そういうのをやる前に基礎の勉強って本当にできているのでしょうか。

 

「自分にとって必要な技術は誰も話題にしていなかった」(Naoya Ito)

 

なんか勉強会ってそういう基礎的な所はできてる状態で聞かないと全然頭に入ってこないと思います。

だからといってレガシーの技術の話とかは本やWebにしこたまあるし、ある程度ベストプラクティスもあるのでわざわざ勉強会とかでは言わないですよね。

そんなレベルで勉強会行っても意味は無いと思います。

 

本当に勉強しに行ってますか?

 

難しい話きいて新しいワードが聞けただけで勉強できた・レベルが上がった気になってませんか?

 

それ半年後にはもう誰も話題にしてないかもしれませんよ。