2008/1/23
2008年2月16日 星期六
Linux Kernel Source Code 下載處
Linux Kernel Source Code
http://www.kernel.org/
在2.6.24.2 的右邊
有個大寫的F
F代表full source
可以下載它
就可以得到完整的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()函數
並加上自己系統的資料
核心原始碼的系統
位置:
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.
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應該很快
可以讓以後要增加語系時
也不會亂掉
不過 會有時間可以改嗎
><
一開始用的代碼並沒有完全的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)
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分享
訂閱:
文章 (Atom)