ntu(乌班图)下设置evolution收邮件(转)

This item was filled under [ linux ]

设置evolution收邮件时搜索后,整理的如下:
我要说的是:二者有一点小差别,163的不需要使用安全链接, gmail的需要设置为SSL安全链接。

1) Gmail
在Gmail上找不到Evolution的配置方法,网上也有不少人询问如何配置,我在网上找到一篇英文的配置说明,我按其设置成功了,所以拿来与大家共享,简单翻译如下:
(注:要使用客户端发送接收gmail,需要在gmail中启用pop,具体见gmail的帮助)

1. 启动Evolution。
2. 点击“编辑”──首选项。
3. 点击添加(账户)/注:如果你已经设置过gmail账户,则可以点击编辑。
4. 在名称里输入你的名字,在请求的信息中全名和电子邮件地址都填写你的Email地址。填好之后点击接收电子邮件标签。
5. 接收电子邮件:服务器类型:POP; 服务器:pop.gmail.com; 用户名:你的gmail地址,如kakald@gmail.com; 使用安全链接:SSL加密; 记住密码。设置好后点击下一个标签。
6. 接收选项:按自己喜欢设置,并不影响gmail是否在evolution中工作。
7. 发送电子邮件:服务器类型:smtp; 服务器:smtp.gmail.com; 服务器需要认证:选中; 使用安全链接,SSL加密; 身份验证:用默认的”Plain”; 用户名:同你的邮件地址,如kakald@gmail.com,最后记住密码。
8. 默认选项卡可以依喜好设置,或保持默认。
9. 点击应用,完成设置。

现在你可以试试发送接收邮件,如果提示你输入密码,说明成功了,你可以用Evolution发送接收gmail邮件了。
如果有问题请留言讨论,或给我发邮件:kakald@gmail.com

2) 163 email
成功在ubuntu上配置evolution的163邮箱,和大家一起分享
标识:名称(N):张鼎武的邮箱   全名:张鼎武  电子邮箱地址:zdw_208@163.com 其他项就不要填写了
接收电子邮件: 服务器类型:pop 服务器:pop.163.com 用户名:zdw_208 使用安全连接:不加密  认证类型:密码
发送电子邮件   服务器类型:smtp 服务器:smtp.163.com 服务器需要认证:需要 使用安全连接:不加密 类型:PLAIN  用户名:zdw_208 记住密码:打上勾,免得下次重新输入
当然用户名要填写你们的名字了哈哈。我懒得改名字了,大家对着改吧

---------------------------------------

转自:http://blog.ednchina.com/walnutcy/153570/message.aspx

Bookmark and Share

VxWork介绍及编程

This item was filled under [ vxworks ]

from: http://www.embhelp.com/drew/mypage/VxWorks.htm#begin

大3的时候狂玩了一段时间的嵌入式,这次看到这些文章,再好好复习一下吧,。。。。

孔子曰:温故而知新!!

我知道为啥孔子这么说了,因为孔子看书看很多,但是没有深入理解,第二次看类似的内容的时候,学的也就更深入了!

温故而知新,其实就是这个道理。

一.嵌入式操作系统VxWorks简介

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连19974月在火星表面登陆的火星探测器上也使用到了VxWorks

WindRiver公司网址

实时操作系统和分时操作系统的区别

从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。

分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系统无法实时响应外部异步事件。

实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。 分时系统主要应用于科学计算和一般实时性要求不高的场合。实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。

VxWorks的特点

  • 可靠性

操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。

  • 实时性

实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。

VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks 提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。

  • 可裁减性

用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使用。

VxWorks 由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks 内核最小为 8kB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。

对一个实时内核的要求

一个实时操作系统内核需满足许多特定的实时环境所提出的基本要求,这些包括:

多任务由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。

抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。

任务间的通讯与同步:在一个实时系统中,可能有许多任务作为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。

任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作。所以需要杂任务级和中断级之间存在通信。

二.系统编程方法

了解系统编程对程序员来说尤为重要。根据Drew个人的经验基本上操作系统编程都是类似的,认真读懂一种,就很容易的理解另一种。

下面是Drew翻的VxWorks programmer guide中的基本内容,有一些内容是Drew个人的理解。理解这些内容对实时操作编程非常重要。

实时系统主要包括:多任务调度(采用优先级抢占方式),任务间的同步和进程间通信机制

一个多任务环境允许实时应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和它自己的一套系统资源。进程间通信机制使得这些任务的行为同步、协调。 wind使用中断驱动和优先级的方式。它缩短了上下文转换的时间开销和中断的时延。在 VxWorks 中,任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和堆栈。还有一些其它的任务机制可以使任务挂起、继续、删除、延时或改变优先级。

另一个重要内容是:硬件中断处理。硬件产生中断,统治系统调用相应的中断历程(ISR),位是系统得到尽快的响应,ISR在它自己独立的上下文和堆栈中运行.它的优先级高于任何任务优先级.

Task State Transitions

中断延迟(Interrupt Latency) 中断延迟是指从硬件中断发生到开始执行中断处理程序第一条指令之间的这段时间。

优先级驱动(Priority-Driven) 优先级驱动是指多任务系统中,当前运行任务总是具有最高优先级的就绪任务。

  • 多任务调度

两种方式: 优先抢占和轮转调度(Preemptive Priority,Round-Robin Scheduling).

优先抢占(Preemptive Priority): 每一个任务都有一个优先级,系统核心保证优先级最高的任务运行于CPU.如果有任务优先级高于当前的任务优先级,系统立刻保存当前任务的上下文,切换到优先级高的上下文.

Priority Preemption

抢占(Preemptive): 抢占是指当系统处于核心态运行时, 允许任务的重新调度。换句话说就是指正在执行的任务可以被打断,让另一个任务运行。抢占提高了应用对异步事件的响应性能力。操作系统内核可抢占,并不是说任务调度在任何时候都可以发生。例如当一个任务正在通过一个系统调用访问共享数据时,重新调度和中断都被禁止.

任务上下文(Task Context): 任务上下文是指任务运行的环境。例如,针对x86的CPU,任务上下文可包括程序计数器、堆栈指针、通用寄存器的内容.

上下文切换(Context Switching): 多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件,当前运行任务转为就绪(或者挂起、删除)状态,另一个被选 定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。上下文的内容依赖于具体的CPU.

轮转调度(Round-Robin Scheduling):使所有相同优先级,状态为ready的任务公平分享CPU(分配一定的时间间隔,使个任务轮流享有CPU).

Round-Robin Scheduling

系统由256个优先级,从0到255,0为最高,255为最低. 任务在被创建时设定了优先级.也可用taskPrioritySet ( ) 来改变任务优先级.

任务的主要状态: READY,PEND,DELAY,SUSPEND…

ready-------->pended -----------semTake( )/msgQReceive( )-其他任务
ready-------->delayed-----------taskDelay( )
ready-------->suspended---------taskSuspend( )
pended------->ready-------------semaGive( )/msgQSend( )-其他任务
pended------->suspended---------taskSuspend( )
delayed------>ready-------------expired delay
delayed------>suspended---------taskSuspend( )
suspended---->ready-------------taskResume( )/taskActivate( )
suspended---->pended------------taskResume( )
suspended---->delayed-----------taskResume( )

轮转调度 (Round-Robin): 轮转调度可以扩充到优先抢占方式中,当多个任务优先级相同的情况下,轮转调度算法使任务按平等的时间片运行于CPU,共享CPU.避免一个任务长时间占用CPU,而导致其他任务不能运行.可以用 kernelTimeSlice( ) 来定义时间长度.

