日期:2014-05-16  浏览次数:20581 次

Linux几个问题请教
本人从事嵌入式linux开发,使用linux快一年了,对linux有些系统方面的问题有点困惑特请教大家:
1 Linux 下的shell是不是Linux 系统启动后运行的一个程序?还是就是linux自生的一部分?shell自身是啥语言编写的?C?
2 根文件系统目的是内核的一种管理方式,只不过采用了文件系统?
3 tty/ttyS等等老打架,终端的概念还是比较难以理解,显示 串口都可以做?
4 驱动与应用层之间的划分把握?

我声明一下,以上东西我都尝试去查看资料,有的当时明白但很快就忘记了,有的一直就没有明白。
麻烦大家讲讲。谢谢。

------解决方案--------------------
恩,很好的问题,顶!!

我也想知道!
------解决方案--------------------
1. 是程序来的,是C写的。
2. 文件系统的最基础目的就是能够对数据进行有效管理啊,另外扩展后就变成了对外设也按文件来进行管理。
不然,你的shell程序从哪来呢,怎么找的到呢。
3. 终端的概念是学究提出来的,任何跟人打交道的,都可以叫终端(设备),运行在系统上但没有硬件实体的,就是虚拟的终端,譬如xterm终端窗口。
4. 站在编程的角度看,驱动是一个程序模块啊,需要系统给你挂入啊。应用程序就是可以直接启动的咯。

------解决方案--------------------
1. shell 是 linux OS 与用户的接口,用户可以通过 shell 这个接口到操作 linux OS.

2. 内核主要是服务提供者和硬件驱动界面,必须要有服务对象。另外,Linux内核与根文件系统密不可分。因为它需要文件系统为用户提供切实可用的访问界面。

3. 具体的我也不是很清晰。

4. 驱动是 kernel 层的;应用层是 user 层的。
------解决方案--------------------
我是来学习的
------解决方案--------------------
差不多都答完了 吧1
------解决方案--------------------
恩,学习了
------解决方案--------------------
1. 严格来说 linux 启动的第一个程序是 init , kernel 只能驱动硬件, 要和用户交互,就必须有应用程序。
2. kernel 负责管理硬件, 应用程序用来和用户交互, 文件系统用来存放应用程序和数据。
3. 2 楼解释得很好,
4. 驱动是被动的,是被调用的, 应用程序是主动的,由他去调用驱动。
------解决方案--------------------
14楼的解释的很好,学习了
------解决方案--------------------
驱动是直接与硬件相关的,有其相应的接口函数,是内核的一部分
应用层的程序作为用户进程,通过内核提供的系统调用,进行设备文件的读写操作,调用驱动程序接口
不对的地方请高手指正