Darwin

Darwin(ダーウィン)は、Appleが開発するOSで、macOSやiOS、さらにはwatchOSやtvOSの基礎となる部分。Darwinは技術的にはNEXTSTEPの流れを汲み、Mach 3.0とBSDをベースとするUnix系OS。他のBSD系OSからも一部の機能を取り入れている。Darwin

ずっと使ってるので慣れているしマシン環境も好きなのでメインPCではあるけど、OS内部をわざわざ学ぶ必要はない。

メリット

  • もともと堅固なUnixだしモノリシックカーネルOSなのでセキュリティは最高
  • 世界的に稼働台数が少なく狙われないのでセキュリティを学ばなくても安心
  • サーバ分野ではシェア2%とかなり貧弱。ただiOS分野では特に日本で大人気

デメリット

  • BSDはApple社等の企業の中では生きてるけど、OSSコミュニティとしては明らかに衰退してる
  • ネットではFreeBSDコミニティやその関係者は「過去の遺物」みたいに語られる風潮がある
  • シェア低すぎて将来的にFreeBSDコミュニティ自体がいなくなってしまう可能性も
  • シェア低すぎてハマったときの解決策が見つからない。先人レバレッジの上に立脚しづらい
  • 手段や道具というよりは「目的」になりがちなOS。ドリル操作に気を取られて「穴」が掘れない
  • つか、組み込みもIoTも全部Linux。Linuxコミュニティが強すぎる
  • UnixOSの勉強がしたくなったら、する必要性を感じたらまた検討する

サーバシェア2%は流石にヤバ過ぎる。BSD(Darwin)は iOS や企業コミュニティとしては優秀だけど、サーバ用途やOSSコミュニティ(FreeBSD)としては消えそうなロウソクみたいな状態と言える。

とりあえず、学ぶ必要はない。

ターミナル設定

$ vi .zshrc
 alias ls="ls -lhG"
  • ICEBERG を読み込むと Macターミナルがいい感じになる

Vim設定

# vi .vimrc
set number
set nowrap
set tabstop=4
set shiftwidth=4
set autoindent
set background=dark

syntax enable
colorscheme solarized
let g:solarized_termtrans = 1

LAN構築

  1. L2スイッチ、又は L3スイッチ(≒ルータ)に LANケーブルが接続されていることを確認
  2. DHCP を使う場合はマシンの MACアドレスで IPアドレスを予約
  3. DHCP を使わない場合は各マシンに自分で IPアドレスを割り当てる
  4. ping を飛ばして疎通確認
# ifconfig    # ip addr show
# nmcli device    # nmcli d
# nmcli connection
# nmtui    #「自動的に接続」にチェック
# ping 192.168.0.2

ルータを超える場合

# route

その他

ショートカットキー

コマンド 説明
command + F ページ内を検索
command + G 次を検索(+Shift で前を検索)
option + command + esc アプリを強制終了

スリープについて

DRAM(メモリ)の寿命は半永久であるのに対し、SSDの寿命は書き込み回数により短くなっていく。しかし、『The Tech Report』のSSD耐久試験より、SSDの耐久性・信頼性を心配する必要は全くない。毎日10GBのデータ書き換えを7万日つまり約190年行っても不具合はない。

長時間PCを利用しない時は作業内容を残しておくために「スリープ/サスペンド」か「ハイバネート」かになるが、デフォルト(スリープ)のままで良い。わざわざ電源のON/OFFは必要ない。

参考: SSDがどれぐらいの寿命なのか長期間の耐久テストで判明

ACPI

スリープ状態 説明
S0 通常稼働(ノンスリープ)
S1 CPU クロックオフ
S2(実装例なし) CPU 給電停止
S3 メモリ内容を保持したまま電源OFF(スリープ/サスペンド:Suspend to RAM)
S4 メモリ内容を外部へ移して電源OFF(ハイバネート/冬眠:Suspend to Disk)
S5 OS をシャットダウンして電源OFF

LinuxインストールUSB作成

$ diskutil list
$ diskutil eraseDisk MS-DOS UNTITLED /dev/disk3
$ diskutil unmountDisk /dev/disk3
$ sudo dd if=./CentOS-6.5-x86_64.iso of=/dev/disk3 bs=4028
$ diskutil eject /dev/disk3
$ diskutil list

* 書き込みには少し時間がかかる

$ shasum -a 256 file.tar.iso