搜档网
当前位置:搜档网 › QT理论试题及答案

QT理论试题及答案

QT理论试题及答案
QT理论试题及答案

QT理论试题1.以下关于QT的描述正确的是:

a.是一个不跨平台的C++图形用户界面

b.由挪威TrollTech公司出品

c.只支持Unix、Linux

d.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:

a.QT支持2D图形渲染

b.QT支持3D图形渲染

c.QT支持OpenGL

d.QT不支持XML

3.下关于不正确的是:

a.是面向嵌入式系统的Qt版本

b.是Qt的嵌入式窗口

c.基于Windows平台的开发工具

d.是完整的自包含C++ GUI的开发工具

4.内部对字符集的处理采用以下哪个标准:

a.UNICODE

b.ASCII

c.GB2312

d.ISO 8859-1

5.以下关于Qt描述不正确的是

a.是基于面向对象的C++语言

b.提供了signal和slot的对象通信机制

c.有可查询和可设计属性

d.没有字符国际化

6.以下描述正确的是:

a.标准的C++对象模型可有效的支持运行时参数

b.标准的C++对象模型的静态特性十分灵活

c.图形用户界面编程无需运行得高效

d.图形用户界面编程无需运行得高灵活性

7.以下不是QT增加的特性:

a.有效的对象通信signal和slot

b.可查询和可设计的对象

c.事件及事件过滤器

d.不使用指针

8.以下描述正确的是:

a.元对象系统可以对信号使用模板

b.元对象系统可以对槽使用模板

c.Qt可在多个平台的应用程序中完全应用模板

d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:

a.moc即Mult Object Compiler

b.可产生能被任何标准C++编译访问的附加C++代码

c.moc必须手动调用

d.类声明中有无Q_OBJECT无所谓

10.以下关于信号和槽的描述正确的是:

a.用于SOCKET网络通信

b.用于UDP网络通信

e.用于对象间通信

c.用于串口通信

11.以下关于信号/槽的叙述不正确的是:

a.信号与槽通过connected函数任意相连

b.信号/槽机制在QObject类中实现

c.从QWidget类继承的所有类可以包含信号和槽

d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信

12.以下类声明中有几处错误?

class M : public Q o bject

{ Q_OBJECT

public :

M ( ) ;

int value ( ) const

{

return va ;

}

public slot s :

void setValue ( int ) ;

signals :

void valueChanged ( int ) ;

private:

int va ;

};

a. 5

b. 4

c. 3

d. 2

13.设有如下声明

void M : : setValue ( int v )

{

if ( v != va )

{

va = v ;

emit valueChanged ( v ) ;

}

}

则对于如下语句

M a , b ;

connect ( &a , SIGNAL ( valueChanged ( int ) ) , &b , SLOT ( setValue ( int ) ) ) ;

b.setValue ( 11 ) ;

a.setValue ( 12 ) ;

b.value ( ) ;

执行后,值为:

a. 11 11

b. 12 12

c. 11 12

d. 12 11 14.以下关于槽的描述正确的是:

a.槽具有public和protected 2个类

b.protected slots 表示只有该类的子类的信号才能连接

c.槽是普通成员函数

d.不能有private slots

15.以下关于元对象系统不正确的是

a.元对象系统只是用于处理对象间通信的信号/槽机制

b.元对象系统可处理运行时的类型信息和动态属性系统

c.元对象系统基于Qobject类

d.bc都对

16.不是元对象代码实现的特征的是:

a.提供信号/槽机制

b.Class.forName ( )在运行的时候返回类名称

c.tr ( )用于国际化中的字符串翻译

d.metaObject ( )返回该类所关联的元对象

17.以下关于Q_OBJECT叙述不正确的是:

a.类定一种声明了Q_OBJECT后,该类才能使用元对象系统相关的特性

b.Q_OBJECT对所有类都无关紧要

c.QObject的子类中未实现信号和槽也可使用Q_OBJECT

d.QObject的子类中未实现属性也可使用Q_OBJECT

18.以下关于元对象编译器的叙述不正确的是:

a.元对象编译器不展开#define ,但可展开#include

b.元对象编译器不展开#include

c.忽略遇到的所有预处理程序

d.无法处理所有C++语法

19.有如下语句

class YourClass : public Qobject

{

Q_OBJECT

public slots :

void apply ( void ( *apply ) ( List * , void * ) , char * ) ;

}

以下正确的是

a.完全正确

b.可以没有Q_OBJECT

c.slots关键字有误

d.函数指针不能作为信号和槽的参数

20.如下叙述不正确的是:

a.不能把继承的成员函数升级为共有状态

b.宏不能用在信号和槽的参数中

c.嵌套类不能放在信号部分

d.嵌套类可以放在槽部分

21.有如下声明:

class Abc : public Qobject

{

①Q_OBJECT

②public :

③ Q_PROPERTY(Priority priority READ priority WRITE

setPriority )

④Q_ENUMS ( Priority )

enum Priority { High , Low , VeryHigh , VeryLow };

void setPriority ( Priority ) ;

Priority priority ( ) const ;

};

关于属性声明的位置以下正确的是:

a.原位置正确①②③④

b.原位置不正确,应为①③④②

c.原位置不正确,应为①③②④

22.以下关于属性的叙述不正确的是:

a.基于元对象系统

b.在类声明中用宏声明

c.属性不是一个类的成员

d.属性只能在继承于QObject的子类中声明

23.以下关于QObject类叙述不正确的是:

a.是所有Qt对象的基类

b.QObject对象树是一个静态的QObjectList类对象object_trees

c.object_trees链表中存有部分对象指针

d.通过object_trees链表可查询到所有的对象

24.以下是事件处理方法的是:

a.重载QApplication : : notify ( )

b.重载QObject : : event ( )

c.重载Qt基类事件处理函数

d.以上全是

25.以下关于定时器的叙述不正确的是:

a.多数平台支持2ms精度的定时器

b.使用定时器,可以用QTimer类

c.使用定时器,可以用QObject类的定时器

d.定时器精度依赖于操作系统和硬件

26.以下关于QObject类定时器的叙述正确的是:

a.当处理器正忙于其它事件的处理时,定时器仍可以立即触发

b.当定时器触发时,应用程序会发送QtimerEvent

c.用startTimer ( )开始一个定时器,如果成功则返回0

d.用startTimer ( )开始一个定时器,如果失败则返回-1

27.以下是QObject提供的字符串翻译函数的选项是:

a.translateit ( ) , trUtf8 ( )

b.translation ( )

c.tr ( ) , trUtf_8 ( )

d.tr ( ) , trUtf8 ( )

28.以下关于元对象的叙述不正确的是:

a.每个在类声明中含有Q_OBJECT宏的类都有一个对应的元对象

b.每个在类声明中含有Q_OBJECT宏的类都有一个对应的QMetaObject类

对象

