读《嵌入式linux操作系统原理与应用》所获

1.VFS——虚拟文件系统,是文件系统对外的接口

2.cache——高速缓冲存储器

3.linux的每个文件都是由 i 节点的结构体表示,i 节点包含对文件的描述:文件类型、访问权限、属主、时间戳、大小、指向数据块的指针。

4.通常PC使用的文件系统是FAT16,ext2是GUN/linux系统中标准的文件系统

5.交换分区swap一般为内存的一半

6./etc/rc.d是存放linux启动和关闭时要用到的脚本,/etc/rc.d/init是存放所以linux服务默认的启动脚本
  /lost+found 一般是空的,系统有异常时,把遗失片段放在这
  /mnt 软硬盘挂载点
  /proc放系统核心与执行程序所需的信息,不占磁盘内存
 /bin是放用户使用的执行文件
 /sbin是放系统管理员管理程序,如init进程
 分析/usr:很重要的目录,存放很多应用程序和文件,相当于windows的program files目录
       /usr/src:内核源代码默认放置位置

7.shell是命令语言解释器

8.对于chmod ?file
   ?:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行

9.shell变量
常见预定义变量:

$0:保存当前程序或脚本的名称
$*:保存传递给脚本或进程的所有参数
$$:当前进程给脚本的PID号
$!:后台运行的最后一个进程的PID号
$?:用于返回上一条命令是否成功执行。如果成功执行,将返回数字0,否则返回非零数字(通常情况下都返回数字1)。
$#:用于保存脚本的参数个数

10.内核启动init后,设定运行等级,之后执行第一个用户层文件是/etc/rd.d/rc.sysinit脚本程序,它的工作非常多,包括设置PATH、设定网络配置,启动交换分区swap、设定/proc等

11.SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。

12.有时间好好尝试GDB操作

13.现在linux上的软件开发一般都是用autotools来制作Makefile的

14.Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

15.系统调用和API
linux将程序的运行空间分为内核空间和用户空间(用户态和内核态)它们运行在不同的级别,在逻辑上相互隔离,用户进程一般不允许访问内核数据,也无法使用内核函数。
操作系统给用户提供了两个接口,用户编程接口API和系统调用。API是利用这些操作命令来组织和控制任务的执行或管理计算机系统。系统调用是操作系统提供给用户程序访问内核的接口,用户使用系统调用去请求操作系统提供服务。API通过系统调用访问内核空间。一般框架:

16.创建设备节点:mknod /dev/ttyS0 c 4 64

17.程序是静止的,进程的动态的。

18.一个进程的正常终止有3种:(1)mian()(2)exit()函数(3)调用_exit()或_Exit()函数

19.如果一个父进程终止,而它的子进程还存在(这些子进程或者仍在运行,或已经僵尸进程了),则这些子进程的父进程改为init进程。init进程通常程序文件是“/sbin/init”,在系统启动时负责启动各种系统服务,之后就负责清理子进程,只要有子进程终止,init就会调用wait函数去清理它。

20.Zombie进程:任何进程在刚终止时都是僵尸进程(一个进程终止,但是它的父进程尚未调用wait或waitpid对它进行清理,这个进程就变成僵尸进程)

21.守护进程(Daemon进程):生存期一般从系统开始运行到系统关闭,它不需要用户输入就可以运行且提供服务。linux系统的大多数服务就是通过守护进程实现的,常见的守护进程有系统日记进程syslogd,web服务器,数据库服务器等。如果想让一个进程不因为用户、终端或者其他的变化而受到影响,那么就必须把这个进程变成一个守护进程。

22.多线程。正如进程之间可以用wait()系统调用来同步终止并释放资源一样。线程之间用pthread_join()等待被执行的线程结束,回收线程资源。

23.Samba服务器是linux和window文件共享的服务。

24.xinetd服务已经取代了inetd,并且提供了访问控制、加强的日志和资源管理功能,已经成了Red Hat 7 和 Mandrake 7.2的Internet标准超级守护进程。控制包括FTP、Telnet等服务

25。

.

27.jffs和yaffs

28.ioctl函数是特殊的控制函数,通过它可以向设备传递控制信息或从设备取得状态信息,poll函数可以用来查看设备是否可读可写。

29.sendto()和recvfrom()函数是在进行无连接的UDP通信时使用的,而send()和recv()函数可以用在udp和tcp

猜你喜欢

转载自blog.csdn.net/weixin_40535588/article/details/89604481