安装opensuse的笔记-重庆linux开源组织

时间:2023-03-08 22:05:06
安装opensuse的笔记-重庆linux开源组织

mate: 伙伴
matey: 融洽的, 易于亲近的. get matey with sb.

poison: a. 有毒的, n.毒药/毒酒v. 下毒, 破坏, 污染

slander [ 撕烂的~~], n. 中伤,诽谤, v. 诽谤
slanderous: 中伤的, 诽谤的.
this is pure slander . the slander poisoned his mind.

college : ege 相对开音节 : 大学
colleague: 区别在与后面的ea, gue : 同事

David is a colleague of mine.

tale: n. 故事; 传说,讲述; " 谣言,坏话"
tell tales: 讲故事/////// 造谣, 讲坏话...
Don't tell tales, or you'll be sorry. sorry: adj. 难过 的, 同情的; ***后悔的, 遗憾的; 惭愧的; 可怜的..
i hesitated, not wanting to tell tales about my colleague.

knuckle: n. 指关节, 轴, [引申为动词, 屈服...]
knuckle down under [to]:
she did not knuckle down under to the rogue.
William did not knuckle down under : 流言蜚语.

rogue: [r2ug]: gue: 合起来发g
adj. 凶猛的

n. 流氓, 无赖;

n. 小淘气.
don't get too matey with him . he is a rogue.
my litttle brother is such a rogue.

