Linux原理与应用学什么?
1、 Linux概述
什么是Linux
简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux最早由一位名叫芬兰人林纳斯•托瓦兹(Linus Torvalds)的计算机爱好者开发,他的目的是设计一个代替Minix的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。
Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。
2、 Linux系统的主要特点
•开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。
•多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
•多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。
•良好的用户界面 :Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。系统调用给用户提供编程时使用的界面,用户可以在编程时直接使用系统提供的系统调用命令,系统通过这个界面为用户程序提供低级、高效率的服务。
•设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这
linux操作系统的组成及其基本原理?
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
一.Linux内核
内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。Linux内核的模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等。
二.Linux shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
三.Linux文件系统
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、EXT3、FAT、FAT32、VFAT和ISO9660。
四.Linux应用程序
标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、XWindow、办公套件、Internet工具和数据库等
linux底层io原理?
一 Linux IO基础原理
应用程序的IO读写,依赖于底层操作系统的IO读写,它是通过操作系统的两大系统调用Read/Write实现的。在Linux操作系统中设置了唯一的一个内核缓冲区,并为每个上层应用程序设置一个用户缓冲区,当应用程序进行数据读取时,内核将数据从内核缓冲区复制到用户缓冲区,当应用程序进行数据写入时,内核将数据从用户缓冲区复制到内核缓冲区,设置缓冲区的目的是减少性能消耗,因为直接对外部设备进行IO 读写会造成操作系统中断,操作系统频繁访问外部设备会,会造成不必要的性能开销。
Linux IO读取操作流程,分为两个阶段,第一个阶段:等待数据准备好,它是等待数据从网络中到达网卡,操作系统将数据从网卡复制到内核缓冲区;第二个阶段:内核复制数据,内核将数据从内核缓冲区拷贝到用户缓冲区,供应用程序使用。
Linux IO写入操作流程,分为连个阶段,第一个阶段:内核复制数据,内核将数据从应用程序的用户缓冲区拷贝到内核的内核缓冲区;第二个阶段:操作系统将内核缓冲区的数据复制到网卡,网卡基于底层通信协议将数据发送到目标客户端。
windows操作系统是由消息驱动的,那linux呢,是由什么驱动的,求高人解答,简要将下原理,谢谢?
Linux内核中采用可加载的模块化设计(LKMs ,Loadable Kernel Modules),一般情况下编译的Linux内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其它的代码可以选择是在内核中,或者编译为内核的模块文件。
如果需要某种功能,比如需要访问一个NTFS分区,就加载相应的NTFS模块。这种设计可以使内核文件不至于太大,但是又可以支持很多的功能,必要时动态地加载。这是一种跟微内核设计不太一样,但却是切实可行的内核设计方案。
我们常见的驱动程序就是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而Linux最基础的驱动,如CPU、PCI总线、TCP/IP协议、APM(高级电源管理)、VFS等驱动程序则编译在内核文件中。有时也把内核模块就叫做驱动程序,只不过驱动的内容不一定是硬件罢了,比如ext3文件系统的驱动。
理解这一点很重要。因此,加载驱动时就是加载内核模块。