2011年4月20日 星期三

讀"Orange's 一個作業系統的實現"的心得

前一陣子花時間看這本書,
這本算是滿適合新手入門的書,
很多觀念說明很清楚,不過要讀本書;還是需要一些基礎:
1.略懂組合語言
使用NASM,作為一些低階操作。
2.C 語言 (絕大部分程式使用。)
3.略懂環境Shell,Gnu Make
Windows 批次檔
Linux: Bash or Csh 等等

從環境設定,到Boot 流程、多執行序、記憶體、檔案系統的實作等等,
許多重要的OS元素均有詳細的介紹。

這本書環境設部分,很貼心的介紹了Linux 及windows 開發環境的設定。
對於不習慣使用Linux的讀者提供另一種選擇。

本人習慣使用Linux 環境,所以電腦環境如下:
OS: XUbuntu 10.10 , 桌面:Xfce
Tool: gcc 4.4.5, GNU Make 3.81, Bash 4.1.5, qemu 0.12.5
Editor: vim + ctags + cscope

一邊看書,一邊利用範例修改編繹,讓自己更容易瞭解,來龍去脈。
其實研究OS的原理,可讓自己更知道系統如何運作,加強自己的功力喔!!!
有空不妨看看!!!

2011年4月18日 星期一

把常用的UNIX 環境重建到MAC OS X (1)

把常用的UNIX 環境重建到MAC OS X

最近舊的Mac壞了,
換了新的Macbook pro,環境要重灌真是一件煩人事。
之前都是用Macports, 這次想試試Homebrew 與最近的MACOSX 及Xcode 會不會簡單些?

實驗環境:
硬體:2.3 GHz Intel i5, 4GB DDR3
軟體:Mac OS X 10.6.7,  Xcode 4.01 and iOS SDK 4.3

參考官方安裝說明(https://github.com/mxcl/homebrew/wiki/installation),以我所使用的環境為例,在安裝前請注意下列事項:
* Mac 必須為Intel CPU 
* Mac OS X 必須10.5 (Leopard) 以上 (目前在10.6 上使用也OK)
*建議移除 /usr/local/include 和 /usr/local/lib 以避免一些相容的問題。
*安裝目錄:
 ﹣ 免避包含空白的目錄
 ﹣ 免避使用Macports 所用目錄(/opt/local 和 /sw)
 ﹣ 建議使用/usr/local, 因為簡單、安全,因預設路徑已包含、Apple 保留這個目錄給大家使用。

安裝Homebrew,執行如下:

$ ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/Formula/...
/usr/local/Library/Homebrew/...

Press enter to continue
==> /usr/bin/sudo /bin/mkdir /usr/local

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
==> /usr/bin/sudo /bin/chmod g+w /usr/local
==> /usr/bin/sudo /usr/bin/chgrp staff /usr/local
==> Downloading and Installing Homebrew...
==> Installation successful!

安裝成功!!

接下來,先試安裝一下原始碼管理工具 git 吧!!

$ brew install git
==> Downloading http://kernel.org/pub/software/scm/git/git-1.7.4.4.tar.bz2
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/git/1.7.4.4 install
==> Downloading http://kernel.org/pub/software/scm/git/git-manpages-1.7.4.4.tar.
######################################################################## 100.0%
==> Downloading http://kernel.org/pub/software/scm/git/git-htmldocs-1.7.4.4.tar.
######################################################################## 100.0%
==> Caveats
Bash completion and emacs support have been installed.

The rest of the "contrib" folder has been copied to:
  /usr/local/Cellar/git/1.7.4.4/share/contrib
==> Summary
/usr/local/Cellar/git/1.7.4.4: 1054 files, 19M, built in 49 seconds

馬上可供使用,滿方便。

結論

使用無障礙,很簡單清爽的介面,提供剛好資訊給使用者。
就個人而言,偏好(Information Just fit)工具,所以推廌給大家使用。

更新10-01: 使用下列命令可下載或更新並安裝,最新版的Qemu
  brew install qemu

2011年4月14日 星期四

實戰Three20心得(1)

如果您是開發iPhone/iPad程式的新手, 推廌使用 Three20. 可以省下不少慢工細活的瑣事喔!

瞭解細節由此去Three20
使用git下載,目前開發中的程式碼

/dev$ git clone https://github.com/facebook/three20.git
Initialized empty Git repository in /dev/three20/.git/
remote: Counting objects: 18387, done.
remote: Compressing objects: 100% (6066/6066), done.
remote: Total 18387 (delta 14468), reused 14930 (delta 11244)
Receiving objects: 100% (18387/18387), 11.88 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (14468/14468), done.
/dev$ cd three20/
/dev/three20$ tree -L 1
├── AUTHORS
├── Build
├── config.template
├── diffstrings.py
├── extensions
├── LICENSE
├── project.dev
├── README.mdown
├── samples
├── src
└── templates



參考資料: