2008年2月16日 星期六

蜜月之旅 - 第六站 九份

2008/1/23


透過Facebook分享

蜜月之旅 - 第五站 北投陽明山

2008/1/22~2008/1/23


透過Facebook分享

蜜月之旅 - 第四站 新竹台鹽廠

2008/1/22


透過Facebook分享

蜜月之旅 - 第三站 台中鎮瀾宮

2008/1/22

透過Facebook分享

Linux Kernel Source Code 下載處

Linux Kernel Source Code
http://www.kernel.org/


在2.6.24.2 的右邊
有個大寫的F
F代表full source
可以下載它
就可以得到完整的linux kernel source code

透過Facebook分享

Linux Kernel Source Code folder 描述

以下資料參考 Linux核心

並加上自己系統的資料


核心原始碼的系統

位置:

Linux


Ubuntu

/usr/src/linux


/usr/src/linux-headers-2.6.22-14/

(看來ubuntu並沒有在這邊有source code)

arch 該目錄下放著所有的與體系結構有關的核心程式碼 ----------------------------------- ls /usr/src/linux-headers-2.6.22-14 ----------------------------------- arch Documentation include Kbuild Makefile scripts usr block drivers init kernel mm security crypto fs ipc lib net sound

ls /usr/src/linux-headers-2.6.22-14/arch

alpha avr32 frv ia64 m68knommu powerpc sh sparc64 x86_64

arm blackfin h8300 m32r mips ppc sh64 um xtensa

arm26 cris i386 m68k parisc s390 sparc v850

ls /usr/src/linux-headers-2.6.22.14/arch/i386

boot Kconfig.debug mach-es7000 Makefile oprofile

crypto kernel mach-generic Makefile.cpu pci

Kconfig lib mach-visws math-emu power

Kconfig.cpu mach-default mach-voyager mm

ls /usr/src/linux-headers-2.6.22.14/arch/arm

boot mach-davinci mach-ixp23xx mach-realview Makefile

common mach-ebsa110 mach-ixp4xx mach-rpc mm

Kconfig mach-ep93xx mach-ks8695 mach-s3c2400 nwfpe

Kconfig.debug mach-footbridge mach-l7200 mach-s3c2410 oprofile

Kconfig-nommu mach-h720x mach-lh7a40x mach-s3c2412 plat-iop

kernel mach-imx mach-netx mach-s3c2440 plat-omap

lib mach-integrator mach-ns9xxx mach-s3c2442 plat-s3c24xx

mach-aaec2000 mach-iop13xx mach-omap1 mach-s3c2443 tools

mach-at91 mach-iop32x mach-omap2 mach-sa1100 vfp

mach-clps711x mach-iop33x mach-pnx4008 mach-shark

mach-clps7500 mach-ixp2000 mach-pxa mach-versatile

include 該目錄下放著系統構建所需的大多數include檔案。


init 該目錄中是核心的初始化程式碼。建議讀者閱讀核心程式碼從這開始。 ls /usr/src/linux-headers-2.6.22-14/init Kconfig Makefile mm 該目錄中含有所有的記憶體管理程式碼。 drivers 所有的的設備驅動程式的目錄。

ls /usr/src/linux-headers-2.6.22-14/srivers

acorn char firewire Kconfig misc ps3 tc

acpi clocksource firmware kvm mmc rapidio telephony

amba connector hid leds mtd rtc usb

ata cpufreq hwmon macintosh net s390 video

atm crypto i2c Makefile nubus sbus w1

auxdisplay dio ide mca parisc scsi zorro

base dma ieee1394 md parport serial

block edac infiniband media pci sh

bluetooth eisa input message pcmcia sn

cdrom fc4 isdn mfd pnp spi


