我的“自研”操作系统之路
文章平均质量分 72
这是我接下来将会重点预研的一个项目,结合基于宏内核,系统管理systemd,硬件抽象weston,web虚拟机如chromium等开源框架的整合,打造一个轻量级的操作系统,期待这是一个能够跨越pc、mobile等硬件平台,充分融合web2.0或正在演进的web3.0,面对前后端工程师更友好的OS。
高桐@BILL
校园到职场,做过室内设计;WEB前后端,APP,嵌入式,LinuxAndroid,ChromiumOS,YunOS,智舱OS等开发。
行业遍及互联网,手机,IOT,汽车。
合作品牌如华为,中兴,OV,小米,三星,谷歌,联想,诺基亚,魅族,上汽,大众,腾讯,百度,网易,LG、HTC,沃达丰,AT&T,中移动,中国电信。
职业规划为操作系统方向,涉及不同框架、方案架构设计开发,可维可测,全维度的工程化;
目前主要涉及Android产品从App、FWK、HAL、Kernel、QNX全链路的垂直工程化,以及跨域产/研/测/项目/互联网产品的横向工程化;
展开
-
4.2 简单的硬件知识
对于系统工程师来说,操作系统向下管理硬件,向上管理应用程序,应用程序很好理解,就是面向用户,解决工作生活中可电子化的问题,以及提供音视频娱乐相关的支持。管理硬件,可以理解为将那些冰冷的物理硬件抽象起来,为应用提供支持。因此不可避免,作为一名系统工程师要有基本的硬件常识,接下来我们来聊聊一些常见的硬件术语。原创 2022-12-11 22:41:04 · 1197 阅读 · 2 评论 -
4.1 一个简单的Linux Kernel模块
Linux内核包含非常多个组件,但不同的应用场景下需要打包的组件也不尽相同,更何况我们常常因为一些iot设备本身硬件资源有限,为了物尽其用要对内核组件进行裁剪。例如,对于路由器设备来说,我们再在打包Linux 内核时并不需要打包BT等驱动模块。Linux提供了一种称之为模块-Module的机制,可以让我们在编译内核的时候可以最小形式的编译必须的模块,从而控制内核大小。原创 2022-12-04 20:17:27 · 909 阅读 · 0 评论 -
3.2 基于vexpress-a9 arm平台 的QEMU仿真的rootfs镜像环境搭建
基于vexpress-a9 arm平台 的QEMU仿真的rootfs镜像环境搭建原创 2022-12-01 22:07:50 · 713 阅读 · 0 评论 -
3.1 基于vexpress-a9 arm平台 的QEMU仿真的kernel镜像环境搭建
无论是手机,iot还是座舱,目前工作环境都是基于ARM环境开发的,所以还是要有一个arm环境来进行开发调试,那么这里我选择了基于vexpress-a9 arm平台的QEMU仿真进行调试开发;原创 2022-12-01 22:08:55 · 815 阅读 · 0 评论 -
2.2 基于x86 + Busybox + VirtulBox的Linux Kernel镜像启动挂载文件系统
为了方便了解和调试我们的Linux系统,我们需要将proc,debugfs,tmp等挂载起来,否则我们我发了解系统的进程,负载等信息,如下是未进行任何挂载时,我们无法通过ps等方法查看系统任何进程信息。原创 2022-11-27 10:17:11 · 525 阅读 · 0 评论 -
2.1 基于x86 + Busybox + VirtulBox的Linux Kernel镜像环境搭建
写在前面在前面,我们已经编译出了kernel镜像,但是我们还是无法使用(可以替换现有Linux发行版本中的kernel,而且这不是我想要的,不过有兴趣的同学可以去官网下载这些发行版的镜像,参考链接:mirrors.kernel.org)。那么除了内核,我们还需要打包一些常用的Linux工具,busybox包含了我们常用的基本应用程序,如echo,ls,cat等。更重要的是它也是开源的,官网地址:BusyBox。一、下载编译busybox现在地址:https://busybox.net..原创 2022-03-26 10:21:50 · 508 阅读 · 0 评论 -
1.4 编译内核的配置信息(查看内核配置信息的方法)
在开发的过程中常常需要使能一部分内核功能,但是往往由于配置错误导致功能使能失败,那么就需要检查配置信息。因此我们需要将内核的配置信息以可读的方式呈现出来。内核已经为我们提供了这项功能。原创 2022-05-07 19:54:51 · 539 阅读 · 0 评论 -
1.3 SSH移植日志
之前打包了一个精简的linuxos,本身想基于这个os进行简单的调试,以便更充分的了解内核的原理。然后再调试内存子系统时,发现无法从外部访问该os,没有ssh,没有adb,也无法用串口,所以这部分是为了将ssh移植打包到我们的os当中,以满足访问虚拟机或者开发板进行调试。后期也会考虑移植adb,并在开发板上使用串口调试。原创 2022-05-04 11:00:55 · 665 阅读 · 0 评论 -
1.2 Linux内核编译目标生成路径配置
在编译内核的时候,我发现编译生成的文件都适合源码混在一起的,如果改动比较小,自己记得住是没问题的,但是随着改动越来越多,尤其是在本地创建了git库来管理以后,看起来非常混乱。原创 2022-04-26 09:17:03 · 2113 阅读 · 0 评论 -
1.1 Linux内核代码下载、编译
写在前面因为工作,需要经常写一些linux测试程序和demo,有些时候还要修改下内核配置。公司环境不是很适合,说以突发奇想,在开源的linux源码上来尝试,并将这些demo进行开源,方便自己后面复用。一、下载Linux源码官网:The Linux Kernel Archives选一个版本的源码下载:https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.236.tar.xz下载完通过“tar -xvf linux-4.19.2.原创 2022-03-25 15:57:32 · 4083 阅读 · 2 评论