c.元对象是动态的

d.一个类可能含有多个元对象与之对应

29.窗口部件的父类包括:

a.QWidget

b.QFrame

c.QScrollView

d.以上全是

30.以下关于QWidget类、QFrame类和QScrollView类的关系叙述正确的是:

a.三个类是兄弟关系

b.三个类是继承关系:QWidget为祖父,QFrame为父,QScrollView为子

c.三个类是继承关系:QFrame为祖父,QWidget为父,QScrollView为子

d.三个类是继承关系:QFrame为祖父,QWidget与QScrollView互为兄弟31.以下关于Qt风格叙述正确的是:

a.Qt的风格类的基类是QStyle类

b.QStyle的多数成员函数即有声明也有实现

c.其实现只能在QCommonStyle类中通过重载来完成

d.其实现只能在QWindowStyle类中通过重载来完成

32.关于布局功能的叙述,以下正确的是:

a.在布局空间中布置子窗口部件

b.设置子窗口部件间的空隙

c.管理在布局空间中布置子窗口部件

d.以上都对

33.以下关于QLayout的描述不正确的是:

a.是的布局系统抽象基类

b.其中,属性int margin代表布局的外边框的宽度

c.其中,属性int spacing代表布局内的窗口部件的大小

d.其中,属性ResizeMode resizeMode代表布局的扩展方式

34.布局窗口部件包括:

a.QHBox

b.QVBox

c.QGrid

d.以上全有

35.以下叙述不正确的是:

a.QHBox允许子窗口部件按水平、垂直和网格排列

b.QVBox允许子窗口部件按水平、垂直和网格排列

c.QGrid允许子窗口部件按水平、垂直和网格排列

d.以上全不对

36.以下各项中,是QLayout子类的是:

a.QGridLayout

b.QHBoxLayout

c.QVBoxLayout

d.b和c

37.如果对默认放置位置不满意,则须采取相应的措施,以下哪项不是:

a.创建没有父布局的布局对象

b.调用addLayout ( )把这个布局插入到其他布局中

c.没有办法

d.a和b

38.以下关于集合类描述不正确的是:

a.它是装有多个条目的容器

b.每个条目是某种数据结构

c.集合类可对容器中的条目做插入操作

d.集合类不能对容器中的条目做删除操作

39.以下各项中属于基于值的集合类是:

a.QCache

b.QMap

c.QPtrList

d.QDict

40.以下各项中属于基于指针的集合类的是:

a.QIntCache

b.QValueStak

c.QValueVector

d.QValueList

41.以下各项中既不基于指针也不基于值的是:

a.QIntDict

b.QPtrList

c.QPtrStack

d.QMemArray

42.所有基于指针的集合继承了如下哪个类?

a.QGCache

b.QGVector

c.QPtrCollection

d.QGList

43.当插入一个条目到一个集合时,如下不正确的是:

a.仅拷贝指针而不拷贝条目本身的,称“浅拷贝”

b.不允许只拷贝指针而不拷贝条目本身

c.拷贝所有条目的数组到集合中是可能的

d.选项C又称“深拷贝”

44.以下各项中不是与Qt线程相关的类的是:

a.QMutex

b.QSemaphore

c.QThread

d.以上都不是

45.以下关于Qt线程叙述正确的是:

a.Qt中提供了Thread线程类

b.Qt中提供了QThread线程类

c.通过重载Thread : : run ( ) 函数定义线程的执行内容

d.通过重载QThread : : _run ( ) 函数定义线程的执行内容

46.有如下关于线程的代码:

class Your_Class : public QThread

{

public :

virtual void run ( ) ;

} ;

void Your_Class : run ( ) Your——Class::run();

{

for ( int i=0 ; i < 100 ; i++ ) ;

}

int main ( )

{

Your_Class a ;

a . run ( ) ;

return 0 ;

}

其中有几处错误:

a. 1

b. 2

c. 3

d. 4

47.以下关于线程编程时的注意事项中不正确的是:

a.在持有Qt库互斥量时必须执行阻塞操作

b.在调用除了Qt容器和工具类外的任何内容之前,锁定Qt应用程序互斥

c.只在GUI线程中使用QNetwork类

d.不要在应用程序中把普通Qt库与支持线程的Qt库混用

48.以下不属于拖放机制的是:

a.拖动

b.剪贴板

c.放下

d.以上都不是

49.以下关于拖动的叙述错误的是:

a.在拖动之后,QDragObject被立即删除

b.拖放明显完成后,这个QDragObject要被保存

c.QDragObject可能要与其他进程通信

d.QDragObject对象最后由Qt删除

50.在一些简单情况下,拖放的目标接收一个被拖动数据的拷贝,并且由源决定是否删除初始的拖动对象,这是QDropEvent中的什么操作?

a.Copy

b.Move

c.Link

d.以上都不是

51.Qt/Embedded的开发公司是:

a.Microsoft

b.Sun

c.Oracle

d.Trolltech

52.以下各项中关于焦点定位的习惯方式叙述错误的是:

a.用户按Tab键

b.用户按Enter键

c.b选项不是

d.用户使用鼠标滚轮

53.以下关于Qt/Embedded叙述不正确的是:

a.是C/S结构

b.类库完全采用C语言

c.采用framebuffer作为底层图形接口

d.将外部输入设备抽象为keyboard和mouse输入事件

54.以下关于字体的叙述正确的是:

a.Qt/Embedded用QFontManager管理字体,与字体相关的类在服务器端运

b.Qt/Embedded用QFontManager管理字体,与字体相关的类在客户端运行

c.Qt/Embedded用FontManager管理字体,与字体相关的类在服务器端运行

d.Qt/Embedded用FontManager管理字体,与字体相关的类在客户端运行55.以下各项中与显示无关的类是:

a.QScreen

b.QLock

c.QWSManager

d.QDiskFont

56.以下不是Qt支持的图像格式是:

a.JPG

b.PNG

c.BMP

d.XPM

57.以下叙述正确的是:

a.Qt支持GIF格式图像,且可以存储它们

b.Qt支持GIF格式图像,但不可以存储它们

c.Qt不支持GIF格式图像,但可以存储它们

d.Qt不支持GIF格式图像,且不可以存储它们

58.用QPainter的转换函数对图像做转换后,若要恢复图像的原样,则以下正确的是:

a.无法实现

b.可以实现,用QPainter : : resetForm ( ) 只能恢复最近一次的转换

c.可以实现,用QPainter : : resetForm ( ) 可以撤销所有的转换操作59.用QPixmap对象打开GIF动画,以下叙述正确的是:

a.可以看到动画

b.看不到任何画面

c.只能看到动画的第一帧

d.只能看到动画的最后一帧

60.以下关于Qt/Embedded客户端与服务器的描述不正确的是:

a.客户端可以有多个

b.服务器可以有多个

c.客户端只有一个

d.服务器只有一个

