• 安装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默认的分区方案

    对于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上的二进制的默认格式.

  • 相关阅读:
    golang实现单链表
    koa中间执行机制
    vuex源码简析
    从浏览器渲染过程看重绘回流
    javascript的this
    js 设计模式:观察者和发布订阅模式
    H5 移动端 键盘遮挡焦点元素解决方案
    webpack4 css modules
    Daily,一个入门级的 React Native 应用
    javascript: 类型转换
  • 原文地址:https://www.cnblogs.com/bkylee/p/5486304.html
Copyright © 2020-2023  润新知