30日でできる!OS自作入門を始めた[0日目]

動機・導入

最近、自分は低レイヤーの技術への好奇心が強い。昔から何かものの仕組みを知るのは好きだったと記憶しているが自分のこの性分と低レイヤーとの相性がとても良かったのだろう、低レイヤーについて知ることが三大欲求に匹敵する程度快感に感じている。そんなこの状況で見つけたのが「自作OS」という分野だ。OSは低レイヤーとはいっても一応ソフトウェアであるから、いじるのに(あまり)お金がかからない(組み込み系OSだとそんなこと無いかもしれないが)。だから学生でお金のない自分には非常に魅力的に感じた。しかし何をしたらいいのかわからないのでいい感じのドキュメントが無いかなあとamazonで「自作OS」と検索して出てきたのがタイトルにもある「30日でできる!OS自作入門」だ(並んで坂井さんの「12ステップで作る組込みOS自作入門」も出てきた)。30日で出来るなんてありがたいなあとこの本を入手したところまでが0日目の内容である。実は既に5日目ぐらいまでは実装できているのだが、復習の意味も込めて既に終わっているものとまだ終わっていないもの合わせてこの記事から「連載企画30日でできる!OS自作入門を始めた」を始めようと思う。新学期が始まったばかりということも有り少し忙しいが頑張って続けていく所存だ。

余談

少し前に記事にした通信系の技術について掘り下げてみたいなあというものについてだが、こちらも現在(ゆっくりと)進めている。正直やりたいこととやらなくてはいけないことが多すぎて混乱気味だが、だんだん落ち着いてきたのでとりあえず今連載と通信系技術の探求を二本柱に夏休みの終わり頃まで丁寧に勉強してみるつもりだ。暖かく見守っていただけるとありがたい。

ArchLinuxARMとRaspberry Pi(移行記事)

この記事は東京高専プロコンゼミ/SPC同好会advent calendar2017 12日目の記事です

adventar.org

ArchLinuxARMってなんぞや

以下参照 https://archlinuxarm.org/

Install環境

Raspberry Pi 2 Model B+ 8GBmicroSD card ArchLinux

この記事の目標

Raspberry PiにArchLinuxARMをInstallした後、最低限必要な人権環境を整える

STEP1 SDカードにArchLinuxARMを焼く

公式サイトに焼き方が書いてあるのでこれに従って進んでいきましょう。

STEP2 Raspberry Piを起動する

先程焼いたSDカードをRaspberry Piに入れて、電源を入れて起動してみると、最初に虹色の画面が表示された後いかにもbootしている感じの英文が出てくる。

STEP3 人権環境の構築

現状の環境では、あまり使い物にはならないため環境を整えていく必要が在る。今回は細かい所の詳細は省かせていただく。

AUR helperの入れ方

ArchLinuxARMを導入する上で、最初に手こずるところだ。本来であれば

sudo pacman -S yaourt でインストールすることができるのだが、package-queryへの依存を解決できないとメッセージが表示され入れることができない。よって、この問題を解決してあげる必要が在るのだが、これに関してはこの記事が参考になるので見てほしい。このAURが使えるからという理由でArchLinuxを利用している人は少なくないだろう。執筆現在、45793ものパッケージが保管されているようだ。自分もこのAURにはしばしばありがたく思うことがある。

sshの設定

どうやらArchLinuxARMにはsshdが最初から入っているようなので、あとはrootでログインできないようにしてあげるなどすればよい。

まだいくつか追加する予定なのでしばしお待ちを

おわりに

この記事は以下のスライドの補遺的な位置づけとして意識して執筆した。なのでこちらも兼ねてご覧になると良いだろう。

docs.google.com

PHPでPDOを使ってMariaDBに接続するとき詰まったのでメモ(ArchLinux)(移行記事)

最近、webエンジニアの仕事を始めましてとりあえず一通りの環境を整えてみようということで作業していたのですが、ArchLinux環境において、PHPでPDOを使ってMariaDBに接続する際手こずったので共有しておきます。

環境

  • ArchLinux

  • PHP 5.6.0

error内容

could not find driverと表示される

解決手段

php.ini(AURからbuildしたなら、/etc/php56/php.ini)の以下の箇所をコメントアウト

904行目〜

extension=openssl.so
extension=pdo_mysql.so
extension=pdo_odbc.so
extension=pdo_pgsql.so
extension=pdo_sqlite.so

自分は、これで正常に動作させることができました。解決手段を検索しているときになかなか文献が見つからなかったので、役に立てば幸いです。

高専プロコン2017に参加してきた(移行記事)

10/8, 10/9に山口県周南市にて高専プロコンが開催された。私は今年が初めてで、競技部門として参加した。競技部門といえば、去年は人力部門として巷で話題となっていたので、今年はいかがなものかと初参戦ながら期待していたが、流石に運営陣も工夫を凝らして来たようで、端から人力で参戦しようとしているチームは見受けられなかった(残り数ピースのところから人力で解いているように思えるチームは見受けられた)。問題も相当難しかったようで、去年を経験している先輩は、「面白い!」と心境を露わにしていた。私はまだまだ知識が無いため今年はGUIQR-code-reader、枝切り関数、Slaver(今回複数台のPCで解く作戦を取ったため、それらの解答をまとめるclass)の開発に携わった。まあ色々と苦労するところはあったが、その分多大な知識とcoding力、体力(?)等が身についたと感じているし、開発に際してもたのしー!と思いながら参加できたので良かったと思う。さてお察しの通り、競技部門のテーマは深刻なネタ切れのようで、来年のテーマは公募という形になった。ふざけるな!と言いたい気持ちもあるが、これはこれで面白い。自分もプログラム同士でオセロや将棋、その他ボードゲーム等の対戦をさせる、なんてアイデアが浮かんでいるのでこれで応募してみたいと思う。とりあえず半年間の開発が幕を閉じ、今はホッとしている。