简答题

1、什么是qt,有什么优点?

答:Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。是一个跨平台的 C++ 图形用户界面库。Qt具有非常强的跨平台和移植性强的特点。同时支持linux、windows、嵌入式的用户界面开发。

2、使用Qt编码实现Lable显示“hello world”的功能。

#include

#include

#include

//#include

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

//QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

QWidget *pWidget=new QWidget;

QLabel label(pWidget);

label.setText("hello world");

pWidget->show();

return app.exec();

}

3、编写代码实现调用槽函数退出的quit程序,界面如下:

#include

#include

#include

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

QWidget *pWidget=new QWidget;

QPushButton *button=new QPushButton("Quit",pWidget);

QObject::connect(button,SIGNAL(clicked()),pWidget,SLOT(close()));

pWidget->show();

return app.exec();

}

4、编程实现spinbox和slider(QSlider(Qt::Horizontal))之间的交互,界面

如下,两种期间的范围全部是0-130。Title为“enter your age”

#include

#include

#include

#include

#include

int main(int argc,char* argv[])

{

QApplication app(argc,argv);//创建app的构造函数

QWidget *pWidget= new QWidget; //new一个Widget

pWidget->setWindowTitle("enter your age"); //设置caption

QSpinBox* spinbox = new QSpinBox; //new一个spinbox

QSlider* slider = new QSlider(Qt::Horizontal); //new一个slider spinbox->setRange(0,130); //设置范围,->符号

slider->setRange(0,130);

QObject::connect(spinbox,SIGNAL(valueChanged(int)),slider,SLOT(se tValue(int)));

QObject::connect(slider,SIGNAL(valueChanged(int)),spinbox,SLOT(se tValue(int)));

//信号和槽,(发送者,信号,接收者,槽).第一个是spinbox发送给slider的

//第二个是slider发送给spinbox的

spinbox->setValue(23);

//QHBoxLayout是布局管理器,即在水平方向上排列窗口部件

QHBoxLayout* layout = new QHBoxLayout;

layout->addWidget(spinbox);

layout->addWidget(slider);

pWidget->setLayout(layout);

pWidget->show(); //窗体显示

return app.exec();

}

5、如何编译运行qt程序,命令是什么?

qmake -project

qmake

make

6、如何将UI界面问件转化成代码的.h文件?(假设ui文件名为gogogo.ui。)

UIC -o gogogo.h gogogo.ui

7、请填写空格处的语句,实现声明自己的槽MyWinExit和信号OnExit。

class MyWindow : public Qwidget

{

Q_OBJECT

public:

MyWindow(QWidget *parent = 0);

signals:

OnExit();

private slots:

MyWinExit();

}

8、假设我们建立了一个widget的图形用户界面,如图所示:

那么我们main文件应该怎么写,假设ui的名字为gotocelldialog.ui

#include

#include

#include "ui_gotocelldialog.h"

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

Ui::GotoCellDialog ui;

QDialog *dialog = new QDialog;

ui.setupUi(dialog);

dialog->show();

return app.exec();

}

9、假设文件浏览器的界面定义如下:

/******************************************************************** ************

** Form generated from reading ui file 'dir.ui'

**

** Created: Fri Dec 10 11:46:18 2010

** by: Qt User Interface Compiler version 4.5.0

**

** WARNING! All changes made in this file will be lost when recompiling ui file!

********************************************************************* ***********/

#ifndef UI_DIR_H

#define UI_DIR_H

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

class Ui_Dialog

{

public:

QVBoxLayout *verticalLayout;

QComboBox *comboBox;

QSplitter *splitter_2;

QSplitter *splitter;

QTreeView *treeView;

QListView *listView;

QTableView *tableView;

void setupUi(QDialog *Dialog)

{

if (Dialog->objectName().isEmpty())

Dialog->setObjectName(QString::fromUtf8("Dialog"));

Dialog->resize(901, 372);

verticalLayout = new QVBoxLayout(Dialog);

verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); comboBox = new QComboBox(Dialog);

comboBox->setObjectName(QString::fromUtf8("comboBox"));

comboBox->setMaximumSize(QSize(85, 16777215));

verticalLayout->addWidget(comboBox);

splitter_2 = new QSplitter(Dialog);

splitter_2->setObjectName(QString::fromUtf8("splitter_2")); splitter_2->setOrientation(Qt::Horizontal);

splitter = new QSplitter(splitter_2);

splitter->setObjectName(QString::fromUtf8("splitter"));

splitter->setOrientation(Qt::Horizontal);

treeView = new QTreeView(splitter);

treeView->setObjectName(QString::fromUtf8("treeView"));

splitter->addWidget(treeView);

listView = new QListView(splitter);

listView->setObjectName(QString::fromUtf8("listView"));

splitter->addWidget(listView);

splitter_2->addWidget(splitter);

tableView = new QTableView(splitter_2);

tableView->setObjectName(QString::fromUtf8("tableView"));

splitter_2->addWidget(tableView);

verticalLayout->addWidget(splitter_2);

retranslateUi(Dialog);

QMetaObject::connectSlotsByName(Dialog);

} // setupUi

void retranslateUi(QDialog *Dialog)

{

Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::UnicodeUTF8));

comboBox->clear();

comboBox->insertItems(0, QStringList()

<< QApplication::translate("Dialog", "\345\210\227\350\241\250\350\247\206\345\233\276", 0, QApplication::UnicodeUTF8)

<< QApplication::translate("Dialog", "\347\264\247\345\207\221\350\247\206\345\233\276", 0, QApplication::UnicodeUTF8)

);

Q_UNUSED(Dialog);

} // retranslateUi

};

namespace Ui {

class dir: public Ui_Dialog {};

} // namespace Ui

QT_END_NAMESPACE

#endif // UI_DIR_H

请使用Qdir实现treeview,listview,tableview项目

答:

dir.h

#ifndef DIR_H

#define DIR_H

#include

#include "ui_dir.h"

class Dir : public QDialog, public Ui::dir

{

Q_OBJECT

public:

Dir(QWidget *parent = 0);

public slots:

void chooseMode(int);

};

#endif

dir.cpp

#include

#include "dir.h"

Dir::Dir(QWidget *parent)

:QDialog(parent)

{

setupUi(this);

QDirModel *dirModel;

QStringList filter;

d irModel=new QDirModel(filter,QDir::Dirs|

QDir::NoDotAndDotDot,QDir::DirsFirst|QDir::Name|QDir::Type);

treeView->setModel(dirModel);

treeView->hideColumn(1);

treeView->hideColumn(2);

treeView->hideColumn(3);

tableView->setModel(dirModel);

listView->setModel(dirModel);

//tableView->hide();

comboBox=new QComboBox();

comboBox->addItem(tr("以图标方式显示"));

comboBox->addItem(tr("以列表方式显示"));

comboBox->addItem(tr("以详细信息方式显示"));

comboBox->setCurrentIndex(0);

//selectionModel=ui->treeView->selectionModel();

connect(treeView,SIGNAL(doubleClicked(QModelIndex)),listView,SLOT(setRootIndex (QModelIndex)));

connect(treeView,SIGNAL(doubleClicked(QModelIndex)),tableView,SLOT(setRootInde x(QModelIndex)));

connect(comboBox,SIGNAL(activated(int)),this,SLOT(chooseMode(int)));

}

void Dir::chooseMode(int i)

{

/*if(i==0)

{

tableView->hide();

listView->show();

}

if(i==1)

{

listView->hide();

tableView->show();

}*/

}

main.cpp

#include

#include "dir.h"

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

Dir *adddir = new Dir;

adddir->show();

return app.exec();

}

10、编写一个简单的程序,它包含两个列表框,使用for循环向左边的列表框添加几个条目。点击>按钮可以将左边选中的条目添加到右边.点击<按钮可以将右边选中的条目添加到左边。点击>>按钮可以将左边的所有条目添加到右边。

(提示:列表框控件的类是QListWidget。应该熟悉QListWidget常用的一些方法及信号和槽。)

运行结果如图:

答:

ui_listbox.h

/********************************************************************************

** Form generated from reading ui file 'listbox.ui'

**

** Created: Mon Jul 7 00:10:58 2008

** by: Qt User Interface Compiler version 4.4.0

**

** WARNING! All changes made in this file will be lost when recompiling ui file! ********************************************************************************/

#ifndef UI_LISTBOX_H

#define UI_LISTBOX_H

#include

#include

#include

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

class Ui_Form

{

public:

QListWidget *leftList;

QListWidget *rightList;

QPushButton *add;

QPushButton *remove;

QPushButton *addAll;

QPushButton *removeAll;

void setupUi(QWidget *Form)

{

if (Form->objectName().isEmpty())

语言学重点概念总结

Design features(定义特征): the distinctive features of human language that essentially make human language distinguishable from languages of animals. Synchronic(共时的): said of an approach that studies language at a theoretical “point” in time. Diachronic(历时的): said of the study of development of language and languages over time. Prescriptive(规定式): to make an authoritarian statement about the correctness of a particular use of language. Descriptive(描写式): to make an objective and systematic account of the patterns and use of a language or variety. Competence(语言能力): unconscious knowledge of the system of grammatical rules in a language. 对于一门语言的语法规则系统的无意识获得的知识。Performance(语言运用):

the language actually used by people in speaking or writing. 人们说话写作时实际使用的语言。 Langue(语言): the language system shared by a “speech community”. 一个“语言社团”共有的语言系统。 Parole(言语): the concrete utterances of a speaker. 说话人实际说的话语。 Phonology(音系学): the study of the sound patterns and sound systems of language. It aims to discover the principles that govern the way sounds are organized in languages, and to explain the variations that occur. International Phonetic Alphabet(国际音标): a set of standard phonetic symbols in the form of a chart (the IPA chart), designed by the International Phonetic Association since 1888. It has been revised from time to time to include

busybox详解制作根文件系统

详解制作根文件系统 单击,返回主页,查看更多内容 一、FHS(Filesystem Hierarchy Standard)标准介绍 当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。 该标准规定了根目录下各个子目录的名称及其存放的内容: 制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括: ?编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 ?利用交叉编译工具链,构建/lib目录 ?手工构建/etc目录 ?手工构建最简化的/dev目录 ?创建其它空目录 ?配置系统自动生成/proc目录 ?利用udev构建完整的/dev目录 ?制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。 二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。 1、从https://www.sodocs.net/doc/068851069.html,/下载busybox-1.7.0.tar.bz2 2、tar xjvf busybox-1.7.0.tar.bz2解包 3、修改Makefile文件 175 ARCH ?= arm 176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busybox busybox配置主要分两部分。 第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:

语言学重要概念梳理(中英文对照版)

第一节语言的本质 一、语言的普遍特征(Design Features) 1.任意性 Arbitratriness:shu 和Tree都能表示“树”这一概念;同样的 声音,各国不同的表达方式 2.双层结构Duality:语言由声音结构和意义结构组成(the structure of sounds and meaning) 3.多产性productive: 语言可以理解并创造无限数量的新句子,是由双层 结构造成的结果(Understand and create unlimited number with sentences) 4.移位性 Displacemennt:可以表达许多不在场的东西,如过去的经历、将 来可能发生的事情,或者表达根本不存在的东西等 5.文化传播性 Cultural Transmission:语言需要后天在特定文化环境中 掌握 二、语言的功能(Functions of Language) 1.传达信息功能 Informative:最主要功能The main function 2.人际功能 Interpersonal:人类在社会中建立并维持各自地位的功能 establish and maintain their identity 3.行事功能 performative:现实应用——判刑、咒语、为船命名等Judge, naming,and curses 4.表情功能 Emotive Function:表达强烈情感的语言,如感叹词/句 exclamatory expressions 5.寒暄功能 Phatic Communion:应酬话phatic language,比如“吃了没?” “天儿真好啊!”等等 6.元语言功能 Metalingual Function:用语言来谈论、改变语言本身,如 book可以指现实中的书也可以用“book这个词来表达作为语言单位的 “书” 三、语言学的分支 1. 核心语言学 Core linguistic 1)语音学 Phonetics:关注语音的产生、传播和接受过程,着重考察人类语 言中的单音。Its main focus is on the articulation, transmission and reception of human sounds, especially isolated sounds 2)音位学Phonology:从功能的角度出发对出现在某种特定语言中的语音及其 组合、分布规律进行研究的语言学分支。The branch of linguistics which studies the sound patterns from function perspective. 3)形态学 Morphology:研究单词的内部构造the internal structure of words 4)句法学 Syntax:研究组词造句的规则the rules governing the combination of words into sentences.

liu改udhcpc配置+根文件系统制作

基于ubuntu12.06 Mini2440 256M 试验通过2013年4月8日星期一 1、获得simple.script #解压busybox tar jxvf busybox-1.5.0.tar.ba2 mv busybox-1.5.0 busybox cd busybox #添加交叉工具链 export PATH=/usr/local/arm/3.3.2/bin:$PATH make defconfig make menuconfig #配置时,我们基于默认配置,再配置它为静态编译,安装时不要/usr路径,把Miscellaneous Utilities #下的“taskset”选项去掉,不然会出错。 #如下: Busybox setting ->builds options ->[*] build busybox as a static binary ->installitation options ->[*] don’t use /usr Miscellaneous Utilities ―> [ ] taskset 保存退出。 #编译安装 make ARCH=arm CROSS_COMPILE=arm-linux- CONFIG_PREFIX=/root/build_rootfs/rootfs all install ARCH指定平台 CROSS_COMPILE指定交叉编译 CONFIG_PRRFIX指定安装的路径 或者直接修改Makefile文件 生成的udhcpc是一个链接在上面的安装目录/all/sbin 下 此时把busybox考到根文件系统的/bin下和把udhcpc拷到根文件系统的/sbin(其实原有的根文件系统里可能已经包含了udhcpc{这样该不该都行,或许吧})开机运行/sbin 下的udhcpc就可以自动获得IP。 关键点要把busybox目录下的examples/udhcp/simple.script 脚本文件做为default.script拷贝到根文件系统的/usr/share/udhcpc/default.script。没有则自己创建。