taskLock ( ) taskUnlock ( ) 用来取消优先抢占方式 和恢复优先抢占方式.

注意: 一个任务可以调用taskDelete ( ) 删除另一个任务,但是如果一个当前正在运行的任务被删除后,该任务的内存没有释放,而其他任务不知道,依然在等待,结果导致系统stop.用 taskSafe ( ) taskUnsafe ( ) 来保证正在运行的任务不被删除.

用法如下:

taskSafe ();
semTake (semId, WAIT_FOREVER);
/* Block until semaphore available */
. .
. . critical region .
semGive (semId);
semGive (semId);
/* Release semaphore */
taskUnsafe ();

  • 任务间的同步和进程间协调

信号量作为任务间同步和互斥的机制。在 wind 核中有几种类型的信号量,它们分别针对不同的应用需求:二进制信号量、计数信号量、互斥信号量和 POSIX 信号量。所有的这些信号量是快速和高效的,它们除了被应用在开发设计过程中外,还被广泛地应用在VxWorks 高层应用系统中。对于进程间通信,wind 核也提供了诸如消息队列、管道、套接字和信号等机制。

任务间的同步和进程间协调的几种方式:

    1. 内存共享(Shared Memory),对简单的数据共享而言.

    2. 信号量(Semaphore),基本的互斥和同步.

    3. 消息队列(Message queues)和管道(Pipe),单个CPU中,任务间的信息传递.

    4. 套结字(Socket)和远程调用(Remote procedure calls),相对于网络任务间的通信.

    5. 信号(Signals),出错处理(Exception handling).

内存共享(Shared Memory)

任务间通信最通常的方式是通过共享的数据结构进行通信,因为所有VxWorks的任务存在于一个单一的线性地址空间,任务间共享数据。全局变量、线性队列、环形队列、链表、指针都可被运行在不同上下文的代码所指向。

Shared Data Structures

互斥(Mutual Exclusion)

互斥是用来控制多任务对共享数据进行串行访问的同步机制。在多任务应用中,当两个或多个任务同时访问共享数据时,可能会造成数据破坏。互斥使它们串行地访问数据,从而达到保护数据的目的.

解决互斥的几种方法:

1. 关闭中断的方法(intLock): 能解决任务和中断ISR之间产生的互斥.

funcA () 
{   int lock = intLock();
. .   critical region that cannot be interrupted .
intUnlock (lock);   }

但在实时系统中采取这个办法会影响系统对外部中断及时响应和处理的能力.

2. 关闭系统优先级(taskLock): 关闭系统优先级,这样在当前任务执行时,除了中断外,不会有其他优先级高的任务来抢占CPU,影响当前程序运行.

funcA ()

{ taskLock ();

. . critical region that cannot be interrupted .

taskUnlock (); }

这种方法阻止了高优先级的任务抢先运行,在实时系统中也是不适合的,除非关闭优先级的时间特别短.

信号量(Semaphore): 信号量是解决互斥同步协调进程最好的方法

VxWorks信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和同步。针对不同类型的问题,有以下三种信号量:

Ÿ 二进制信号量binary) 使用最快捷、最广泛,主要用于同步或互斥;

Ÿ 互斥信号量(mutual exclusion) 特殊的二进制信号量,主要用于优先级继承、安全删除和回溯;

Ÿ 计数器信号量(counting) 和二进制信号量类似,保持信号量被释放(gaven)的次数 ,主要用于保护一个资源的多个例程(multiple instances of a resource)

信号量控制,函数介绍:

semBCreate( ) 分配并初始化一个二进制信号量

semMCreate( ) 分配并初始化一个互斥信号量

semCCreate( ) 分配并初始化一个计数信号量

semDelete( ) 终止一个自由的信号量

emTake( ) 占有一个信号量

semGive( ) 释放一个信号量

semFlush( ) 解锁所有等待信号量的任务

semBCreate( ), semMCreate( ), and semCCreate( )返回一个信号量ID作为其它后续任务使用该信号量的的句柄。当一个信号量被创建,它的队列(queue)类型就被确定。等待信号量的任务队列以优先级的高低排列(SEM_Q_PRIORITY),或者一先到先得的方式排列(SEM_Q_FIFO).

  • 当一个Semaphore创建时,指定了任务队列的种类

  1. semBCreat( SEM_Q_PRIORITY, SEM_FULL), SEM_Q_PRIORITY 指明处于等待状态的任务在等待队列中以优先级的顺序排列

  2. semBCreat(SEM_Q_FIFO,SEM_FULL), SEM_Q_FIFO指明 处于等待状态的任务在等待队列中以先进先出的顺序排列

  1. 二进制信号量binary)

互斥进程Mutual Exclusion

互斥信号量有效的内锁对共享资源的进入,与屏蔽中断(disabling interrupts)和优先级锁定(preemptive locks)相比,二进制信号量将互斥的范围限制在仅与其有关的资源上。从技术上说,创建一个信号量来保护(guarding)资源。信号量初始化位可用的(FULL)

当一个Semaphore创建时,指定了这个semaphore是用在解决互斥还是用来同步任务

  1. semBCreat( SEM_Q_FIFO, SEM_FULL) , SEM_FULL 指明用于任务间互斥.

SEM_ID semMutex;

semMutex = semBCreate (SEM_Q_PRIORITY, SEM_FULL);

当一个任务要进入资源,首先要得到一个信号量(take that semaphore),只要有任务在使用这个信号量,其它的要进入资源的任务要停止执行(blocked from execution),当这个任务完成了对资源的使用,它会释放信号量,允许另一个任务来使用资源。

semTake (semMutex, WAIT_FOREVER);

. . critical region, only accessible by a single task at a time .

semGive (semMutex);

同步协调进程Synchronization

  1. semBCreat(SEM_Q_FIFO,SEM_EMPTY), SEM_EMPTY 指明用于任务间同步.

/* includes */
#include "vxWorks.h" 
#include "semLib.h" 

SEM_ID syncSem;
/* ID of sync semaphore */
init ( int someIntNum )
{ /* connect interrupt service routine */ 
intConnect (INUM_TO_IVEC (someIntNum), eventInterruptSvcRout, 0); 
/* create semaphore */ 
syncSem = semBCreate (SEM_Q_FIFO, SEM_EMPTY);
/* spawn task used for synchronization. */
taskSpawn ("sample", 100, 0, 20000, task1, 0,0,0,0,0,0,0,0,0,0);
} 
task1 (void) 
{ ... 
semTake (syncSem, WAIT_FOREVER);
/* wait for event to occur */
printf ("task 1 got the semaphore\n");
... 
/* process event */
} 
eventInterruptSvcRout (void)
{ ... 
semGive (syncSem); 
/* let task 1 process event */
...
}

semTake(semID,time out)——–有Semaphore空闲,就Take, 如果没有,由time out 定,超时则向下执行

  1. 互斥信号量

互斥信号量是一个特殊的二进制信号量,设计用于优先级继承,安全删除和回归。

互斥信号量的使用基本和二进制信号量是类似的。但有以下不同:

  • 仅仅被用做互斥。

  • 只能被使用它的任务释放.(It can be given only by the task that took it.)

  • ISR 不能释放它。

  • 不能使用函数semFlush( )

优先级反转(Priority Inversion)

优先级反转是指一个任务等待比它优先级低的任务释放资源而被阻塞,如果这时有中等优先级的就绪任务,阻塞会进一步恶化。优先级继承技术可用来解决优先级反转问题。

Priority inversion arises when a higher-priority task is forced to wait an indefinite period of time for a lower-priority task to complete.

优先级继承(Priority Inheritance)

