当电脑刚加电的时候,会做一些重置的工作,将 CS 设置为 0xFFFF,将 IP 设置为 0x0000,所以第一条指令就会指向 0xFFFF0,正是在 ROM 的范围内。在这里,有一个 JMP 命令会跳到 ROM 中做初始化工作的代码,于是,BIOS 开始进行初始化的工作。
来自:07 | 从BIOS到bootloader:创业伊始,有活儿老板自己上
24 人划过
每个页表项需要 4 个字节来存储
来自:21 | 内存管理(下):为客户保密,项目组独享会议室封闭开发
13 人划过
主执行文件会放在 /usr/bin 或者 /usr/sbin 下面,其他的库文件会放在 /var 下面,配置文件会放在 /etc 下面
来自:04 | 快速上手几个Linux命令:每家公司都有自己的黑话
12 人划过
进程也是默认有一个主线程的。线程是负责执行二进制指令的,它会根据项目执行计划书,一行一行执行下去。进程要比线程管的宽多了,除了执行指令之外,内存、文件系统等等都要它来管。
来自:11 | 线程:如何让复杂的项目并行执行?
11 人划过
操作系统其实就像一个软件外包公司,其内核就相当于这家外包公司的老板
来自:03 | 你可以把Linux内核当成一家软件外包公司的老板
10 人划过
创建进程的话,调用的系统调用是 fork,在 copy_process 函数里面,会将五大结构 files_struct、fs_struct、sighand_struct、signal_struct、mm_struct 都复制一遍,从此父进程和子进程各用各的数据结构。而创建线程的话,调用的是系统调用 clone,在 copy_process 函数里面, 五大结构仅仅是引用计数加一,也即线程共享进程的数据结构
来自:19 | 线程的创建:如何执行一个新子项目?
7 人划过
在字符设备驱动的内核模块加载的时候,最重要的一件事情就是,注册这个字符设备。注册的方式是调用 __register_chrdev_region,注册字符设备的主次设备号和名称,然后分配一个 struct cdev 结构,将 cdev 的 ops 成员变量指向这个模块声明的 file_operations。然后,cdev_add 会将这个字符设备添加到内核中一个叫作 struct kobj_map *cdev_map 的结构,来统一管理所有字符设备。
来自:32 | 字符设备(上):如何建立直销模式?
6 人划过
我们再来看第二层。下一层目录 home 对应了两个 dentry,而且它们的 parent 都指向第一层的 dentry。这是为什么呢?这是因为文件系统 A 挂载到了这个目录下。这使得这个目录有两个用处。一方面,home 是根文件系统的一个挂载点;另一方面,home 是文件系统 A 的根目录。
来自:29 | 虚拟文件系统:文件多了就需要档案管理系统
6 人划过
主要用于实现进程间的互斥与同步
来自:36 | 进程间通信:遇到大项目需要项目组之间的合作才行
5 人划过
容器实现封闭的环境主要要靠两种技术,一种是看起来是隔离的技术,称为 namespace(命名空间)。在每个 namespace 中的应用看到的,都是不同的 IP 地址、用户空间、进程 ID 等。另一种是用起来是隔离的技术,称为 cgroup(网络资源限制),即明明整台机器有很多的 CPU、内存,但是一个应用只能用其中的一部分。
来自:56 | 容器:大公司为保持创新,鼓励内部创业
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
编辑推荐
讲师的其他课程
包含这门课的学习路径
运维工程师
32门课程 149.1w人学习
计算机基础知识
12门课程 96.5w人学习
C++工程师
7门课程 51.5w人学习