实验四 ramdisk 根文件系统的制作

实验四ramdisk根文件系统的制作 一.实验目的 1.熟悉根文件系统组织结构; 2.定制、编译ramdisk根文件系统。 二.实验设备 1.硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 2.软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三.实验内容 利用6.3 中的已经完成的文件系统,生成一个根文件系统镜像。 四.实验原理 ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录: bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin 目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。1.制作ramdisk根文件系统映像 1)单击菜单应用程序->附件->终端打开终端,设置环境变量: $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)执行命令切换到ramdisk实验目录下: $cd $SIMPLEDIR/6.4-ramdisk 3)运行脚本文件: $ sudosh ramdisk-install.sh shell 脚本命令说明: #!/bin/bash # # ramdisk-install.sh - Make ramdiskfilesystem. # # Copyright (C) 2002-2007

基于busybox的根文件系统制作

龙源期刊网 https://www.sodocs.net/doc/068851069.html, 基于busybox的根文件系统制作 作者:李飞,武金虎,石颖博 来源:《电脑知识与技术》2010年第17期 摘要:Busybox是构建嵌入式Linux文件系统的必备软件,它是所有文件和设备节点的起始点,是决定系统能否正常启动的关键。通过busybox-1.1.3为例,进行配置、编译、安装等过程,从而形成简单的根文件系统映像文件,为以后嵌入式Linux系统的移植打下了良好的开端。 关键词:Busybox;嵌入式Linux;Linux操作系统;根文件系统;cramfs 文件系统 中国分类号:TP316.81文献标识码:A文章编号:1009-3044(2010)17-4655-02 Making Root File System Based on Busybox LI Fei, WU Jin-hu, SHI Ying-bo (College of Computer Science and Information, Guizhou University, Guiyang 550025, China) Abstract: Busybox is an essentiaL software to buiLd an embedded Linux fiLe system. It is the starting node point of aLL the fiLes and devices and the key whether the system can have a normaL start. Taking busybox-1.1.3 for exampLe, making a simpLe root image system fiLe by configuration compiLation and instaLLation Lays a good foundation for migration of the embedded Linux system. Key words: busybox; embedded linux; Linux OS; root file system; cramfs file system 1 根文件系统结构 根文件系统是所有文件和设备节点的起始点,包括系统所必须的各种工具软件、库文件、 脚本、配置文件等一系列的文件。一个基本的Linux根文件系统包含有以下的目录:dev、proc、bin、etc、usr、Lib、temp、var、usr等等目录。其中dev是设备文件节点目录,proc是挂载proc文件系统所用的目录,bin目录下面包含了系统的基本命令,etc目录是系统启动脚本所在的目录,Lib是系统默认的动态链接库目录,usr是用户目录,temp是临时目录,用来保存临时文 件,var目录包含系统运行时要改变的数据。以上都是根文件系统所必须的目录 2 Busybox简介 熟练嵌入式Linux的朋友对busybox一定不会陌生,它是标准Linux工具的一个单个可执行实现,被形象的称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX工具和命令 结合到一个单独的可执行程序中。虽然busybox中的这些工具相对于GNU常用工具功能有所

在硬盘上制作根文件系统.doc

在硬盘上制作根文件系统 一、实验目标: 在硬盘上建立一个根文件系统,硬盘镜像文件的名称为:hdc-0.11.new.img 二、实验环境: 1、Vmware workation, bochs虚拟机,ultraedit编辑环境 2、用到的四个重要的镜像文件:bootimage-0.11-hd,hdc-0.1.img,并将他们放到 mylinux0.11文件夹中。 3、实验环境:redhat linux 三、实验理论依据: 1、Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括以下一些子目录和文件: etc/ 目录主要含有一些系统配置文件; dev/ 含有设备特殊文件,用于使用文件操作语句操作设备; bin/ 存放系统执行程序。例如sh、mkfs、fdisk等; usr/ 存放库函数、手册和其它一些文件; usr/bin 存放用户常用的普通命令; var/ 用于存放系统运行时可变的数据或者是日志等信息。 存放文件系统的设备就是文件系统设备。Linux 0.11内核所支持的文件系统是MINIX 1.0文件系统。 2、inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬 盘、软盘、U盘... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode 值最快的找到相对应的文件。每一个文件开头都是一个inode。 做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。

语言学 重点概念

Chapter one Introduction 一、定义 1.语言学Linguistics Linguistics is generally defined as the scientific study of language. 2.普通语言学General Linguistics The study of language as a whole is often called General linguistics. 3.语言language Language is a system of arbitrary vocal symbols used for human communication. 语言是人类用来交际的任意性的有声符号体系。 4.识别特征Design Features It refers to the defining poperties of human language that distinguish it from any animal system of communication. 语言识别特征是指人类语言区别与其他任何动物的交际体系的限定性特征。 Arbitrariness任意性 Productivity多产性 Duality双重性 Displacement移位性 Cultural transmission文化传递 ⑴arbitrariness There is no logical connection between meanings and sounds. P.S the arbitrary nature of language is a sign of sophistication and it makes it possible for language to have an unlimited source of expressions ⑵Productivity Animals are quite limited in the messages they are able to send. ⑶Duality Language is a system, which consists of two sets of structures ,or two levels. ⑷Displacement Language can be used to refer to contexts removed from the immediate situations of the speaker. ⑸Cultural transmission Human capacity for language has a genetic basis, but we have to be taught and learned the details of any language system. this showed that language is culturally transmitted. not by instinct. animals are born with the capacity to produce the set of calls peculiar to their species. 5.语言能力Competence Competence is the ideal user’s knowledge of the rules of his language. 6.语言运用performance Performance is the actual realization of this knowledge in linguistic communication. 语言运用是所掌握的规则在语言交际中的体现。 7.历时语言学Diachronic linguistics The study of language change through time. a diachronic study of language is a historical study, which studies the historical development of language over a period of time. 8.共时语言学Synchronical linguistics The study of a given language at a given time. 9.语言langue The abstract linguistic system shared by all members of a speech community. 10.言语parole The realization of langue in actual use. 11.规定性Prescriptive It aims to lay down rules for ”correct” behavior, to tell people what they should say and what should not say.

嵌入式Linux根文件系统制作

