Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Описания QNX

56 views
Skip to first unread message

Vladimir Romanov

unread,
Aug 21, 2006, 9:25:45 AM8/21/06
to
Привет, All!

Есть ли в природе описания того, как работают программы QNX? Ключи там
командной строки, описание чего программа делает и как. Типа MAN-pages в
Линуксе?

Конкретно интересуют ключи для

/boot/boot-pc
/boot/proc32
/boot/slib32


Удачи!

Самонастраивающийся комплект FIDAL 1.0 beta 7 by Alex Rotanov 2:5059/29

AuR/eliano

unread,
Aug 22, 2006, 11:44:26 AM8/22/06
to
Приветствую, Vladimir!

Понедельник 21 Августа 2006 18:25, ты писал(а) All:

VR> Есть ли в природе описания того, как работают программы QNX? Ключи там
VR> командной строки, описание чего программа делает и как. Типа MAN-pages
VR> в Линуксе?

VR> Конкретно интересуют ключи для

VR> /boot/boot-pc
VR> /boot/proc32
VR> /boot/slib32

use /boot/sys/Proc32
Для других программ аналогично, хотя иногда usage может и не быть (например для
Slib32 в 4). 2-й способ: help в Фотоне -- там обычно подробнее, чем по команде
use.


Удачи. AuR/eliano.

... Придурков нам не надо. (Светлана Динабург)

Vladimir Romanov

unread,
Aug 22, 2006, 4:12:38 PM8/22/06
to
Привет, AuR/eliano!
└─> [22 августа 2006] <───> AuR/eliano ────> Vladimir Romanov

VR>> /boot/boot-pc
VR>> /boot/proc32
VR>> /boot/slib32

Ae> use /boot/sys/Proc32
Ae> Для других программ аналогично, хотя иногда usage может и не быть
Ae> (например для Slib32 в 4). 2-й способ: help в Фотоне -- там обычно
Ae> подробнее, чем по команде use.

Это понятно, только у меня QNX нету, потому и спрашиваю. Зачем мне тогда надо?
Дискеу раскапываю :)

AuR/eliano

unread,
Aug 23, 2006, 5:41:14 AM8/23/06
to
Приветствую, Vladimir!

Среда 23 Августа 2006 01:12, ты писал(а) мне:

VR>>> /boot/boot-pc
VR>>> /boot/proc32
VR>>> /boot/slib32
Ae>> use /boot/sys/Proc32

[...skip...]

VR> Это понятно, только у меня QNX нету, потому и спрашиваю. Зачем мне
VR> тогда надо? Дискеу раскапываю :)

Вот что написано в моём фотоновском хэлпе по Proc32 и по boot (хэлпа по Slib32
нет, как и модуля boot-pc, вер. QNX 4.25):


>───═══ Куть он "Windows Clipboard" ═══───
+-------------------------------------------------------
Proc32
Process Manager (QNX)
Syntax:
Proc32 [options]...
Options:
The options for Proc32 do not follow the standard utility syntax rules. Options
and option arguments must all be supplied as
separate command-line arguments (i.e. separated by white space on the command
line). Options may not be strung together
and must be separated from their arguments by white space.
-a
Disable accounting.
-b[1|2|3]
Specifies reboot method:
default
Use system port 0x92, then keyboard controller, then cpu shutdown.
-b
Do not use keyboard controller when executing the default sequence.
-b1
Reboot via keyboard controller first, then execute the default sequence.
-b2
Reboot via system port 0x92 first (which is the default sequence).
-b3
Reboot via processor shutdown only.
The options -b1, -b2 and -b3 may be combined with -b which subtracts the
keyboard method from the subsequent
execution of the default reboot sequence as follows:
Option
Sequence

default
port 0x92, keyboard, cpu

-b
port 0x92, cpu

-b1
keyboard, port 0x92, keyboard, cpu

-b1 -b
keyboard, port 0x92, cpu

-b2
port 0x92, keyboard, cpu

-b2 -b
port 0x92, cpu

-b3
cpu

-b3 -b
cpu

Interrupt vector 0xf5 is always invoked before trying any of these methods. For
custom hardware, you can point this
vector at code to cause the restart.


-B node
Set base node in network (default is 1)
-d num_major
The number of major device numbers to be supported (default is 64).
-D
If the debugger (Debugger32) is bound into the operating system, suppress its
automatic invocation upon boot.
-e num_semaphores
Specify the maximum number of semaphores available in the system (default is
128).
-f min max total
This option controls the availability of file descriptors (FDs):
min
The minimum number of FDs that must be available before a process will start.
This argument defaults to 16 and should be
left at that value if POSIX-compliance is a requirement (POSIX requires that a
process be capable of opening at least 16
files). You can save some memory by reducing this number.
max
The maximum number of FDs that can be available for a process (default is 512).