优先级继承可用来解决优先级反转问题。当优先级反转发生时,优先级较低的任务被暂时地提高它的优先级,使得该任务能尽快执行,释放出优先级较高的任务所需要的资源。

Priority Inheritance

The mutual-exclusion semaphore has the option SEM_INVERSION_SAFE, which enables a priority-inheritance algorithm. The priority-inheritance protocol assures that a task that owns a resource executes at the priority of the highest-priority task blocked on that resource. Once the task priority has been elevated, it remains at the higher level until all mutual-exclusion semaphores that the task owns are released; then the task returns to its normal, or standard, priority. Hence, the “inheriting” task is protected from preemption by any intermediate-priority tasks. This option must be used in conjunction with a priority queue (SEM_Q_PRIORITY).

  1. 计数信号量Counting Semaphores

计数信号量是任务同步和互斥的另一种实现方式.计数信号 量除了保留信号量被释放的次数以外和二进制信号量是一样的。每次信号量被释放(gaven)一次,计数增加;每次信号量被占用(taken)一次,计数减 少;当计数减少为0时,要求得到信号量的任务被阻塞(blocked)。二进制信号量是如果一个信号量被释放,有一个任务阻塞等待,则这个任务就被 unblock.而计数信号量如果一个信号量被释放,没有任务阻塞等待,则计数增加。这说明一个被释放两次的计数信号量可以被占用(taken)两次,没 有阻塞。

Counting semaphores are useful for guarding multiple copies of resources. For example, the use of five tape drives might be coordinated using a counting semaphore with an initial count of 5, or a ring buffer with 256 entries might be implemented using a counting semaphore with an initial count of 256. The initial count is specified as an argument to the semCCreate( ) routine.

Counting Semaphore Example


Semaphore Call

Count after Call

Resulting Behavior


semCCreate( )

3

Semaphore initialized with initial count of 3.

semTake( )

2

Semaphore taken.

semTake( )

1

Semaphore taken.

semTake( )

0

Semaphore taken.

semTake( )

0

Task blocks waiting for semaphore to be available.

semGive( )

0

Task waiting is given semaphore.

semGive( )

1

No task waiting for semaphore; count incremented.


消息队列(Message queues)

现实的实时应用由一系列互相独立又协同工作的任务组成。信号量为任务间同步和联锁提供了高效机制。在VxWorks中,用于但一CPU任务之间通信主要(primary)的机制是消息队列。

Full Duplex Communication Using Message Queues

消息队列允许一定数量不同长度的消息进行排列。任何任务或中断服务程序(ISR)能够发送消息给消息队列。任何任务可以从消息队列接受消息。多任务可以从同意消息队列发送和接受消息。两个任务之间的全双工(Full-duplex)通信需要针对不同方向的两个消息队列。

消息队列函数介绍

msgQCreate( ) 创建斌初始化一个消息队列

msgQDelete( ) 终止并释放一个消息队列

msgQSend( ) 发送一个消息到消息队列

msgQReceive( ) 从消息队列接受一个消息

消息队列是由函数msgQCreate (MAX_MSGS, MAX_MSG_LEN, MSG_Q_PRIORITY)创建。它的参数MAX_MSGS指定了消息队列中可允许最多可以排列的消息数和每个消息允许的最大的字节数MAX_MSG_LEN

一个任务或中断服务程序(ISR)用函数msgQSend( )发送一个消息到消息队列。如果没有任务等待消息队列的消息,这个消息被添加消息缓存的队列里。如果某些任务已经在等待消息队列中的消息,消息立刻被传递给第一个等待的消息的任务。

一个任务用函数msgQReceive( )从消息队列得到一个消息。如果消息队列缓存中有消息存在,第一个消息立刻出列并回到调用处(caller).如果没有消息存在,则任务(calling task)停止(blocks)并被添加到等待消息的任务队列中。这个等待的任务队列按照优先级或先进先出(FIFO)规则排列,这个规则有消息队列创建时所指定。

等待时间限制(time out)

msgQSend( )msgQReceive( )都有时间限制参数。当发送一个消息,如果消息队列缓存这时没有空间,这个参数指定允许等待的时间(ticks数),直到队列缓存有空间来接收消息。当接收消息时,如果消息队列没有消息,这个参数指定允许等待的时间(ticks数),直到消息队列有消息。

/* In this example, task t1 creates the message queue and sends a message
 * to task t2. Task t2 receives the message from the queue and simply
 * displays the message.
 */

/* includes */
#include "vxWorks.h"
#include "msgQLib.h"

/* defines */
#define MAX_MSGS (10)
#define MAX_MSG_LEN (100)

MSG_Q_ID myMsgQId;

task2 (void)
    {
    char msgBuf[MAX_MSG_LEN];

    /* get message from queue; if necessary wait until msg is available */
    if (msgQReceive(myMsgQId, msgBuf, MAX_MSG_LEN, WAIT_FOREVER) == ERROR)
        return (ERROR);

    /* display message */
    printf ("Message from task 1:\n%s\n", msgBuf);
    }

#define MESSAGE "Greetings from Task 1"
task1 (void)
    {
    /* create message queue */
    if ((myMsgQId = msgQCreate (MAX_MSGS, MAX_MSG_LEN, MSG_Q_PRIORITY))
        == NULL)
        return (ERROR);

    /* send a normal priority message, blocking if queue is full */
    if (msgQSend (myMsgQId, MESSAGE, sizeof (MESSAGE), WAIT_FOREVER,
                  MSG_PRI_NORMAL) == ERROR)
        return (ERROR);
    }

管道(Pipes

管道对消息队列提供了一个可供选择的接口,VxWorksI/O系统。管道是虚拟的I/O设备,由驱动pipeDrv管理。函数pipeDevCreate()创建一个管道设备,这个调用指定管道的名字,能被排列的最多的消息数,和每个消息允许的长度。

status = pipeDevCreate (“/pipe/name“, max_msgs, max_length);

被创建的管道是一个通常命名(named)的I/O设备,任务能用标准的I/O函数打开,读,写管道,并能调用ioctl例程。当任务试图从一个空的管道中读取数据,或向一个满的管道中写入数据时,任务被阻塞。和消息队列一样,ISR可以向管道写入,但不能从管道读取。

做为I/O设备,管道提供了消息队列所没有的重要特性,调用select()

Bookmark and Share

Moblin基础学习

This item was filled under [ moblin ]

from: http://blog.csdn.net/moblin/archive/2009/03/31/4038565.aspx

当Moblin的资料都没有怎么学习,弱弱地问了一下Intel,moblin 2 和linux kernel的关系?

Intel给的答复如下:Moblin 是一个全局解决方案,实际上是提供了完整的内核,应用,用户界面,服务,节能方案等,是一个带动移动互联网终端软件系统新技术的演进平台,Moblin v2.0 包含了对Ubuntu and Fedora的支持Moblin 中的Linux kernel是专门针对 英特尔®凌动™处理器对上游的Linux kernel优化过的,优化的部分也同时还回上游的Linux kernel tree。

Intel作为CPU的硬件供应厂商,我们理解他搞出来的Moblin和Linux kernel,先有一个Linux BSP的概念。BSP,Borad Support Package。下面是来自网络共产主义的信息:

BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。
例如Linux中的网卡驱动,是在space.c中声明该网络设备,再把网卡驱动的一些函数加到dev结构中,由函数ether_setup()来完成网卡驱动的安装。
Linux系统有两大主要部份:带设备驱动程序的Linux核心;以及根文件系统,包括系统所需的全部支持应用程序、服务和库。
除了驻留在目标板上的OS组件外,还需要制作一个由GNU Compiler Collection构成的交叉编译环境,为库和二进制程式(binutils)提供支持。
虽然几乎每一个组件都可在网上找到,但在硬件或设备驱动程序支持、整合测试信息、交叉编译指南或软件兼容性方面却很难收集到太多信息。尽管开发者可从网 上免费下载各种组件以配置嵌入式Linux操作系统,但每个组件在版本、支持、稳定性和测试等方面的状态则需要开发者自己决定。

如果我们通过给出不同的BSP,是否就可以适配下面多样的硬件。在Moblin的网站上是这样写道的:Moblin的核心即Moblin core,即他的Common Layer,层次结构如下。

User Interface(UI), User Interaction model
Moblin Core (Common Layer)
Linux Kernel, driver

我们可以将BSP也归入到最下以层,或者放置在更底一层。如果我们的MID都是基于Intel的X86主板,BSP可能不需要多种的适 配,但是如果我们需要往手机方向发展,需要适配多种的硬件,就需要涉及多个BSP。而Intel给出的Moblin 2,他根据芯片的特点,给出他们的BSP,并通过Moblin core这一层向用户提供一些lib,例如可以通过硬件来进行codec的处理。
Moblin给出的不是那么独立的层次话,Intel必然提供BSP,也可能涉及一些driver,并且通过在Linux kernel上面的Moblin Core一层,来提供芯片优化的一些功能,也提供Moblin社区封装的API。

Moblin Core是在Gnome Mobile的平台上建立。我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下,按照管理,进入共产主义网络来寻找答案。

共产地址:

http://topic.csdn.net/t/20061030/16/5119702.html

http://402s.blogspot.com/2006/11/guilinux.html

严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用 GNU工程各种工具和数据库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux 发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。GNU组件可以运行于Linux内核之上。整 个内核是基于GNU通用公共许可,也就是GPL( General Pubic License)的,但是Linux内核并不是GNU 计划的一部分。

一、linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的:
图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS 3.0 一样,windows 3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是 linux下的一个应用程序而已。不是系统的一部分,但是X的存在可以方便用户使用电脑。WINDOWS 95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows 了,但linux却不一样,没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器。这也WINDOWS和linux 的重要区别之一。

二,X是协议,不是具体的某个软件:
X是协议,就像HTTP协 议,IP协议一样。这个概念很多初学者甚至学习 LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈。比如一个X应用程序要在屏幕 上输出一个圆,X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的”画”的动作,比如这个圆如何生成,用什么显卡的驱动程 序去指挥显卡完成等等工作是由X服务器来完成的。X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱 的应用程序先生,我发现鼠标被按下了,您有什么指示吗?协议是需要具体的软件来实现的,这就是下面我要讲的:

三,X和XFree86的关系:
有了协议就需要具体的软件来实现这个协议。Xfree86就是这样一个去根据法规实现协议的”交警”。实现X协议的软件也并不只有 XFree86,XFree86只是实现X协议的一个免费X服务器软件。商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务 器软件。甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示。
在LINUX上最常用的是XFree86(现在的linux发行版都用Xorg了)。苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议 图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。
既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算机上。甚至显示在装有Xnest服务器的windows系统 上。只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器。这也是很多人不理解X是一种协议的原因。

四,X和X11R6又是什么关系?
不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录。X11R6 实际上是X Protocol version 11 Release 6(X协议第11版第六次发行)的意思。不同版本的X协议是不能通信的,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6。 另外XFree86 3.3.6 XFree86 4.3.6等这些版本是实现X协议的软件XFree86的版本号。

五,X服务器和WM(window manager 窗口管理器)之间是什么关系。
平时大家起动图形界面是怎么启动的呢? 如果一开始就进入图形界面,可打开一个XTERM输入init 3,就可以安全的回到字符界面。
先输入以下命令: # startx 起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境。你可以最大化,最小化,移动,关闭窗口等。
按ctrl+alt+backspace反回字符界面。输入:#xinit,再次启动图形界面,你看到一个XTERM。而且不能移动。但是你可以在这个 XTERM中输入命令打开X应用程序,如果我输入:#mozilla 打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框。
为什么同样一个X应 用程序会有这样的不同呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了 KDE,如果你用GNOME就起动了GNOME。但是你用xinit起动图形界面的时候却没有起动WM。现在你明白窗口管理器的作用了吗?他的作用就是最 大化,最小化,移动,关闭窗口等。而这些不是X服务器来负责完成的。
如果你用xinit起动图形界面并在xterm中输入twm, 看看会有什么?xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一 个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征。如果你不输入twm 而输入gnome-session就可以起动GNOME 或者输入startkde起动KDE。

六,关于KDE和GNOME
KDE和 GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单, KDE是K Desktop Environment的缩写。他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等。
GNOME是GNU Network Object Model Environment的缩写。和KDE一样,也是一个功能强大的综合环境。
另外在其它UNIX系统中,常常使用CDE作为这样一个环境。
其它的小型窗口管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器。REDHAT9中有window maker 但是默认不安装,大家可以装来试试。只要xinit再wmaker & 就可以用windowmaker了。

七,linux图形界面层次关系总结
linux本身–>X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)–>X应用程序。

八、XFCE:Moblin选择XFCE作为桌面
先到网上科普一下Xfce。
Xfce是一款适用于多种 *NIX 系统的轻量级桌面环境。它被设计用来提高您的效率,在节省系统资源的同时,能够快速加载和执行应用程序。 —— Olivier Fourdan, Xfce 创始人
Xfce是个完全的自由软件。Xfce的每个独立组件按BSD许可证、GNU通用公共许可证或GNU库通用公共许可证之一进行发布。
Xfce建基在GTK+ 2.x之上。它使用Xfwm作为窗口管理器。Xfce有点像另一个商业的桌面环境CDE,不过在新版本中已经有较大分别了。Xfce同时为程序设计者提供 开发框架。除了Xfce本身,还有第三方的程序使用Xfce的程序库,如文字编辑器 – Mousepad,多媒体播放程序 – xfmedia 与终端机模拟器 – Terminal emulator。

Xfce 4.4 体现了传统 UNIX 哲学中的模块化和可复用性。它包含一系列的组件,这些组件一起提供了一个桌面环境的全部功能。所有组件都被独立打包,您可以自行选择安装各组件来构件一个 属于您自己的最佳工作环境。它主要是由鼠标设定,而它的设定档通常不会被普通用户看到。
Xfce 与 KDE、GNOME 相比是一个更为轻量的桌面环境,目前有些 Linux 发行版已将其作为默认的桌面环境,如 Xubuntu、Zenwalk 等。4.4.2版本是在2007年12月2日发行的。08年9月,发布了4.6得阿尔法测试版本。
但是对于某些MID,需要构建自己炫耀的桌面,可以直接在GTK+2.x上进行开发,定制自己的桌面环境。而Moblin的资料是这么说的:在Moblin 2中使用了Xfce作为它的轻载桌面,但是在框架接口中,UI使用了GTK。

