至于说编译 Linux 内核需要多长时间,这个和电脑的整体性能(例如:CPU主频、内存大小等)有很大关系。我的亲身体会就是:计算机性能差的,编译 Linux 内核需要一个多小时的都有(以前在老旧的电脑上就需要这么长的时间)。
这个关键是要看你的电脑配置情况,以及代码的附加情况,有的平台软件会附加很多东西上去,编译就比较慢了。
我们这边使用的是四核八线程的电脑,32GB内存,
原生代码 4.4 八线程编译40分钟左右,5.1,一个半小时左右,6.0的大约一个小时,以上是原生代码编译模拟器的时间。
高通代码6.0编译一般需要两个小时左右,mtk的也是两个小时左右,
⑶ openwrt第二次编译需要多长时间
OpenWrt编译环境搭建和编译方法
一、 更新开发系统。
安装完ubuntu 后,重新开机的时候,会有一个VMware tools 安装的提示界面,耐心等待,等到VMware tools 安装好后
因为更新系统和安装一些工具包需要用到网络,所以进入ubuntu的界面后,
将ubuntu的网络设置为NAT网络连接模式(默认为NAT),
以上就绪后,更新开发系统的软件
1、首先备份Ubuntu 10.04源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表) 2、修改更新源
sudo gedit /etc/apt/sources.list (打开Ubuntu 11.10源列表文件) 3、使用
http://hi..com/pobenliu/blog/item/2180dc3502933c375bb5f5a5.html
网站下的一个更新源贴到sources.list文件中(“#”开头的那一行为注释,可以直接复制进文件中) ,使用这里的源主要是为了提高下载速度,用官方的会比较慢。
4、通知ubuntu启用新的更新源
sudo apt-get update
二、 安装编译OpenWrt需要用到的软件包:
命令如下:
sudo apt-get install g++ libncurses5-dev zlib1g-dev bison flex unzip
autoconf gawk unzip make gettext gcc binutils patch asciidoc bzip2 libz-dev libc6-dev linux-headers-2.6.32-38
注意,红色部分的版本根据自己的内核版本来修改,可以通过uname –a 来查看。
三、 安装svn。
由于在后面需要用到svn 来下载OpenWrt,所以需要先安装svn。
由于使用命令 sudo apt-get install subversion来安装的版本最新也只是
1.6.6版本,为了和windows 上的版本同步,所以需要下载安装包,进行手工安装。
1、先下载两个包,
subversion-1.7.2.tar.gz
subversion-deps-1.6.1.tar.gz 2、拷贝到/home目录下,解压:
tar -zxvf subversion-1.7.2.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz 3、进入目录,准备编译安装: cd subversion-1.7.2 执行:./configure
安装遇到的第一个error: checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found. Please install APR on this system and supply the appropriate --with-apr option to 'configure' 解决办法: 到tar -zxvf subversion-deps-1.6.1.tar.gz 解压的目录下,有一个apr的文件夹,放到subversion-1.7.2下即可 cp -rf ../subversion-1.6.1/apr .
4、再重新执行./configure 命令 遇到第二个error:
checking APR version... 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util... no
configure: WARNING: APRUTIL not found
The Apache Portable Runtime Utility (APRUTIL) library cannot be found. Either install APRUTIL on this system and supply the appropriate 提示的是apache的端口没有找到,因为此安装并没有与apache结合,到tar -zxvf subversion-deps-1.6.1.tar.gz 解压的目录下,发现有一个 APR-util,再移动到ubversion-1.7.2下
5、重新执行./configure 命令 Ok,遇到第三个error,
checking sqlite library version (via pkg-config)... no
An appropriate version of sqlite could not be found. We recommmend 3.7.6.3, but require at least 3.6.18. 错误有提示:解决办法
sqlite-amalgamation-3071000.zip下载这个包,解压,将sqlite3.c放到指定的位置: unzip sqlite-amalgamation-3070900.zip
mkdir –p subversion-1.7.2/sqlite-amalgamation cd sqlite-amalgamation-3070900
cp sqlite3.c ../subversion-1.7.2/sqlite-amalgamation/
之后重新执行./configure 见到这表示./config执行ok
checking for ctypesgen.py... none configure: creating ./config.status config.status: creating Makefile
config.status: creating tools/backup/hot-backup.py
config.status: creating tools/hook-scripts/commit-access-control.pl config.status: creating
subversion/bindings/swig/perl/native/Makefile.PL
config.status: creating subversion/svn_private_config.h.tmp config.status: executing libtool commands
config.status: executing svn_private_config.h.tmp commands
6、然后编译安装: make clean
make && make install
只要没有遇到error,就是ok的, 输入
svn –version
得到:
svn, version 1.7.2 (r1207936) compiled Feb 8 2012, 23:09:00 说明安装成功。
四、下载OpenWrt源码。
分两种,一种是最新版但不是最稳定,也就是trunk版,一种是相对稳定版,backfire版。源码下载命令分别是: 先创建文件夹:
mkdir OpenWrt_trunk cd OpenWrt_trunk Trunk版下载命令:
svn co svn://svn.openwrt.org/openwrt/trunk/
若需要backfire:
mkdir OpenWrt_backfirecd OpenWrt_backfire
Backfire下载命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
五、 编译OpenWrt:
如果不是刚下载的代码,为了保持代码为最新状态,应该定期运行Svn up更新代码,什么时候有变你是不知道的 然后是更新软件包:
./scripts/feeds update –a ./scripts/feeds install –a
如果不更新软件包的话,你会发现后面是看不到很多软件包的,也就无法集成那些看不到的包了。
然后是make defconfig,再make menuconfig进入定制界面,定制自己的系统。
最后,执行make命令,然后是非常漫长的等待。
在编译的时候,是根据你的配置,进行下载程序包的,先是把这些程序包下载到./dl目录下,再进行解压编译,和安装。如果不是为了开发某一软件的话,建议一开始的时候不要安装太多的软件,一是时间太长,然后很容易出错。要用到的软件在编译好后,用opkg来安装。
⑷ ubuntu内核编译需要多长时间
编译自己的Ubuntu内核一般需要30-60分钟
很多时候我们在使用Ubuntu的时候,想修改一下内核配置,然后编译,安装到Ubuntu中。这也是进行Ubuntu内核开发的前提。
⑸ ubuntu编译osmocombb完要多久
ubuntu编译GNUARM以及OsmocomBB环境方法如下,时间的话看你代码速度啦
以下所有操作基于Ubuntu Linux下,所以基于Ubuntu、Debian等Linux版本均可使用。
一、以Root权限进行接下来的所有操作:
$ sudo -s
二、安装编译osmocomBB所需的软件包:
$ aptitude install libtool shtool autoconf git-core pkg-config make gcc
三、下载所需要的GnuARM ToolChain
基于x86架构
$ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 网络网盘
$ tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2
$ mv gnuarm-* ~/gnuarm
基于64位架构
$ wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 网络网盘
$ tar xf bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2
$ mv gnuarm-* ~/gnuarm
这样子就已经完成了关于OsmocomBB的交叉编译环境的搭建,剩下就是最关键的设置环境变量
$ export PATH=~/gnuarm/bin:$PATH
建议是直接编辑~/.bashrc的内容,把上面的这个段话直接加到最后。
四、编译libosmocore:
$ git clone git://git.osmocom.org/libosmocore.git
$ cd libosmocore/
$ autoreconf -i
$ ./configure
$ make
$ make install
$ cd ..
$ ldconfig
ldconfig命令一定不要忘记执行,否则osmocomBB编译后运行时会出现找不到libosmocore.so.4的错误。
五、编译OsmocomBB:
$ git clone git://git.osmocom.org/osmocom-bb.git
$ cd osmocom-bb
$ git checkout --track origin/luca/gsmmap
$ cd src
$ make
基本上已经完成所有的编译操作了!Enjoy你的玩具吧!
使用OsmocomBB
首先我们需要在刷写固件之间完成以下几个手动操作,以便接下来的其他操作。因为摩托罗拉C118的数据连接线是用2.5mm音频接口的,所以连接方面大家要注意的是:
连接线接口的小缺陷
红色框住的地方可能会导致大家在误以为接口已经完全和手机接口衔接了,但在刷机的时候没有任何反应。所以这个部分需要大家自己去削一下的。
连接线与TTL的接法
黑/黄:GND
红:TX
白:RX
以上的接法是针对我们RadioWar淘宝店所出售的CP2102以及FT232rl,而基于淘宝其他的产品可能会在TX和RX部分需要反接,大家要记住。有些朋友会说为什么我们不建议PL2303,那是PL2303只有标准的波特率,所以无法进行任何调制,在真正功能固件上使用会出现很大的问题。所以我们不建议使用PL2303
当我们处理完以上的操作之后,就在osmocomBB套件目录下进行相关固件刷写操作,请记住这个操作过程只是临时性的,固件只是以RAM TO ROM的途径下进行临时刷写,关机后原有的摩托罗拉系统依然会存在的。
cd ~/osmocom-bb/src/host/osmocon/
启动osmocon刷写所需要的固件,通常大家都是直接刷写Layer1的固件。
./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin
看清楚c123xor是基于C118的,非C118的手机请不要使用这个,并且记住C118的固件目录就是compal_e88,在输入以上命令之前,手机必须连接好连接线以及TTL,并且确保手机必须为关键状态。命令输入完成后,当前命令窗口会出现以下类似信息:
got 1 bytes from modem, data looks like: 2f /
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 1b .
got 4 bytes from modem, data looks like: f6 02 00 41 ...A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
出现以上信息后,直接轻按手机的红色开机键,只需点亮机器而不需要进入手机的系统!!!这样子信息状态会显示类似以下的信息:
Received PROMPT1 from phone, responding with CMD
read_file(../../target/firmware/board/compal_e88/layer1.compalram.bin):file_size=56016,hdr_len=4,dnload_len=56023
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 43 C
Received PROMPT2 from phone, starting download handle_write(): 4096 bytes (4096/56023)
handle_write(): 4096 bytes (8192/56023)
handle_write(): 4096 bytes (12288/56023)
handle_write(): 4096 bytes (16384/56023)
handle_write(): 4096 bytes (20480/56023)
handle_write(): 4096 bytes (24576/56023)
handle_write(): 4096 bytes (28672/56023)
handle_write(): 4096 bytes (32768/56023)
handle_write(): 4096 bytes (36864/56023)
handle_write(): 4096 bytes (40960/56023)
handle_write(): 4096 bytes (45056/56023)
handle_write(): 4096 bytes (49152/56023)
handle_write(): 4096 bytes (53248/56023)
handle_write(): 2775 bytes (56023/56023)
handle_write(): finished
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 03 .
got 1 bytes from modem, data looks like: 42 B
Received DOWNLOAD ACK from phone, your code is running now!
battery_compal_e88_init: starting up
看到以上的信息就证明你的固件刷写操作已经成功了,下来的操作可以是扫描基站或者其他简单而快速的方法:
扫描基站
~/cell_logger/osmocom-bb/src/host/layer23/src/misc/cell_log -O
扫描某一个基站,例如30
~/cell_logger/osmocom-bb/src/host/layer23/src/misc/ccch_scan -i 127.0.0.1 -a 30
将扫描基站的日志保存到本地
mpcap -i lo -w ~/cell_logger/mobilelog/Cell.log
打开WireShark实时读取相关的信息
sudo wireshark -k -i lo -f 'port 4729'
⑹ ubuntu内核编译需要多长时间
在分析linux内核源码的过程中,要是能够修改内核源码并运行修改后的内核,我想肯定是令人高兴的事,哪怕第一次修改仅仅是在启动时打印一行"Hello, Wang Jiankun!",肯定也是令我高兴的。为了能成功编译修改后的内核,今天先编译一遍内核。
为了有一个完整的记录,今天的起点是一台裸机。
1、在裸机上安装一个最小的debian系统
为了能够尽可能清晰的显示编译一个内核所需要的组件,在安装系统时,仅仅安装最小系统,然后需要什么,就使用apt-get安装什么。
使用网络安装,在安装过程中出现Software selection界面时不要选择任何选项,这样安装的系统将是最小的系统。
为了使用ssh远程登录,最小系统安装完成后,要安装ssh服务器并且要设置静态ip地址(debian安装过程中是通过dhcp获取的ip地址)。
2、安装ssh服务器
apt-get install ssh
3、设置静态ip地址
修改文件/etc/network/interfaces,其中蓝色部分是增加的,红色部分是屏蔽掉的,黑色部分是没有变化的。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
# Wang Jiankun commented the following line
#iface eth0 inet dhcp
# Wang Jiankun added the the following lines
iface eth0 inet static
address 192.168.1.251
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
重启系统后,修改将生效。
4、通过wget下载linux内核源码
administrator@wangjk:~/kernel$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
5、解压文件linux-2.6.19.tar.bz2
administrator@wangjk:~/kernel$ tar jxf linux-2.6.19.tar.bz2
tar: bzip2: Cannot exec: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
administrator@wangjk:~/kernel$
看来是没有bzip2这个包,那就安装一个:
apt-get install bzip2
6、安装debian的kernel-package软件包
在安装kernel-package软件包时,最好使用命令:apt-get build-dep kernel-package,而不要使用命令:
apt-get install kernel-package,后者安装的软件包是前者的子集,使用后者安装kernel-package软件包后,执行make menuconfig命令会出现头文件找不到的错误,如下所示:
administrator@wangjk:~/kernel/linux-2.6.19$ make menuconfig
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:105:23: error: sys/types.h: No such file or directory
scripts/basic/fixdep.c:106:22: error: sys/stat.h: No such file or directory
scripts/basic/fixdep.c:107:22: error: sys/mman.h: No such file or directory
scripts/basic/fixdep.c:108:20: error: unistd.h: No such file or directory
scripts/basic/fixdep.c:109:19: error: fcntl.h: No such file or directory
scripts/basic/fixdep.c:110:20: error: string.h: No such file or directory
scripts/basic/fixdep.c:111:20: error: stdlib.h: No such file or directory
scripts/basic/fixdep.c:112:19: error: stdio.h: No such file or directory
主要是因为libc6-dev软件包没有安装。所以即使使用了apt-get install kernel-package还得使用apt-get build-dep kernel-package,不如一次使用apt-get build-dep kernel-package完成方便。
7、安装libncurses5-dev软件包来支持make menuconfig
通过apt-get build-dep kernel-package安装完成kernel-package后,执行make menuconfig仍然报错,如下所示:
administrator@wangjk:~/kernel/linux-2.6.19$ make menuconfig
HOSTCC scripts/kconfig/lxdialog/checklist.o
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:32:20: error: curses.h: No such file or directory
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:97: error: expected specifier-qualifier-list before 'chtype'
scripts/kconfig/lxdialog/dialog.h:187: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:193: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:195: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:196: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:197: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:198: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:200: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:31: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:59: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:95: error: expected ')' before '*' token
[省略其后部分]
原来是最小系统不支持图形的原因,安装libncurses5-dev后即可。
8、将系统的config文件拷贝到内核目录下
cp /boot/config-2.6.18-6-686 ./.config
9、执行make menuconfig
虽然是将原来系统的config文件拷贝过来的,但是如果所以的配置都采用默认的配置仍然会有问题,在我的系统上在加载文件系统时会死掉,所以还是要做必要的配置,主要是将scsi和sata部分编译进内核而不要编译成模块,如下所示:
Device Drivers --->
Serial ATA (prod) and Parallel ATA (experimental) drivers --->
SCSI device support --->
将蓝色两部分级联的选项全部编译进内核(其实没有必要全部,但为了简单起见,暂时这样做)。
10、安装fakeroot软件包
11、编译内核
fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image
12、安装内核
wangjk:/home/administrator/kernel# dpkg -i linux-image-2.6.19_custom.1.0_i386.deb
Selecting previously deselected package linux-image-2.6.19.
(Reading database ... 17679 files and directories currently installed.)
Unpacking linux-image-2.6.19 (from linux-image-2.6.19_custom.1.0_i386.deb) ...
Done.
Setting up linux-image-2.6.19 (custom.1.0) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Running postinst hook script /sbin/update-grub.
You shouldn't call /sbin/update-grub. Please call /usr/sbin/update-grub instead!
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.19
Found kernel: /boot/vmlinuz-2.6.18-6-686
Updating /boot/grub/menu.lst ... done
13、重启系统引导新内核后查看版本号
administrator@wangjk:~$ cat /proc/version
Linux version 2.6.19 (root@wangjk) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Thu May 7 21:52:10 CST 2009
administrator@wangjk:~$
可以看出已经是我编译的内核了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiankun_wang/archive/2009/05/04/4147806.aspx
------------------------------------
ubuntu不带linux内核源码,需要自己下载安装。
1,查看自己的内核版本
uname -r
2,查看源内的内核源码类表
apt-cache search linux-source
3,下载安装内核源代码
sudo apt-get install linux-source-2.6.27 //我选的是这一个,自己看着办吧
4,等待........
下载完成后,在/usr/src下会有一个文件名为linux-source-2.6.xx.tar.bz2的压缩包
5,解压缩包
tar jxvf linux-source-2.6.27.tar.bz2 //看清自己的版本
解压后会生成一个源代码目录/usr/src/linux-source-2.6.27
6,进入源码目录后,配置文件
make oldconfig
7,生成内核
make
8,疯狂等待,大约1个多小时
9,编译模块
make moles
10,安装模块
make moles_install
大功告成!^_^
下面说一下Makefile文件
$(MAKE) -C $(KERNELDIR) M=$(PWD) moles_install #PWD当前工作目录的变量
obj-m := hello.o
#hello.o是你要生成的驱动,以后可以自己改
KERNELDIR:=/lib/moles/2.6.27-7-generic/build
#这里别抄,写成你自己的版本,这个目录执行了内核源码目录
PWD:=$(shell pwd) #将当前工作目录赋值该PWD
moles:
$(MAKE) -C $(KERNELDIR) M=$(PWD) moles
moles_install:
下面是一个经典的Hello,world!例子自己make一下就行了。
#include <linux/init.h>
#include <linux/mole.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye, cruel world!\n");
}
mole_init(hello_init);
mole_exit(hello_exit);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/unikingest/archive/2009/03/10/3977747.aspx
-----------------------------------------------------------------------------
修改的这篇文章,自己加了几个注意点
http://blog.theosoft.net/article.asp?id=57
第一次的Linux kernel上机内容是编译一个内核。我用的是Ubuntu,有很多地方和其它 Linux不一样,所以就来把我的过程写下来,以后也好有个参照
首先当然是下载内核源代码,如果你要最新的内核,可以去ftp.kernel.org。当然,国内速度可能会很慢。如果你是教育网用户,可以去上海交大的镜像站下载,地址是http://ftp.sjtu.e.cn/sites/ftp.kernel.org/,缺点就是没有最新的内核(更新需要一定的时间)。
==================================================备注
如果是就是编译ubuntu本省自带的内核,只需要
新立得搜索linux souce,下载带ubuntupatch的kernel的source code。
sudo apt-get source linux-source-2.6.27
==================================================备注
我下载的是linux-2.6.19.2.tar.gz可以下到的最新版本了。下完之后当然是解压缩。不过还不能直接编译,因为Ubuntu的默认安装里缺少必要的组建。打开终端,输入一下命令:
sudo -i
apt-get install build-essential kernel-package libncurses5-dev
然后到新立得里把所有以ncurses开头的软件包全部装上,这样就可以开始编译内核了。
先运行以下命令,复制当前内核的配置文件。
cp /boot/config-`uname -r` ./.config
然后
make menuconfig
选择 "Load an Alternate Configuration File",再选择你刚才拷贝过来的.config文件作为配置文件。然后确定。当结束后,你选择退出时,会提示问你 "Do you wish to save your new kernel configuration?"选择yes即可。
接下来就要编译了。输入命令:
make
你也可以将编译任务分成2个线程来执行,只要输入:
make -j2
编译一般需要1~1.5小时左右,就看cpu的性能如何
编译完成后,开始安装:
make mole_install
make install
然后添加引导信息,不过之前还是要装一个组件initramfs-tools,装完以后输入:
mkinitramfs -o /boot/initrd.img-2.X.XX /lib/moles/2.X.XX
==================================================备注
后面的参数不要忘记了,否则启动新内核会出现错误:
WARNING: Couldn’t open directory /lib/moles/2.6.15.7-ubuntu1: No such file or directory
FATAL: Could not open /lib/moles/2.6.15.7-ubuntu1/moles.dep.temp for writing: No such file or directory
==================================================备注
最后打开 /boot/grub/menu.lst
在 ## ## End Default Options ## 下面添加类似下面的两段
title Ubuntu, kernel 2.6.19.2
root (hd0,4)
kernel /vmlinuz-2.6.19.2 root=/dev/hdd6
initrd /initrd.img-2.6.19.2
savedefault
boot
title Ubuntu, kernel 2.6.19.2 (recovery mode)
root (hd0,4)
kernel /vmlinuz-2.6.19.2 root=/dev/hdd6 ro single
initrd /initrd.img-2.6.19.2
boot
注意 root和kernel字段要模仿menu.lst下面已有的内容写。下面是 (hd0,4),那么你也写(hd0,4),下面写root=/dev/hdd6,你也写root=/dev/hdd6,只是内核的版本号改为现在编译的版本号。然后重新启动计算机,在GRUB中选择新内核启动。如果启动失败,你可以重启选择老内核。
⑺ 哪里可以下载Linux系统的的源代码编译要多久编译安装的比直接安装的性能高多少
源代码从 https://www.kernel.org 取。
编译的时间因人而异,也因系统不同而异,除了特别熟悉的,大多数人都要用几个小时。一个是配置的时候要阅读很多帮助信息,这要花很多时间,另一个就是编译本身也需要很长的时间。
编译的性能取决于你的配置。你对自己的机器的硬件了解得准确,配置的时候把不需要的选项都去掉;你对自己的软件目标比较明确,该要的选项都选择进来,这样得到的内核性能自然会好。要是上述两条做不到,其结果可能还不如直接安装的内核好。
⑻ 半个月可以写出一个电脑操作系统吗
作为一名计算机专业的同学回答这个问题:可以个锤子。理由如下:windows 7操作系统,据微软官方给出的数据,就有超过5000万行代码,并且这套操作系统是微软的平均约40人的25个研发小组历时三年研发出来了,这还只是常规固定的研发团队,但据微软的数据,其实参与到这项工作中,并且是主力研发人员和支持工程师其实已经超过了2500人,研发投入超过了20亿美金,要知道在windows之前已经有了windows XP和windows vista的技术积累,而且windows很多核心代码其实并没有推到windows vista等技术重建。
熟练的话可以半个月完成一个具备基本功能的操作系统,对于高手来说完成操作系统包含窗口功能、移植网络功能也是可能的,只要一个人。需要基本功比较扎实,我等普通程序员是做不到的,但能达到这水平的程序员即使在国内也有一些。
当然,操作系统有很多分类,侠义上广义上有不同的定义,每个人的理解也不一样。现代大众理解的通用型操作系统半个月基本不可能完成,人多也没用。
很多人觉得国内没有完全自主的操作系统,其实是有的,只是应用生态不行,并不是技术上做不到。高校和科研机构也有很多技术积累,这里还是希望国产系统能发展起来。
作为一个工作多年的老码农,从专业的角度来分析下这个问题,然后自然会得到答案。
首先要明确一下什么是操作系统,从理论上来讲操作系统就是能驱动计算机运行并管理相关软硬件的一套软件,从实际的角度来讲,比较优秀的操作系统有Unix,Linux,MacOS,Windows以及Andriod等,这些都是一些大型的操作系统,除此之外还有一些嵌入式操作系统,相对来说规模会小一些。
下面让我们分情况讨论。
对于大型专业操作系统,别说半个月就是半年,想写出类似的操作系统都是不可能的事情,原因很简单,这些操作系统太复杂了,光是源代码和文档都是以G计的,这是什么概念?要知道1G大约能保存5亿个汉字的内容,所以,就是光把这些操作系统的源代码读一遍,可能都得数年时间,还不算是否理解,写的话就更不可能。实际上以公开的资料看,Windows系统的开发人员超过数千人,而且平均也要三到五年才能发布一款合格的操作系统。
对于一个简单的非专业操作系统,一般来说复杂度要低一些,开发难度相对较低,但是涉及到的基础技术并不会比专业操作系统少,所以在专业技术足够的情况下,还是有可能开发出来的,记得当年Linus开发出Linux的雏形也就用了几个月时间,不过他也是在一款叫Minix系统的基础上开发的。所以如果有一些现成的系统做参考,在此基础上开发一套新操作系统还是有可能的,不过即使一个优秀的软件工程师也不可能在半月之内开发完成。
对于嵌入式系统,特别是类似单片机等结构简单,硬件单一的系统的来说,开发一套驱动该系统的嵌入式软件还是比较简单的,如果有一些现成的框架做支撑,几个优秀的工程师还是有可能在半个月之内做出来的。
总之,想要在半个月内开发一套专业的操作系统,不管有多少开发人员,基本都是不可能的;而对于一些简单的操作系统,特别是嵌入式系统,短时间内开发出来倒是有可能,至于时间的长短则取决于系统的复杂度以及对各种硬件支持的程度等。但是想半个月开发一套真正的操作系统,我认为是不可能的事!
我觉得可以,我大学有一个舍友,电脑非常厉害,有一次,我的电脑坏了,让他来帮我看。他来了,三两下就搞好我电脑了,然后无聊,对着我说要玩一下我的电脑,然后就定定坐在那里敲代码,我偷偷看过去,他敲的代码都是0101这种的,反正我也看不懂,就先睡觉了。半夜起床,看到他还在敲,一样是010101这种,我和他说,夜深了早点休息,他不理我,我继续睡。第二天起来,发现他不见了,电脑室关闭的。我开电脑,感觉不对劲,从开机到进入系统,完全和之前不一样!忽然手机有短信发过来,是他的,他说,昨晚我帮你重新写了一个操作系统,你之前的操作系统太low了!
半个月在理论上是可以写出一个电脑操作系统的。
不过从你提的这个问题就知道你对操作系统不是很了解。
目前市面上的操作系统有windos,linux,苹果的ios系统,它们的代码都在1亿行上下,你觉得你在半个月能写出这种代码吗?
此外开发一个操作系统你首先要精通汇编语言,C语言,c++这些编程开发语言,就算是你精通这些编程开发语言还不够,你还要懂系统架构,你觉得在实际情况下你能搞定这些吗?
当初开发dos系统的这个都花了快半年的时间才把dos系统写出来,不过这人无论是智商还是技术都是可以碾压别人的存在。你具备这样的优势吗?
现在的windos系统是全球好几万人的工程师写了差不多5年的时间才开发出来,如果是靠一个人来编写windos系统我估计要花100年的时间,而且还是24小时不停的写才有机会写出来。
奉劝你一句,不要好高骛远,先从基础开始做起,如果你想编写操作系统我建议去学习C++。
不知道你说的写出一个操作系统是什么意思。如果是在一个裸机上写入一个操作系统,用克隆十几分钟就可以了。如果是内核不变,变个外形,几天甚至几周也是可以的。如果是从头开始写一个全新的操作系统,我们可以估计一下时间。win95代码有大约1500万行,按照一行代码10秒钟,一天工作16小时,大约需要2600天,现在的操作系统的代码数量要远远超过win95的代码行数
哈哈,那是不可能的,一个系统依赖的知识点太广太深,且不说很多知识点您没了解过,单纯以您已认识的点来说,里面要用的算法足够您折腾。
我肯定不用一分钟就能写出一个“电脑操作系统”。
可以,但是半个月可以写出一个电脑操作系统几乎不具备价值。
因为个人必要劳动时间大大的低于的 社会 必要劳动时间导致的结果有两种可能:
1、获取超额利润
2、毫无价值
半个月可以写出一个电脑操作系统大概率是毫无价值:
因为现代生产力仅仅包含实体性因素、还包含运筹性因素
半个月可以写出一个电脑操作系统可能连实体性因为都达不到,还要包含运筹性因素。
再举例,就算是满足了实体因素,比如现在有无数的互联网公司可以做出类似于淘宝、qq、微信的软件,能取代淘宝、qq、微信吗,答案是很难很难,因为还有运筹性因素这些原因,相应的还会有渗透性因素、准备性因素等,
当然矛盾是人类发展的动力和源泉。人类最高目标是共产主义,而共产主义的前提是生产力高度发展,物质极度丰富。需要像特斯拉一样的人去推动发展生产力。
矛盾也有普通性特殊性,万一有人实现了呢
不可能,除非你写的是玩具操作系统。如果你不是科班出身,你弄懂操作系统估计要不少时间,然后学习编程,懂汇编才行,然后学习C语言,最后才可以写操作系统,如此你用别人代码抄抄改改,估计半个月可以编译通过,也可以运行。如果你要写自己的操作系统,先研究别人的代码,然后重新写,花的时间会更多。你说制作一个操作系统linux发行版用半个月就可以啊,但前提是你要熟悉各种编译技术会使用工具,我从零开始研究gentoolinux制作发行版三个月还没成功。表面上看起来很容易做,当你亲自做了才碰上各种复杂细节和问题,让你不胜其烦。否则国内linux发行版满天飞才是