total
The total number of FDs available in the system (default is num_procs*16).
Each process starts off by taking min FDs, which it may grow to max FDs.
-F timer_freq
Set frequency of the 8254 clock (default is 1193181 Hertz).
-H
Allocate heap as needed.
-i irq
Make irq the highest-priority hardware interrupt in the system. You can specify
a number from 0 through 7 (default is 3).
-l nid
-l @bios_offset
-l @wpaddr
-l ![b|w|l]ioport
("el") Assign a logical node ID to this machine (default is 1). Each connected
machine must have a unique logical node ID. A
node ID may be specified directly as a decimal integer (nid) or read from the
BIOS data area (@bios_offset), from the physical
address (@wpaddr), or from an I/O port (!ioport). The forms of the node
specification are as follows:
nid
Specifies the node ID directly (decimal).
@bios_offset
Extract the node ID from the (byte) memory area at offset bios_offset (hex) in
the BIOS data area.
@wpaddr
Extract the 16-bit node ID from the physical address paddr (hex).
!ioport
Extract the node ID by reading a byte from the I/O port specified by ioport
(hex).
!bioport
Extract the node ID by reading a byte from the byte-wide I/O port specified by
ioport (hex).
!wioport
Extract the node ID by reading a word from the word-wide I/O port specified by
ioport (hex).
!lioport
Extract the node ID by reading a longword from the longword-wide I/O port
specified by ioport (hex).
-L[1|2]
Local. Don't permit outbound network access from this computer.
default
Allow inbound and outbound network access.
-L
Local. Restrict outbound network access.
-L1
Local. Restrict outbound network access for all users except root.
-L2
Disallow inbound network access, but allow unrestricted outbound access.
-m num_shared_segs
The number of shared segments (managed by the qnx_segment_*() family of
functions) that will be available in this operating
system image (default is 2000).
-M machine_name
The symbolic name for this computer (default is AT or PS/2). Some programs
check for this name and alter their behavior
accordingly. For example, the floppy disk driver (Fsys.floppy) and some PS/2
disk drivers look for the name PS/2.
-n num_names
The maximum number of names that can be registered locally by the
qnx_name_attach() function (default is 80).
-o port[,baud]
Emit messages to the specified serial port (specified in hexadecimal). The baud
may also be specified (decimal); the default
baud is 9600.
-p num_procs[,code]
The total number of real processes, virtual circuits, and proxies that can
exist at any time (default is 500; maximum is 2000).
The optional ",code" is for command-line compatibility with earlier Procs and
is ignored.
-P priority
Set Proc's priority to the specified value between 26 and 30. (Default: 30)
-r prefix_len
The size of the system prefix space (default is 2000).
-s num_sessions
The maximum number of sessions that will be supported (default is 64).
-S gdts ldts
Set the maximum number of global segments and local segments in the system (by
default an appropriate value will be
chosen). Most programs need two local segments, while few may need 30 or more.
Global segments may be used by some
programs for permanent shared memory.
-t num_timers
The number of timers that will be supported (default is 100). These timers are
allocated to processes with the
timer_create() function and returned with the timer_delete() function. See also
the sleep() and alarm() functions.
-T trace_size
The size of the trace buffer, in kilobytes (default is 4K). See also the
tracectrl, traceinfo, and tracelogger utilities.
-v level
Set the verbosity level (0 to 3; default is 0). The message levels are as
follows:
Level 0:
An internal inconsistency was detected. Contact QNX Software Systems.
Level 1:
The Kernel was forced to take a planned but uncommon recovery action.
Level 2:
Expected actions have occurred as a result of a misbehaving process or remote
computer.
Level 3:
Status messages during normal operation.
-W
Enforce page protection in kernel. Note that this could cause problems with
debuggers or with older 32-bit graphics drivers.
-z flag
Set the following flags:
N
Use traditional (i.e DOS) NDP faults (the default).
n
Use real NDP faults. Note that the n flag precludes the use of int10.
U
Prefer QNX behavior where discrepancies exist between Unix and QNX (the
default).
u
Prefer Unix behavior where discrepancies exist between Unix and QNX.
Description:


Proc is a required process -- it cannot be started at the command line, but
must be built into the OS image.