九、GTK和QT
继续在网络共产主义进行科普学习。
GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以你可以用它来开发开源软件、自由软件,甚至是封闭源代码的商业软件,而不用花费任何钱来购买许可证和使用权。这样的库太多了,windows 平台上有mfc、vcl等等,linux平台上更是层出不穷,而且好多都具备跨平台功能,比如Qt、wxWidgets、FLTK等等。gtk与这些库的 不同点在于其完全使用C语言开发的。
GTK 被称为 GIMP 工具包是因为最初写它是用来开发 GIMP (GNU 图像处理程序) 的,但是它现在已经被用于很多软件项目了,包括 GNOME (GNU 网络对象模型环境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基础上建立起来的,GDK 基本上是对访问窗口的底层函数 (在 X 窗口系统中是 Xlib) 的一层封装,gdk-pixbuf 是一个用于客户端图像处理的库。GTK 实质上是一个面向对象的应用程序接口 (API)。尽管完全用C写成的,但它是基于类和回调函数 (指向函数的指针) 的思想实现的。
gtk+ 的作者之一 Perter Mattis说他原来开发的gtk包含了三套函数库, libglib、libgdk,和libgtk,这些库没有采用面向对象机制,因而无法实现构件的 复用,而且消息机制是使用标准的回调机制实现的,而非现在的gtk+所提供的信号机制。“+”是用来区分原始版本和新版本的。gtk+ 依然是完全使用C语言开发的,但在设计上灵活运用了面向对象设计(OOD)思想。
gtk+允许软件开发人员用简单的方式说出自己想要的东西, 不会用所谓的正规方式给开发人员带来负担。在Windows下用过MFC的人们大都体验过 2/3的编程时间是在写GUI,写到最后都忘记了自己的角色是做应用程序的,而不是GUI开发者。CSDN的VC版里,N多牛人在炫他们的GUI技术,可 他们从来不会去问:这个常用的组件为什么微软不为我们做好,直接调用呢?我很讨厌在写程序中,跌入GUI的陷阱里。如果我们所写的程序真的很有用,即使做 成CUI式的,也会被很多人所喜欢。『这段话实在太合乎我的胃口了。从开 发应用来讲,我更喜欢做server而不太喜欢client,其中有一个重要的原因就是界面问题,而且领导通常会对界面指手画脚,比实现的功能更为关心, 而且不同的领导喜欢不同的风格,而他们的人生历练,和市场的普通认可不一样。同一个领导也是多变,因此对了迎合领导的需求,已经疲惫不堪。』
gtk+是可移植的,而且具有多种语言前端,譬如C++、Perl、Python、TOM、Ada95、Free Pascal、Eiffel、JAVA,以及C#等等。在选定gtk+以前,我考虑很长时间是不是在下个项目的GUI程序开发中应该用大名鼎鼎的Qt,比 较了好久,我放弃了Qt。虽然目前Qt的可移植性与易用性都优于gtk+,但C++的实现,让它过于笨重了,而且它的主要开发工作是在03年C++标准颁 布之前进行的,与标准C++的兼容性实在是个问题。gtk+是C语言开发的,而C语言标准长期以来几乎没有变化,Qt要适应C++标准,应该要大动了。举 个简单的例子吧,我们使用标准C++所提供的字串类型呢,还是去用Qt自己实现的?另外,与gtk+所遵循的版权协议相比,Qt要开发商业程序依然价格不 菲。我觉得Qt的缺点就是过于大而全了。『这 样看C和C#的关系。我前段时间开始用C++编程,在VC上,有个很麻烦的问题,同时给出的XML解析器lib,不能在VC6(当然这个版本老点)编译通 过,出现一堆错误。我又不想重新安装VC,最后花了点时间自己写了个XML解析器,更为轻载,而不利用VC带的特别的*.h或者lib,就两个2百多行的 小程序,替代了同时数十个文件的东东。因为我其实只是个C&JAVA的程序员。C++确实很少碰到。所以GTK较之QT,也更为适合我的胃口』
QT不是完全免费的(如果你的软件是商业的你就必须付费)我比较喜欢gtk,功能齐全,界面华丽,但相关文档太少。Qt是一个多平台的C++图形用户界 面应用程序框架,由挪威 TrollTech 公司出品。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自1996年Qt 进入商业领域开始,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。Qt支持Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等操作系统, Qt的跨平台特性,是选择Qt的一个非常重要的原因。对于相同功能的软件,我们无须针对不同的操作系统编写不同程序,只需将相同的代码针对不同的环境编译 即可。QT支持 2D/3D 图形渲染,支持 OpenGL。
GTK-QT 主题引擎软件. 该软件基于GTK主题引擎,并使用QT风格编绘桌面,换句话说,该软件可以将GTK下的程序变为QT模式。如果你使用 KDE 桌面环境,那么需要这个 GTK-QT 主题引擎以让 GTK 应用程序的外观在 KDE 下保持一致。该主题引擎将应用所有的 Qt 设置到 GTK 应用程序,并直接使用 Qt 样式。
相对于 GTK+,QT 很早就实现了 OpenGL Widget。

Bookmark and Share

ubuntu常见问题指南(Q&&A大全)

This item was filled under [ linux ]
from: http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=35100
目的:许多新手刚来的时候,会有无数的问题,而这些问题中大部分在本论坛以及wiki都有解答。
某些问题实在常见,至少看过10000次同样的问题(开玩笑啦:D)。
为方便大家并减少无目的寻找答案的时间,写了这么个帖子,希望对大家有所帮助,以顺利渡过新手期。
由于个人力量有限,也想不到那么多,请大家一起帮忙补充,谢谢!

形式:Q & A,建议使用 ctrl+f 进行关键词搜索。

注意:本指南主要针对ubuntu即gnome版本,少部分操作仅限于gnome环境(已用*号标志)。kde环境下的安装命令可以使用adept。
本指南中出现的“代码框”一般是需要在虚拟终端(terminal)/控制台(console)中执行的命令,或是编辑文档时所需添加的部分。

===============这是华丽的分割线:D================
Q: 什么是Ubuntu?
A: 中文名“乌班图”,是基于debian的一个Gnu/Linux操作系统。理念是“Humanity to others”,即“人道待人”。我们Ubuntuer都是乐于助人的好兄弟,而且它是永久免费的:)。参见什么是ubuntu

Q: 它和其他linux发行版有什么区别?
A: ubuntu基于debian,拥有debian一切的优点,还有debian所不具有的其他长处,如更为方便,更适合桌面应用。

Q: 既然这么好,在哪里可以下载?
A: 获取Ubuntu

Q: 我有好多好多问题哦,谁来帮我?
A: 首先请看常见问题解答和发帖需知,发觉好多新手都不看就开始发帖问。
其次,wiki是个非常好的地方,你的问题基本都有解答。我建议从这里看起:
新手预备知识新手入门指引

Q: 如何安装ubuntu?
A: ubuntu7.04新手指南。这个是图形界面的,相信你一定可以照做。另外也可以参见[图形教学]一步一步跟我学 ubuntu7.10 server/alternate 光盘安装。注:64位机型还是建议装i386版本,会省很多麻烦,包括软件和驱动。intel64和amd64都可以装amd64版本。

Q: 我一没刻录机,二没光盘,怎么安装?
A: 可以尝试硬盘安装,不过并不能100%保证装的起来,尤其是新手,而且此方法并不推荐,官方也不作任何支持。请做好足够的心理准备。参见:从硬盘启动 ubuntu 7.10 livecd 的方法中的方法二。相当简单而且比光盘安装快很多。

Q: 如何合理分区?
A: 一块硬盘最多四个主分区,或三个主分区+一个扩展分区(内含n个逻辑分区)。linux可以安装在主分区或逻辑分区。一般情况下,只需分/ 和swap两个区就足够了,另外建议把/home独立分区,以后重装就不必重新设置很多东西。swap是交换分区,如果内存<=256,请在分区时 设置成512MB,内存>=512MB的给个512MB就足够了(如果要休眠,恐怕还是>=内存比较保险)。不建议不划分swap区,某些时 候你还是会需要它的,无论你内存有多大。

Q: windows下有好多好软件,我真舍不得,linux下有对应的么?
A: 基本上都有,而且更好(不一定同名同姓)。如果找不到,可以用wine/vmware/parralles/virturalbox/kvm等虚拟windows安装他们。虚拟机的安装和使用可以到本论坛虚拟机区搜索。参见:linux下对应的windows软件软件推荐区

