⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makedev

📁 早期freebsd实现
💻
字号:
#!/bin/sh -##	@(#)MAKEDEV	8.1 (Berkeley) 6/9/93## Device "make" file.  Valid arguments:#	std	standard devices#	local	configuration specific devices# Tapes:#	tz*	SCSI tapes, DEC TK50 cartridge tape# Disks:#	rz*	SCSI disks#	vnd*	"file" pseudo-disks# Terminal multiplexors:#	dc*	4 channel serial interface (keyboard, mouse, modem, printer)#	scc*	82530 serial interface# Pseudo terminals:#	pty*	set of 16 master and slave pseudo terminals# Printers:# Call units:# Special purpose devices:#	NOTE: /dev/mouse should be a link to one of these for X windows.#	pm*	raw interface to PMAX graphics devices#	cfb*	raw interface to turbochannel PMAG-BA color frame buffer#	xcfb*	raw interface to maxine graphics devices#	mfb*	raw interface to mono graphics devicesPATH=/sbin:/bin/:/usr/bin:/usr/sbinumask 77for idocase $i instd)	mknod console		c 0 0	mknod drum		c 3 0	; chmod 640 drum ; chgrp kmem drum	mknod kmem		c 2 1	; chmod 640 kmem ; chgrp kmem kmem	mknod mem		c 2 0	; chmod 640 mem ; chgrp kmem mem	mknod null		c 2 2	; chmod 666 null	mknod zero              c 2 12  ; chmod 666 zero	mknod tty		c 1 0	; chmod 666 tty	mknod klog		c 6 0	; chmod 600 klog	mknod stdin		c 7 0	; chmod 666 stdin	mknod stdout		c 7 1	; chmod 666 stdout	mknod stderr		c 7 2	; chmod 666 stderr	mkdir fd > /dev/null 2>&1	(cd fd && eval `echo "" | awk ' BEGIN { \		for (i = 0; i < 64; i++) \			printf("mknod %d c 7 %d;", i, i)}'`)	chown -R bin.bin fd	chmod 555 fd	chmod 666 fd/*	;;tz*)	umask 0 ; unit=`expr $i : '..\(.*\)'`	case $i in	tz*) chr=10;;	esac	case $unit in	0|1|2|3|4|5|6)		unit0=`expr $unit \* 16`		unit1=`expr $unit \* 16 + 1`		unit2=`expr $unit \* 16 + 2`		unit3=`expr $unit \* 16 + 3`		mknod rmt$unit c $chr $unit0		mknod nrmt$unit c $chr $unit1		mknod rmth$unit c $chr $unit2		mknod nrmth$unit c $chr $unit3		chmod 666 rmt$unit nrmt$unit rmth$unit nrmth$unit		;;	*)		echo bad unit for tape in: $1		;;	esac	umask 77	;;rz*|vnd*)	umask 2 ; unit=`expr $i : '..\(.*\)'`	case $i in	rz*) name=rz; blk=0; chr=9;;	vnd*) name=vnd; blk=2; chr=11;;	esac	case $unit in	0|1|2|3|4|5|6)		mknod ${name}${unit}c	b $blk `expr $unit '*' 8 + 2`		mknod r${name}${unit}c	c $chr `expr $unit '*' 8 + 2`		if [ $name != vnd ]		then		mknod ${name}${unit}a	b $blk `expr $unit '*' 8 + 0`		mknod ${name}${unit}b	b $blk `expr $unit '*' 8 + 1`		mknod ${name}${unit}d	b $blk `expr $unit '*' 8 + 3`		mknod ${name}${unit}e	b $blk `expr $unit '*' 8 + 4`		mknod ${name}${unit}f	b $blk `expr $unit '*' 8 + 5`		mknod ${name}${unit}g	b $blk `expr $unit '*' 8 + 6`		mknod ${name}${unit}h	b $blk `expr $unit '*' 8 + 7`		mknod r${name}${unit}a	c $chr `expr $unit '*' 8 + 0`		mknod r${name}${unit}b	c $chr `expr $unit '*' 8 + 1`		mknod r${name}${unit}d	c $chr `expr $unit '*' 8 + 3`		mknod r${name}${unit}e	c $chr `expr $unit '*' 8 + 4`		mknod r${name}${unit}f	c $chr `expr $unit '*' 8 + 5`		mknod r${name}${unit}g	c $chr `expr $unit '*' 8 + 6`		mknod r${name}${unit}h	c $chr `expr $unit '*' 8 + 7`		fi		chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]		chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]		;;	*)		echo bad unit for disk in: $i		;;	esac	umask 77	;;dc*)	unit=`expr $i : 'dc\(.*\)'`	case $unit in	0)		mknod tty0 c 16 2		mknod tty1 c 16 3		;;	*)		echo bad unit for dc in: $i		;;	esac	;;scc*)	unit=`expr $i : 'scc\(.*\)'`	case $unit in	0)		mknod tty0 c 17 2		mknod tty1 c 17 3		;;	*)		echo bad unit for scc in: $i		;;	esac	;;pm*)	unit=`expr $i : 'pm\(.*\)'`	case $unit in	0)		mknod pm0 c 8 0		;;	*)		echo bad unit for pm in: $i		;;	esac	;;cfb*)	unit=`expr $i : 'cfb\(.*\)'`	case $unit in	0)		mknod cfb0 c 13 0		;;	*)		echo bad unit for cfb in: $i		;;	esac	;;xcfb*)	unit=`expr $i : 'xcfb\(.*\)'`	case $unit in	0)		mknod xcfb0 c 14 0		;;	*)		echo bad unit for xcfb in: $i		;;	esac	;;mfb*)	unit=`expr $i : 'mfb\(.*\)'`	case $unit in	0)		mknod mfb0 c 18 0		;;	*)		echo bad unit for mfb in: $i		;;	esac	;;pty*)	class=`expr $i : 'pty\(.*\)'`	case $class in	0) offset=0 name=p;;	1) offset=16 name=q;;	2) offset=32 name=r;;	3) offset=48 name=s;;# Note that telnetd, rlogind, and xterm (at least) only look at p-s.	4) offset=64 name=t;;	*) echo bad unit for pty in: $i;;	esac	case $class in	0|1|2|3|4)		umask 0		eval `echo $offset $name | awk ' { b=$1; n=$2 } END {			for (i = 0; i < 16; i++)				printf("mknod tty%s%x c 4 %d; \					mknod pty%s%x c 5 %d; ", \					n, i, b+i, n, i, b+i); }'`		umask 77		if [ $class = 1 ]; then			mv ttyqf ttyv0; mv ptyqf ptyv0		fi		;;	esac	;;local)	umask 0	sh MAKEDEV.local	;;*)	echo $i: unknown device	;;esacdone

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -