google怎样使用linux(内核)
今年的linux内核开发大会上,google的开发人员也上台做了名为“how google use linux"的演讲。我斗胆翻译注解一番——括号内为注解,欢迎读者斧正。
(前面几段讲google对linux kernel代码的管理及跟进,偏细碎,不翻译了)
在google为linux加入的代码中,3/4是对内核核心的改动,设备驱动代码只是其中相对较小的一部分。
(linux发展到现在这个阶段,需要加入的新的设备驱动已经越来越少了)
如果google要与linux社区的合作开发,那将面临一系列问题。跟上linux代码的主干太难——它的代码更新的太快了。在一个大型项目 里,开发者对补丁的提交、重改确实是个问题。Alan Cox对此的回答十分简单:人总是贪得无厌的,但有时候就应该简单的对他们说”不“。
(Alan Cox是linux kernel的二号功臣,现已加入Intel公司。我觉得Intel这样的CPU公司很适合内核开发者)
在CPU调度上,google发现想改用新的cfs(“完全公平调度”,由Con Kolivasy在2.6.23中加入内核)非常麻烦。由于太麻烦,google不得不倒回去把O(1) sheduler(2.6.23前内核使用的调度算法,想知道这段具体的历史,可以参考另一篇 ......
首先,服务器GCC要有,不然什么都不能做.能够用gcc -v来查看是否安装了GCC,
#gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit
--host=i386-redhat-linux
Thread model: posix gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-34)
有以上类似信息说明已有GCC, 假如您没有,请先拿安装光盘装好他
请最好到官网下载以下任何的东西: httpd-2.0.55.tar.gz MySQL-client-5.0.16-0.i386.rpm MySQL-server-5.0.16-0.i386.rpm MySQL-devel-5.0.16-0.i386.rpm php-5.1.1.tar.gz
ZendOptimizer-2.5.3-linux-glibc21-i386.tar.gz
gd-2.0.28.tar.gz libxml2-2.6.11.tar.gz zlib-1.2.1.tar.gz jpegsrc.v6b.tar.gz libpng-1.2.5.tar.gz
xpm-3.4k-2.i386.rpm gd-devel-1.8.4-11.i386.rpm
可能您的电脑无需这么多.但最好都下载吧.
但是,可能您看到这贴子的时候会有以上软件新的版本下载了.看着办吧.
一、如果你原来是采用rpm包安 ......
注:这篇文章比较旧,但是有一定的参考价值~~自己试过的Linux不多,所以还是有要参考的地方。
原文链接:http://www.linux521.com/2009/newbie/200904/1963.html
目前Linux在国内进入了一个较快速的发展阶段,正如我们看到的,许多的Windows用户转投
Linux阵营.由于Linux本身是一个开放的操作系统,因而拥有众多的发行版版本,如何根据机器的配置选择一个合适的Linux发行版成为许多从
Windows过来的用户的问题.我个人认为,Linux版本的选择应主要从用户的使用目的和机器配置两方面来考虑,本文专门就从机器配置角度选择进行讨
论.
第一章 我的机器远远落后于时代,属于奔腾一(AMD K6)档次
1.1版本选择
对于这些用户而言,内存64MB-96MB,硬盘1GB-2.3GB是主流配置,首先,我强烈建议您对内存子部分进行升级,最好加上128MB,这样对性能的提升是巨大的.
言归正传,对于这些用户而言,HiweedDebian是一个好选择,完全安装大小约为700MB,使用轻量级图形XFCE,对内存要求较低.同时你们还可以获得系统版版主Fox_eagle2003兄的技术支持,他对这个系统很熟悉.
如果700MB对于你而言还是太大,您可以尝试将一些Linux的Live-CD搬到硬盘里去,我在这里推荐几个:
中文:Hiweed的Live-CD,公社的F ......
最早接触Linux内核是在大三的时候,那时《操作系统》的课程设计就是进行Linux内核源代码的分析与进程调度的改进。题目是大的有点吓人,特
别是对那时一个涉足未深的年轻人看来。不过那时做的事情很简单,认认真真的看了《Linux内核源代码情景分析》的前言部分(主要讲的AT&T汇
编语言,内核中一些特殊的编程规则),与进程调度相关的部分,包括进程的管理,进程的切换,进程与中断,软中断,系统调用,进程互斥与同步机制。并画了几
张图阐述了进程调度的路线,对spinlock机制进行了深入的剖析。明白了2.4的内核为何是非抢占式内核,进程调度器其实也不是什么神奇的东 东——
一个函数罢了,啥叫process
context。同时,为了完成“进程调度机制的改进”,看了实现可抢占的两个补丁,哦,现在已经整合进2.6了,也怪不得昨天看2.6进程调度的介绍有
种似曾相识的感觉。
可以说,那时的分析完全是理论学习。对于内核编程的实践几乎没有。带来的好处最主要的在于提高了对操作系统运行的认识与提高了代码的阅读能
力。
回头去看这段往事,总觉得存在着有所改进的地方。
现在看来,内核是啥呢?只是一个比较大的软件项目,可以拿它与Eclipse相比 ......
今天看到师兄工位上有本Linux Kernel In a Nutshell,还是全英的影印版,所以就借过来看看,发现现在看英文的书渐渐适应了,还是比较容易的,书中开始介绍如何编译Linux内核,Linux内核大三的时候也学过编译过,但是当时编译比较简单,这次决定再重头到尾好好编译一下,首先下载linux kernel,再用secureCRT上传到Ubuntu 8.04中,接着开始编译。
1,tar -xzvf linux-2.6.***
2,cd linux-2.6.***
3,make menuconfig
执行这条命令时,出现了问题,后来上网查,查到了问题,答案如下:
hi.
It's your distribution. Ubuntu doesn't come with the gcc headers installed. You can't even compile the simplest c application.
All you have to do is to download the headers from the internet. The easisest way would be to use synaptic and to download
the build-essential package.
bye
http://forum.kernelnewbies.org/read.php?10,18,528
原来必须安装build-essential,安装好后,问题解决。
4,执行 make 命令,源代码进行编译
5,make modules_install install
6, ......
(一)文件、目录操作命令
1、ls命令
功能:显示文件和目录的信息
ls 以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M 2G)
ls -lt 显示文件,按照修改时间排序
2、cd命令
功能:改名目录
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下
3、cp命令
功能:copy文件
cp source target 将文件source复制为target
cp /root /source. 将/root下的文件source复制到当前目录
cp –av soure_dir target_dir 将整个目录复制,两目录完全一样
4、rm命令
功能:删除文件或目录
rm file 删除某一个文件
rm -f file 删除时候不进行提示。可以于r参数配合使用
rm -rf dir 删除当前目录下叫dir的整个目录
5、mv命令
功能:文件移动,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令
mv source target 将文件sourc ......