实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构 掌握根文件系统的搭建过程 掌握busybox、mkcramfs等工具的使用方法 二. 项目主要任务 使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS 格式的根文件系统。 分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程 三. 基本概念 1.文件系统基本概念 Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。 2.常见的嵌入式文件系统 嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。 (1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有: jffs2:RedHat基于jffs开发的文件系统。

汉语言文学《语言学概论》复习要点

《语言学概论》复习要点 重点名词概念:语言学、普通语言学、专语语言学、共时语言学、历时语言学 一、语言学、语言学的对象和任务 二、语言学在科学体系中的地位 三、语言学的基本类别 根据研究的对象的不同,语言学分为共时语言学和历时语言学、专语语言学和普通语言学。 四、语言学流派 各个语言学流派的观点、代表人物有所了解即可,注意布拉格学派、哥本哈根学派以及美国结构语言学派(也称美国描写语言学)都属于结构主义学派,是这一学派的三个分支。关于语言学流派的具体内容阐述,不作考试要求。 第一章言语的社会功能 本章须明确两个大的要点:语言的社会功能,即交际工具和思维工具;语言是一种社会现象。 主要名词概念:语言、社会、社会现象 第一节语言是人类最重要的交际工具 一、语言是人类社会的交际工具 1.语言的交际功能:语言是人类区别于其它动物的一个重要标志。语言是联系社会成员的桥梁和纽带,是社会成员互相之间交际和交流思想的工具,也是协调社会成员行动一致的工具。 2.语言是一种社会现象:语言是一种社会现象,和人类社会有着十分紧密的联系,没有人类社会,就没有语言,人类社会以外的社会无所谓语言。所谓社会现象是指那些与人类共同体的产生、存在和发展等活动密切联系的现象。不同的民族有不同的语言,不同的地域有不同的语言,同时社会的变化也给语言以极大的影响,而离开了人类社会,就无所谓语言可言了。总之,语言就是一种社会现象,同社会的关系非常密切,其产生、发展等都要受到社会的影响。 语言不是自然现象,一方面,语言同社会有着十分紧密的联系,社会的发展变化直接影响着语言的发展变化,也就是说,语言的发展变化是受制于社会的;另一方面,从语言的音义联系看语言不是自然现象,而是社会约定俗成的,没有必然的本质的联系,如果语言是自然现象,世界上的语言应该一样的,没有区别的,而实际上世界上的语言多种多样,而且许多语言中还有方言,这说明语言决不是自然现象。 3.语言是一种特殊的社会现象:语言不但是社会现象,而且是一种特殊的社会现象。语言作为社会现象的特殊性主要表现在,社会现象可分为经济基础和上层建筑两大类,任何一种社会现象,要么属于经济基础,要么属于上层建筑,而语言既不属于经济基础,也不属于上层建筑,这两者的变化都不会从本质上影响语言。所以,从本质上看,语言是人类共同的交际工具,不分阶级、阶层,一视同仁地为全社会的成员服务,没有阶级性,具有全民性特点。4.语言没有阶级性:可从这样几个方面思考,首先是看语言工具的服务对象,是为特定的阶级服务还是为大众服务。其次是结合语言自身的结构考察,观察语言在哪一方面体现了阶级性特征没有。再次是看语言产生的社会环境,语言产生于没有阶级的社会,社会上连阶级都没有,语言作为社会的产物更谈不上有阶级性了。 二、语言是人类最重要的交际工具 人类传递信息,进行交际和交流思想,除了使用语言外,还可以使用文字、旗语、红绿灯、电报代码、数学符号以及身势、表情等,在一定场合使用,可以弥补语言的一些不足,但是这些交际工具使用范围有限,有的仅用于特定的范围,最重要的是,这些交际工具,都离不开语言,都是在语言的基础上产生的,是辅助语言进行交际的,没有语言,这些手段的存在没有任何意义。 一般掌握:语言和说话的关系 第二节语言是思维的工具 一、语言和思维的关系 语言不但是人类的交际工具,同时也是人类思维的工具,是认识成果的贮存所。思维过程离不开语言,需要借助语言来进行比较、分析、综合等一系列活动,需要借助语言来形成思想,利用语言把它储存在头脑中,再借助语言把思想表达出来,传达给听话人,同时使听话人产生思想。而且人类思维的成果-概念,还可以通过词语固定下来。总之,思维活动的过程不可能离开语言而单独进行,思维离不开语言,必须借助语言材料才能进行。语言也离不开思维,二者是互相依存,共同发展的。 二、思维能力是全人类共同的,语言是各民族不同 思维能力没有民族性,全人类都有,但不同民族的思维方式是不同的,有差别的,这从不同民族的语言的差异方面可以看出来。不同的语言之间很少有意义、功能、色彩等都完全对应等同的词语。第二章语言是符号系统 本章要注意语言是符号、语言符号的任意性特点、语言的层级体系三大要点。 主要名词概念:符号、语言符号、任意性、线条性、二层性、组合关系、聚合关系 第一节语言符号的性质和特点 一、什么是符号 1.符号的含义:符号就是由一定的形式构成的表示一定意义的记号或标记,包括形式和意义两个方面,其作用是指称现实现象。2.符号的构成:符号是由形式和意义两个部分构成的结合体。形式就是符号外在的形状、结构,它是以某种物质的方式存在的,或者是声音,或者是线条,或者是色彩,等等。意义就是符号所代表的具体内容,任何一个符号,都有一定的意义,形式和意义在一定的符号系统中是密不可分的统一体,不能割裂二者之间的关系。形式和意义互相依存,谁也离不开谁。 二、语言符号及其特点 1.语言符号:从本质上看,语言也是一种符号,也有形式和意义两个方面,具有符号的一切特点。 语言符号又不同于一般符号。可从以下几个方面认识理解,首先,语言符号是声音和意义的结合体,是说的和听的;其次,一般符号的构成比较简单,而语言符号却是非常复杂的,可分不同的层级;再次,一般符号由于构造简单,因而只能表达有限的内容,而且这种内容是简单而固定的,语言符号则可以表达丰富多彩的意义;最后,语言符号具有以少驭多的生成机制,具有生成新的结构的能力,一般符号表达的意义是固定的,因而不能生成新的意义。2.语言符号的特点:语言符号具有任意性和线条性的特点。(1)所谓任意性,是指语言的声音形式和意义内容之间的联系是任意的,由社会约定俗成的,没有必然的、本质的联系。什么样的

实验八 构建根文件系统

实验八构建根文件系统 一、实验目的 1、了解嵌入式Linux文件系统的作用和类型; 2、了解jffs2文件系统的优点和在嵌入式系统中的应用; 3、理解文件系统的挂载过程; 4、使用BusyBox制作一个根文件系统。 二、实验环境 预装redhat9.0(内核版本2.4.x)的pc机一台,XScale嵌入式实验箱一台(已构建嵌入式Linux系统),以太网线一根,交叉编译工具链,BusyBox软件包。 三、实验步骤 1、解压BusyBox软件包; 2、使用make menuconfig来配置BusyBox,修改交叉编译器前缀; Build Option [*] Build BusyBox as a static binary(no shared library) [*]Do you want to build BusyBox with a Cross ompile /usr/local/hybus-linux-R1.1/bin/arm-linux- Installation Option [*]Don't’t use /use Coreutils [*]ls

[*]cp [*]reboot [*]echo [*]mkdir [*]rm Editors [*]vi Login Utilities [*]getty 3、交叉编译BusyBox; make make install 4、建立BusyBox顶层目录结构 mkdir etc dev proc tmp lib var sys 5、在dev目录下创建必要的设备节点 (ram0,console,null,zero); mknod mdblock b 31 3 mknod console c 5 1 mknod null c 1 3 mknod zero c 1 5 cp –dpR /dev /_install/dev (假设busybox的安装目录为/_install)

qt课程设计实验报告

程序设计课程设计实验报告 (qt实验报告) 信息科学与技术学院 软件三班 高文博 201005070309 2011年5月

实验1:计算当初存入本金的钱数。(12题) 1.实验目的、要求 目的: 1)熟悉qt中的常用属性; 2)熟悉vbox hbox模型及怎样根据需求设计控件,边框等; 3)熟悉各个槽函数的使用,准确的将c++语言转换成qt语言,将控件功 能与函数结合起来。 要求: 1)掌握对控件的文本色,背景色等常用属性的设置。 2)掌握对控件、边框尺寸与结构的设置 3)掌握对函数的设置 2.实验设备 笔记本电脑,已安装Qt 开发环境。 3.实验内容、步骤 ●先在vc++上进行编译。 ●应用qt3.38进行编译,运行。 实验步骤: 1)根据题目需求在草纸上画出结构图; 2)根据草图用代码设计整体框架和控件; 3)在qt上运行; 4)运行成功后根据功能添加函数; 5)在头文件中添加头文件。 6)将添加的功能函数与功能控件相连; 7)分别对每个函数进行测试; 8)将整个程序在qt运行调试; 9)运行通过后给每个函数写注释; 实验代码如下所示 A (1)主框架结构代码 #include"gwbsave.h"

