目前日期文章:200906 (25)

瀏覽方式: 標題列表 簡短摘要

原作:劉旭暉 轉載請註明出處 http://blog.csdn.net/colorant/
增訂:Rider

1. Android內核Porting相關背景知識

1.1 運行平台

Google 的Android平台到20020227為止,應用部分還是以二進制的 Binary形式發佈的,其编譯的目標平台 ARM926EJ-S的CPU是屬於ARMV5T的版本,所以ARMV4架購的CPU平台無法使用其二進制代碼。關於這點,可以参考下面這篇文章,Benno在此做了詳細的理論分析和代碼測試:http://benno.id.au/blog/2007/11/21/android-neo1973 .  不過依照目前現階段情形除了原本基於ArmV5或以上的架構的平台可以實際運行Android外,亦可在 ARMV4 上面運行了,詳細操作步驟請參考文章最下面 Benno’s 的一些連結資訊,他有 release 一些 patch 可以供 porting 實驗之用。

1.2 軟體環境(開發所需資源)

Android Official Download:

Kernel, emulator, development tool 等下載點: http://code.google.com/p/android/downloads/list

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

ABI

ABI,application binary interface,應用程式和作業系統的"low-level interface"。意思是,ABI有一套規則,如果遵循這個規則產生出的object,就能在相對應的系統上正確的運作。這個規則包括了data type的size,alignment,calling convention,function參數傳遞與回傳值,system call的調用等。很明顯的,這跟平台很有關係。比如說,不管用哪一個compiler,只要能生出符合ELF格式的binary,就可以在Linux上跑,或呼叫其library。

而EABI,embedded-application binary interface則規定了embedded software program的規則。跟一般的作業系統的主要差異為: 應用程式可以使用privileged instruction,dynamic linking不是required,更簡潔的stack frame用以省下memory。

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

講的比唱的好聽

pam.overview.1.gif

 

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

引言

常覺得某些人總是總不好某些事嗎?為什麼高鐵可以虧這麼多錢?每個月繳那麼多健保費,一年也沒看幾次醫生,卻只看到天文數字的健保黑洞。每次要坐火車,總擔心買不到票,也不見什麼時候看過台鐵賺錢的新聞。是不為也還是不能也?

利用shell來做事時,也有類似的情況。但基本上電腦世界講究的是邏輯,因此沒有什麼不為的情況,而是不能。有趣的是,解法可以一樣--換人做做看!

kezeodsnx 發表在 痞客邦 PIXNET 留言(1) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

引言

又是認證,使用linux,似乎比較常談到認證的問題。想了一想,其實是linux在認證方面做了比較多方便使用者的設計與機制。用windows時,開機開半天,有問題重開機,遇到藍底白字也不會抱怨,IE要密碼就敲,因為自古以來都是這樣的"理所當然"。這是否表示為使用者想的愈多,反而讓使用者困擾呢?相同的思考下,限制使用者是否比讓其選擇更能提高接受度呢?

簡介

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

pam_unix是標準的unix認證模組,它的功能是讓系統的library/service存取系統上的帳號資訊以及用來認證。通常是由/etc/passwd和/etc/shadow來完成。

pam是pluggable authentication module,因此pam_unix也是根據pam的架構來完成認證的流程,有空再來介紹一下pam。因為pam_unix是一般系統管理比較常用到的,比如說login,passwd都會來跑一次pam_unix,以確定operation的合法性。

以passwd來說,一般會選擇的設定是:密碼幾位,複雜度有多高,如何加密等。這些是系統的基本管理,並隨著個人/產品喜好而有所差異。相關檔案的路徑為:

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

base-system很好玩,可以玩很久,玩很大,也有很多功能,像測試新軟體,或是進行一些擔心會影響到系統的操作時,可以在base-system上先惡搞一下,看看有沒有什麼side-effect,沒問題再弄上原本的系統。如果想要有自己的distro,也可以從base-system開始,裝上bootloader,kernel後,再根據需要來裝xserver,windows manager,等於是自己專有的Linux。

root@user-ubuntu:/home/user/temp# dd if=/dev/zero of=./lenny.img bs=1k count=1024000  //建一個1G的base-system
1024000+0 records in

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

Joke

會說3種語言以上的人,叫做 Multilingual(多種語言的)。
會說2種語言的人,叫做 Bilingual,(雙語的)。

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

Kerberos--第三方認證機制

Kerberos是一種網路認證協定。一般client/server型態的應用程式,由server提供service給認證過的client。認證意味著不是隨便張三李四都可隨意使用該service,因此server端通常會要求client證明身份,方法則多半是username/password。因此不管這個密碼是 cyphertext還是plaintext,都在網路上傳來傳去,讓有心人士有可趁之機。

