
Linux
系统结构一般有3个主要部分:
内核kernel、命令解释层Shell或其他 *** 作环境、实用工具1.Linux内核内核是系统的核心,是运行程序和管理磁盘、打印机等硬件设备的核心程序。 *** 作系统向
用户提供一个 *** 作界面,它从用户那里接收命令,并且把命令送给内核去执行。当 Linux安装完毕之后,一个通用的内核就被安装到主机中,这个通用内核能满足绝大部分用户的需求,但普遍适用性内核对具体的某台主机来说,可能有一些并不需要的内核程序将被安装。因此,Linux允许用户根据主机的实际配置定制 Linux的内核,从而有效地简化 Linux内核,提高系统启动速度。2.Linux ShellShell是系统的用户界面,提供了用户与内核进行交互 *** 作的接口。它接收用户输入的命今,并且把它送入内核执行。 *** 作系统在系统内核与用户之间提供 *** 作界面, Linux存在多种 *** 作环境,分别是基于图形界面的集成桌面环境和基于Shell命令行环境。Shell是一个命令解释器,它解释由用户输入的命令,并且送到内核。Shell编程语言具有普通编程语言的很多特点,如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。作为命令行 *** 作界面的替代, Linux还提供了像 Windows那样的可视化图形界面X-window的图形用户界面。3.实用工具标准的 Linux系统都有配套的实用工具程序,如编辑器、浏览器、办公套件及其它系统管理工具等,用户可以自行编写需要的应用程序。Linux系统本身是个软件的概念(当然,其无法脱离硬件系统而存在)。
其三个基本组成部分:
【启动引导程序】
即bootloader,常见的如Grub。用于引导系统启动,加载内核到系统内存并启动内核。
【内核】
即 *** 作系统核心。包含硬件驱动模块,为上层应用提供统一易用的硬件 *** 作接口;负责系统任务调度与分配,保证系统资源被合理有效地利用。内核通过shell接收用户指令并执行。
【文件系统】
如现在的日志文件系统ext2/ext3。Linux的应用程序按照一定的分类,以文件系统的形式组织存放在磁盘或分区上。内核启动后挂载文件系统(第一个挂载的是根文件系统)。
看你想学那方面了。linux基本分三个层次。网络层,应用层,驱动层。看你主要想往哪里发展。
网络层,主要是tcp/ip协议,服务器架设等。
应用层,各种应用程序,数据结构什么的
驱动层,主要是面向底层硬件,编写驱动,linux内核剪裁等。
如果要自学的话,先从属性linux系统开始,学习c语言数据结构什么的。然后看想往哪里发展。
由于我对驱动比较了解,就跟你说下驱动,我感觉学习驱动,首先c语言一定要会,一二级指针结构体数据结构,这是一定的。然后就是学习单片机,最好有单片机的基础,无论是51的还是2440的,当然你也可以没有这方面的基础,不过学起来可能要比较吃力。然后就是剪裁内核,给自己板子上个系统什么的,然后编写驱动什么USB I2C UART什么的,再挂到你的板子上。。基本就这些,这些一般就够学习很久了,再往后的话就涉及内核编译什么的了。等楼主学到这里再取想去问吧。。。毕竟够学一阵了。。
评论列表(0条)