The Process Manager (Proc) works closely with the kernel to provide essential
operating system services. In fact, the kernel is
bundled with the code for Proc and shares the same address space. For these
reasons, Proc is a required system process in
all operating system images that are built. You cannot start Proc after
booting.
Most of the services Proc provides require the use of memory within Proc. The
amount of memory used is controlled by
tables whose sizes are set by options to Proc. Some tables are fixed in size,
while other dynamically request more memory as
needed.
Heapp (deprecated)
displays the heap space for Proc
Heapf (deprecated)
displays the heap space for FDs (file descriptors) (-f option).
Heapl
displays the heap space for LDTs (local descriptor tables) (-S option).


Both Heapp and Heapf are now handled dynamically and are no longer needed.


In QNX documentation, you'll see the Process Manager referred to as Proc.
However, in your buildfile you must specify
Proc32. Note that Proc32 allows both 16-bit and 32-bit programs to run.
See also:
/boot/sys/boot, buildqnx, Debugger32, prefix, sin, sinit, tracectrl, traceinfo,
tracelogger

+-------------------------------------------------------

boot
Bootstrap the operating system
Syntax:
boot [-AEIOPV] [-dfptv] [-b baud] [-i ioport] [-g n]
[-M addr,nbytes] [-R n]
Options:
-A
Don't probe BIOS for APM (Advanced Power Management).
-b baud
Direct any output to a serial port set to the specified baud rate. Unless -i
ioport is also specified, COM1 will be used.
-d
Don't reprogram the serial controller -- use it as is.
-E
Emulate floating point. Tell QNX there's no floating-point unit available.
-f
Don't turn off floppy motor.
-g n
Adjust A20 gate as follows:
-1
Don't adjust -- just ensure it's enabled.
1
Try "fast" gate before "slow" gate.
0
Autodetect (the default).
-I
Don't enable interrupts when probing the machine.
-i ioport
Direct any output to the serial port at the specified I/O address (0xioport).
Unless -b baud is specified, the serial port will be
set to 9600 baud.
-M addr,nbytes
Add memory to list for QNX; addr is the start address, nbytes is the number of
bytes. Both must be 4K aligned.
-O
For old-style BIOSes. Disable APM and PnP (Plug'n'Play) memory probe.
-P
Disable PCI interface (int 0x1a).
-p
Pause before starting QNX. This is a debugging option of value only to check
the names of boot modules printed by -v.
-R n
Reserve the first megabyte plus n 64K chunks of memory.
-t
Continue even if A20 gate fails.
-v
Verbose. Print information, including names of boot modules.
-V
Disable video.


The following options are really intended to help you get around buggy BIOSes
or hardware:
-ADon't probe BIOS for APM.
-dDon't reprogram the serial controller -- use it as is.
-EEmulate floating point.
-fDon't turn off floppy motor.
-g nAdjust A20 gate.
-IDon't enable interrupts when probing the machine.
-OFor old-style BIOSes. Disable APM and PnP probe.
-PDisable PCI interface (int 0x1a).
-tContinue even if A20 gate fails.
-VDisable video.


Description:
The boot program performs initial operations for the operating system. This
includes operations which must be performed in
"real mode," which is the startup mode of the Intel 386 family of processors.
Before boot transfers control to QNX, the machine
must be running in 32-bit protected mode.


The boot program is used only within a boot image. If an operating system
buildfile (see buildqnx) does not specify
the boot program, buildqnx will automatically insert it (with no options). If
it is explicitly specified, it must be the first
entry in the buildfile.


The boot command uses the ISA-BIOS and some test code to detect some elements
of the machine environment including
bus-architecture (PCI, EISA, ISA, PS/2), processor (386,486,586...), numeric
processor (287, 387,...), video-adapter (none,
mono, CGA, EGA, VGA,...), and memory size.
Due to lack of foresight in the ISA-BIOS specification, the full memory size
sometimes cannot be identified. For this reason,
boot provides an option to "add" memory to the system.
When boot has completed, it jumps to the entry point of the next program in the
boot image. Conventionally, this is the
process manager (Proc32). The process manager reclaims any memory used by boot.

Since boot is independent of the operating system, it is possible for other
"boot" programs to be written for specialized
hardware, possibly nullifying need of an ISA-BIOS.


If your target machine doesn't have a BIOS, you can use the boot-nobios
utility. Its syntax and options are the same as
boot's.


