linux 如何生成内存的linux镜像文件iso下载

【自制镜像,完全运行在内存】vmlinuz+initramfs启动【archlinux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:10,332贴子:
【自制镜像,完全运行在内存】vmlinuz+initramfs启动收藏
研究过程中,收获很多,现在分享下一、linux启动过程linux启动从内核启动开始,内核需要找到根文件系统(/目录所在文件系统)。因此内核有很多功能,兼容各种设备,但储存设备类型太多,导致内核太臃肿,于是内核采用了initramfs机制。其实initramfs之前还有initrd机制,不过比较落后和不合理,已经被initramfs替换掉了。这种机制采用的办法是,在内核编译的时候链接一个initramfs文件,一种替代方法是在内核启动时增加参数:initrd=/boot/initramfs-linux.img。通过这种方法,内核就能在启动时,找到第一个根文件系统了,它就是initramfs。那么内核找到根文件系统后会干什么呢?内核会执行/init文件,若文件不存在,则会执行/sbin/init文件。因此,只需要在/init文件中,完成/根文件系统的过度和init执行的过度就OK了。因此,在mkinitcpio自带的init中有udev、scsi、sata等模块。mkinitcpio就是自动生成系统所需的initramfs的工具。/init执行完成后,由于加载了内核模块和驱动,因此能够找到真正的根文件系统,所以/init执行的最后一步就是switch_root /mnt /sbin/init。完成根目录切换和init切换。由此也可以看出,安装arch的时候,怎么才能真正的纯systemd!大家按照官网的做法都是不纯的!官网要求下载了个工具叫做 systemd-sysvcompat,这个工具是用来把sysV init中的reboot halt init等等链接到systemd上,相当于用systemd模拟了一个sysVinit!所以想要pure systemd,很简单,安装系统时就只安装systemd,安装完成后,#ln /bin/systemd /sbin/init。问题解决!绝对pure的systemd,连关机都要打#systemctl halt。还有我们得到结论,一个完整的系统,只需要3样东西:linux(内核、模块、驱动)、systemd(启动、加载、挂载)、pacman(可以用工具链代替,就成了LFS了)。晚上继续......
linux微职位高端培训,随到随学/4对1辅导/闯关式学习;linux微职位高端培训,优选大牛老师授课,实时在线答疑,保证学习效果.
我会,但是一直没弄,因为内存太小
一、linux启动过程
linux启动从内核启动开始,内核需要找到根文件系统(/目录所在文件系统)并挂载。因此内核有需要有很多功能,兼容各种设备。但现在储存设备类型太多,导致内核太臃肿,于是内核采用了initramfs机制。
其实initramfs之前还有initrd机制,不过比较落后和不合理,已经被initramfs替换掉了。具体大家可以百度一下两者区别,initramfs的优势还是很大的。
initramfs机制采用的办法是,在内核编译的时候链接一个initramfs文件,或者在内核启动时增加参数:initrd=/boot/initramfs-linux.img。通过这种方法,内核就能在启动时,找到第一个根文件系统了,它就是initramfs。挂载fakeroot后,内核会执行/init文件,若文件不存在,则会执行/sbin/init文件。因此,只需要在/init文件中,完成/根文件系统的过渡和init执行的过渡就OK了。mkinitcpio是自动生成系统所需的initramfs的工具。在mkinitcpio自带的init中有udev、scsi、sata等模块,会在init中加载模块和驱动,帮助内核找到真正的根文件系统,挂载后执行真正根文件系统的/sbin/init。所以/init执行的最后一步就是switch_root /mnt /sbin/init。完成根目录切换和init切换。
由此也可以看出,安装arch的时候,怎么才能真正的纯systemd!大家按照官网的做法都是不纯的!官网要求下载了个工具叫做
systemd-sysvcompat,这个工具是用来把sysV init中的reboot halt
init等等链接到systemd上,相当于用systemd模拟了一个sysVinit!所以想要pure systemd很简单,安装系统时就只安装systemd,安装完成后执行:#ln /bin/systemd /sbin/init绝对pure的systemd,甚至连关机都要打#systemctl halt。
由此我们得到结论,一个完整的系统,只需要3样东西:linux(内核、模块、驱动)、systemd(启动、加载、挂载)、pacman(可以用工具链代替,就成了LFS了)。二、完整系统的initramfs的制作#!/bin/bashcd /mnt#清空/mnt文件夹,创建pacman缓存文件夹rm -rf /mnt/*mkdir -p /mnt/var/lib/pacman#安装基本系统,安装这三个软件包就足够了,但还需要根据所使用的网络安装网络软件包net-tools等等pacman -Syy -r /mntpacman -S -r /mnt --noconfirm --needed linux systemd pacman#创建虚假的init文件,内核会发现该文件不可执行,转而执行/sbin/init#这样做主要是为了和现有文件目录一致,其实直接ln到/init上也可以touch /mnt/initln -r /mnt/bin/systemd /mnt/sbin/init#精简内容(共享文件、内核头文件、内核源码、pacman缓存)rm -rf /mnt/usr/sharerm -rf /mnt/usr/includerm -rf /mnt/usr/srcrm -rf /mnt/var/lib/pacman/sync/*pacman -Scc -r /mnt --noconfirm#修改启动级别为multi-userchroot /mnt systemctl -f enable multi-user.target#移动出内核文件,启动时需要mv -f /mnt/boot/vmlinuz-linux /data/#压缩为img#-H newc是必须的,我刚开始一直不知道,导致内核无法解压initramfs#xz压缩可以让img文件更小,但压缩时间太久,gzip还是比较适中的find . | cpio -oH newc | gzip
& /data/initramfs.img#清理工作目录rm -rf /mnt/*
启动时,用这两个文件就可以启动了,启动后,需要什么软件还能够再临时安装。这两个文件可以任意存放,我就是存放在我ntfs的移动硬盘上,我的移动硬盘安装了grub4dos引导,可以方便的进入linux进行系统维护和重装。
大家有什么疑问有什么意见,可以一起讨论。我也是new-archer,暂时在研究阶段。要和大家共同进步!
明天发我的两个方便重装的简单脚本,bash我不熟,乱写的东西。敬请期待......
$ls -l /sbin/initlrwxrwxrwx 1 root root 26
8月 31 04:52 /sbin/init -& ../usr/lib/systemd/systemd
$ ls -l /bin/systemdlrwxrwxrwx 1 root root 26
8月 31 04:52 /bin/systemd -& ../usr/lib/systemd/systemd……有啥区别?
好厉害!按帖子方法启动成功,但试着pacman -S nano 的时候提示根分区已满。可以下载包,内存里面还有空间(248M/1G),但不可以安装 。原信息:error:Partition / too full :381 blocks needed, 0 blocks free是不是还要改下哪些配置文件?
这已经不是新人水平了吧……
好厉害,用了一年arch的表示现在连安装都不会了……
厉害!!!
linux,博为峰教育培训免费试听,0元入学,更有多重优惠等你!linux,博为峰教育,真正为年轻人服务的企业,14年间培训15万余名it工程师,成绩斐然!
你这个方法是为了能让initramfs在任何电脑上以命令行启动?用本机现有的系统生成一个ram启动和你的方法有什么区别?
嵌入式差不多也这样,只不过生成的压缩文件一般是zImage,使用瑞士军刀busybox提供的init/mdev等功能
为什么我启动的时候会出现很多库文件找不到,我安装了pacman systemd linux这3个包
root@C.C:~#pacman -S -r initramfs/ --noconfirm linuxPackages (1): linux-3.9.2-1Total Installed Size:
61.51 MiBNet Upgrade Size:
0.00 MiB:: Proceed with installation? [Y/n] (1/1) checking keys in keyring
[######################] 100%(1/1) checking package integrity
[######################] 100%(1/1) loading package files
[######################] 100%(1/1) checking for file conflicts
[######################] 100%(1/1) checking available disk space
[######################] 100%(1/1) reinstalling linux
[######################] 100%call to execv failed (No such file or directory)error: command failed to execute correctly
楼主的意思,initramfs就是最后的根?有个问题,usb驱动是vmlinuz带还是,最后的根里带(module)能否把usb模块放在initramfs中?
diao,能说这个字么会不会被封号?
登录百度帐号Linux下的进程2——进程的内存映像,进程PCB,task_struct详解
进程的内存映像
  Linux下C程序生成主要由四个步骤组成: 
  编译器gcc经过预编译,编译,汇编三个步骤将源程序文件转换成目标文件。
  如果程序有多个目标文件或程序中使用了库函数,则编译器还需要将所有目标文件及所需的库文件链接起来,最后生成可执行程序。
  当程序执行时,操作系统可将可执行程序复制到内存中.
  程序转为进程通常需要以下步骤:
内核将程序读入内存,为程序分配内存空间
内核为该进程保存PID及相应的状态信息,把进城放到运行队列中等待执行。程序转化为进城后就可被操作系统的调度程序执行了。
  进程的内存映像是指内核在内存中如何存放可执行程序文件。
  在将程序转化为进程的过程中,操作系统将可执行程序从硬盘复制到内存中,其布局如下:
  进程映像的位置依赖于使用的内存管理方案。
可执行程序与进程内存映像的不同之处在于:
可执行程序位于磁盘中而内存映像位于内存
可执行程序没有堆栈,因为程序被加载到内存中才会分配堆栈
可执行程序虽然也有未初始化数据段但他并不被存储在位于硬盘中的可执行文件中。
可执行程序是静态的,不变的,而内存映像随着程序的执行是在动态变化的,比如数据段随着程序的执行要存储新的变量值,栈在函数调用时也是在不断变化的。
进程与程序的区别:
(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的:
  一个程序可对应多个进程即多个进程可执行同一程序;
  一个进程可以执行一个或几个程序
进程的内存布局
  进程的内存布局分为四个不同的段
  1.文本段——包含程序的源指令
  2.数据段——包含了静态变量
  3.堆——动态内存分区区域
  4.栈——动态增长与收缩的段,保存本地变量
  当进程执行时,它会被装载进虚拟内存,为程序变量分配空间,并把相关信息添加到task_struct里。
  为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构。
一般情况下,PCB中包含以下内容:
1.进程标识符(内部,外部)
2.处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。
  说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待等。
  处理机状态信息主要是由处理机各种寄存器中的内容所组成。
  通用寄存器。又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。
  指令寄存器。存放要访问的下一条指令的地址。
  程序状态字PSW。其中含有状态信息。(条件码、 执行方式、中断屏蔽标志等)
  用户栈指针。每个用户进程有一个或若干个与之相 关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
3.进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)
4.进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)
  Linux的进程控制块为一个由结构task _ struct所定义的数据结构,其中包括管理进程所需的各种信息。Linux系统的所有进程控制块组织成结构数组形式。
  在创建一个新进程时,系统在内存中申请一个空的task_ struct区,即空闲PCB块,并填入所需信息。同时将指向该结构的指针填入到task[]数组中。当前处于运行状态进程的PCB用指针数组current_ set[]来指出。这是因为Linux支持多处理机系统,系统内可能存在多个同时运行的进程,故current_set定义成指针数组。
  Linux系统的PCB包括很多参数,每个PCB约占1KB多的内存空间。用于表示PCB的结构task_struct简要描述如下:
struct task_struct{
unsighed long rt_
Struct task_struct *next_task, *prev_
Struct task_struct *next_run,*prev_
Struct task_struct *p_opptr,*p_pptr,*p_cptr,*pysptr,*p_
下面对部分数据成员进行说明:
(1)unsigned short pid 为用户标识
(2)int pid 为进程标识
(3)int processor标识用户正在使用的CPU,以支持对称多处理机方式;
(4)volatile long state 标识进程的状态,可为下列六种状态之一:
  可运行状态(TASK-RUNING);
  可中断阻塞状态(TASK-UBERRUPTIBLE)
  不可中断阻塞状态(TASK-UNINTERRUPTIBLE)
  僵死状态(TASK-ZOMBLE)
  暂停态(TASK_STOPPED)
  交换态(TASK_SWAPPING)
(5)long prority**表示进程的优先级**
(6)unsigned long rt_prority 表示实时进程的优先级,对于普通进程无效
(7)long counter 为进程动态优先级计数器,用于进程轮转调度算法
(8)unsigned long policy 表示进程调度策略。
  其值为下列三种情况之一:
  SCHED_OTHER(值为0)对应普通进程优先级轮转法(round robin)
  SCHED_FIFO(值为1)对应实时进程先来先服务算法;
  SCHED_RR(值为2)对应实时进程优先级轮转法
(9)struct task_struct *next_task,*prev_task为进程PCB双向链表的前后项指针
(10)struct task_struct *next_run,*prev_run为就绪队列双向链表的前后项指针
(11)struct task_struct *p_opptr,*p_pptr,*p_cptr,*p_ysptr,*p_ptr指明进程家族间的关系,分别为指向祖父进程、父进程、子进程以及新老进程的指针。
没有更多推荐了,释放linux内存如何手动释放缓存?
全部答案(共1个回答)
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:
[root@server test]# cat /proc/sys/vm/drop_caches
首先,/proc/sys/vm/drop_caches的值,默认为0。
[root@server test]# sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches
将/proc/sys/vm/drop_caches值设为3
[root@server test]# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再来运行free命令,会发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB。那么有效的释放了buffer和cache。
◎ 有关/proc/sys/vm/drop_caches的用法在下面进行了说明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
To free pagecache, use echo 1 > /proc/sys/vm/drop_ to
free dentries and inodes, use echo 2 > /proc/sys/vm/drop_
to free pagecache, dentries and inodes, use echo 3 >
/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects
are not freeable, the user should run sync first.
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel...
通过系统信息-任务管理器-关闭所有任务
方法二种:
1、用第三方软件,内存整理工具,如mem 、优化大师、超级兔子等。
2、个人不推荐用第三方软件,把系统注销一次就可以完全释放内存了。
即可以通过free来手动释放动态内存,也可以在程序结束时由系统自动释放
不用费事了, 再买个1G的装上去就OK了!
我的内存是128的,没钱买新的, 就把它反过来装,系统一自检内存成821的了!!!
答: 隐藏桌面只留一个需要的程序快捷捷
答: 操作步骤
1、经典桌面下系统下同时按住键盘上“Win键”和“X”键打开系统菜单 ,选择“磁盘管理”。
2、对准想要划分的分区右键,选择“压缩卷” 。
3、填入想...
答: 电子政务内网安全保密内容与特征根据电子政务内网安全性产品推荐要求,涉及网络安全的产品主要有防火墙、入侵检测系统、安全审计系统、漏洞扫描系统、安全隔离与信息交换系...
你用的是工行的卡吗?到工行网站问了一下,下面是它们版主的回答——您好~
1、您可以拨打95588或通过网上银行等渠道查询消费明细。
2、若您的信用卡开通了网上银行。请您按照以下地址进行登录。工行网站地址: 点击“个人网上银行登录”或工行个人网上银行地址: 按照系统提示输入相关信息后即可登录。
“网页错误”请您进行以下操作:
(1)打开IE浏览器,选择“工具”菜单--&“Internet选项”--&“高级”标签--&点击“还原默认设置”,点击“确定”后关闭所有IE浏览器窗口;
(2)打开IE浏览器,选择“工具”菜单--&“Internet选项”--&“常规”标签--&Internet临时文件设置中的“检查所存网页的较新版本”选择“每次访问此页时检查”。并在Internet临时文件设置中点击“删除文件”,在“删除所有脱机内容”前打勾后点击确定关闭对话框,关闭所有IE窗口;
(3)打开IE浏览器,选择“工具”菜单--&“Internet选项”--&“安全”标签,在“请为不同区域的Web内容制定安全设置(z)”窗口内选择“Internet”,然后选择“自定义级别”,将“Activex控件和插件”中“下载已签名的Activex控件”、“运行Activex控件”等设置为“启用”或“提示”,点击确定后,请重新启动电脑;
(4)若您安装了3721上网助手之类的软件,请您将其完全卸载;
(5)请登录工行门户网站 ,点击“个人网上银行登录”下方的“下载”。进入下一个页面后,下载并安装控件程序。
(6)若仍无法正常使用,建议您重新安装IE6.0或以上版本的IE浏览器,并使用WINDOWS系统的UPDATE功能安装补丁。
3、您可以通过网上银行查看对账单进行还款。
4、是可以的。您需要通过网上银行办理跨行转账业务。
如果您想在网上办理跨行汇款,请使用“工行与他行转账汇款”功能,您除了需要申请开通网上银行对外转账功能,还需要您所在地区开通网上跨行汇款功能。若未开通,那么在操作时系统会提示您的(国际卡及香港信用卡无法使用此功能)。
从日起,柜台注册且未申请U盾或口令卡的客户,单笔交易限额、日累计限额以及总支付交易限额均为300元,9月1日前支付额度已经达到300元的客户需到网点申请电子口令卡或U盾(从注册日起计算支付额)。
若目前已达到交易限额但急需支付,建议您可通过下列方法变更交易限额:
1.申请U盾。u盾客户不再受交易限额和支付次数的限制。此外,使用u盾,您可以享受签订理财协议等服务项目,并在您原有使用基础上大大加强了安全性。如需办理U盾,请您本人携带有效身份证件和网上银行注册卡到当地指定网点办理U盾,办理手续及网点信息请您当地95588服务热线联系咨询。
2.申办口令卡。您本人可持有效身份证件、网上银行注册卡到当地指定网点申办口令卡。申办电子口令卡后,个人网上银行单笔交易限额1000元;日累计交易限额5000元,没有总支付额度控制;电子银行口令卡的使用次数为1000次(以客户输入正确的密码字符并通过系统验证为一次),达到使用次数后即不能使用,请及时到我行营业网点办理申领新卡手续。
工行的网银没有软键盘,主要通过安全控件来保证安全,只有安装了工行的安全控件,才能在工行网页上输入密码。
修改密码的操作,你可以在登陆工行网银以后,在“客户服务”的“修改客户密码”里找到相关链接。
做鲫鱼汤很重要的一点是注意火候的把握。
步骤如下:
买新鲜现杀的鲫鱼两条,个头要适中。洗的时候要把鱼鳞全部弄干净,鱼肚里也要洗净,免得汤有腥味;
洗好后,在鱼身上涂抹适当食盐,腌放十分钟;
准备好香葱三根,洗净,打结备用;
切好姜片若干(根据鱼的大小和量);
均匀涂抹姜汁于锅内(防止鱼皮粘锅),倒入色拉油,点火;
油不宜太热,将火旋小,轻轻放鱼入锅,同时放入姜片,把火调大;
煎至鱼皮微露金黄色,将鱼轻轻翻身,直至也微呈金黄色;
煎的过程中,注意转动锅,使鱼均匀煎透;
把火调小,加冷水至淹没鱼为止,放入备好的葱结,开大火,煮沸;
把鱼翻身,再煮五分钟,放入适量的盐,继续煮,直至汤呈现奶白色;
加味精,煮两分钟。
同时准备好吃鱼的料:蘸鱼的陈醋少许倒入碗中,放少许盐,糖,味精,搅拌均匀。
将鱼单独盛在大碗里,鲫鱼汤盛在汤碗里;鱼蘸着料吃,汤即喝。
^_^,美味的鲫鱼汤呈现在你的眼前了,还有香喷喷的鱼肉……
光设置自发光是不能看到这种效果的,正确操作步骤如下:
1:在材质编辑器中选择一个新的材质示例球,将其命名为灯筒(就是你上面那个发光物体).
2:在(明暗基本参数)Shader Basic Parameters展卷栏中设置材质的明暗器为(胶性)Blinn,在(胶性基本参数)Blinn Basic Psrameters展卷栏中设置材质参数(环境光)Amhient,(漫反射光)Diffuse,(高光反射)Specular均为白色,并设置自发光为100.
3:在视图中选中上面物体,在材质编辑器中单击赋予按钮,就可将材质赋予该物体了
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区&Linux内核镜像格式&
Linux内核有多种格式的镜像,包括vmlinux、Image、zImage、bzImage、uImage、xipImage、bootpImage等.
?kernel镜像格式vmlinux
vmlinux是可引导的、未压缩、可压缩的内核镜像,vm代表Virtual
Memory。(表示Linux支持虚拟内存,因此得名vm)它是由用户对内核源码编译得到,实质是elf格式的文件.也就是说vmlinux是编译出来的最原始的内核文件,未压缩.这种格式的镜像文件多存放在PC机上.
?elf格式文件 :
&&ELF(Executable and Linkable
Format)可执行可链接格式,是UNIX实验室作为应用程序二进制接口而发布的,扩展名为elf.可以简单的认为,在elf格式的文件中,除二进制代
码外,还包括该可执行文件的某些信息,比如符号表等。
vmlinuz 是可执行 的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接,比如是
vmlinuz-3.13.0-32-generic
的软链接。vmlinuz是vmlinux的压缩文件。vmlinuz的建立有两种方式。一是编译内核时通过“make
zImage”创建,二是内核编译时通过命令make bzImage创建。
?kernel镜像格式:Image
Image是经过objcopy处理的只包含二进制数据的内核代码,它已经不是elf格式了,但这种格式的内核镜像还没有经过压缩.
?objcopy:
GNU使用工具程序objcopy作用是拷贝一个目标文件的内容到另一个目标文件中,也就是说,可以将一种格式的目标文件转换成另一种格式的目标文件.
通过使用binary作为输出目标(-o
binary),可产生一个原始的二进制文件,实质上是将所有的符号和重定位信息都将被抛弃,只剩下二进制数据。
?kernel镜像格式:zImage
zImage是ARM linux常用的一种压缩镜像文件,它是由vmlinux经过objcopy , objcopy实现由vmlinux的elf文件拷贝成纯二进制数据文件加上解压代码经gzip压缩而成,命令格式是#make zImage.这种格式的Linux镜像文件多存放在NAND上. 适用于小内核的情况,它的存在是为了向后的兼容性。
?kernel镜像格式:bzImage
bzImage不是用bzip2压缩的,bz表示big zImage,其格式与zImage类似,但采用了不同的压缩算法,注意,bzImage的压缩率更高 ,是压缩的内核映像。
zImage/bzImage:它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有解压缩代码。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个
640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。
?kernel镜像格式:uImage
uImage是uboot专用的镜像文件,它是在 zImage
之前加上一个长度为0x40的头信息(tag)(也就是说uImage 是一个二进制文件),在头信息内说明了该镜像文件的类型、加载
位置、生成时间、大小等信息.换句话说,若直接从uImage的0x40位置开始执行,则zImage和uImage没有任何区别.命令格式是#make
uImage.这种格式的Linux镜像文件多存放在NAND上.&
?怎么生成uImage
& &&在uboot的/tools目录下寻找mkimage文件,把其copy到系统/usr/local/bin目录下,这样就完成制作工具。然后在内核目录下运行make
uImage,如果成功,便可以在arch/arm/boot/目录下发现uImage文件,其大小比zImage多64个字节。
由于bootloader一般要占用0x0地址,所以,uImage相比zImage的好处就是可以和bootloader共存。其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动去搞那些参数。
?kernel镜像格式:xipImage
这种格式的Linux镜像文件多存放在NorFlash上,且运行时不需要拷贝到内存SDRAM中,可以直接在NorFlash中运行.
&Linux内核镜像的产生过程&
在嵌入式Linux中,内核的启动过程分为两个阶段.其中,第一阶段启动代码放在arch/arm/kernel/head.S文件中,该文件与体系结构相关,与开发板周边硬件无关,主要是初始化ARM内核等.第二阶段启动代码是init目录下的main.c.现以执行命令#make
zImage为例来说明,arm-linux内核镜像的产生过程.
?当用户对Linux内核源码进行编译时,kernel的第1/2阶段代码会生成可执行文件vmlinux,该文件是未被压缩的镜像文件,非常大,不能直接下载到NAND中,通常放在PC机上,这也是最原始的Linux镜像文件.一般该文件约50M左右.
?镜像文件vmlinux由于很大,肯定不能直接烧入NAND中,因此需要进行二进制化,即经过objcopy处理,使之只包含二进制数据的内核代
码,去除不需要的文件信息等,这样就制作成了image镜像文件.该镜像文件也是未压缩,只是经过了二进制化而变小.该文件约5M左右.
?&一般来说,内存SDRAM中的内核镜像是经过压缩的,只是在运行时再将其解压.所以,编译时会先使用gzip将镜像文件image进行压缩(压缩比约为
2:1),再将压缩后的镜像文件和源码中的两个文件arch/arm/boot/compressed/head.S、arch/arm/boot
/compressed/misc.c一起链接生成压缩后的镜像文件compress/vmlinux.该文件约为2.5M左右。注意,这两个源码文件是解压程序,用于将内存SDRAM中的压缩镜像zImage进行解压.
?压缩后的镜像文件compress/vmlinux经过二进制化,最终生成镜像文件zImage,试验时该文件约为2.5M.当然,在内存
SDRAM中运行压缩镜像文件zImage时,会首先调用两个解压程序arch/arm
/boot/compressed/head.S、arch/arm/boot/compressed/misc.c将自身解压,然后再执行kernel
的第一阶段启动代码arch/arm/kernel/head.S.简而言之,在内存中运行内核时,kernel先自身解压,再执行第一阶段启动代码.试
验时运行在内存中的镜像文件约为5M,与image镜像文件大小相同.
&注意事项&
?网站:该网站通过了Linux内核源码,不用解压,在线查询,非常方便.
?生成的镜像文件vmlinux放在源码的顶层目录下.
?生成的镜像文件image、zImage均在arch/arm/boot目录下.
?启动开发板时,在超级终端内会有许多的提示信息,其中:&
?booting linux …
/表示正在将内核从NAND拷贝到内存中/&
?unpressed…
/表示正在解压内核/
?只有当用户输入boot命令或在boot_delay延时时间后,vivi才将NANDFlash中的内核kernel拷贝到内存SDRAM中.也就是说,当vivi进入命令行模式时,在SDRAM中并没有内核kernel.
?在kernel源码目录下执行命令:&
?&1& #tree
/打印出kernel源码的目录结构/&
?&2& #tree -L 1
/打印出kernel源码的第一级目录结构/&
?&3& #tree & /home/lishuai/linux.txt
/将kernel源码的目录结构重定向到某个文件中,用户可以随时查看其目录结构,非常方便/
&wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display:"&
阅读(...) 评论()

我要回帖

更多关于 linux镜像文件 的文章

 

随机推荐