. , Fsys.

. , , . , ( Reply()), , . - , , .

. , , , , . .

, , , / . , :

-

, . , , , . " " "".

QNX , .. , . - .

, 8 . , .

, , . , " " "".

, / .

QNX . .

- , . , (inodes), , (.. ).

. , , , . , , (, ), . , , . , chkfsys.

, :

, "" . (/.inodes), , , , chkfsys .

chkfsys.

- . .

QNX - . - , QNX 512 , . , ( 1).

- , POSIX , open(), read(), write() close(). - , , QNX - , .

QNX . . , .

QNX -, . , . .

"", , . :
:
1 DOS (12- FAT)
4 DOS (16- FAT; <32M)
5 DOS
6 DOS 4.0 (16- FAT; >=32M)
7 OS/2 HPFS
7 QNX 2 ( 1988)
8 QNX 1.x 2.x ("qny")
9 QNX 1.x 2.x ("qnz")
11 DOS 32- FAT; 2047G
12 , 11, LBA Int 13h
14 , 6, LBA Int 13h
15 , 5, LBA Int 13h
77 QNX POSIX
78 QNX POSIX ()
79 QNX POSIX ()
99 UNIX

QNX 4.x , 77 QNX , 78 QNX , 79 . QNX , 78 79 . , fdisk.

, QNX ( fdisk) , .

fdisk , .

QNX - , :


fig: i/twodisks.gif


. DOS, QNX UNIX . DOS QNX .



-

- , - ( " /"). , , - , . mount , - .

, , Western Digital, . DOS, QNX UNIX. DOS QNX.

- /dev/hd0 /dev/hd1 , .

mount, - . :

mount -p /dev/hd0 -p /dev/hd1

- :
: - :
DOS hd0 /dev/hd0t4
QNX hd0 /dev/hd0t77
UNIX hd0 /dev/hd0t99
DOS hd1 /dev/hd1t4
QNX hd1 /dev/hd1t77

, tn , . , DOS t4, UNIX - t99 ..

QNX - . mount - , . :

mount /dev/hd0t77 /

/ , - hd0t77.


Note: , - QNX 4.x ( /dev/hd0t77), - , (, /dev/hd0). - , "corrupt filesystem" ( ).

, umount. , , QNX:

umount /dev/hd0t77

, , .

QNX

QNX :

dinit.


fig: i/qnxpart.gif


QNX .


. , BIOS . (, ), .

, . :

/.boot /.altboot , QNX.

QNX , /.boot. /.altboot , , /.altboot.

, QNX , /.bitmap. , , . . 1, .

, :

DOS

QNX / , -. DOS (Dosfsys). Dosfsys /dos DOS QNX "" .

Dosfsys DOS, DOS QNX. DOS - . /, open(), close(), read() write() DOS , QNX. , QNX DOS, :

cp /usr/luc/file.dat /dos/c/file.dat

, /dos/c - DOS C. cp - , DOS. (, cd, ls mkdir).

DOS QNX, mkfifo() link(), Dosfsys (.. errno).

Dosfsys , . . , , Dosfsys QNX DOS.

CD-ROM

CD-ROM, Iso9660fsys, CD-ROM, CD-ROM, POSIX. CD-ROM .

Iso9660fsys ISO 9660, Rock Ridge. - DOS Windows. , Iso9660fsys .

Efsys.* , , -. , ( PC-Card), , .

Efsys.* . Efsys.* , Efsys.* . :

. , ROM .

- . . , . SRAM .

Efsys.* , ( - / ) , , , . , , , ( ).

, ( " "). Efsys.* , . . mkffs .

Efsys.* , , . .

, mkffs, bpe. , .

POSIX, root, rwx. chgrp, chmod chown .

.

Efsys.*, /dev. Efsys.* /dev/skt1 /dev/skt2. , .

, , ( "" ). Efsys.* /dev/sktXimgY, X - (socket), Y - .

NFS

Sun Microsystems, NFS (Network File System - ) TCP/IP , DOS UNIX . QNX , NFS.


Note: QNX . NFS -QNX NFS , NFS- QNX.

NFS - - . , (ls, cp mv) , .


Note: QNX 4 NFS Socket, TCP/IP. , "" , Socklet, , NFS.

SMB

SMBfsys SMB (Server Message Block) , , Windows NT, Windows 95, Windows for Workgroups, LAN Manager, Samba. SMBfsys QNX- .

SMBfsys , NetBIOS TCP/IP, NetBEUI. , , TCP/IP , QNX-, . , SMBfsys , .

:

QNX (Dev) . / , /dev. , QNX :

/dev/con1

QNX , open(), close(), read() write(). QNX () , .

. Dev ( termios), . / stty; tcgetattr() tcsetattr().

termios , :

, . .
: :
dev_read() read() tcsetattr()
dev_arm()
tcdrain()
Break tcsendbreak()
tcdropline()
dev_insert_chars()
open() fcntl() (O_NONBLOCK mode)

ICANON termios. , . , "" - , (CR), - . - edited. canonical () cooked ().

. (Shell).

, Dev , termios.
Dev : :
LEFT
RIGHT
HOME
END
ERASE
DEL
KILL
UP
DOWN
INS

. QNX .

QNX , , . stty. , VT100 (/dev/ser1), terminfo /dev/ser1:

stty term=vt100 </dev/ser1

, QNX qtalk, :

stty term=qnx </dev/ser1

ICANON , , ("", raw) . , QNX-.

, .

, . , , termios: MIN TIME. dev_read(). , TIMEOUT, . , read() TIMEOUT 0.

n , , :
MINTIMETIMEOUT :
000 , ( n )
M00 n , , , M
0T0 n , T x .1 .
MT0 n , M , T x .1 .
00t .
M0 t n , M t x .1 .
0Tt .
MTt n , M , t x .1 , T x .1 .

QNX.

Figure showing a typical QNX device subsystem

(Dev) . . Dev, , .


Note: , Dev , .

. " - ". .

, Dev , . Dev - .

Dev ; , . Dev , , "" ( , ). Dev (write-behind) . , Dev .

Dev . .

; , 64K. , "" , , .

. Dev , , "" ..

, Dev . Dev , . , QNX, .

, QNX, .

ioctl . ioctl Dev. ioctl QNX qnx_ioctl().

QNX

Dev.con. , - .

QNX . Dev.con / Dev, /dev/con1, /dev/con2 .. , "" .

, , . "" , .

,

QNX ( ), , . console_open(). , :
: :
console_read()
console_write()
(, , , ..) console_arm()
console_size()
console_active()

QNX QNX. . Dev.con , .

Dev.ser. ; /dev/ser1, /dev/ser2 ..

Dev.ser , , - - . , ls:

ls /dev/ser*

Dev.ser /. (""). . , Dev "" . .

Dev.par. Dev.par , , . , , ls:

ls /dev/par*

Dev.par , . Dev.par. , .

Dev.par /, . RECEIVE-, "" Dev. , Dev.par - ( ), , . - , , .

,