linux内核之旅
A. linux内核的介绍
Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。1Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。Linux是一个一体化内核(monolithic kernel)系统。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(molarize)的形式设置,并在系统运行期间可直接装载或卸载。
B. linux内核修炼之道 怎么样
不建议直接看代码,那个太痛苦了。
可以先从简单的内核(uCos或早期的Linux Kernel)开始阅读和实践。
有了一定理解能力和经验之后再硬啃Linux内核代码。
《Linux 内核修炼之道》入门不错。
此外,大多讲内核的书都是一个模式,硬灌,没啥意思。
C. 想要从事 linux嵌入式方面的应用软件开发。我该怎么学呢
韦东山的那本书挺经典,卓越的链接:
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1274700325&asin=B001DCEA46&sr=8-1
《嵌入式Linux应用开发完全手册》以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。
《嵌入式Linux应用开发完全手册》全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如UART、I*IC、LCD等),UBoot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包含两个GUI系统:基于Qtopia和基于X),应用程序调试技术。
《嵌入式Linux应用开发完全手册》从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。
1、Linux 基础
安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解。
2、Shell 编程基础
Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境。
3、Linux 下的 C 编程基础
linux C语言环境概述 Gcc使用方法 Gdb调试技术。
4、嵌入式系统开发基础
嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发。
4、嵌入式系统移植
Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板。
5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备。
6、嵌入式系统中多进程程序设计Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念。
...
网上很多~可以先从虚拟机玩起。
A.一般安装一个VMWARE虚拟机,再从网上下载个RedHat9.0的光盘镜像。
这个比较适合入门linux,当然也有Cygwin的,不过不推荐。
B.然后就可以按照上面的步骤学起来了,等把linux的shell和gcc,gdb,系统编程,gui(QT,miniGUI,MicroWin等等)玩好之后,可以买个开发板了,这里就不说明具体品牌了,2410/2440开发板很多的。
C.然后开始玩开发板,常用的代码编辑工具有:SourceInsight,UE。
还有代码比较工具,BeyondCompare。
当然还有ADS1.2,这个是必不可少的,可以先把ARM开发板当单片机开发板玩!先熟悉具体硬件设备的使用,如UART,SPI,LCD控制器等,最后再去玩Bootloader,系统移植,内核,文件系统,应用编程,驱动编程。。。
D. linux版本的发行版和内核版是什么意思
Linux内核是Linux操作系统创始人主持的网站www.kernel.org上发布的操作系统的最基本的那些东西。
Linux发行版则是前述那些东西的基础上添加了一些工具软件的基础上构成的一套庞大复杂的操作系统。虽然内核都是一样的,但添加部分各不相同,这就构成了不同的发行版本。
Linux本身指的是一个操作系统内核,只有内核是无法直接使用的。我们需要的,可以使用的操作系统是一个包含了内核和一批有用的程序的的一个集合体,这个就是Linux发行版。
其中,Ubuntu。RedHat就是Linux的不同的发行版。
(4)linux内核之旅扩展阅读:
Linux系统的主要特性
1、基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3、完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5、良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
6、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
E. linux 内核是什么, 本人有linux基础
Linux内核:Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
Linux最早是由芬兰人Linus Torvalds设计的。当时由于UNⅨ的商业化,Andrew Tannebaum教授开发了Minix操作系统以便于不受AT&T许可协议的约束,为教学科研提供一个操作系统。
(5)linux内核之旅扩展阅读:
Linux将标准的GNU许可协议改称Copyleft,以便与Copyright相对照。通用的公共许可(GPL)允许用户销售、拷贝和改变具有Copyleft的应用程序。当然这些程序也可以是Copyright的,但是你必须允许进一步的销售、拷贝和对其代码进行改变,同时也必须使他人可以免费得到修改后的源代码。事实证明,GPL对于Linux的成功起到了极大的作用。它启动了一个十分繁荣的商用Linux阶段,还为编程人员提供了一种凝聚力,诱使大家加入这个充满了慈善精神的Linux运动。
F. 哪位给我描述下 Linux 网络内核的演进史,谢谢,麻烦详细一点点
尽管有人认为Linux 2.4内核与其说是一个革命性的版本,不如说是一个进化版本,但现在全世界的Linux爱好者都在为之欢呼。此时此刻,我想做的是带大家回顾一下Linux内核的发展史。
是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围
设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,发动机自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。内核决定一个系统是否是Linux。以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。
最早是由芬兰人Linus Torvalds设计的。当时由于UNIX的商业化,Andrew Tannebaum教授开发了Minix操作系统以便于不受AT&T许可协议的约束,为教学科研提供一个操作系统。当时发布在Internet上,免费给全世界的学生使用。Minix具有较多UNIX的特点,但与UNIX不完全兼容。1991年10月5日,Linus为了给Minix用户设计一个比较有效的UNIX PC版本,自己动手写了一个“类Minix”的操作系统。整个故事从两个在哑端终上打印AAAA...和BBBB...的进程开始的,当时最初的内核版本是0.02。Linus Torvalds将它发到了Minix新闻组,很快就得到了反应。Linus Torvalds在这种简单的任务切换机制上进行扩展,并在很多热心支持者的帮助下开发和推出了Linux的第一个稳定的工作版本。1991年11月,Linux0.10版本推出,0.11版本随后在1991年12月推出,当时将它发布在Internet上,免费供人们使用。当Linux非常接近于一种可靠的/稳定的系统时,Linus决定将0.13版本称为0.95版本。1994年3月,正式的Linux 1.0出现了,这差不多是一种正式的独立宣言。截至那时为止,它的用户基数已经发展得很大,而且Linux的核心开发队伍也建立起来了。
核心的开发和规范一直是由Linux社区控制着,版本也是唯一的。实际上,操作系统的内核版本指的是在Linus本人领导下的开发小组开发出的系统内核的版本号。自1994年3月14日发布了第一个正式版本Linux 1.0以来,每隔一段时间就有新的版本或其修订版公布。发展到现在,Linux内核的稳定版的最后版本有:1.0.9、1.2.13、2.0.37和2.2.11,直至今天最新的2.4.1。
还为Linux选择了精神内核——Copyleft,它使Linux的开发和销售都没有背离原来的轨道。Linus将标准的GNU许可协议改称Copyleft,以便与Copyright相对照。通用的公共许可(GPL)允许用户销售、拷贝和改变具有Copyleft的应用程序。当然这些程序也可以是Copyright的,但是你必须允许进一步的销售、拷贝和对其代码进行改变,同时也必须使他人可以免费得到修改后的源代码。事实证明,GPL对于Linux的成功起到了极大的作用。它启动了一个十分繁荣的商用Linux阶段,还为编程人员提供了一种凝聚力,诱使大家加入这个充满了慈善精神的Linux运动。
Linux内核的发展过程中,我们还不得不提一下各种Linux发行版的作用,因为正是它们推动了Linux的应用,从而也让更多的人开始关注Linux。一些组织或厂家,将Linux系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包而已。相对于Linux操作系统内核版本,发行版本的版本号随发布者的不同而不同,与Linux系统内核的版本号是相对独立的。因此把RedHat、Slackware等直接说成是Linux是不确切的,它们是Linux的发行版本,更确切地说,应该叫做“以Linux为核心的操作系统软件包”。根据GPL准则,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但都没有自己的版权。Linux的各个发行版本(distribution),都是使用Linus主导开发并发布的同一个Linux内核,因此在内核层不存在什么兼容性问题。每个版本都不一样的感觉,只是在发行版本的最外层才有所体现,而绝不是Linux本身特别是内核不统一或是不兼容。
90年代初期Linux开始出现的时候,仅仅是以源代码形式出现,用户需要在其他操作系统下进行编译才能使用。后来出现了一些正式版本。目前最流行的几个正式版本有:
Slackware是最早的Linux正式版本之一,它遵循BSD的风格,尤其是在系统启动脚本方面。现有的版本是Slackware 4.0,它是基于Linux 2.2内核。
Debian是一个开放源代码的操作系统,目前基于Linux 2.2内核。它由许多志愿者维护,是真正的非商业化Linux,现有较流行的版本是2.1。
RedHat Linux是Linux最早的商业版本之一。它在美国和其他英语国家市场上获得了较大的成功。现有的最新版本是RedHat Linux 7.1,它是基于Linux 2.4内核。
SuSE由德国人开发出来,是在欧洲大陆最流行的版本之一。现有最新版本是SuSE 7.0,基于Linux 2.2内核。
Caldera OpenLinux是最早关注简易安装方法的Linux正式版本之一,同时,它还在正式版本中集成了办公软件。现有最新版本是Caldera OpenLinux 2.2。
TurboLinux公司是以推出高性能服务器而着称的Linux厂商,在美国有很大的影响。它是亚洲占市场最大的商业版本,在中国、日本和韩国都取得了巨大的成功。现在较流行的版本是TurboLinux 6.0,它是基于Linux 2.2内核。
在中国也取得了可喜的发展。从1999年三四月起,国内涌现出不少颇具实力的中文Linux发行商。如:中科红旗公司推出的第一个桌面应用版红旗Linux桌面版2.0、采用了多项新技术的蓝点Linux 2.0、完全符合国际化标准的中文Linux发行版本——TurboLinux简体中文版6.0、Xteam linux 3.2等。Xteam公司和中科红旗软件公司近期还都宣称将利用Linux2.4内核推出自己的新产品。其中即将发布的红旗Linux V1.1将以Linux 2.4.X为内核;而台式机版红旗Linux V2.0将以Linux 2.4.X以上版为内核。
2.4内核发布后,Linus Torvalds将和Linux内核开发小组着手开发Linux 2.5内核,同时,还将继续维护Linux 2.4内核,提供补丁及错误修正。也许目前的最新Linux内核版本已经是2.4.1了,人们也已经在猜测Linux2.5.0的样子了。来看看厂商们的反应吧,有关人士认为IBM公司将会在以后的Linux 2.4.x内核及Linux 2.5内核的逻辑卷管理程序(LVM)方面起着很大的作用;HP的开发人员则焦急地等待着采用2.4内核的deb软件包的出现;Red Hat将会提供一个RPM软件包让7.0版本的用户通过Red Hat Network升级;MontaVista软件公司基于Linux内核2.4开发了被其称为是硬实时完全优先Linux内核原型,并希望把这种技术或类似的技术在Linux 2.5中制定为基本标准。有了这些厂商和Hacker们的大力支持,想来未来Linux 2.5内核将不会令我们感到失望。
G. 几个重要的Linux系统内核文件介绍
vmlinuz
vmlinuz是可引导的、压缩的内核文件。
该文件包含了一个最小功能的内核,在PC上通常是先执行vmlinuz,之后加载initrd.img文件,最后加载根分区。
initrd文件
initrd是“initial ramdisk”的简写。就是由Bootloader初始化的内存盘。
在linux内核启动之前,Bootloader会把存储介质(例如闪存)中的initrd文件加载到内存,内核启动时会在访问到真正的根文件系统前访问内存中的initrd文件系统。