swan: ['swan] 天鹅,鸿鹄
the swan sings before death. 人之将死其言也善...
a toad['t2ud] 癞蛤蟆 hankering(渴望) for a taste of swan. 这里的an如同hand中的an的发音.
swallows and sparrows can not understand the am'bition(雄心, 野心, 志向, 梦想)of a swan

he attain the summit[s^mit] (adj. 顶点的, 顶峰的, 峰会的, n. 顶点顶峰,峰会) of his ambition.

openSUSE Asia Summit 第一天现场图 (亚洲峰会).
welcome to the free world
Richard Brown
------------------------------------------------

理解一个重要的概念:
对于硬盘: 首先是分区 (是在物理上的划分),
分区后, 再是来挂载文件系统...

不管是windows还是linux,都不能把整个磁盘当做一个整体来使用和管理
需要把磁盘划分成多个功能区, 分别放功能/性质不同的文件和目录
这个划分的工作就叫做 "分区": partition. partitioning partitioner.

要理解: 分区编号 = 设备device name = 卷volume : 通常如 /dev/sda1, /dev/sda2...
也可以用卷volume的名字name来表示, 如/dev/sda1 也可以说是 swap卷. /dev/sda2也可以说是 root卷...
三个概念基本一致

默认的分区方案:
分成3个分区:
/dev/sda1是swap卷, 占1个GiB
/dev/sda2 是root卷, 占12个GiB 采用btrfs文件系统!
其余剩下的, 都分配给了/dev/sda3, 占16.9GB, 采用xfs文件系统

然后在root卷下分 subvolume:
如: /opt, /var, /lib, /tmp, /usr, ...
安装opensuse的笔记-重庆linux开源组织

对于u盘, 固态硬盘, scsi盘用sd 来表示, 机械硬盘用hd来表示.
硬盘的编号用a, b, c....来编号, 因此, sda表示第一块硬盘...
硬盘上的分区, 跟windows有点区别, Windows用字母编号c: 分区, d:分区
而linux内核的管理都是用数字来管理, 所以分区是用1,2,3来表示的:
如: /dev/sda1, /dev/sda2,...

然后是文件系统
linux中也存在分区:
它的分区, 叫做 卷: volume.
如同windows把整个硬盘分成c d e f等分区一样,
linux也把整个硬盘分成 多个分区, 用数字来表示: /dev/sda1, dev/sda2,...


分区, 是用来做什么用的?

挂载的概念?
挂载 可以 理解为 容器, 存放,
将某个文件系统(相当于内容), 如/boot, /home 或者/, 挂载到某个分区上(也可以说是物理设备上), 如/dev/sda1, /dev/sda2...
就相当于将 这些内容 , 放到这个 分区中去, 放到分区这个容器中去!

只不过, linux的文件系统挂载分区, 比windows要方便得多. Windows将c盘的所有文件从一个盘转移到另一个盘d:, 需要的工作量
是很大的, 而linux 将文件系统 从一个分区(或目录) 更换挂载到另一个分区, 就非常简单. 只需要一条命令, 重新mount一下,
瞬间就完成了!

因此, 可以回答, 分区就是用来 "挂载"文件系统的, 就是用来 "装" "容纳" 文件系统的. 放文件/目录等内容的.

如同c盘, d盘等等, 是用来放文件, 电影, 歌曲等等的!

---------------- haveged 是什么 进程? --------------
unpredictable: 不能预测的...
pre- 预先,
dict-指导,说出
predict: 预言, 预测, prediction: n.
predictable: 可预言的, 可预测的.
this great prediction is coming true. the prediction has come true!

haveged is an daemon that attempts to provide an easy-to-use, unpredictable random number generator!

-----------------(no) copy on write ----------
参考这篇文章 写时复制
启用/禁用 写时复制
copy on write 简写为 COW
cow:奶牛, v.恐吓: he is not likely to be a child that is cowed into submission.

在c++, java中, 要看编译器支持/不支持cow.
对字符串等类对象而言,,
如:
纯c++

using namespace std;

....
string sa="123";
string sb=sa;
string sc=sa;

那么这个编译器,如果支持cow, 那么在堆中 就只有1 块内存区域. 存放string: "123", 其他变量都是字符串指针指向这块内存.
系统如何知道 什么时候释放这块内存区域呢?
在系统中另外建立一个变量, 用来保存 内存区域(字符串sa,sb,sc的)引用计数. 当新创建一个sx=sa时, 引用计数增加1, 但是不会创建新的内存区域, 当销毁一个变量sx时,这块内存并不马上销毁, 而是将 引用计数减1.
只有当引用计数 = 0 时, 系统才会销毁并回收这块内存.

[网络摘抄:

Copy On Write(写时复制)是在编程中比较常见的一个技术,面试中也会偶尔出现(好像Java中就经常有字符串写时复制的笔试题),今天在看《More Effective C++》的引用计数时就讲到了Copy On Write——写时复制。下面简单介绍下Copy On Write(写时复制),我们假设STL中的string支持写时复制(只是假设,具体未经考证,这里以Mircosoft Visual Studio 6.0为例,如果有兴趣,可以自己翻阅源码)

Copy On Write(写时复制)的原理是什么?
有一定经验的程序员应该都知道Copy On Write(写时复制)使用了“引用计数”,会有一个变量用于保存引用的数量。当第一个类构造时,string的构造函数会根据传入的参数从堆上分配内存,当有其它类需要这块内存时,这个计数为自动累加,当有类析构时,这个计数会减一,直到最后一个类析构时,此时的引用计数为1或是0,此时,程序才会真正的Free这块从堆上分配的内存。
引用计数就是string类中写时才拷贝的原理!

什么情况下触发Copy On Write(写时复制)

很显然,当然是在共享同一块内存的类发生内容改变时,才会发生Copy On Write(写时复制)。比如string类的[]、=、+=、+等,还有一些string类中诸如insert、replace、append等成员函数等,包括类的析构时。

]

----------------------- linuxrc?
initrd.img是个文件系统的镜像 里面存放有linuxrc (不止linuxrc 还有其它的目录)

要修改linuxrc:
解压initrd.img (这个解压不是一般的解压 应该有工具可以把这个文件系统内容读出来, **使用ultraiso应该可以???)
得到一个文件夹。
然后把里面的内容改了
再使用 mkimg 类似的工具 (要看这个文件系统是什么文件系统)。生成一个新的initrd.img

你看到的linuxrc是个elf 说明是个二进制执行文件 你要修改它就必须找到源代码才能修改

rc时初始化的意思,带rc的文件一般都是用于对应软件的初始化的

由系统的第一个进程init程序加载,并且解释处理。
里面定义了一些开机要运行的服务等等。

linuxrc 跟 /sbin/init的性质和作用是差不多的.

[[
启动方式有两种: 无论是initrd= init-r- d , 方式还是initramfs方式启动,都是由虚拟文件系统去挂载了真正的文件系统之后,
再把linuxrc当做一个文件去执行

/sbin/init也是在initramfs或initrd里,整个busybox全都在里面

linuxrc会被当作init来使用,

在busybox中有
./include/applets.h:92:IF_FEATURE_INITRD(APPLET_ODDNAME(linuxrc, init, BB_DIR_ROOT, BB_SUID_DROP, linuxrc))
所以有没有linuxrc都没有关系,反正只要有/sbin/init就行了

要使用linuxrc,就必须在cmdline里添加init=/linuxrc,如果有了这个,就不会再去执行/sbin/init了
所以不存在你说的先执行linuxrc再执行init的情况

linuxrc mounts the "real" root file system,这句话的意思是/sbin/init会去读取fstab,fstab里面就是有/dev/mmcblk0p2

]]]

应该 是 /etc/init.d/init/rcS
-----------------------------opensuse的包格式?
openSUSE 默认使用rpm包格式,
但是, 它可以使用其他多种格式,像deb, pkg, slp等包.
它本身 并没有创建 一种 新的 软件包格式!


els是什么格式?
elf: executable and linkable format, 可执行和可连接文件格式, 是类unix上的二进制的默认格式.