IT業界、40年やってます (老人の独り言) 

現在68歳、IT関連で勉強したい事が盛りだくさんで、目移り状態です(^o^)

ハーバード大学とブラウン大学のOSコース

以前まとめてみましたが

他にハーバード大学ブラウン大学が教科書を出版していることを見つけました。


教科書はこちらです。

MIPS CPU を仮想環境(System/161)下で動かして、その上で OS/161 を動作させる方法を取ってます。

既に日本の早稲田の学生が卒論で ARM 上で OS/161 を動かす事を研究してました。とても貴重な試料です。


こちらの大学で使われている教科書は

でコースで作った教材 OS は Weenixで以下からソースコードをゲット出来ます。






メールサーバの立ち上げ

仕事で500名利用のメールサーバを立ち上げないと行けなくなったので、ネットで調べていてもまとまった資料が無くて、本を探しました。

今回 Postfix + Dovecot で行くので、探してみましたが全部5~10年前で古いんです。最近メールサーバーを立ち上がる事って無くなったのでしょうかね。

確かに Gmail とか使えば便利ですよね・・・と言っても仕事なので


これは6年前の本で、アマゾンの値段を見ると4000円とバカ高い! 今日池袋のジュンク堂書店に行ってみると3000円ほどで沢山売ってましたので買ってきました。もう絶版になってる本の様で、オンラインショップでは無茶苦茶な値がついてます。こういう本の購入はアマゾンとか役に立たないです。

来週には全て立ち上げてないと行けないので、週末マスターしないとです・・・今日買って 1/4 位は読みました。

ラズパイOS RASPBIAN 新バージョン

かなりOSがアップデートした様です。

イメージ 1

目玉は、experimental OpenGL driverで、ついに GPU を使いハードウェアアクセラレーションが行えるようです。

さっそくインストールしてテストしてみます。

ダウンロードはこちらから

ビットコインを使ってみる

一昨年位からビットコインに関して少しずつ調べていましたが、なかなか進まず、ぐるぐると空回りしてましたが・・・最近ちょっと本気を出して調査をしました。

この記事を見つけるまで、本当の Bitcoin を購入して実験を考えていたので本当に手軽で助かりました。


を見つけて少しだけ進む事が出来ました。Bitcoin で使われているブロックチェインの技術を習得することで、今後10年は飯が食えると言ってる知り合いが居ました。

ほぼこの記事の通りに進めばよいですが、自分は Android のプログラムが全く出来ないし、環境も持ってないので iOS 版の オープンソースWallet を探しましたら



を見つけました。

記事の中で参照されているAndroid上のSPVノードと全く同じように使えます。

さらに記事で参照されている以下のリンクを通じて Bitcointestnet を利用して無償でテスト用のBitcoin を取得できます。


最初に上記の無償発行をして、iPhone 上の breadwallet にBitcoin を転送。
そこからさらに Mac 上で動いている wallet のbitcoin-qt -testnet に転送出来ました。
イメージ 2

と小さな初めの一歩が開始出来ました。

初めの一歩 Lab1 演習1

XV6 OS を使った マサチューセッツ工科大学(MIT)の OS のコース2014年秋の6.828で何をやってるか調べてみると

2014年9月3日
LEC 1: Operating systems (handouts: xv6 sourcexv6 book)
準備 PreparationUnix intro
課題 宿題:AssignmentHW: shell
課題:AssignmentLab 1: C, Assembly, Tools, and Bootstrapping

さすが MIT いきなりハードルが高い。

まず準備で Unix の紹介が歴史的な人物が直接 Unix を紹介してる。

次に宿題で シェルプログラム the 6.828 shell  sh.c の理解と機能追加。

1. コマンド実行が出来るように修正

・・・続く・・・こちらをやってると肝心の OS の説明まで辿りつけないので
先に進む事に。


athena% mkdir ~/6.828
athena% cd ~/6.828
athena% git clone https://pdos.csail.mit.edu/6.828/2014/jos.git labCloning into lab...
athena% cd lab


Part 1: PC Bootstrap

Part 2: The Boot Loader

Part 3: The Kernel

といきなり、重いものを無理やり口に入れられた感じになります。最初から、大量の参考資料を提示されます。インテル x86 の命令語の勉強が必要ですが、すぐに読む必要は無いことなので、後で・・・

QEMU エミュレータでOSを動かし、GDB で動きをみます。

athena% cd lab
athena% make
+ as kern/entry.S
+ cc kern/init.c
+ cc kern/console.c
+ cc kern/monitor.c
+ cc kern/printf.c
+ cc lib/printfmt.c
+ cc lib/readline.c
+ cc lib/string.c
+ ld obj/kern/kernel
+ as boot/boot.S
+ cc -Os boot/main.c
+ ld boot/bootboot block is 414 bytes (max 510)
+ mk obj/kern/kernel.img
これで最低限のOSを構築。して起動