ipc 該目錄含有核心的程序間通信程式碼。 fs 檔案系統程式碼。 ls /usr/src/linux-headers-26.22-14/fs 9p coda ext2 hostfs Kconfig nfsd reiserfs adfs configfs ext3 hpfs Kconfig.binfmt nls romfs affs cramfs ext4 hppfs lockd ntfs smbfs afs debugfs fat hugetlbfs Makefile ocfs2 sysfs autofs devpts freevxfs isofs minix openpromfs sysv autofs4 dlm fuse jbd msdos partitions udf befs ecryptfs gfs2 jbd2 ncpfs proc ufs bfs efs hfs jffs2 nfs qnx4 vfat cifs exportfs hfsplus jfs nfs_common ramfs xfs kernel 主要的核心程式碼。與硬體相關的部份在arch/*/kernel中。 net 關於網路的程式碼。 ls /usr/src/linux-headers-26.22-14/net 802 bridge ieee80211 Kconfig netfilter rose unix 8021q core ipv4 key netlabel rxrpc wanrouter appletalk dccp ipv6 lapb netlink sched wireless atm decnet ipx llc netrom sctp x25 ax25 econet irda mac80211 packet sunrpc xfrm bluetooth ethernet iucv Makefile rfkill tipc


lib 該目錄含有核心的函式庫程式碼。與硬體相關的部份在arch/*/lib中。 根據作者的建議 可以先從系統初始化的部份開始閱讀 => 記憶體管理 => 核心 ...

系統初啟和初始化
對於基於Intel的系統,當loadlin.exe或LILO將核心裝載進入記憶體中並將控制交給核心時,
核心進入開始階段。請閱讀 arch/i386/kernel/head.S關於上述過程。Head.S做一些與體系結構
相關的設置工作,然後跳轉到init/main.c中的main()函數

透過Facebook分享

/proc/devices in my ubuntu

Character devices:
1 mem
2 pty
3 ttyp
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
99 ppdev
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
216 rfcomm
226 drm
253 pcmcia
254 usb_endpoint

Block devices:
1 ramdisk
8 sd
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd

The difference between
character device and blog device is buffer interface.

透過Facebook分享

2008年2月15日 星期五

中斷 (interrupt) 幹麼要發明?

中斷
首先要想到的
就是為什麼要發明中斷這個東西

OS Kernel如果沒有這個東西 會是一個什麼樣子的Kernel

試想
如果一個使用者 要做file copy的動作
I/O通常是會扮演系統效能一個很影響的原因

如果沒有中斷的Kernel
Kernel在copy files的時候
必須在每次copy的時候
都必須等待I/O有空 以及做事完畢
在等待的時候
就會閒置了
這個時候如果Kernel不去做別的事情
感覺有點浪費

所以中斷這個功能就因應而生嚕
因為有了中斷
Kernel可以先將要COPY的資料交給別的component, like DMA
然後去做別的事情
等到 other compoment 發出了中斷 告訴cpu, Kernel就可以去處理copy file done的事情

在硬體的部份
CPU會預留中斷的pin
各個 component 中斷的pin 會跟CPU 的pin相連
因此
component發出的中斷 cpu就會知道
所以
Kernel也就會知道

透過Facebook分享

2008年2月14日 星期四

國家代碼表

要作多國語系
一開始用的代碼並沒有完全的folllow聯合國組織

有個可以follow的標準
ISO 3166-1 alpha-3
pdf file
5. 國家代碼表* ( ISO 3166-1: The Code List

可以把程式跟xml檔案修改一下 follow 這個標準
用replace all應該很快

可以讓以後要增加語系時
也不會亂掉

不過 會有時間可以改嗎
><

透過Facebook分享

UbuntuDeveloperWeek

時間
2/18~2/22

從時間表(timetable)看來
是下午四點到八點
(Google Calendar Location)

UbuntuDeveloperWeek


可以得到什麼資訊呢??
從官方網站可以得知(摘錄 from UbuntuDeveloperWeek)

Ubuntu Developer Week is a series of online workshops where you can:

  • learn about different packaging techniques

  • find out more about different development teams

  • check out the efforts of the world-wide Development Community

  • participate in open Q&A sessions with Ubuntu developers


透過Facebook分享