Linux内核源码学习之 基本知识

GNOME

GNOME是一种让使用者容易操作和设定电脑环境的工具,GNOME 包含了 Panel (用来启动此程式和显示目前的状态)、桌面(应用程式和资料放置的地方)、及一系列的标准桌面工具和应用程式,并且能让各个应用程式都能正常地运作。不管之前使用何种操作系统,都能轻易地使用 GNOME 功能强大的图形接口工具。

KDE

KDE,K桌面环境(KoolDesktop Environment)的缩写。一种著名的运行于 Linux、Unix 以及FreeBSD 等操作系统上面自由图形工作环境,整个系统采用的都是 TrollTech 公司所开发的Qt程序库(现在属于Digia公司)。

KDE 和 Gnome 都是 Linux 操作系统上最流行的桌面环境系统

GRUB

GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

GNU

GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard
Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU
General Public License,GPL)。即“反版权”(或称Copyleft)概念。

时间: 2024-12-08 19:53:47

Linux内核源码学习之 基本知识的相关文章

Linux内核源码学习之 数据结构

本篇记录在学习Linux内核源码过程中对一些知道但不熟悉不会用的数据结构进行记录. union 是在学习进程复制函数do_fork中遇到的: <sched.h> union thread_union { struct thread_info thread_info; unsigned long stack[THREAD_SIZE/sizeof(long)]; }; struct  thread_info和stack被声明为union 共享空间 "联合"是一种特殊的类,也是一

Linux内核源码学习之 内核页表打印

本学期Linux内核实验最后是打印内核页表,线性地址----物理地址 我看到这个实验题目的时候想到的就是这个init函数(因为这部分当时就是我讲的^_^),这个函数是初始化linux内核页表的,也就是将32位系统中3G以上的896M线性地址映射到物理地址的0-896M,在其调用者paging_init函数中还处理了其他的情况,比如固定映射之类的.那属于高端内存映射那一块的内容,目前我们先看一下如何将内核页表3G~3G+896M的线性地址对应的物理地址打印出来. 一下的源码是linux2.6.11

Linux内核源码学习之进程切换细节整理

linux中的进程是个最基本的概念,进程从运行队列到开始运行有两个开始的地方, 一个就是switch_to宏中的标号1:"1:/t",//只要不是新创建的进程,几乎都是从上面的那个标号1开始的,而switch_to宏则是除了内核本身,所有的进程要 想运行都要经过的地方 另 一个就是ret_form_fork 这样看来,虽然linux的进程体系以及进程调度非常复杂,但是总体看来就是一个沙漏状, 对于系统中的每个新进程它首次被执行的过程必然是: sys_fork---->do_for

Linux内核源码学习之僵尸进程

孤儿进程和僵尸进程 正常的子进程fork其父进程后,二者建立父子关系. 当子进程终结时,它会通知父进程,并清空自己所占据的内存,并在kernel里留下自己的退出信息(exit code,如果顺利运行,为0:如果有错误或异常状况,为>0的整数).在这个信息里,会解释该进程为什么退出.父进程在得知子进程终结时,有责任对该子进程使用wait系统调用.这个wait函数能从kernel中取出子进程的退出信息,并清空该信息在kernel中所占据的空间.这是正常的一般情况. 如果父进程早于子进程终结,子进程就

Linux内核源码学习之fork的缓冲区

上面的代码看上去很简单,子子孙孙fork就是了,基本上符合我们的一般的猜想,逻辑上很正正确,但是要说的是: 为什么同样的代码运行的时候得到的输出会有不同? ./fork执行完成之后很正常回到了shell,但是右边却没有回到shell,这是为什么呢? 这和fork的性质[fork之后并不能确定究竟是哪个进程首先执行相关] 左边的情况是:最后一个进程4742执行完之后,父进程还是没有结束的.然后父进程结束,回到父进程的父进程也就是shell 右边的情况是:在输出[email protected]等等

轻松学习linux内核源码的方法

轻松学习Linux操作系统内核源码的方法 针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制:一.核心源程序的文件组织:1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心. 本文基于稳定的2.2.5源代码,第二部分的实现平台为 RedHat Lin

Linux内核源码分析方法

  一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写.编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内.如果要扩展自己知识的广度,我们需要多接触其他人编写的代码,尤其是水平比我们更高的人编写的代码.通过这种途径,我们可以跳出自己知识圈的束缚,进入他人的知识圈,了解更多甚至我们一

linux内核源码注解

轻松学习Linux操作系统内核源码的方法 针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制:一.核心源程序的文件组织:1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心. 本文基于稳定的2.2.5源代码,第二部分的实现平台为 RedHat Lin

Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7)【转】

原文地址:Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinaunix.net/uid-25909619-id-4938396.html 在基本分析完内核启动流程的之后,还有一个比较重要的初始化函数没有分析,那就是do_basic_setup.在内核init线程中调用了do_basic_setup,这个函数也做了很多内核和驱动的初始化工作,详解