Diagnostics:
If boot cannot succeed it prints:
BOOT ERROR:
message
--- cannot start operating system
where message can be one of:
no modules in image, check build file
The boot program was the only program in the boot image.
need 32-bit processor
Failed to detect a 32-bit CPU.
relocate, invalid BMCB
bmcb list invalid
The boot image is corrupt (Boot Module Control Block).
not enough memory
The system doesn't have enough memory to create startup tables.
run failed
Catch-all; should never happen.
If -v is specified, boot prints the following just before jumping to the
process manager:
boot modules:
list of subsequent modules in boot image
starting QNX...
Exit status:
The boot program does not exit in the normal sense. After the necessary setup
has been performed it transfers control to the
process manager (Proc) built into the boot image.
See also:
buildqnx, Proc
+-------------------------------------------------------
>───═══ Куть офф "Windows Clipboard" ═══───


Удачи. AuR/eliano.

... толерантность сия заканчивается там, где начинается моя задница (H. H.)

Aleksey Popov

unread,
Aug 27, 2006, 1:21:28 PM8/27/06
to
Vladimir Romanov пишет:

>
> Это понятно, только у меня QNX нету, потому и спрашиваю. Зачем мне
тогда надо?
> Дискеу раскапываю :)

Ну все фотоновские хелпы в формате html, так что смотреть их можно
практически везде, вот только в консоли QNX - практически никак :( .
Вытаскиваются из *.tar архивов с ftp.qnx.com/pub (/usr/help/***).
Удобно сделать общий html заголовок вместо *.toc файлов.
Удачи.

Sergey A. Cherukhin

unread,
Aug 28, 2006, 12:48:39 AM8/28/06
to
Hello, Aleksey!
You wrote to Vladimir Romanov on Sun, 27 Aug 2006 17:21:28 +0000 (UTC):

AP> Ну все фотоновские хелпы в формате html, так что смотреть их можно
AP> практически везде, вот только в консоли QNX - практически никак :( .
Для 4ки есть lynx, для 6ки - lynx и links.

With best regards, Sergey A. Cherukhin. E-mail: r...@ce.cctpu.edu.ru


AuR/eliano

unread,
Aug 28, 2006, 11:51:28 AM8/28/06
to
Приветствую, Sergey!

Понедельник 28 Августа 2006 08:48, ты писал(а) Aleksey Popov:

AP>> Hу все фотоновские хелпы в формате html, так что смотреть их
AP>> можно практически везде, вот только в консоли QNX - практически
AP>> никак :( .
SC> Для 4ки есть lynx, для 6ки - lynx и links.

А ещё можно смотреть в vedit plus (vp), единственно, он анперсанды и следующие
за ними коды не заменяет на нужные символы. А можно и самому чё-нить написать.
Я, например, в своё время склепал простенькую программку за пару часов, которая
убирает все html-вские тэги и выводит на консоль только текст. Основным
недостатком программки было (как и в vp) то, что амперсанды она не заменяла, но
меня это не беспокоило, поэтому я оставил так. Зато достоинством было то, что в
командной строке можно было ввести имена си-функций (меня, собственно,
волновали в первую очередь они), в т. ч. со стандартными масками типа *, ? и т.
д., и прога выводила через фильтр less все найденные функции (автоматом
подставляя при поиске расширение *.html). Hекоторые разделы справки были через
неё, правда, недоступны, зато по функциям смотреть порой было даже удобнее, чем
в фотоне. Hапример, по запросу "chelp Pt*" я мог вывести на один экран описание
всех функций этого класса, вместо того, чтобы рыскать по куче фотоновских
хэлпов, выискивая нужное среди кучи мусора типа "descriPTion".

Удачи. AuR/eliano.

... Hе писать я уже не могу. Это как наpкотик, и я на это уже запал.(А.Сорокин)

Aleksey Popov

unread,
Aug 28, 2006, 2:11:00 PM8/28/06
to
Sergey A. Cherukhin пишет:

> Для 4ки есть lynx, для 6ки - lynx и links.
Ну... Это слишком жирно чтоб раз в месяц-два посмотреть :). На
ftp.qnx.com/free была утилитка tmlv, вполне успешно под 4.24 показывала
хелпы, ходила внутри по ссылкам, помница даже как-то преобразовывала
*.toc файлы (при этом тащила с собой groff). Но под рутом в 4.25
насмерть падала с SIGSEGV :( (под обычным юзером вроде работала). Может,
уже и не падает - снеслась вместе с диском. Вообще use почти всегда
хватает, но иногда хочется про функции что нибудь посмотреть. Или про
pax :).
Удачи! Алексей.
0 new messages