<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://doku.sergev.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://doku.sergev.org/feed.php">
        <title>Serge.V Lumber Barn unix-history:unix-v6:usr:sys</title>
        <description></description>
        <link>https://doku.sergev.org/</link>
        <image rdf:resource="https://doku.sergev.org/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-07T07:23:33+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/buf.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/conf.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/file.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/filsys.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/ino.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/inode.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/param.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/proc.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/reg.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/run?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/seg.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/systm.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/text.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/tty.h?rev=1153924496&amp;do=diff"/>
                <rdf:li rdf:resource="https://doku.sergev.org/unix-history/unix-v6/usr/sys/user.h?rev=1153924496&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://doku.sergev.org/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Serge.V Lumber Barn</title>
        <link>https://doku.sergev.org/</link>
        <url>https://doku.sergev.org/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/buf.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:buf.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/buf.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/buf.h


/*
 * Each buffer in the pool is usually doubly linked into 2 lists:
 * the device with which it is currently associated (always)
 * and also on a list of blocks available for allocation
 * for other use (usually).
 * The latter list is kept in last-used order, and the two
 * lists are doubly linked to make it easy to remove
 * a buffer from one list when it was found by
 * looking through the other.
 * A buffer is on the available list, and is liable
 * to be reassigned…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/conf.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:conf.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/conf.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/conf.h


/*
 * Used to dissect integer device code
 * into major (driver designation) and
 * minor (driver parameter) parts.
 */
struct
{
	char	d_minor;
	char	d_major;
};

/*
 * Declaration of block device
 * switch. Each entry (row) is
 * the only link between the
 * main unix code and the driver.
 * The initialization of the
 * device switches is in the
 * file conf.c.
 */
struct	bdevsw
{
	int	(*d_open)();
	int	(*d_close)();
	int	(*d_strategy)();
	int	*d_tab;
} bdevsw[];

/*
 …</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/file.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:file.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/file.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/file.h


/*
 * One file structure is allocated
 * for each open/creat/pipe call.
 * Main use is to hold the read/write
 * pointer associated with each open
 * file.
 */
struct	file
{
	char	f_flag;
	char	f_count;	/* reference count */
	int	f_inode;	/* pointer to inode structure */
	char	*f_offset[2];	/* read/write character pointer */
} file[NFILE];

/* flags */
#define	FREAD	01
#define	FWRITE	02
#define	FPIPE	04</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/filsys.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:filsys.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/filsys.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/filsys.h


/*
 * Definition of the unix super block.
 * The root super block is allocated and
 * read in iinit/alloc.c. Subsequently
 * a super block is allocated and read
 * with each mount (smount/sys3.c) and
 * released with unmount (sumount/sys3.c).
 * A disk block is ripped off for storage.
 * See alloc.c for general alloc/free
 * routines for free list and I list.
 */