Q: 我装完了,如何设置?为什么我的ubuntu/openoffice/firefox是英文的?为什么adobe reader、openoffice、realplayer等无法启动?源如何设置/我的源好慢?如何安装字典、输入法、java、QQ、多媒体播放器及 解码器(如何播放mp3等格式)、flash、bt软件?如何升级系统、内核?
A: 参见快速设置指南。这里有你所渴求的东东。

Q: 为什么ubuntu没有root帐号?如何以root权限做一些事情?
A: ubuntu本来就不推荐用root帐号,危险性比较大,其密码是随机的。如果你需要用root权限,请在命令前输入sudo,会提示你输入密码(注意,此密码即你的用户密码。输入时密码不可见,非*****之类)。

Q:如何挂载windows分区?
A: 参见你的系统帮助。

Q: 如何安装显卡驱动?
A: ati显卡看这里:ati官方驱动(非开源)的安装配置
nvidia的参见:skyx mm所写的教程,以及NVidia Driver
intel的参见:How to Correct the Graphics Resolution
如果ati/nvidia用户想贪图省力的话,可以直接安装envy,一切都帮你弄好。

Q: 我用livecd装到一半就停住了?
A: 可能你的内存太小,比如小于256MB。请选择alternate版本并刻盘安装。也可能网络速度很慢,你可以试着把网线拔掉。

Q: 哪里可以找到ubuntu的学习资料?
A: ubuntu官方中文wiki非官方wiki,很全面,有中文翻译,强烈推荐!很棒的教程一很棒的教程二HowtoForge,这里有很多linux包括ubuntu的教程。
其他必看的有本论坛各板块的精华帖、置顶帖,还有千万别忘了你系统自带的帮助(相当全)。另外要学会用man命令去看某命令的手册,比如man apt-get。info命令也很棒。

Q: 为什么我用apt-get的时候会出现这样的情况?

引用:
E: 无法获得锁 /var/cache/apt/archives/lock – open (11 Resource temporarily unavailable)

A: 你一定把新立得/软件更新/添加删除 等与软件安装相关的程序打开了,请把他们关掉吧。apt-get在同一时刻只能有一个在执行。

Q: 为什么我用apt-get xxx的时候说

引用:
E: 无法找到软件包 xxx

或有类似无法安装的提示?
A: 试着更换其他的源。看快速设置指南,注意你所对应的系统版本,不同版本的源千万不要混用。另外,要看清提示,比如要你 sudo dpkg –configure -a 什么的,一定要照做。

Q: 能不能帮我推荐几个linux站点?
A: ubuntu官方中文论坛
ubuntu官方中文wiki
官方英文wiki
ditrowatch,几乎所有linux发行版的集中地,有详细介绍和排名;
所有桌面环境的主题、软件联合站点
国内有名的linuxsir论坛
linuxtoy,里面收了很多好玩的东西,包括技巧、软件推荐等;
非官方wiki,英文,非常有针对性,资料新而细,强烈推荐;
3D桌面compiz-fusion主站,喜欢炫的朋友切莫错过;
ubuntu官方英文论坛
官方deb包的集中地,如果你没法上网,可以到这里下载后再安装;
鸟哥的私房菜,很有名的linux学习网站,这个是简体版;
Get Deb Software,英文站点,是ubuntu软件的deb包下载,非官方,但版本很新,强烈推荐;
ubuntu magazine,英文杂志;
ubuntu geek,英文站点,有不少ubuntu的学习、设置资料;
ubuntu video,各种ubuntu的视频,包括安装设置。
ubuntu screencast,ubuntu视频教程,含字幕下载。
Ubuntu Document Storage Facility,英文ubuntu文档。
linux命令、脚本学习

Q: stardict字典到哪里下载阿?
A: stardict主页上就有下载,中文源ubuntu-cn里面有一部分,另外ftp上有所有的字典。参见FTP服务器镜像了整个stardict.sourceforge.net站点

Q: vmware安装的ubuntu为什么无法切换至控制台?
A: 可能和vmare的快捷键冲突了。

Q: 在控制台为什么都是一个个的方框?
A:

代码:
sudo apt-get install zhcon

然后使用的时候,在控制台下输入zhcon –utf8即可。具体用法自己看 man zhcon。切勿在x环境的虚拟终端下执行,容易死机也无必要。

*Q: 那个桌面好pp哦,哪里可以下载主题?怎么安装?
A: 在gnome桌面主题站下载,安装很简单,找到 系统-首选项-主题-安装。另外,为了使所有用户包括root帐户都能使用你的主题,装完以后请执行

