linux操作系统原理与应用(linux 操作系统原理)-编程之家

linux gpu原理

关于GPU的基本原理(顶点->纹理->像素->光栅 这个pipeline)可以参考我之前阅读的一些文章,相信读了他们,会对什么是GPU,GPU的工作原理等之类的问题有了一定的感性认识,具体如下:

1 GPU大百科全书系列

2 图形与计算那些事 AMD次世代架构解析

3 DixrectX支配游戏! 历代GPU架构全解析

linux虚拟化原理?

(1)完全虚拟化(Full virtualization)。其实说白了这是一种“骗人”的方式。虚拟化软件会模拟假的CPU、内存、网络、硬盘给虚拟机,让它感觉自己像是物理机内核。但是真正的工作模式其实是当虚拟机内核申请内存和CPU时间片等资源时,由VirtualBox等虚拟机软件代劳,以物理机上的用户态向物理机内核申请资源再给虚拟机内核,虚拟机内核拿到VirtualBox申请的物理机资源后给虚拟机上的用户态软件运行,并且虚拟机的内存地址例如从0开始,但实际上在物理机上可能是从地址90开始。这种方式一个坏处就是非常慢。

(2)硬件辅助虚拟化(Hardware-Assisted Virtualization)。即VirtualBox让虚拟机意识到自己不是物理机,物理机资源的权限问题可以交给Intel的VT-x和AMD的AMD-V标志位。它们是ring 0到3以外的一个新的标志位,表示当前是在虚拟机状态下。对于虚拟机内核来讲,只要将该标志位设为虚拟机状态,就可以直接在物理CPU上执行大部分的指令,不需要虚拟化软件在中间转述,除非遇到特别敏感的指令,才需要将标志位设为物理机内核态运行,这样大大提高了效率。所以安装虚拟机的时候,务必要在BIOS中将物理CPU的这个标志位打开。

(3)半虚拟化(Paravirtualization)。就是访问网络或者硬盘的时候,为了取得更高的性能,需要让虚拟机内核加载特殊的驱动,也是让虚拟机内核从代码层面就重新定位自己的身份,不能像访问物理机一样访问网络或者硬盘,而是用一种特殊的方式。

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还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。系统调用给用户提供编程时使用的界面,用户可以在编程时直接使用系统提供的系统调用命令,系统通过这个界面为用户程序提供低级、高效率的服务。

•设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这