athena% make qemuBooting from Hard Disk...6828 decimal is XXX octal!entering test_backtrace 5entering test_backtrace 4entering test_backtrace 3entering test_backtrace 2entering test_backtrace 1entering test_backtrace 0leaving test_backtrace 0leaving test_backtrace 1leaving test_backtrace 2leaving test_backtrace 3leaving test_backtrace 4leaving test_backtrace 5Welcome to the JOS kernel monitor!Type 'help' for a list of commands.K>

PCの物理アドレス空間のレイアウト
イメージ 1

◎参考
2014年秋 コースビデオ








386BSD 0.1 を動かしました

今のフリーな BSD系の全てのルーツにあたる 386BSD 0.1 のキットをインストールしてみました。

ちなみに 386BSD Wiki より

386BSDとは、4.3BSD Net/2をベースにして、ウィリアム・ジョリッツとリン・ジョリッツ夫妻によって開発された386で動作するUNIXライクなオープンソースオペレーティングシステムである。

ベースとなった4.3BSD Net/2は、4.3BSD RenoからAT&Tのライセンスが必要な部分を除いて、自由に配付ができるようにしたもので、そのままではオペレーティングシステムとして完全に機能するものではなかった。Jolitz夫妻は4.3BSD Net/2に欠けている機能と386で動作させるのに必要な部分を独自に補い、それを1992年2月に386BSD 0.0としてリリースした。これは、4.3BSD Net/2と同様に、AT&Tのライセンスに縛られる事なく自由に配付できるものであった。1992年7月にはバグを修正した386BSD 0.1がリリースされた。
386BSDは広く利用されたが、386BSD 0.1以降開発が滞った。そのため、ユーザらによって作成されたバグを修正するパッチは膨大な量となり、ユーザらは独自に「Unofficial 386BSD Patchkit」を製作するようになった。しかし、その後もバグの修正や新たな開発は行われなかったため、ユーザらは386BSDをベースとした新しいオペレーティングシステムの開発を始めた。この時できたのが、FreeBSDNetBSDである。
1993年にUSL(訴訟の最中にノベルに買収された)がカリフォルニア大学バークレー校に対し起こした訴訟で、4.3BSD Net/2にライセンスが必要な部分が含まれているということが認められたため、4.3BSD Net/2は公開禁止となり、それをベースとした386BSDも同様に公開する事ができなくなった。


との事です。

ネットで探すと 386BSD-0.1.exe からダウンロード出来ます。

イメージ 1

この exe をクリックするとインストールされます。

起動すると 386BSD-0.1 が QEMU CPUエミュレータ上で動作します。

$ cd /usr/src; make 
ってすると全てのライブラリやコマンドがコンパイルされます。

あとはカーネルですが

Step (1)        Apply the patches required in the patch kit.
Step (2)        Rebuild config (/usr/src/usr.sbin/config)

                        cd /usr/src/usr.sbin/config
                        make depend
                        make
                        make install
                        rehash                (if on csh)

Step (3)        cd /sys/i386/conf
                cp GENERICISA MYCONFIG
                vi MYCONFIG                (make changes to this as you will)

Step (4)        config MYCONFIG

Step (5)        cd /sys/compile/MYCONFIG
                make newvers
                make depend
                make
                
Step (6)        mv /386bsd /386bsd.old
                mv 386bsd /386bsd

Step (7)        reboot the machine.


と楽しめました。久しぶりのカーネルコンパイルでした(^O^)




OS の学習方法を考えてみた

久しぶりの記事アップ。

すこしOSを改めて勉強したくなり、教科書を物色してみました。

まずタネンバウム先生の本を2冊
これは MINIX3 本です。実際に動いているOSのコードを使っているので良いかと思いますが、先生おすすめのマイクロカーネルなので、少し?が

こちらは一般的なOSの概要とLinux, Windows 等のケーススタディーがあります。

Windows 上で QEMU って CPU エミュレータ上でウインドウOSを作った、700ページの本です。分かりやすいと評判が良いようです。

こちらは逆にリアルなH8/3069Fネット対応マイコンを使って段々とOSを構築してます。

下の本の解説本です。UNIX V6 が動いていたPDP-11 は最初に入った会社のミニコンです。

イメージ 1
 まだ DEC のミニコンPDP-11 でしか動作して無いし、UNIX が高額なライセンス(UNIXのソースライセンスが4万3千ドル(後に6万5千ドル)とか(教育機関向けだと800ドル→1200ドル))でリリースされていて、ソースコードは1970年代の日本の一般のコンピュータ関連の大学生では見ることが出来ませんでした。

アメリカでも同じか、この表紙にあるようにこっそりとコピーしている感じが分かります。
 当時日本の国立大学は国産コンピュータの縛りが有り富士通や日立のメインフレームを強制されてましたので、UNIXは論文や本でしか知ることが出来ませんでした。

この本の存在は以前から知ってましたが簡単には手に入らない本でした。一般の本屋さんで買えるようになったのは感動しました。

UNIX V6 ではいろいろな面で古いので、ANSI C で書きなおして、CPU を x86 を利用したもので MIT のOSの授業のために用意したそうです。