代码:
sudo ln -s ~/.themes/* /usr/share/themes
sudo ln -s ~/.icons/* /usr/share/icons

否则,像新立得之类界面一定很丑。

Q: 3D桌面怎么做的阿?
A: 这玩意儿叫compiz fusion。7.10版本已经自带了,只要你的显卡和驱动支持(ati/nvidia/intel/via)。本论坛的超酷桌面板块有安装方法。注意还是测试版,请自负风险,并做好备份。另外,compiz和beryl已经合并,就叫compiz fusion。不同显卡有不同的设置方式,会牵扯到不少概念,如果不是很清楚的话,新手就不要涉及了。不久应该会有compiz fusion的wiki。compiz fusion主页(英文)

Q: 我应该装哪个版本的ubuntu?
A: 这个要看个人喜好咯。喜欢gnome的用ubuntu,喜欢kde的用kubuntu,喜欢xfce的用xubuntu。机器比较老,或者内存小于256MB的,请选择xubuntu(轻量级,很快)或者server版本(无桌面)。如果不清楚我在说什么,先看这里

Q: 如何调节cpu的频率?如何控制风扇速度?
A: 参见cpu频率调节与硬件监视软件How to detect CPU temperature, fan speeds and voltages (lm-sensors)及以下部分,以及配置CPU温度.风扇转速,硬盘温度监控(附加Athlon/Duron系统安全度夏指南)

Q: 那种分区格式比较好阿?
A: 个人比较推荐reiserfs,速度快,有效空间大;ext3也可以,但相对浪费硬盘空间。此外还有jfs, xfs等。不推荐用ext2,因无日志文件,意外断电时会无法恢复数据。

Q: windows的分区为什么无法写入,只能读?
A: ntfs分区,ubuntu7.10之前的版本是不支持写入的。如果需要写入ntfs分区,请安装ntfs-3g。参见:可读写ntfs分区的ntfs-3g(正式版)的安装与使用

Q: 字体好难看,怎么美化?
A: 中文字体确实难看,因为好看的中文字体几乎都有版权的。文泉驿是一个不错的选择。当然我们可以用windows字体来美化,个人推荐Dejavu Sans YuanTi,由鄙人制作。其他的如雅黑,宋体等可以参看本论坛中文区的精华和wiki。
注意:拷贝字体后一定要

代码:
sudo fc-cache -f

并且注意字体的权限。最方便的是把字体放在~/.fonts下。另外给大家两篇文章,比较详细。
Linux 字体微调 – Vista 效果版Linux 字体微调 – windows 效果版

Q: 重装windows后,ubuntu怎么就没了?
A: 因为那个自说自话的windows把硬盘的MBR重写了,导致ubuntu无法引导。有多种方法可供选择。参见方法一方法二方法三

Q: 怎样把ubuntu装到移动硬盘上?
A: 参见:把ubuntu操作系统装入移动硬盘,并在不同电脑上运行

Q: 怎样修改默认的启动系统?
A:

代码:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
sudo gedit /boot/grub/menu.lst

找到 default 0,将0改成你其他系统的位置,位于第X项,就是修改成 X-1(从0开始数)。

*Q: 如何去掉/加上桌面上的图标?
A: 终端输入gconf-editor,找到/apps-nautilus-desktop/volumes_visible,然后该怎么做就怎么做吧。

*Q: 如何开机就进入文本模式而不是图形界面?
A: 把gdm服务关掉即可。在控制台下启动x用 startx 。

Q: 刻盘安装怎么无法从光驱启动?
A: 出现这种情况,恐怕不是光驱的问题,就是你把它刻成镜像了。请重新刻盘。

Q: 如何自己编译/安装软件阿(为什么我没有make命令/gcc怎么没有等)?
A: 你没有安装编译环境,只需

代码:
sudo apt-get install build-essential

Q: 为什么我更新后,启动界面多出几个内核选项,又如何删除?
A: 那些是以前的内核,当前系统只能用一个内核,所以不删除也没有关系。可以用新立得将不需要的内核删除,找到以linux-开头的包,小心看过再删除。内核包名是 linux-image-xxx。另外启动选项可以用startupmanager修改,参见:startup-manager

Q: 如何打开chm文件?
A: 安装xchm,或chmsee,或kchmviewer(有nokde版本);或者添加一个firefox的插件,叫chmreader,很好用,强烈推荐,请到mozilla主页下载。

Q: 为什么用源里面的acroreader/evince/xpdf中文乱码?
A: 最好的解决办法是区adobe主页下载中文版 adobe reader(deb包),参见:Adobe Reader 8.11 中文版 for linux (deb)。或者把xpdf的几个中文相关装上,如 xpdf-chinese-simplified 等(不是很完美)。

Q: linux下有病毒么,需要安装防火墙吗?
A: 据我所知,大概有那么200种,比起windows的2000000种(还在与日俱增)少多了。如果你中毒了,恭喜你,可以买彩票了。如果实在要装,个人推荐antivir,是一个免费的杀毒软件,排名很前的哦。主页下载地址
至于防火墙,ubuntu默认并未激活,无特殊需要,根本不必开启,因为远程端口默认是关闭的。换句话说,你完全可以裸奔:D。参见:windows, osx, linux/unix安全性比较。如果需要开启,请安装firestarter

代码:
sudo apt-get install firestarter

或者可以手动配置iptables。

Q: 为什么无法登录系统,我明明没有设置帐号?
A: 很有可能你用了oem安装方式,那么用户名就是oem,密码是你安装时设置的那个。

Q: 鼠标功能键如何启用?我那么好的罗技、微软鼠标,就和普通鼠标没区别么?
A: 参见:罗技多键鼠标的配置Microsoft Intellimouse

Q: server版本为什么没有桌面?
A: 正因为是server版本,本来就没有桌面,不过你可以自己安装。
gnome

代码:
sudo aptitude install ubuntu-desktop

kde

代码:
sudo aptitude install kubuntu-desktop

xfce

代码:
sudo aptitude install xubuntu-desktop

Q: windows下如何访问linux的分区?
A: 参见:常用windows下访问ext3和Reiser分区的工具

Q: linux需要磁盘碎片整理么?
A: 其实是有碎片的,只是相比windows而言要少的多的多,因此除了xfs和ext4有相应的整理工具外,其余的文件系统都没有提供。参见:linux不需要磁盘碎片整理

Q: 为什么我的/分区或者/var分区越来越大?能删除么?apt-get或新立得下载的软件包缓存都在哪里?
A: 当然可以,/var/cache/apt/archieve 下的都是软件的安装缓存,你可以直接删除,或者用命令sudo apt-get autoclean(只删除低版本的deb包),sudo apt-get clean(全部删除)。为了以后重装系统方便,可以将这些deb包保存到其他地方。

Q: 为什么无法安装?我一见到”loading kernel”就停住了,死活过不去?
A: 你可以在安装时按F6,然后在启动选项后面添上 acpi=off,也可以尝试noapic。具体请搜索论坛。

Q: stardict为什么没有字典?如何安装?
A: 请到stardict主页下 载字典,解压后放到/usr/share/stardict/dic。也可直接下载源里的(只是数量有限)。注意,stardict-treedict- infoBrowse-zh_CN-2.4.2 应该放到/usr/share/stardict/treedict 而非treedic,请自行把该目录更名。

Q: 一般软件安装在什么目录?
A: 一般的deb包(包括新立得或者apt-get下载的)都装在/usr(严格讲会装到系统各个目录,如/bin, /sbin, /var, /lib, /opt等等)。自己下载的压缩包或者编译的包,有些可以选择安装目录,一般放在/usr/local/,也有在/opt的。如果想知道具体位置,用命令

代码:
dpkg -L xxx.deb

注意,xxx是deb包的名称,也可以用新立得来查看。另参见apt使用参考

Q: 系统从低版本升级到高版本发生问题,怎么办?
A: 升级不出问题的很少。如果是小问题,那么试着自己解决一下。如果系统出问题,而且不知道该怎么办,建议用高版本的盘重新干净的安装。与其找解决方法还不如重装来的方便快捷。

Q: 为什么ubuntu要用那么多内存阿?
A: 千万别以windows的思路思考问题。这是linux,内存管理机制要比win优秀的多得多,尽量使用内存而不是虚拟内存(swap区)。

Q: 为什么我编辑/执行文件的时候说没有这个文件或目录?
A: 首先,你要在该文件的当前目录进行操作,你需要用到cd命令。另外请注意,linux是分大小写的。常见的问题是,/etc/X11/xorg.conf,请看这里的X11是大写的。补充一点,请多用tab键进行命令/路径补全,你一定会爱上她的。

Q: 为什么我用ctrl+alt+Fn进入控制台时花屏/zhcon在控制台下花屏?
A: 你需要开启内核的frame buffer

代码:
sudo nano /boot/grub/menu.lst
找到kernel一行(是你一直使用的内核,非single那个),在末尾添上vga=数值,数值请看下表(为方便已经把数值换算成十进制):
* 色彩 640×400 640×480 800×600 1024×768 1280×1024 1600×1200
* 4bits ?———-?———–770——–?———–?———–?
* 8bits 768——-769——–771——–773——–775——–796
* 15bits ?———784——–787——–790——–793——–797
* 16bits ?———785——–788——–791——–794——–798
* 24bits ?———786——–789——–792——–795——–799

例如,1024*768@16bits就是添上 vga=791
注意:vga不支持宽屏,只能找相近的值,而且屏幕会被拉扁。

Q: 为什么7.10用了上面的方法后就无法进入控制台?
A: 这是因为ubuntu为了稳定性考量,把framebuffer模块给屏蔽掉了,需要手动打开。参见:让你的7.10支持frame buffer

Q: 什么是super键?如何设置?
A: super键就是你的win键,一般在ctrl和alt之间。找到 系统-首选项-键盘-布局选项-Alt/Win键行为,将“super键被映射到windows键”钩上。

*Q: 为什么我的gmplayer打开时会出现

引用:
opening/initializing the selected video-out(-vo)device.

A: 说明你没有选择正确的视频输出驱动。右键单击mplayer窗口,找到Preferences-Video-Available drivers,选择一个合适的即可。

Q: 如何解压/创建rar文件?
A:

代码:
sudo apt-get install rar unrar

Q: 如何更改默认打开方式?
A: 右键单击文件,找到属性-打开方式,然后爱怎么做就怎么做。

Q: 有多线程下载工具吗?
A: d4x、firefox的downthemall插件,另外推荐multiget,速度最快。参见:Multiget多线程下载

*Q: 我的添加删除按钮怎么消失了?
A: 右键单击“应用程序”,找到编辑菜单,然后看添加删除有没有钩上。也有可能你把这个软件包给删除了,请执行

代码:
sudo apt-get install gnome-app-install

Q: 如何进入控制台,如何从控制台重新回到x环境?
A: ctrl+alt+Fx (x=1 2 3 4 5 6)进入控制台,ctrl+alt+F7回到x。

*Q: 为什么我的主题那么难看,就像gtk1.x似的?
A: 大部分情况是因为系统默认没有安装gtk2-engines-pixbuf,而很多主题都要用到pixmap这个引擎。只要

代码:
sudo apt-get install gtk2-engines-pixbuf

其他的主题可能需要另装引擎,具体问题具体分析。(另外推荐一下murrine引擎,很快,也很漂亮 :D

Q: 如何在桌面/当前目录打开终端?
A:

代码:
sudo apt-get install nautilus-open-terminal

*Q: 如何以root权限打开文件(夹)?
A:

代码:
sudo apt-get install nautilus-gksu

然后右键单击文件或文件夹,选择“以管理员打开”。或者可以

代码:
sudo nautilus 某文件夹

如果想让sudo不再输入密码,请参见:讓sudo不在輸入密碼

Q: 为什么我的时间比实际的要快/慢?
A: 因为你有ubuntu以外的系统,非常可能是windows,而windows是不使用utc的。你所需要做的是:

代码:
sudo nano /etc/default/rcS

把UTC设置成no,即UTC=no。

Q: 为什么我的音频播放时有爆音/我的音量已经调到最大了,为什么还是很轻?
A: 很可能你把pcm调到最大了,而主声道的很低。另外如果没声音,看看是不是把某个给静音了(不要笑,这是常有的事)。顺便提一下,如果mic没用,也可能是同样的问题。

Q: 为什么升级到7.04我的声卡不出声?
A: 这个是内核的bug,两种方法,一是自己编译alsa驱动,参见: 7。04识别了声卡 喇叭显示正常 没声音的进来,二是经最近内核更新又修正了,请尽量升级到2.6.20-16内核。

Q: 为什么升级软件后出现?

代码:
E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem.

A: 请执行

代码:
sudo dpkg –configure -a

Q: 如何开启字体的clear type?
A: 添加源
feisty:

代码:
deb http://www.telemail.fi/mlind/ubuntu feisty fonts

edgy:

代码:
deb http://www.telemail.fi/mlind/ubuntu edgy fonts

gpg key:

代码:
gpg –keyserver subkeys.pgp.net –recv-keys 937215FF
gpg –export –armor 937215FF | sudo apt-key add -

feisty 64位:

代码:
deb http://ubuntu.moshen.de/ feisty experimental

gpg key:

代码:
wget http://ubuntu.moshen.de/2F306651.gpg -O- | sudo apt-key add -

然后

代码:
sudo apt-get update && sudo apt-get dist-upgrade

会提示升级3个包,安装完毕后重启x即可。

gutsy不需要。

Q: 如何安装rpm包形式的软件?
A: 不推荐安装此类包,debian系有更好的包管理方式deb,尽量从源里安装软件(20000+的还不够么?)如果实在没有,那么请安装alien,把rpm包转成deb,具体操作方法参看man alien手册。

Q: 如何查看我的系统版本?
A:

代码:
lsb_release -a

Q: 如何清理无用的包?
A:

代码:
sudo apt-get autoremove
sudo apt-get install gtkorphan

找到 系统->系统管理->Remove orphaned packages,然后清理不需要的包(注意别误删)。

Q: 为什么我的azureus不行?
A: 尽量下载官方主页的3系列版本,解压后直接运行,无须安装。下载地址

Q: 为什么我的audacious无法播放ape音频?
A: 添加源
gutsy:

代码:
deb http://morgoth.free.fr/ubuntu gutsy-backports main

feisty:

代码:
deb http://morgoth.free.fr/ubuntu feisty-backports main

然后

代码:
wget -O – http://morgoth.free.fr/files/morgoth-signkey.gpg.asc | sudo apt-key add -
代码:
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install audacious-mac

Q: 为什么我的mplayer播放时无法全屏?
A:

代码:
nano ~/.mplayer/config

在开始的地方添上

代码:
zoom=yes

保存。
或者

代码:
sudo nano /etc/mplayer/mplayer.conf

找到zoom=yes那行,把前面的注释#去掉,保存。

Q: 为什么我的mplayer无法拖动进度条?
A: 要么自己编译mplayer,但不推荐。要么就用快捷键,比进度条方便而且精确,这些键包括上下左右和翻页键,也可以自己修改这些键的跳跃程度(时间)。 可以把/etc/mplayer/input.conf这个文件cp到~/.mplayer,然后修改所需要的部分。

Q: 为什么无法登录QQ?
A: 这个得问万恶的X讯,把除其本家的QQ外的其他QQ程序给咔嚓掉了。最可靠的方法是用wine虚拟,其他的程序似乎有的可以,有的不行。

Q: 为什么feisty播放视频时每隔20分钟会自动黑屏/启用屏保?
A: 这个是bug,参见:看视频时每隔20分钟就启用屏保的解决方法

Q: linux下有如ghost一样的备份工具么?
A: 当然有,一个是ghost,个人不推荐,因为支持格式少,二来速度也不咋的。强烈推荐clonezilla,参见:ubuntu的安装与离线升级、跨版升级和备份策略

Q: ubuntu需要优化么?
A: 一般来说不需要,但可以进行适当调整,让你过把DIY的瘾。注意,强烈不建议新新手作这么危险的事情,至少做好备份。参见:系统优化新手向导


Bookmark and Share

Linux目录解释

This item was filled under [ linux ]

from: http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=1481

/bin:bin是binary(二进制)的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat。
/boot:这里存放的是启动LINUX时使用的一些核心文件。

/dev:dev是device(设备)的缩写。这个目录下是所有LINUX的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在LINUX中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,比如说有个用户叫liubin,那他的主目录就是/home/liubin也可以用~liubin表示,说到这 里,打个岔,你现应该明白在我们访问一些个人网页(如http://www.liubin.net/~liubin)的时候,~liubin就是表示访问 www.liubin.net站点中的用户liubin的用户主目录。
如果这个网站的操作系统是LINUX,那就是表示/home/liubin。
/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点类似于DOS下的.chk文件。
/mnt:这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里啊!?
/root:系统管理员,也叫作超级权限者的用户主目录。当然系统的拥有者,总要有些特权啊!
/sbin:s就是Super User的意思,也就是说这里存放的是一些系统管理员使用的系统管理程序。
/tmp:这个目录不用说,一定是用来存放一些临时文件的地方了。
/usr:这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。具体来说:
/usr/X11R6 存放X-Windows的目录;
/usr/bin 存放着许多应用程序;
/usr/sbin 给超级用户使用的一些管理程序就放在这;
/usr/doc 这就是LINUX文档的大本营;
/usr/include LINUX下开发和编译应用程序需要的头文件,在这找;
/usr/lib 存放一些常用的动态链接共享库和静态档案库;
/usr/local 这是提供给一般用户的/usr目录,在这安装软件最适合;
/usr/man man是什么,对了是帮助。这里就是帮助文档目录啊!
/usr/src LINUX开放的源代码,就存在这个目录,爱好者们别放过哦!
/var:这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。
这里列出了最常见的目录,根据LINUX发行套件的不同,目录结构也是有一定差别的。还有你自己建立的目录,我当然不知是存什么的。希望上面的文字能使你在大脑里留下了LINUX的全景图,以便大家深入掌握LINUX的其它方方面面。

Bookmark and Share