① 如何在windows環境下搭建qnx編譯環境
1.<BUILD_ROOT>是指正確的目錄,如E:\community.qnx.com\svn\repos\coreos_pub,裡面有trunk,源碼在裡面。
2.如果不是在Neutrino self-hosted下運行( then you will need to tell the build process to ignore the content of the GNU configure style source moles.) 運行此命令,大概運行幾分鍾。(hide-gnu.sh可下載)
% ksh hide-gnu.sh <BUILD_ROOT>
3.創建目錄(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage
4.按文檔中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目錄下。內容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用「/」換掉Windows的「\」
5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的電腦->環境變數里增加。還是要注意"/"問題。
6.基本沒問題了,
內核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
網路:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install
or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等
---------------------------------------------------------------------
問題:E:\Delores\QNX_SRC\coreos_pub\trunk\utils\r\rtc編譯出錯
無法找到頭文件:
#include <hw/i2c.h>
看了一下common.mk,發現有下面的路徑,聯想fondry27上說的,hardware裡面都是硬體相關的頭文件,公開的源碼里沒有這個目錄。看來是沒辦法編譯rtc了,不過也沒啥用。把rtc目錄剪切掉繼續編譯。
EXTRA_INCVPATH = $(PROJECT_ROOT)/../../../lib/util/public
EXTRA_INCVPATH += $(PROJECT_ROOT)/../../../hardware/startup/lib/public
(可惜我不懂這是什麼意思,於是我從BSP里隨便找了個i2c.h放到D:\QNX640\target\qnx6\usr\include\hw目錄下)
-----------------------------------------------------------------------------------
(這個我沒遇到,因為我照著先做了,哈)
問題:編譯textmode出錯
找不到頭文件。發現qnx640下根本沒有這些東東。只有從632里復制了。
#include <graphics/display.h>
#include <graphics/disputil.h>
#include <graphics/vbios.h>
從E:\QNX632\target\qnx6\usr\include復制graphics目錄到E:\QNX640\target\qnx6\usr\include下。
編譯textmode通過。
② linux mkimages 文件在哪
下載:
兩種途徑得到mkImage工具uImage,
解決方法:
方法一:
安裝mkimage工具,載ubuntu11.10下執行以下命令進行安裝:
#sudo apt-get install uboot-mkimage
方法二:
編譯uboot源碼,編譯成功後載uboot/tools目錄下會生成mkimgage工具,將mkimage工具拷貝到/usr/bin/目錄下即可。
使用:
uboot源代碼的tools/目錄下有mkimage工具,這個工具可以用來製作不壓縮或者壓縮的多種可啟動映象文件。
mkimage在製作映象文件的時候,是在原來的可執行映象文件的前面加上一個0x40位元組的頭,記錄參數所指定的信息,這樣uboot才能識別這個映象是針對哪個CPU體系結構的,哪個OS的,哪種類型,載入內存中的哪個位置, 入口點在內存的那個位置以及映象名是什麼
root@Glym:/tftpboot# ./mkimage
Usage: ./mkimage -l image
-l ==> list image header information
./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
參數說明:
-A 指定CPU的體系結構:
取值 表示的體系結構
alpha Alpha
arm A RM
x86 Intel x86
ia64 IA64
mips MIPS
mips64 MIPS 64 Bit
ppc PowerPC
s390 IBM S390
sh SuperH
sparc SPARC
sparc64 SPARC 64 Bit
m68k MC68000
-O 指定操作系統類型,可以取以下值:
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
-T 指定映象類型,可以取以下值:
standalone、kernel、ramdisk、multi、firmware、script、filesystem
-C 指定映象壓縮方式,可以取以下值:
none 不壓縮
gzip 用gzip的壓縮方式
bzip2 用bzip2的壓縮方式
-a 指定映象在內存中的載入地址,映象下載到內存中時,要按照用mkimage製作映象時,這個參數所指定的地址值來下載
-e 指定映象運行的入口點地址,這個地址就是-a參數指定的值加上0x40(因為前面有個mkimage添加的0x40個位元組的頭)
-n 指定映象名
-d 指定製作映象的源文件
U-BOOT下使用bootm引導內核方法
一、在開始之前先說明一下bootm相關的東西。
1、 首先說明一下,S3C2410架構下的bootm只對sdram中的內核鏡像文件進行操作(好像AT91架構提供了一段從flash復制內核鏡像的代碼, 不過針對s3c2410架構就沒有這段代碼,雖然可以在u-boot下添加這段代碼,不過好像這個用處不大),所以請確保你的內核鏡像下載到sdram 中,或者在bootcmd下把flash中的內核鏡像復制到sdram中。
2、-a參數後是內核的運行地址,-e參數後是入口地址。
3、
1)如果我們沒用mkimage對內核進行處理的話,那直接把內核下載到0x30008000再運行就行,內核會自解壓運行(不過內核運行需要一個tag來傳遞參數,而這個tag建議是由bootloader提供的,在u-boot下默認是由bootm命令建立的)。
2)如果使用mkimage生成內核鏡像文件的話,會在內核的前頭加上了64byte的信息,供建立tag之用。bootm命令會首先判斷bootm xxxx 這個指定的地址xxxx是否與-a指定的載入地址相同。
(1)如果不同的話會從這個地址開始提取出這個64byte的頭部,對其進行分析,然後把去掉頭部的內核復制到-a指定的load地址中去運行之
(2)如果相同的話那就讓其原封不同的放在那,但-e指定的入口地址會推後64byte,以跳過這64byte的頭部。
二、好,接著介紹使用mkimage生成鏡像文件並下載運行的方法。
方法一、
1、首先,用u-boot/tools/mkimage這個工具為你的內核加上u-boot引導所需要的文件頭,具體做法如下:
[root@localhost tftpboot]#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage zImage.img
Image Name: linux-2.6.14
Created: Fri Jan 12 17:14:50 2007
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1262504 Bytes = 1232.91 kB = 1.20 MB
Load Address: 0x30008000
Entry Point: 0x30008000
這里解釋一下參數的意義:
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
2 、下載內核
U-Boot 1.1.3 (Jan 12 2007 - 16:16:36)
U-Boot code: 33F80000 -> 33F9BAC0 BSS: -> 33F9FBAC
RAM Configuration:
Bank #0: 30000000 64 MB
Nor Flash: 512 kB
Nand Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
sbc2410=>tftp 0x31000000 zImage.img
TFTP from server 192.168.1.115; our IP address is 192.168.1.128
Filename 'zImage.img'.
Load address: 0x31000000
Loading: #################################################################
#################################################################
#################################################################
####################################################
done
Bytes transferred = 1263324 (1346dc hex)
3.運行
sbc2410=>bootm 0x31000000
## Booting image at 31000000 ...
Image Name: linun-2.6.14
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1263260 Bytes = 1.2 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................Linux version 2.6.14 (root@luofuchong) (gcc version 3.4.1) #21 Fri Oct 20 17:206CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: SMDK2410
Memory policy: ECC disabled, Data cache writeback
CPU S3C2410A (id 0x32410002)
S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz
S3C2410 Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
USB Control, (c) 2006 sbc2410
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: console="ttySAC0" root="/dev/nfs" nfsroot="192".168.1.115:/frien"irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 8192 bytes)
timer tcon="00500000", tcnt a509, tcfg 00000200,00000000, usec 00001e4c
Console: colour mmy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64MB = 64MB total
Memory: 62208KB available (1924K code, 529K data, 108K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
softlockup thread 0 started up.
NET: Registered protocol family 16
S3C2410: Initialising architecture
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
yaffs Oct 18 2006 12:39:51 Installing.
Console: switching to colour frame buffer device 30x40
fb0: s3c2410fb frame buffer device
fb1: Virtual frame buffer device, using 1024K of video memory
led driver initialized
s3c2410 buttons successfully loaded
s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410
s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410
s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410
io scheler noop registered
io scheler anticipatory registered
io scheler deadline registered
io scheler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
usbcore: registered new driver ub
Cirrus Logic CS8900A driver for Linux (Modified for SMDK2410)
eth0: CS8900A rev E at 0xe0000300 irq="53", no eeprom , addr: 08: 0:3E:26:0A:5B
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand: mapped registers at c4980000
s3c2410-nand: timing: Tacls 10ns, Twrph0 30ns, Twrph1 10ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bi)Scanning device for bad blocks
Bad eraseblock 1884 at 0x01d70000
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00020000 : "vivi"
0x00020000-0x00030000 : "param"
0x00030000-0x00200000 : "kernel"
0x00200000-0x04000000 : "root"
usbmon: debugfs is not available
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbmouse
drivers/usb/input/usbmouse.c: v1.6:USB HID Boot Protocol mouse driver
mice: PS/2 mouse device common for all mice
s3c2410 TouchScreen successfully loaded
UDA1341 audio driver initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
IP-Config: Complete:
device=eth0, addr="192".168.1.128, mask="255".255.255.0, gw="192".168.1.1,
host="luofuchong", domain=, nis-domain=(none),
bootserver="192".168.1.1, rootserver="192".168.1.115, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.115
Looking up port of RPC 100005/1 on 192.168.1.115
VFS: Mounted root (nfs filesystem).
Mounted devfs on /dev
Freeing init memory: 108K
init started: BusyBox v1.1.3 (2006.09.20-14:52+0000) multi-call binary
Starting pid 696, console /dev/tts/0: '/etc/init.d/rcS'
Please press Enter to activate this console.
方法二、
1、首先,用u-boot/tools/mkimage這個工具為你的內核加上u-boot引導所需要的文件頭,具體做法如下:
[root@localhost tftpboot]#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
Image Name: linux-2.6.14
Created: Fri Jan 12 17:14:50 2007
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1262504 Bytes = 1232.91 kB = 1.20 MB
Load Address: 0x30008000
Entry Point: 0x30008040
2 、下載內核
U-Boot 1.1.3 (Jan 12 2007 - 16:16:36)
U-Boot code: 33F80000 -> 33F9BAC0 BSS: -> 33F9FBAC
RAM Configuration:
Bank #0: 30000000 64 MB
Nor Flash: 512 kB
Nand Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
sbc2410=>tftp 0x30008000 zImage.img
TFTP from server 192.168.1.115; our IP address is 192.168.1.128
Filename 'zImage.img'.
Load address: 0x30008000
Loading: #################################################################
#################################################################
#################################################################
####################################################
done
Bytes transferred = 1263324 (1346dc hex)
3.運行
sbc2410=>bootm 0x30008000
## Booting image at 30008000 ...
Image Name: linux-2.6.14
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1261056 Bytes = 1.2 MB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
③ linux,so文件qnx可用嗎
so文件就是通常說的動態鏈接庫,就跟windows下的dll文件差不多。 ko是內核模塊文件,驅動之類的啥的。 不過在linux系統下文件的後綴多數情況下只是個標識,有可能代表不了文件的真實屬性的。 至於怎麼編寫,就跟用VS編譯dll或者lib文件差不多,...
④ 全世界現基於電腦而研發的(除WIN系統)以外的系統還有哪些越全越好
Linux
基於Debian
· Adamantix:基於Debian,特別關注安全。
· Amber Linux:基於Debian,針對拉脫維亞用戶作了一些定製。
· ASLinux Desktop:西班牙語,基於Debian與KDE,針對各種桌面用途,包括家用、辦公、教育、游戲、科學、軟體開發,最大的賣點在於其豐富的可用性。
· B2D Linux:基於Debian,希望可以由「做中學」來產生一個小而美的中文Linux包的計劃。
· Debian GNU/Linux:由大批社區志願者收集的包。Debian擁有龐大的軟體包可供選擇(25000個以上),支持大量的硬體平台(12個計算機系統結構)。以前該包因為安裝困難受到責難,但最新的版本具備了簡單易用的文本式安裝環境。非自由軟體不會包含在Debian的主要軟體包中。
· Guadalinex:由西班牙的安達盧西亞地方政府推動,基於Debian,針對西班牙語的家庭用戶以及學校。
· Knoppix:第一張Debian的自啟動運行光碟。包含的軟體非常多,啟動時會自動進行硬體監測。從4.0起,用DVD作光碟。
o 以下基於Knoppix:
Gnoppix:Knoppix的GNOME版,該包發行周期較長,未來會跟Ubuntu進行集成。
Kanotix:自啟動運行光碟,基於Knoppix,也可以安裝到硬碟上。有很好的硬體支持,桌面與筆記本電腦的集成也很出色。
Kurumin:針對巴西用戶的Knoppix。
· LinEx:由西班牙的埃斯特雷馬杜拉地方政府推動的包。
· Loco Linux:基於Debian的阿根廷Linux。
· MEPIS: 基於Debian的桌面和伺服器。
· Rays Linux(華鐳):基於Debian,針對亞洲市場,由新華科技(南京)系統軟體有限公司開發。
· Skolelinux:在挪威發起,旨在打造適合於學校的輕便包。
· Symphony OS:基於Debian,與眾不同地採用Mezzo桌面。
· Ubuntu:對初學者而言最易用的Linux包。由Canonical有限公司贊助,基於Debian,使用自己的軟體包庫,與Debian的有所不同,旨在開發出更加友好的桌面,已經取得了良好的聲譽。
o 以下基於Ubuntu:
Linux_Mint:基於Ubuntu的發行版,人氣很高,是目前排行榜上第三名的發行版。
Ebuntu:是Ubuntu的教育發行版。
Hiweed:基於Ubuntu,使用Xfce桌面環境的輕量級中文發行版。0.x版基於Debian。
Kubuntu:使用KDE桌面環境的Ubuntu包。
Lubuntu:使用LXDE桌面環境的Ubuntu包。
PUD GNU/Linux:基於Ubuntu的小型Linux,可安裝於光碟或256 MB以上的USB 快閃記憶體檔。
Xubuntu:使用Xfce桌面環境的Ubuntu包。
基於RPM
· aLinux:原名Peanut Linux,針對家庭用戶。
· ALT Linux:東歐版本。
· Ark Linux:強調易學易用。
· ASPLinux:提供俄語等東歐語言的支持。
· Asianux Server:由中國紅旗、日本Miracle、韓國Hannsoft三家聯合開發,主要市場針對亞洲地區,對中文、日文、韓文的支持比較好。
· Blag Linux:體積小,但功能較多。
· Caixa Mágica:葡萄牙語的Linux。
· cAos Linux:由社區創建的包,功能通用、培植簡單。
· CentOS:由社區支持的包,旨在100%地與Red Hat Linux企業版兼容,但不包含Red Hat 的商業軟體。
· Cobind:桌面。
· Conectiva:一個巴西包,曾經是United Linux的創建成員,現在該公司已經並入到Mandriva Linux。
· ELinux:用於教育的包。
· Fedora:可用作工作站、桌面以及伺服器,由紅帽公司及其社區開發。
· Linux Mobile System:基於Fedora Core的包,設計成從USB存儲設備啟動,比如U盤。
· Linpus Linux:來自台灣廠商發行的Linux版本。是一套通過LSB 3.1認證、GB18030-2000編碼檢驗測試及支持CNS11643中文標准交換碼全字型檔的Linux桌面型系統。在中文支持能力上較為完善。
· Magic Linux:一個易用的中文包。
· Mandriva Linux:最初是紅帽的一個變種,針對奔騰級CPU作了優化,後來在保持兼容性的同時,派生成為更友好的包。Mandriva中所有的軟體仍然免費,還有活躍的社區支持,另外通過注冊以及銷售盒裝產品,Mandriva還提供企業級的支持與服務,還有針對付費用戶的俱樂部。
· Novell Linux Desktop:由於Novell收購了SUSE,他們的Linux產品對原來的包有所繼承。
· PCLinuxOS:一個易用的自啟動運行光碟,以良好的觀感著稱;硬碟安裝也同樣輕而易舉。最初基於Mandrake 9.2,而後PCLinuxOS針對桌面用戶,開始自己的開發道路。在保留基於RPM包的同時,PCLinuxOS別出心裁地使用自己的APT包管理工具(受Debian影響),但圖形前端仍然用的是Synaptic。
· PCQLinux2004:由印度的PCQuest雜志生產,基於Fedora Core。
· PLD Linux:來自波蘭的包,針對較高級別的用戶,比Slackware、Gentoo更加易用。
· QiLinux:義大利生產,包括桌面版、光碟自啟動版,還有伺服器版、高級伺服器版。
· 紅旗Linux:由北京中科紅旗軟體技術有限公司開發,主要針對中國市場。
· Red Hat Enterprise Linux:紅帽Linux家族中唯一的商業分支。
· Scientific Linux:由紅帽Linux企業版,將遵循GPL的軟體重新編譯而成。
· SUSE/openSUSE:來自德國,是歐洲最流行的包之一。跟紅帽一樣,也包括大量的軟體,需要7張以上的CD,現在則用雙DVD。這個包有獨特的配置工具YaST。也是United Linux的創立者之一,已經被Novell公司收購。openSUSE是一個新的版本,基於社區,完全開源。
· Tinfoil Hat Linux:對安全格外關注的包。
· Trustix:專注於安全與穩定性的包。
· Turbo Linux:在亞洲較流行的一個包,基於Red Hat,是United Linux的成員。
· Vine Linux:基於Red Hat的一個日本包。
· White Box Enterprise Linux:意在兼容Red Hat企業版第三版。
· Yellow Dog:基於Red Hat,針對PowerPC平台。
· YOPER:"Your Operating System"(你的操作系統),來自紐西蘭的桌麵包。
Slackware
· Kate OS:基於Slackware的設計理念,一個輕便的波蘭語包。
· Zenwalk Linux(以前是MiniSlack):基於Slackware作了優化,注重簡便、快捷。
· Plamo Linux:基於Slackware的日語包。
· Slackware:一個老牌包,由Patrick Volkerding維護,特別注重簡潔與安全。
· Ultima Linux:基於Slackware,由Martin Ultima作了優化。
· SLAX:一個基於Slackware的自啟動運行光碟,由Tomas Matejicek維護。
· Frugalware:通用Linux包,面向中級用戶。
其它打包方式的包
· ArchLinux:基於KISS原則,針對i686的CPU做了優化,以.tar.xz格式打包並由包管理器進行跟蹤維護,特別適合動手能力強的linux用戶。
· Foresight Linux:採用Conary包管理系統,引入了GNOME中的許多最新技術,比如beagle、f-spot、howl以及最新的hal等,這個包在保持易用的同時,更注重革新。
· Gentoo:這個包採用自己獨特的Portage包管理系統,吸引了許多狂熱愛好者以及專業人士,強調自己編譯源碼,而不是直接用二進制包,這樣程序運行速度更快。
· GoboLinux:構建了新的文件系統,比如GCC放在/Programs/GCC/這樣的目錄,為了讓系統能找到這些文件,在/System/Links/Executables這樣的目錄下歸組,這樣就包含了/Programs目錄下所有可執行文件的符號鏈接。
· Heretix:以前叫做RubyX,包的管理,包括包管理,都是通過由Ruby寫的腳本來完成,所有的包都安裝在/pkg目錄下。
· ImpiLinux,來自南非的包,主要針對非洲用戶。
· Jedi GNU/Linux:使用force-get包管理器,允許源碼、二進制軟體包共存。
· Linux From Scratch:這是一份文檔,介紹如何自己動手,如何白手起家編譯打造自己獨一無二的Linux系統。
· Lunar Linux,基於源碼,由Sorcerer GNU/Linux所派生。
· MkLinux:"Microkernel Linux"的縮寫,旨在將Linux移植到跑Mach微核的PowerPC機器上。
· Onebase Linux:採用OLM包管理器,對二進制、源碼進行管理。
· Sabayon Linux:基於Gentoo,來自義大利。
· Sorcerer GNU/Linux:基於源碼。
· Source Mage GNU/Linux:也是基於源碼,由Sorcerer GNU/Linux所派生。
· Ututo:基於Gentoo,來自阿根廷。
· Open Client:基於Red Hat Enterprise Linux,來自IBM,提供有Fedora、Ubuntu、SLED的Layer。
給老機器訂制的小型包
一般的迷你包,除了可以硬碟安裝,也可以安裝在快閃記憶體檔上。
· Austrumi:拉脫維亞的自啟動CD包,支持英語,功能比較豐富,基於Slackware。
· cAos Linux:有社區維護,功能通用。
· Damn Small Linux(DSL):這是小型包的老祖宗,放在迷你CD上,原先設計是想看看一張50M的CD可以放多少桌面程序,原來是作為個人玩具,但不久Damn Small Linux周圍就聚成了一個社區,不少人加入進來,參與改進,包括一個遠程、本地的程序安裝系統,多功能的備份、還原系統,另外還加入了Knoppix的硬體檢測,使用自己的*.dsl軟體包系統,默認的窗口管理器是Fluxbox。可以在微軟虛擬機軟體里運行,無須關閉WINDOWS系統專門進入LINUX系統,特別適合初學者。
· Feather Linux:類似於Damn Small Linux,但總容量是115MB,兼容Debian的軟體包。
· Flonix USB版:放在USB設備上的可移動桌麵包,這是個商業版,只能給購買的U盤作預裝。
· Knopperdisk:為U盤設計的包,基於Gentoo。
· Puppy Linux:啟動特別地快,在配置較低的PC上(內存小於48M),也可以運行自如。包含的工具都是特別精簡的,使用Fvwm95作為窗口管理器(現在是JWM)。
· Kuppy Linux:基於Puppy發展的發行版,擁有啟動特別地快,在配置較低的PC上等特點外,將桌面置換為XFCE4,更適合習慣windows操作的用戶。
· Tiny Core Linux:是一個僅有10MB的桌面操作系統,甚至可以在486上運行,但它並不是一個完整的桌面,而且只支持有限區域網。
· Stem桌面:一個混合產品,使用標準的Debian來編譯桌面(Fvwm95)。針對老機器(CPU小於等於266Mhz,內存小於等於64M)設計,從Debian軟體倉庫種選擇的包都是最輕巧的。與眾不同的是,該包沒有自己的安裝光碟,用戶得先安裝Debian,然後運行文本界面的安裝腳本,然後通過網路連接,編譯剩餘的軟體。這個包100%跟Debian兼容。
· SPBLinux:用於軟盤、U盤的迷你版本。
· Vector Linux:中小型包,針對新老機器,採用小而快的應用程序,以及簡化的安裝程序。該包有多個版本,包括大小為2G的SOHO(Small Office, Home Office)版,以及800M的"Dynamite"版。SOHO版提供KDE/IceWM窗口管理器,外觀很專業;Dynamite版只採用IceWM,以及部分工具。該包包括了簡單的升級包管理程序,基於Slackware。
· eMoviX:小型包,專門用作媒體播放用途。
部分或全部的商業版
· BlueCat Linux:Linux嵌入式系統,可用於小型客戶定製的設備,乃至大規模多CPU的系統。
· Libranet:基於Debian的桌麵包,與Debian保持100%的兼容。安裝過程有硬體自動檢測,桌面有一個管理員菜單(文字模式與圖形模式),這樣簡化了硬體與軟體的配置。
· Linspire:另一個桌麵包,以前叫Lindows,基於Debian。可以通過Linspire或者Debian的apt命令,添加額外的軟體,但不保證跟Debian的兼容性。該包包含不少的專屬軟體。
· Mandriva Linux:Mandrakesoft跟Conectiva合並以後,更名為Mandriva Linux。對於菜鳥來說,該包的各種產品,包括伺服器、工作站、小型商用以及個人版,是最容易維護的Linux包之一。原來是Red Hat的一個變種,針對奔騰級CPU作了優化,進而發展出了更加方便的包。在保留完全自由軟體的同時,Mandriva商業模式,通過捐獻,以及對非會員延遲發布政策,增加了企業級的支持與服務。
· MEPIS:一個基於Debian的包,也可以作為自啟動光碟來運行,這樣可以在決定硬碟安裝前,嘗嘗鮮。
· Mobilinux:針對手機,由Montavista出品。
· Nitix:第一個基於Linux伺服器的自治操作系統,具有自管理、自恢復、自配置和自優化的能力。
· Novell Linux 桌面:Novell收購SUSE後,兩家的包就互相融合了。
· Progeny Debian:由Progeny開發,基於Debian,使用從Red Hat移植過來的Anaconda安裝器,該包又稱為Progeny Componentized Linux。
· Red Hat Enterprise Linux:從Red Hat Linux派生出的純商業版。
· SUSE:基於德國的紐倫堡,以前叫SuSE,是歐洲最流行的Linux包,由自己獨特的配置工具YaST,用戶可以下載到體驗版(跟專業版類似)。該公司是United Linux的創建者,最近被Novell收購。
· Xandros:來自加拿大,基於過去的Corel Linux,專注於桌面市場,以及跟Windows的兼容性。該包包含一些專屬軟體,跟Debian的dpkg包管理系統兼容。
· YES Linux:針對小型公司,提供建議的網路環境。
專用包
· Android:來自Google,以apk格式打包,採用Dalvik虛擬機提供類似Java (編程語言)的應用程序介面,目前已成為用戶最多的智能手機系統之一。
· Maemo:來自諾基亞,基於Debian,目前專用於諾基亞的N770、N800、N810網路終端,以及N900手機。
· Moblin︰來自英特爾,現已捐給Linux基金會,用於Eee PC或其他上網本,支持快速啟動。
· MeeGo:Maemo與Moblin計劃結合的產物
其它平台
iPodLinux基於修改版uClinux內核,並編寫有所謂的「podzilla」簡單用戶界面。目前僅支持第四代之前的iPod。
Unix
自由軟體 /開源軟體
· Agnix (教育用)
· 386BSD及其子類 (BSD系統):
o FreeBSD及其子類:
ClosedBSD
Apple Darwin
DragonFly BSD
GNU/kFreeBSD
PC-BSD
o NetBSD及其子類:
GNU/kNetBSD
o OpenBSD及其子類:
ekkoBSD
MicroBSD
MirOS BSD
· GNU – GNU相關系統的分別在於其系統使用哪一個操作系統的內核
o GNU Hurd
o GNU/kFreeBSD
o GNU/kNetBSD
o Linux (又稱GNU/Linux)
o GNU/OpenSolaris
· LUnix
· MINIX及其子類:
o Minix-vmd
o MINIX 3
· OpenSolaris - 建基於System V
· Phoenix-RTOS
· 九號計劃 – Unix的後繼者,採用UNIX設計與哲學,但更一致地套用至整個分布式系統,功能上並不完全相同。
o Inferno – Plan 9派生出的分布式操作系統,原本由貝爾實驗室開發,現在被Vita Nuova擁有。
o Plan B (Plan 9派生出的分布式操作系統[1])
· Syllable - 99% POSIX依從
· VSTa - 大致POSIX依從
· Maemo - 諾基亞的開源系統
商業軟體
· IBM AIX* - 建基於System V Release 3
· HP HP-UX*
· SGI IRIX*
· Apple Mac OS X - 建基於Apple Darwin
· LynxOS RTOS
· QNX - 全部重寫,沒有UNIX相關的代碼
· SkyOS - 大致POSIX依從
· Sun
o SunOS - 建基於BSD
o Solaris* - 建基於System V Release 4
· Compaq Tru64* - 建基於OSF/1
· Microsoft Xenix
· VxWorks
Mac OS X
Mac OS X版本信息
版本 代號 宣布日期 發布日期 最後版本
Server 1.0 Hera 1999年3月16日 1.2v3 (2000年10月27日)
公開測試版 Kodiak 2000年9月13日
10.0 獵豹(Cheetah) 2001年3月24日 10.0.4 (2001年6月22日)
10.1 美洲獅(Puma) 2001年9月25日 10.1.5 (2002年6月6日)
10.2 美洲虎(Jaguar) 2002年8月23日 10.2.8 (2003年10月3日)
10.3 黑豹(Panther) 2003年10月24日 10.3.9 (2005年4月15日)
10.4 虎(Tiger) 2004年6月28日 2005年4月29日 10.4.11 (2007年11月14日)
10.5 花豹(Leopard) 2005年6月6日 2007年10月26日 10.5.8 (2009年8月5日)
10.6 雪豹(Snow Leopard) 2008年6月9日 2009年8月28日
10.7 獅子(Lion) 2010年10月20日 2011年夏季(預估)
⑤ 在C++ Test中如何做基於QNX的單元測試
VectorCAST/C++™--C/C++的單元/集成測試
<什麼是VectorCAST/C++>
VectorCAST/C++是一套集成的軟體測試解決方案,能顯著降低C/C++測試過程中為達到安全性檢測和嵌入式系統關鍵任務檢測所必需的時間、工作量及成本。
自動化包括:
>為單元測試和集成測試構建完整的測試環境
>基於腳本命令或GUI圖形界面執行測試
>集成最好的需求管理系統和靜態分析工具
>根據基本路徑來自動生成測試用例
>根據測試需求自定義測試用例
>回歸測試
>在調試階段進行測試的回放
>代碼覆蓋分析
>支持敏捷開發和測試驅動開發(TDD)
⑥ 如何將編譯好的QNX文件上傳到虛擬機上
2. 進入QNX,將上述文件拷到/usr/photon/font_repository目錄下。 3. 在pterm上運行font_install安裝字型檔。 4. 在pterm上運行fontadmin,新建一種字體,在選項里只要能看到Simsun就成功了。 QNX641: 參考文檔:phfont 和 mkfontdir 以宋體為例: 1.拷貝字體文件SURSONG.TTF到目錄/usr/photon/font_repository/下。 2.最好備份/usr/photon/font_repository/fontdir文件。 3.運行命令生成新的fontdir文件#mkfontdir -i /usr/photon/font_repository/fontdir -d /usr/photon/font_repository
⑦ 如何在虛擬機 qnxsdp-6.5 編寫
1、使用vim/gvim編輯器書寫代碼,保存為文件test.cpp 2、在命令行使用g++ -o Test test.cpp進行編譯,生成Test可執行文件 3、./Test 運行該文件即可
⑧ 如何在QNX下編譯源碼
1.<BUILD_ROOT>是指正確的目錄,如E:\community.qnx.com\svn\repos\coreos_pub,裡面有trunk,源碼在裡面。
2.如果不是在Neutrino
self-hosted下運行( then you will need to tell the build process to ignore
the content of the GNU configure style source moles.) 運行此命令,大概運行幾分鍾。(hide-gnu.sh可下載)
% ksh hide-gnu.sh <BUILD_ROOT>
3.創建目錄(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage
4.按文檔中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目錄下。內容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用「/」換掉Windows的「\」
5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的電腦->環境變數里增加。還是要注意"/"問題。
6.基本沒問題了,
內核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
網路:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install
or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等