GwbSave::GwbSave(QWidget*parent,const char*name):QWidget(parent,name) { //?? vBox=new QVBoxLayout(this); vBox->setMargin(5); vBox->setSpacing(5); label=new QLabel("Please input the lilv:",this,"label"); vBox->addWidget(label); //?? hBox=new QHBoxLayout(this); hBox->setMargin(5); hBox->setSpacing(5); vBox->addLayout(hBox); le1=new QLineEdit(this,"le1"); hBox->addWidget(le1); //?,?? hBox2=new QHBoxLayout(this); hBox2->setMargin(5); hBox2->setSpacing(5); vBox->addLayout(hBox2); leResult=new QLineEdit(this,"leResult"); leResult->setReadOnly(true); leResult->setPaletteBackgroundColor(Qt::gray); hBox->addWidget(leResult);

Ubuntu for Arm根文件系统制作

1.安装rootstock软件 rootstock是一个用来制作Ubuntu根文件系统的工具,可以使用apt-get install rootstock获取,也可以在官网直接下载:https://https://www.sodocs.net/doc/068851069.html,/project-rootstock 若选择前者:直接使用rootstock命令 若选择后者:解压下载文件rootstock-0.1.99.4.tar.gz得到rootstock可执行文件,可以将其拷贝到系统bin目录下 2.rootstock创建根文件系统 [html]view plaincopy 得到文件系统压缩文件qemu-armel-201408271515.tar.gz 创建一个空镜像: [html]view plaincopy 在镜像上创建文件系统: [html]view plaincopy 挂载镜像: [html]view plaincopy 将文件系统解压到挂载目录: [html]view plaincopy 这时可以修改挂载目录中的东西了: [html]view plaincopy 最后是得到最后的文件系统镜像: [html]view plaincopy

3.模拟器中运行根文件系统 下载模拟器qemu: [html]view plaincopy 在2中的“若干修改”中执行: [cpp]view plaincopy 在仿真环境中访问文件系统 [cpp]view plaincopy 此时在仿真环境下就可以安装SPICE了:[cpp]view plaincopy 安装完SPICE后保存文件系统: [cpp]view plaincopy

ramdisk根文件系统制作

制作根文件系统有两种方法 1、利用开发板提供的映像文件制作ramdisk 2、利用busybox制作根文件系统(制作过程复杂) 采用第一种方法制作需要的ramdisk 1、拷贝已有的uramdisk.image.gz 到新建的tmp/下,cp uramdisk.image.gz tmp/ 2、去掉mkimage生成的64 bytes 的文件头,生成新的ramdisk.image.gz $ dd if=uramdisk.image.gz of=ramdisk.image.gz bs=64 skip=1 3、 gunzip解压ramdisk.image.gz 生成ramdisk.image $ gunzip ramdisk.image.gz 4、新建挂载目录“ramdisk”,并将ramdisk.image挂载 $ sudo mount -o loop,rwramdisk.imageramdisk 5、接下来,只需要将ramdisk目录下的内容全部拷贝到rootfs下即可 cp -R ramdisk /* rootfs 这样就有了自己的rootfs,省去利用busybox制作的麻烦了 有了制作好的rootfs,下面就开始制作映像文件了 1、创建镜像文件ramdisk8M.image,并设置大小为8M,文件系统格式为ext2 $dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192 $mke2fs -F ramdisk8M.image -L "ramdisk" -b 1024 -m 0 $tune2fs ramdisk8M.image -i 0 $chmod 777 ramdisk8M.image 大小可以按照需要自己调整,但是最好不要超过32M,创建ramdisk目录,将ramdisk8M.image 挂载到该目录下 $mkdirramdisk $mount -o loop ramdisk8M.image ramdisk/ 接下来,只需要将rootfs目录下的内容全部拷贝到ramdisk下即可 $cp -R rootfs/* ramdisk 注意,这里cp的参数一定是R而非r。 这样,这个镜像文件的内容就是rootfs目录下的内容了。将其卸载就可, $umountramdisk/ 到此,根文件系统镜像文件ramdisk8M.image 制作完成,将其压缩 gzip -9 ramdisk8M.image 用mkimage添加文件头,生成新的uramdisk.image.gz 供u-boot 使用 $ mkimage -A arm -T ramdisk -C gzip -n Ramdisk -d ramdisk8M.image.gzuramdisk.image.gz 可以制作一个文件buildfs,如下

最新西方语言学流派备考重点笔记

第四章索绪尔现代语言学的开端 第一节索绪尔语言学产生的背景 1德克海姆,现代社会学创始人,认为社会事实是一种行为,不论其是否有固定性质,对每个人都有外部制约。 索绪尔,认为语言也是一种社会事实,一种行为。语言行为也有外部制约,那就是一种抽象的语言系统。 2 弗洛伊德,把任何行为都看成是受一个规范系统所制约的,这些规范系统独立于人的意识而存在,却无时不起着积极的作用。 语言规范在于语言规则 3 惠特尼,语言的符号性,惯例性,任意性,可变性和不变性 索绪尔评价惠特尼,为了强调语言地地道道地是一种制度,惠特尼正确的坚持符号的任意性,这样他把语言学纳入了正确的轨道。 第二节关于比较语言学 索绪尔区分了两种比较语言学的方法:正视法,回顾法 正视法就是以文献考证为基础按时间顺序来叙述一种语言历史。只审查对比每个时期文献即可。 回顾法就是通过比较来重建一种语言。 索绪尔认为,语言是不断变化的,一种语言并不总属于一个语言类型,同一个语系的语言也不一定属于同一个语言类型。 音变和类推是促使语言变化的两大因素。 类推形式是以一种或多种其他形式为模型,按一种特定的原则而制造出来的一种形式。音变往往产生不规则现象,而类推恰恰相反,总是产生规则现象。 索绪尔认为,类推一方面有革新的作用,一方面又是保守力量。 第三节语言的特征 1878年以后,索绪尔基本上放弃了历史语言学的研究,因为他认为历史语言学的基础不牢,方法主管,应暂时停止,首先明确要研究的对象,使语言学成为一门名副其实的科学。他在三个教程中空前深入的探讨了语言的特征,规定了语言学的任务,做了有历史意义的语言和言语的区分,共时语言学和历时语言学的区分,并提出语言学中符号学的理论。 索绪尔对语言的特征做过如下总结:1 语言是在各种各样的言语行为中界限明确的实体。它独立于个人,个人不能创造它,也不能改变它。语言很像一项社会契约,群体中的全体成员都签字同意履行。2 语言不像言语,语言可以单独研究,可以排除言语所涉及的物理学、生理学和心理学方面的因素,独立考察语言诸因素。3 言语是多种多样的,而语言是单义的。 4 语言并不玄妙,所以我们才可以研究它。声音和意义的结合是得到群体承认的、存在于大脑中的现实。 为了进一步说明语言的性质,索绪尔区分了对语言的外部研究和内部研究。语言的因素有两种,内在因素和外部因素。语言特征就属于内部因素,语言的地理分布或方言分裂属于外部因素。 索绪尔对语言特征的独到见解还表现在对语言符号的论述上。一个语言符号是把概念和声音形象结合起来,不是把物和名结合起来。索绪尔把这种结合体称为符号,把声音形象称为符号施指,把概念称为符号受指。符号的第一个特点就是任意性。第二特点就是符号施指线性关系。 索绪尔利用线性关系区分了语言符号之间的两种关系,连锁关系和联想关系。 索绪尔首先提出要描写语言。是描写还是规定语言,正是传统语法与现代语言学的分水岭。规定性语法固然局限很大,可是描写语法也并非最终目的,找出永恒的力量,分析出普遍的

基于QT4_Linux多媒体播放器系统的设计与实现

第26卷第1期贵州大学学报(自然科学版) V o.l 26N o .1 2009年 2月Journa l o f G uizhou U n i ve rsity (N atura l Sc i ences)F eb .2009 文章编号 1000-5269(2009)01-0060-05 基于QT4&L inux 多媒体播放器系统的设计与实现 王 震,林小川,周运练,欧阳天立 (北京理工大学珠海学院计算机科学技术学院,珠海519085) 摘 要:采用AR M 架构的嵌入式CP U,完成了多媒体浏览器的设计与实现。首先在I ntel Xsca le PXA 270上搭建一个完整的嵌入式L i n ux 操作系统平台,包括boo tl o ader 、内核以及文件系统的裁减与移植,并且开发了相关的驱动程序,如蓝牙驱动、触摸屏驱动、矩阵键盘驱动、SD /M M C 卡的驱动以及LCD 显示屏的驱动等,用于完成系统基本的输入输出功能;然后在系统上移植了QT4用于设计应用程序和友好的GU I 界面,并在此基础上开发/移植了图象浏览、视频播放、日历时间、文本浏览等功能软件;最后设计了友好的GU I 界面,将这些软件有机的组织在一起,形成了完整的多媒体浏览器系统。 关键词:ARM;QT;多媒体浏览器;数码相框中图分类号:TP311.52 文献标识码:B 随着科技的不断发展,科技早已渗入到人们日常的生活当中,科技不仅带给人们不同程度的便利,同时也带给商家广阔的开发前景。 智能化 已经成为各种商品的发展趋势,而 智能家居 概念的出现更是一种科技发展对生活改变的一种体现。 数码相框 作为 智能家居 的一个重要组成部分,不但拥有多元化的功能,更具有把百姓生活带入 智能化 的重要意义。但是现有 数码相框 产品缺少网络通讯与智能控制功能,这样使得数码相框没有正真融入到智能家居之中。各种信号在智能家居之间的传输,和数据之间的共享变得不方便,因此,在 数码相框 的基础上, 多媒体浏览器 这个新的开发概念由此产生。 1 功能设计 多媒体浏览器系统的系统框图如图1所示 : 图1 系统框图 系统的最底层是系统层,包括各种接口部件的 驱动程序,这些驱动程序通过嵌入式L i n ux 操作系统进行调用,然后完成相应的功能,为上层的接口层和应用层提供服务。 中间的嵌入式GU I 为接口层,采用QT4作为用户GU I 的界面库。QT4是基于服务器-客户端 的一种用户界面设计中间件[1] ,提供了丰富的功能控件和精美的界面设计功能,可以便捷的设计出赏心悦目的需要功能模块。 系统的最上层就是直接面向用户的应用层。该层采用QT4设计,向用户提供了精美的用户界面,用户可以通过触摸屏方便的调用相关的功能。该层主要包含以下几种功能模块: 图片浏览功能模块:对预设目录中的图片进行解码绘图,可以单张全屏/最小查看并可对图片进行放大、缩小、翻转灯操作,同时也可以对多张幻灯播放显示。 电子书功能模块:可以显示txt 格式的文本信息,用户可以运行该功能阅读电子书籍。 多媒体功能模块:调用m player 播放器对系统内存或者U SB 接口中的外存定位对应的媒体文件,并将其解码进行播放;视频文件可以全屏播放/最小播放,音频文件可以前台播放/背景播放。 日历时钟功能模块:可以显示时间/日期,并具有记事本功能。 网页浏览功能模块:可以从将网络上下载的超文本信息,通过该功能模块的解码后正确的显示 *收稿日期:2009-02-09 作者简介:王 震(1980-),男,河南泌阳人,助教,研究方向:嵌入式系统设计与应用

相关主题