2013-02-17 81 views
0

我工作的地方底層內核是由QNX和所有的內核源代碼來作爲二進制項目,例如CAM層塊驅動程序是存在libcam.a但找不到在整個項目源樹中應該存在的確切的內核二進制文件。什麼是QNX內核二進制文件名

誰能告訴我什麼是找到它的出路?

+0

'所有內核源代碼都以二進制形式出現 - - 什麼? – jweyrich 2013-02-17 07:07:29

+0

是幾乎所有的核心資源來爲二進制,我們已經寫了一些包裝這些二進制文件掛鉤,但不知道這是內核二進制 – 2013-02-17 07:20:40

+0

爲什麼你認爲你需要關心的內核? – 2013-02-17 07:23:06

回答

1

運行的內核將是與PID 1.使用ps -e過程中才能看到它。

對我來說,這是procnto。如果你正在運行檢測內核(用於調試),它是procnto-instr

ps -e 
     PID TTY   TIME CMD 
     1 ?  12:25:42 procnto 
     4098 ?  00:00:00 pci-bios 
     4099 ?  03:40:47 io-usb 
     4100 ?  00:00:00 io-hid 
     4101 ?  00:00:00 devc-con-hid 
     4102 ?  00:58:14 devb-eide 
    20487 ?  00:00:00 /sbin/tinit 
    20488 ?  00:00:00 slogger 
    24585 ?  00:00:25 pipe 
    28682 ?  00:10:22 mqueue 

取決於你如何讓你的IFS文件,你可以有一個.build文件,其中包括類似以下內容:

# 
# The build file for QNX Neutrino booting on a PC 
# 
[linker="ntox86-ld -T$QNX_TARGET/x86/lib/nto.link %(h!=0, -Ttext 0x%t%)%(d!=0, -Tdata 0x%d%) -o%o %i %[M -L%^i -uinit_%n -lmod_%n%]"] 
[virtual=x86,bios +compress] boot = { 
    startup-bios 

    # PATH is the *safe* path for executables (confstr(_CS_PATH...)) 
    # LD_LIBRARY_PATH is the *safe* path for libraries (confstr(_CS_LIBPATH)) 
    # i.e. This is the path searched for libs in setuid/setgid executables. 
    PATH=/proc/boot:/bin:/usr/bin:/opt/bin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib procnto 

} ...

這最後procnto是什麼告訴引導程序使用哪個內核。查看mkifs瞭解更多信息。

+0

感謝@Kmort,無論如何我們找到了與我們的nto內核具有相同的procnto-smp-instr名稱。 – 2013-03-08 09:41:19

+0

嗨kmort,有沒有什麼辦法從這個構建文件鏈接Linux內核二進制文件,試圖這樣做,但它的說唱liker沒有找到 – 2013-03-08 18:53:38

+0

我真的懷疑它。 QNX裝載程序可能會窒息這樣的事情。你會有整個ELF問題來處理...可能最好拿出別的東西。爲什麼不使用Linux加載程序? – kmort 2013-03-08 19:02:53