avatar
文章
87
标签
0
分类
12
归档
分类
照片
关于
搜索
CodeTalks
搜索
归档
分类
照片
关于
搜索

CodeTalks

Kubernetes 实战 | 安装 Ingress Controller
发表于2019-08-31|编程分享Kubernetes
可以看到之前安装的 Kubernetes Dashboard Web UI 没有办法直接在集群外部访问,这是由于 Kubernetes 默认 Service 提供的访问方式是 ClusterIP,也就是在集群内部通过虚拟 IP 访问。这个 IP 在集群外是无法访问的。当然,我们可以使用 NodePort 方式来提供 Service 服务,但是这样的话我们就需要在机器上自己设置反向代理,比较麻烦。 什么是 IngressKubernetes 使用 Ingress 的方式解决了这个问题。Ingress 也是集群上的一种资源,用来路由外部的流量到集群内部的 Service。 一个 Ingres...
Kubernetes 实战 | 安装 Dashboard
发表于2019-08-31|编程分享Kubernetes
通过命令行方式管理 Kubernetes 集群不太直观,因此 Kubernetes 官方推出了 Kubernetes Dashboard 这一个 Web UI 工具方便我们执行管理集群相关的操作。 安装 Web UI执行官方提供的一键脚本就可以安装 Kubernetes Dashboard 了: 1kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta1/aio/deploy/recommended.yaml 此时由于 Dashboard 是部署在集群内部的,外部无法直接访问...
ucore OS | 实验 8 文件系统
发表于2019-06-30|大学学习ucore
这次实验课上布置了另外的任务,即实现 MTFQ 以及工作集算法。 在实验过程中,发现 ucore 并没有对用户进程 swap 提供支持,因此加入了一些修正。 练习 1 完成 ucore 文件系统读文件操作的实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849// 处理一开始的块if ((blkoff = offset % SFS_BLKSIZE) != 0 ) { if (nblks != 0) { // 不在一块里 ...
ucore OS | 实验 7 同步互斥
发表于2019-06-30|大学学习ucore
练习 1 理解内核级信号量的实现和基于内核级信号量的哲学家就餐问题内核级信号量实现位于 sem.c 中: 12345678910booltry_down(semaphore_t *sem) { bool intr_flag, ret = 0; local_intr_save(intr_flag); if (sem->value > 0) { sem->value --, ret = 1; } local_intr_restore(intr_flag); return ret;} ...
ucore OS | 实验 6 调度器
发表于2019-06-30|大学学习ucore
练习 1 使用 Round-Robin 调度算法123456789101112131415161718192021222324// The introduction of scheduling classes is borrrowed from Linux, and makes the // core scheduler quite extensible. These classes (the scheduler modules) encapsulate // the scheduling policies. struct sched_class { // the nam...
ucore OS | 实验 5 用户进程管理
发表于2019-06-30|大学学习ucore
练习 1 加载应用程序并执行在 load_icode 中,前面的函数体负责初始化内存内容和拷贝相应的内容到内存中,最后需要一种方法,使得 CPU 可以从用户进程入口处开始运行。 123456tf->tf_cs = USER_CS;tf->tf_ds = tf->tf_es = tf->tf_ss = USER_DS;tf->tf_esp = USTACKTOP;tf->tf_eip = elf->e_entry;tf->tf_eflags = FL_IF;ret = 0; 在中断返回之后,CPU 会使用 trapframe 中的值设置寄存...
ucore OS | 实验 4 内核线程管理
发表于2019-06-30|大学学习ucore
练习 1 分配并初始化一个进程控制块12345678910111213141516171819202122232425262728293031323334static struct proc_struct *alloc_proc(void) { struct proc_struct *proc = kmalloc(sizeof(struct proc_struct)); if (proc != NULL) { /* * below fields in proc_struct need to be initialized * enum ...
ucore OS | 实验 3 虚拟内存管理
发表于2019-05-16|大学学习ucore
练习 1 给未被映射的地址映射上物理页12345678910111213141516intdo_pgfault(struct mm_struct *mm, uint32_t error_code, uintptr_t addr) { // ... pte_t *ptep=NULL; if (!(ptep = get_pte(mm->pgdir, addr, 1))) goto failed; //(1) try to find a pte, if pte's PT(Page Table) isn't existe...
ucore OS | 实验 2 物理内存管理
发表于2019-05-16|大学学习ucore
练习 1 实现 First-Fit 连续物理内存分配算法First-Fit 连续物理内存分配算法实现比较简单。操作系统维护一个空闲页的链表,链表项根据对应地址从小到大进行排序。链表中的每一项包含的信息是连续空闲空间的第一页,同时 struct Page 中的 property 在 First-Fit 算法中意味着该连续空闲空间共有多少页。而在 flags 中,property 被置位的话,意味着这一页是连续空闲空间的第一页,Reserved 表示该页被操作系统保留,不能进行分配或者释放。在内存探测完成之后,所有的页都被保留了,需要在初始化函数中将其清零,否则不能被其他程序使用。 1234...
ucore OS | 实验 1 ucore 的启动过程
发表于2019-05-16|大学学习ucore
练习 1 操作系统镜像文件 ucore.img 是如何一步一步生成的? 通过执行命令 make V="",使 make 显示出编译过程中执行的命令: 12345678910111213141516171819202122232425+ cc kern/init/init.cgcc -Ikern/init/ -fno-builtin -fno-PIC -Wall -ggdb -m32 -gstabs -nostdinc -fno-stack-protector -Ilibs/ -Ikern/debug/ -Ikern/driver/ -Ikern/trap/ -Ike...
1…456…9
avatar
howardlau
记录想法
文章
87
标签
0
分类
12
GitHub
最新文章
DeepSeek 3FS 源码解读——客户端篇2025-03-16
DeepSeek 3FS 源码解读——RPC 篇2025-03-03
DeepSeek 3FS 源码解读——磁盘 IO 篇2025-03-02
DeepSeek 3FS 源码解读——协程&RDMA篇2025-03-01
分布式存储入门学习路线2025-01-17
分类
  • DeeCamp 20181
  • IT 杂谈2
  • Uncategorized1
  • 大学学习9
    • ucore8
  • 机器学习7
  • 游戏推荐2
  • 科普3
归档
  • 2025 年 03 月 4
  • 2025 年 01 月 1
  • 2023 年 09 月 1
  • 2023 年 08 月 1
  • 2022 年 08 月 3
  • 2022 年 07 月 1
  • 2022 年 05 月 7
  • 2022 年 03 月 1
网站信息
文章数目 :
87
最后更新时间 :
© 2017 - 2026 By howardlau
粤 ICP 备 17129444 号-1
搜索
数据加载中