大多數人每天開心的使用網路,在鍵入帳號資訊,信用卡卡號,晶片卡密碼時,從不以為會發生什麼問題。當然,這只是沒有遇到, 不代表麻煩不會上身。而Kerberos就在這個不安全的網路世界中,提供了強大且安全的認證機制。這並非表示Kerberos解決了所有問題, 而是把惹上麻煩的機率降低一些。天下沒有不可能的事,不是嗎?

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

架構

Android使用的是Java,因此需要一個Java platform,意思是需要有能力執行Java的bytecode。而Java platform的架構為:

。Java bytecode

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

讓人既愛又頭痛的 GNU/GPL Print E-mail
Written by 葛冬梅    Friday, 27 May 2005

GNU Genral Public License(以下簡稱GNU/GPL)是第一份自由軟體授權條款,也是目前最廣為被使用的授權條款之一。自由軟體之父 Richard M. Stallman(以下稱 Stallman)為了替他的軟體開發計畫 -GNU 計畫尋找適當的授權方式,在 1989 年草擬出 GNU/GPL 第一 版。它的整個架構與理念源自於Stallman所宣示的軟體使用者四大自 由(註一):

【自由0】使用的自由:可以不受任何限制使用該軟體。
【自由1】研究的自由:可以研究該軟體的運作方式,並使其符合個人需求。
【自由2】散布的自由:可以自由地複製該軟體並散布給他人。

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

Tune performance是一件很煩的事,看起來好像只是調調參數,其實不然。沒有對整個系統有一定的了解,根本不知從何調起,該調多少,在哪裡調。基本上,tune這件事應該是算advanced skill。下面是有試過的參數:

Reference:Linux performance tuning guide

1. /sys/block/sda/queue/nr_requests: Linux 2.6後的I/O scheduler實作了增加或減少發給disk subsystem的request數量。這個值不會是一體適用的,不同的disk subsystem,不同的worklaod,不同的I/O模式都有影響。即便是相同的disk subsystem,其block/secor size不同也造成影響。修改方式:

kezeodsnx 發表在 痞客邦 PIXNET 留言(1) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

介紹

WiKi上DLL injection的解釋為在另一個process的address space裡執行其程式碼。可能的用途為用來影響本來程式碼的行為,而這個改變並不是原作者所預期的。方法是強迫對該程式載入其他的shared library。結果呢,本來程式是呼叫其”原本的”某一function,但最後卻呼叫了”intercepted”的function。

LD_PRELOAD可以做到這件事,常常用來在debian打包的工具fakeroot就是用了LD_PRELOAD。

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

內存=記憶體=memory

宏=巨集=macro

缺省=預設=dafault

口令=密碼=password

归档=歸檔

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

 

1. 著暗色系服裝

2. 著黑邊粗框眼鏡

3. 低頭多過抬頭

4. 無法感知週遭的一舉一動

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

小沈: 那個.......

(Chris立刻趴下,Jeff一路向北,Sam戴上耳機 (murmuring),Legis插上JTAG,Aaron持續自爆)

Payton: 有!  <==自覺的孩子,請掌聲鼓勵

小沈: 待會我們一片機的mock up會回來,可能要一個rootfs來測試

Payton: 那要什麼時候的?

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

作者: kezeodsnx

介紹

先來個展開: initrd==>initial Ram Disk。initial沒什麼好說的,ram disk就比較有趣了。先看看WiKi怎麼說:

A RAM disk is a software layer that enables applications to transparently use RAM, often a segment of main memory, as if it were a hard disk or other secondary storage.

kezeodsnx 發表在 痞客邦 PIXNET 留言(1) 人氣()

小沈: 5月8號的rootfs image可以關機嗎?

sleep(4)

我:不行

sleep(7)

小沈:是5月8號的嗎?

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

[轉載請註明出處] http://kezeodsnx.pixnet.net/blog

譯者: kezeodsnx

原文: Connect desktop apps using D-BUS

DBUS基本上是一個IPC的實作。然而,因其特色使DBUS不止是另一個IPC的實作。為了解決特定的IPC問題,已有數種實作。CORBA解決OOP複雜的IPC,DCOP是較輕薄的IPC framework,power沒那麼強大,但已整合至KDE。SOAP和XML-RPC則是用在web service,因此使用HTTP為其傳輸協定。而DBUS是為了桌面應用程式與OS之間的通訊。

Desktop application communication

kezeodsnx 發表在 痞客邦 PIXNET 留言(0) 人氣()

常用vim的話,或多或少會不小在行末多按了幾個空白,或是在檔尾多了幾個空行。作者Vigil寫了一個去除這些東西的function:

" Remove trailing whitespace when writing a buffer, but not for diff files.
" From: Vigil
function RemoveTrailingWhitespace()
if &ft != "diff"

kezeodsnx 發表在 痞客邦 PIXNET 留言(1) 人氣()

1 2