struct	filsys
{
	int	s_isize;	/* size in blocks of I list */
	int	s_fsize;	/* size in blocks of entire vol…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/ino.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:ino.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/ino.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/ino.h


/*
 * Inode structure as it appears on
 * the disk. Not used by the system,
 * but by things like check, df, dump.
 */
struct	inode
{
	int	i_mode;
	char	i_nlink;
	char	i_uid;
	char	i_gid;
	char	i_size0;
	char	*i_size1;
	int	i_addr[8];
	int	i_atime[2];
	int	i_mtime[2];
};

/* modes */
#define	IALLOC	0100000
#define	IFMT	060000
#define	IFDIR	040000
#define	IFCHR	020000
#define	IFBLK	060000
#define	ILARG	010000
#define	ISUID	04000
#define	ISGID	02000
#define	ISVTX	01000
#de…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/inode.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:inode.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/inode.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/inode.h


/*
 * The I node is the focus of all
 * file activity in unix. There is a unique
 * inode allocated for each active file,
 * each current directory, each mounted-on
 * file, text file, and the root. An inode is &#039;named&#039;
 * by its dev/inumber pair. (iget/iget.c)
 * Data, from mode on, is read in
 * from permanent inode on volume.
 */
struct	inode
{
	char	i_flag;
	char	i_count;	/* reference count */
	int	i_dev;		/* device where inode resides */
	int	i_number;	/* i number,…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/param.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:param.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/param.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/param.h


/*
 * tunable variables
 */

#define	NBUF	15		/* size of buffer cache */
#define	NINODE	100		/* number of in core inodes */
#define	NFILE	100		/* number of in core file structures */
#define	NMOUNT	5		/* number of mountable file systems */
#define	NEXEC	3		/* number of simultaneous exec&#039;s */
#define	MAXMEM	(64*32)		/* max core per process - first # is Kw */
#define	SSIZE	20		/* initial stack size (*64 bytes) */
#define	SINCR	20		/* increment of stack (*64 bytes) */
#de…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/proc.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:proc.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/proc.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/proc.h


/*
 * One structure allocated per active
 * process. It contains all data needed
 * about the process while the
 * process may be swapped out.
 * Other per process data (user.h)
 * is swapped with the process.
 */
struct	proc
{
	char	p_stat;
	char	p_flag;
	char	p_pri;		/* priority, negative is high */
	char	p_sig;		/* signal number sent to this process */
	char	p_uid;		/* user id, used to direct tty signals */
	char	p_time;		/* resident time for scheduling */
	char	p_cp…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/reg.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:reg.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/reg.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/reg.h


/*
 * Location of the users&#039; stored
 * registers relative to R0.
 * Usage is u.u_ar0[XX].
 */
#define	R0	(0)
#define	R1	(-2)
#define	R2	(-9)
#define	R3	(-8)
#define	R4	(-7)
#define	R5	(-6)
#define	R6	(-3)
#define	R7	(1)
#define	RPS	(2)

#define	TBIT	020		/* PS trace bit */</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/run?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:run</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/run?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/run


chdir ken
cc -c -O *.c
ar r ../lib1
rm *.o

chdir ../dmr
cc -c -O *.c
ar r ../lib2
rm *.o

chdir ../conf
as m40.s
mv a.out m40.o
: as m45.s
: mv a.out m45.o
: cc sysfix.c
: mv a.out sysfix
cc mkconf.c
mv a.out mkconf

mkconf
rk
tm
tc
done

cc -c c.c
as l.s
ld -x a.out m40.o c.o ../lib1 ../lib2
: as data.s l.s
: ld -x -r -d a.out m45.o c.o ../lib1 ../lib2
: nm -ug
: sysfix a.out x
: mv x a.out
cmp a.out /rkunix
cp a.out /rkunix

mkconf
rp
tm
tc
done

cc -c c.c
as l.s
ld -x …</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/seg.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:seg.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/seg.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/seg.h


/*
 * KT-11 addresses and bits.
 */

#define	UISD	0177600		/* first user I-space descriptor register */
#define	UISA	0177640		/* first user I-space address register */
#define	UDSA	0177660		/* first user D-space address register */
#define	RO	02		/* access abilities */
#define	WO	04
#define	RW	06
#define	ED	010		/* extend direction */

/*
 * structure used to address
 * a sequence of integers.
 */
struct
{
	int	r[];
};
int	*ka6;		/* 11/40 KISA6; 11/45 KDSA6 */

/*
 * add…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/systm.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:systm.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/systm.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/systm.h


/*
 * Random set of variables
 * used by more than one
 * routine.
 */
char	canonb[CANBSIZ];	/* buffer for erase and kill (#@) */
int	coremap[CMAPSIZ];	/* space for core allocation */
int	swapmap[SMAPSIZ];	/* space for swap allocation */
int	*rootdir;		/* pointer to inode of root directory */
int	cputype;		/* type of cpu =40, 45, or 70 */
int	execnt;			/* number of processes in exec */
int	lbolt;			/* time of day in 60th not in time */
int	time[2];		/* time in sec from…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/text.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:text.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/text.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/text.h


/*
 * Text structure.
 * One allocated per pure
 * procedure on swap device.
 * Manipulated by text.c
 */
struct text
{
	int	x_daddr;	/* disk address of segment */
	int	x_caddr;	/* core address, if loaded */
	int	x_size;		/* size (*64) */
	int	*x_iptr;	/* inode of prototype */
	char	x_count;	/* reference count */
	char	x_ccount;	/* number of loaded references */
} text[NTEXT];</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/tty.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:tty.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/tty.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/tty.h


/*
 * A clist structure is the head
 * of a linked list queue of characters.
 * The characters are stored in 4-word
 * blocks containing a link and 6 characters.
 * The routines getc and putc (m45.s or m40.s)
 * manipulate these structures.
 */
struct clist
{
	int	c_cc;		/* character count */
	int	c_cf;		/* pointer to first block */
	int	c_cl;		/* pointer to last block */
};

/*
 * A tty structure is needed for
 * each UNIX character device that
 * is used for normal ter…</description>
    </item>
    <item rdf:about="https://doku.sergev.org/unix-history/unix-v6/usr/sys/user.h?rev=1153924496&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2006-07-26T14:34:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unix-history:unix-v6:usr:sys:user.h</title>
        <link>https://doku.sergev.org/unix-history/unix-v6/usr/sys/user.h?rev=1153924496&amp;do=diff</link>
        <description>Unix V6 /usr/sys/user.h


/*
 * The user structure.
 * One allocated per process.
 * Contains all per process data
 * that doesn&#039;t need to be referenced
 * while the process is swapped.
 * The user block is USIZE*64 bytes
 * long; resides at virtual kernel
 * loc 140000; contains the system
 * stack per user; is cross referenced
 * with the proc structure for the
 * same process.
 */
struct user
{
	int	u_rsav[2];		/* save r5,r6 when exchanging stacks */
	int	u_fsav[25];		/* save fp registers */
…</description>
    </item>
</rdf:RDF>
