字符设备基础
- 格式:doc
- 大小:48.00 KB
- 文档页数:7
AIX操作系统概述2、两个或多个命令可以在同一行输入,中间以分号;隔开。
3、命令作业放在后台执行,在命令最后加上符号&。
7、创建命令别名时用alias Name=String,例如$alias dir="/usr/bin/ls -alF"。
使用AIX系统6、目录换名mv SourceDirectory TargetDirectory7、目录拷贝cp SourceDirectory TargetDirectory五、文件管理1、文件拷贝cp SourceFile TargetFilecp SourceFile TargetDirectory2、文件删除rm File3、文件链接ln SourceFile TargetFile4、文件移动/换名mv SourceFile TargetFile or TargetDirectory5、显示文件内容morepgcatheadtail6、文件查找find / -name .profile -printfind . -perm 0600 -printfind . -ctime 1 -printfind . -inum 2145 -printfind . -user abc -print六、改变文件/目录属性每一个文件或目录都有一个属主、一个组名和一组存取权限、访问时间等等。
1、改变文件或目录的最近访问时间touch2、改变文件或目录的属主chown3、改变文件或目录的属组chgrp4、改变文件或目录的存取权chmodchmod g+w Filechmod u+r Filechmod u=rwx Filechmod 755 File八、进程控制1、查询进程状态psps -aps -efps -lps -u uid2、终止进程的执行kill 19160kill -9 191603、对进程的控制nohupnicesleepwait4、在指定的时间运行程序atbatchcron /usr/bin/crontabcrontab和/var/spool/cron/crontabs/ 九、退出系统和关机exitCtr + dlogoutshutdown [ -option ] [ +time message ]当shutdown不带任何参数时,机器会向连在其上的所有终端发出一条关机信息,接着在一分钟后关闭所有终端,杀掉所有在系统上运行的进程,卸除所有文件系统,最后关闭系统。
1. 键盘键盘(Keyboard)是最常见的输⼊设备。
标准键盘上的按键排列可以分为三个区域:字符键区,功能键区,数字键区(数字⼩键盘)。
(l)、字符键区由于键盘的前⾝是英⽂打字机,键盘排列已经标准化。
因此,计算机的键盘最初就全盘采⽤了英⽂打字机的QWERTY排列⽅式。
(2)、功能键区在键盘的最上⼀排,主要包括F1~F12这12个功能键,通常⼈们⼜称它们为热键,因为⽤户可以根据⾃已的需要来定义它们的功能,以减少重复击键的次数,⽅便操作。
(3)、数字键区⼜称⼩键盘区。
安排在整个键盘的右都。
它原来是为专门从事数字录⼊的⼯作⼈员提供⽅便的。
计算机键盘中⼏种键位的功能详细列表如下: ·Enter键:回车键,将数据或命令送⼊计算机时即按此键。
·Space bar键:空格键,它是在字符键区的中下⽅的长条键。
因为使⽤频繁,它的形状和位置使左右⼿都很容易打着。
·Backspace键:退格键,按下它可使光标回退⼀格。
常⽤于删除当前⾏中的错误字符。
·Shift键:换档键。
由于整个键盘上有30个双字符键,即每个键⾯上标有两个字符,并且英⽂字母还分⼤⼩写,因此通过此键可以转换。
在计算机刚启动时,每个双符键都处于下⾯的字符和⼩写英⽂字母的状态。
·Ctrl键:控制键。
⼀般不单独使⽤,通常和其它键组合成复合控制键。
ESC:强⾏退出键。
在菜单命令中,它常是退出当前环境、返回原菜单的按键。
·Alt键:交替换档键。
它与其它键组合成特殊功能键或复合控制键。
·Tab键:制表定位键。
⼀般按下此键可使光标移动8个字符的距离。
·光标移动键:⽤箭头↑、↓、←、→分别表⽰上、下、左、右移动光标。
·屏幕翻页键:PgUP(Page Up)翻回上⼀页;PgDn(Page Down)下翻⼀页。
·打印屏幕键: Prtsc(Print Screen),把当前屏幕显⽰的内容全部打印出来。
计算机软硬件基础知识及网络安全常识1.计算机系统组成2.处理机3.基本输入出设备4.存储系统5.操作系统的中断控制、进程管理、线程管理中断控制6.处理机管理,存储管理,设备管理,文件管理,作业管理处理机管理存储管理设备管理文件管理作业管理7.网络操作系统和嵌入式操作系统基础知识网络操作系统嵌入式操作系统8.操作系统的配置9.数据库基本原理1.数据库管理系统的功能和特征2.数据库语言与编程3.中间件基础知识4.网络分类,体系结构与网络协议网络分类按通信距离分-广域网、局域网、城域网按信息交换方式分-电路交换网、分组交换网、综合交换网按网络拓扑结构分-星形、树形、环形、总线型按通信介质分-双绞线网、同轴电缆网、光纤网、卫星网按传输带宽分-基带网、宽带网按使用范围分-公用网、专用网按速率分-高速网、中速网、低速网按通信传播方式分-广播式、点到点式体系结构采用ISO/OSI网络体系结构,OSI参考模型从低到高为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;1~3层:负责通信功能,为通信子层5~7层:资源子网层网络协议7.网络管理8.信息安全基本概念计算机安全:指计算机资产的安全,要保证这些计算机资产不受自然和人为的有害因素的威胁和危害;计算机资产由系统资源和信息资源组成信息安全基本要素:机密性、完整性、可用性、可控性、可审查性计算机安全等级:技术安全性、管理安全性、政策法律安全性物理层:采用防窃听技术数据链路层:采用通信保密机进行加密和解密网络层:采用防火墙技术传输层:采用SSL安全套接安全技术应用层:身份认证、访问控制、数据加密安全性攻击包括:(1)被动攻击:对信息的保密性进行攻击,通过窃听信息加以分析,得到情报,但不修改信息内容,包括窃听、电磁/射频截获、业务流分析(2)主动攻击:攻击信息来源的真实性、信息传输的真实性和系统服务的可用性,有意对信息进行修改、删除,包括截获/修改、伪装、重放、拒绝服务、非法使用、特洛伊木马、陷门安全服务:认证、数据完整性、数据保密性、抗抵赖性、访问控制安全机制:加密机制、数据签名机制、访问控制机制、数据完整性机制、认证机制、通信业务填充机制、路由控制机制、公证机制9.防火墙定义:建立在内外部网络边界上的过滤封锁机制作用:防止不希望的、未经授权的通信进出被保护的内部网络,通过边界强化内部网络的安全政策类型:10.入侵检测定义:从计算机网络或计算机系统中的若干关键点搜集信息并对其进行分析,从中发现网络或系统中是否存在违反安全策略的行为和遭到袭击的迹象的一种机制。
考研计算机学科专业基础综合-7-2(总分:150.00,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:40,分数:80.00)1.在OSI参考模型中,会话层使用( )层的服务来完成自己的功能。
(分数:2.00)A.物理层B.数据链路层C.网络层D.传输层√解析:在OSI参考模型中,每一层使用它下层的服务来完成自己的功能,在会话层下面是传输层,所以会话层采用传输层的服务来完成自己的功能。
2.如果二叉树T2是由有序树T1转换而来的二叉树,那么T1中结点的先序就是T2中结点的( )。
(分数:2.00)A.先序√B.中序C.后序D.层次序解析:一般树中一个结点的孩子是无序的,所谓有序树是指树中任一结点的孩子是有序的。
由树转换成二叉树的过程可知本题答案为A。
3.某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。
现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是( )。
(分数:2.00)A.1、15B.2、15C.1、30D.2、30 √解析:根据题意可知,该机主存由4K×8位ROM和60K×8位RAM组成;又现有ROM芯片为2K×8位,故ROM需进行字扩展,用2片2K×8位ROM串联组成4K×8位ROM;RAM芯片为4K×4位,故RAM需进行位字扩展,用2片4K×4位RAM并联构成4K×8位RAM,再用15片4K×8位RAM串联组成60K×8位RAM,即共需2×15=30片4K×4位的RAM芯片。
4.某机字长32位,其主存储器容量为64MB,按字节编址,则该计算机的主存地址寄存器和主存数据寄存器的位数分别为( )。
(分数:2.00)A.26,32B.26,8 √C.22,32D.无法确定解析:主存按字节编址,64MB=226×8位,故主存地址寄存器为26位,主存数据寄存器为8位。
字符设备的注册:1》杂项设备主设备号:10需要一个核心结构体变量来描述这个设备。
struct miscdevice dev_misc = {.minor = 次设备号/255.name = 设备节点名.f_ops = 操作函数集};次设备为255时,自动分配一个次设备号,其它值则是分配一个固定的设备号。
杂项设备注册时自动生成设备节点。
.name 就是设备节点的名字。
基础函数不用管,只看注册方面:/*使用杂项设备方式注册分设备,主设备号固定为10 设备名:miscstruct miscdevice {int minor; //次设备号const char *name; //设备节点名const struct file_operations *fops;//操作函数集指针};*//*这是gcc编译器对C语言的语法扩充*/static struct miscdevice led_dev = { .fops = &led_fops,.name = "myled",.minor = 255, //表示自动分配};static int myled_init(void){/*注册:往登记表中添加设备*//*使用杂项设备的注册方式*/int ret;ret = misc_register(&led_dev);if(ret < 0){printk("register error\n");return -1;}//物理地址到虚拟地址的映射gpbbase = ioremap(0x56000010,16);printk("led_driver register done\n");return 0;}static void myled_exit(void){/*注销卸载*/misc_deregister(&led_dev);iounmap(gpbbase);}2》经典注册方式注册函数:int register_chrdev(unsigned int major,const char * name,const struct file_operations * fops)向内核注册一类字符设备:major :主设备号name : 设备名fops :操作函数集返回值为0表示让内核自动分配一个没使用的设备号,执行make成功,则把分配的的设备号返回,失败则返回负值。
Linux 字符设备基础字符设备驱动程序在系统中的位置操作系统内核需要访问两类主要设备,简单的字符设备,如打印机,键盘等;块设备,如软盘、硬盘等。
与此对应,有两类设备驱动程序。
分别称为字符设备驱动程序和块设备驱动程序。
两者的主要差异是:与字符设备有关的系统调用几乎直接和驱动程序的内部功能结合在一起。
而读写块设备则主要和快速缓冲存储区打交道。
只有需要完成实际的输入/输出时,才用到块设备驱动程序。
见下图:Linux 设备驱动程序的主要功能有:● 对设备进行初始化;● 使设备投入运行和退出服务;● 从设备接收数据并将它们送到内核;● 将数据从内核送到设备;●检测和处理设备出现的错误。
当引导系统时,内核调用每一个驱动程序的初始化函数。
它的任务之一是将这一设备驱动程序使用的主设备号通知内核。
同时,初始化函数还将驱动程序中的函数地址结构的指针送给内核。
内核中有两X 表。
一X 表用于字符设备驱动程序,另一X 用于块设备驱动程序。
这两X 表用来保存指向file_operations 结构的指针,设备驱动程序内部的函数地址就保存在这一结构中。
内核用主设备号作为索引访问file_operations结构,因而能访问驱动程序内的子程序。
从开机到驱动程序的载入系统启动过程中可能出现几种不同的方式检测设备硬件。
首先机器硬件启动时BIOS会检测一部分必要的设备,如内存、显示器、键盘和硬盘等等。
机器会把检测到的信息存放在特定的位置,如CMOS数据区。
而另外某些设备会由设备驱动程序进行检测。
1 开机2 引导部分(linux/config.h,arch/i386/boot/bootsect.S)3 实模式下的系统初始化(arch/i386/boot/setup.S)4 保护模式下的核心初始化5 启动核心(init/main.c)init函数中函数调用关系如下:main.c init()filesystems.c sys_setup()genhd.c device_setup()mem.c chr_dev_init()至此,驱动程序驻入内存。
设备驱动程序基本数据结构:struct device_struct系统启动过程中要登记的块设备和字符设备管理表的定义在文件fs/devices.c中:struct device_struct {const char * name;struct file_operations * fops;};static struct device_struct chrdevs[MAX_CHRDEV];static struct device_struct blkdevs[MAX_BLKDEV];其实块设备表和字符设备表使用了相同的数据结构。
在某些系统中,这些设备表也称作设备开关表,不同的是它们直接定义了一组函数指针进行对设备的管理。
而这里系统用文件操作(file_operations)代替了那组开关。
文件操作是文件系统与设备驱动程序之间的接口,系统特殊文件在建立的时候并没有把两者对应起来,只是把设备的缺省文件结构和i节点结构赋给设备文件,而真正的对应定义在系统启动之后,当设备被打开时时才进行的。
操作blkdev_open和chrdev_open定义在文件devices.c中,它们的基本功能是当设备文件初次打开时,根据该文件的i节点信息找到设备真正的文件操作接口,然后更新原来的设备表项;最后再调用该设备的open操作。
/include/linux/major.h中定义了设备表的长度。
设备表中不同的表项表示不同种类的设备,也就是说,LINUX系统分别支持各128种不同的块设备和字符设备。
Struct file_operations操作系统将一个字符设备当作文件来处理,内核通过file_operations结构来访问driver 的功能。
这也是linux的OO思想的体现之一。
file_operations的定义在文件<linux/fs.h>中。
每个字符设备都有一个file_operatioins结构。
这个结构指向一组操作函数(open,read…). 每个函数的定义由driver提供。
当然,有些标准操作某些设备并不支持,这时,file_operatons 结构中对应表项为NULL(.随着linux内核的不断升级,file_operatioins结构也不断变大。
最新的版本中,甚至函数原型也发生了一些变化。
当然,新版本总会向下兼容的。
)下面是2.0.35中的file_operations结构定义:struct file_operations {int (*lseek) (struct inode *, struct file *, off_t, int);int (*read) (struct inode *, struct file *, char *, int);int (*write) (struct inode *, struct file *, const char *, int);int (*readdir) (struct inode *, struct file *, void *, filldir_t);int (*select) (struct inode *, struct file *, int, select_table *);int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);int (*mmap) (struct inode *, struct file *, struct vm_area_struct *);int (*open) (struct inode *, struct file *);void (*release) (struct inode *, struct file *);int (*fsync) (struct inode *, struct file *);int (*fasync) (struct inode *, struct file *, int);int (*check_media_change) (kdev_t dev);int (*revalidate) (kdev_t dev);};Struct inodefile_operations中的大多数操作都将inode做为第一个参数。
Linux的VFS是对物理文件系统,物理设备的一个封装。
Inode结构就是VFS与下层模块对话的重要结构。
文件系统由子目录和文件构成。
每个子目录或文件只能由唯一的inode描述。
每个设备也是用inode来描述的。
inode 是LINUX管理文件系统的最基本单位,也是文件系统连接任何子目录、任何文件,设备的桥梁。
struct inode {kdev_t i_dev; /* 文件所在设备的设备号,第一个IDE硬盘为0x0301 */ unsigned long i_ino; /* 外存inode的节点号,(i_dev,i_ino)在VFS中是唯一的 */umode_t i_mode;/* 表示文件类型以及存取权限 */nlink_t i_nlink;/* 连接到该文件的link数 */uid_t i_uid; /* 用户标识号 */gid_t i_gid; /* 用户组标识号 */kdev_t i_rdev;/* 根设备的设备号 */off_t i_size;/* 文件长度 */time_t i_atime;/* 文件访问时间 */time_t i_mtime; /* 文件修改时间 */time_t i_ctime; /* 文件创建时间 */unsigned long i_blksize;/* 以字节为单位的块大小,一般为1024字节 */ unsigned long i_blocks; /* 文件块数 */unsigned long i_version;unsigned long i_nrpages;/* 文件在内存中所占页数 */struct semaphore i_sem; /* 信号量 */struct inode_operations *i_op;/* 指向一组针对该文件的操作函数,见fs.h */struct super_block *i_sb; /* 指向内存中VFS的超级块 */struct wait_queue *i_wait; /* 在该文件上的等待队列 */struct file_lock *i_flock;struct vm_area_struct *i_mmap;struct page *i_pages; /* 由文件占用页面构成的单向链,通过它可访问内存中的文件数据 */ struct dquot *i_dquot[MAXQUOTAS];struct inode *i_next, *i_prev; /* inode资源管理中使用的链表指针 */ struct inode *i_hash_next, *i_hash_prev; /* inodecache的链表指针 */ struct inode *i_bound_to, *i_bound_by;struct inode *i_mount; /* 指向下挂文件系统的inode的根目录 */unsigned long i_count; /* 引用记数,0表示是空闲inode */unsigned short i_flags;unsigned short i_writecount;unsigned char i_lock; /* 对inode加锁标志 */unsigned char i_dirt;unsigned char i_pipe;unsigned char i_sock;unsigned char i_seek;unsigned char i_update;unsigned char i_condemned;union { /* 各类文件系统inode的特定信息 */ ............struct ext2_inode_info ext2_i;............} u;};对于设备管理而言,主要用到的是inode结构的kdev I_rdev字段。
Struct kdev_t文件系统中,字符设备是通过名字来访问的。
通常字符设备都在/dev下。
在系统内部,每个字符设备都用设备号来表示。
设备号由主,副设备号来表示。
主设备号表示与设备对应的设备驱动程序。
如:设备/dev/zero 和/dev/null都用1作为主设备号,表示他们使用相同的设备驱动程序。