Linux启蒙之系统裁剪(一)

近日里,项目压力有所缓解,闲暇之余思索着总结一下自己近几年来在Linux上的一些学习心得,期望能有所提升。计划实现一个小的课题:完成自主操作系统shell访问的常规操作。

这个课题对Linux的融会贯通有所帮助,也提供一套系统快速移植的方法,很适合初学者。做这个课题需要掌握内存管理、进程调度、文件系统的基础知识,大概分为几个步骤:

  • 一.系统裁剪
  • 二.内存管理设计
  • 三.进程调度设计
  • 四.文件系统设计
  • 五.串口驱动实现
  • 六.中断设计
  • 七.常用命令移植和设计
  • 八.系统完善和调优

一.系统裁剪

为了裁剪得更痛快一些,这次课题选在Android智能手机上做。裁剪工作分为:安卓代码裁剪、设备驱动裁剪、平台无用代码裁剪。裁剪后得到代码最小集合,这个代码集合是维持Linux基础功能的核心所在。

手机平台选用某某arm平台,裁剪前的代码框架为:
yuziming@ubuntu:~/Linux_Demo$ ls
abi auto_dts_gen.log bootable build_hi6250.log cts development docs ets frameworks kernel libnativehelper ndk packages platform_testing sdk tools
art bionic build build_kirin.sh dalvik device Document external hardware libcore Makefile out pdk prebuilts system vendor

1.安卓代码裁剪

这部分裁剪工作就是无脑删删删,剖去Android的框架,获取底层Linux的精华。

删除目录为:

目录 说明
/packages 安卓应用宝
/abi 应用二进制接口
/art 安卓5.0以后的虚拟机
/dalvik 安卓标准Java虚拟机
/platform_testing 平台测试
/cts 安卓兼容性测试套件
/ets Framework分模块测试
/ndk 应用嵌套c/c++支撑
/pdk 本地开发套件
/sdk 软件开发包
/docs 参考文档目录
/tools 工具文件
/Document 参考文档

保留目录为:

目录 说明
kernel Linux内核代码
libnativehelper 动态库,实现JNI库的基础
frameworks 架构层
external 安卓使用的一些开源模组文件
hardware 部分厂家开源的硬件适配HAL代码
system 底层文件系统库、应用及组件
libcore java核心库
build 存放系统编译规则及generic等基础开发包配置
bionic 系统C库文件
bootloader 启动引导相关代码
prebuilts 预编译的一些资源
device 设备相关代码
vendor 厂商定制代码

以上代码虽然保留,但并非全部有用,大部分是build系统建立了依赖,删除后会报编译错误,所以暂时保留。
.

2.设备驱动裁剪

(未完待续)

Linux启蒙之系统裁剪(一)相关推荐

  1. linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务

    Linux系统裁剪笔记之五dropbear嵌入式系统专用ssh远程登录服务 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组 ...

  2. RT-Thread系统裁剪指南

    01 为什么要进行系统裁剪 在设计嵌入式RTOS系统逻辑时,我们往往希望系统简洁并且代码可控,这样我们做方案时心里才有底.下面我们来从原理层面和实现层面上讲一下RT-Thread裁剪相关的知识. 嵌入 ...

  3. 嵌入式linux系统移植的四大步骤_嵌入式 Linux 产品技术评估之系统裁剪与启动速度...

    作者简介:吴章金,十年 Linux 研发经验,Linux Committer,前魅族内核团队技术总监.热门开源书<C 语言编程透视>作者. 版权声明:本文最先发表于 "泰晓科技& ...

  4. 微型linux系统裁剪

    前面我们介绍过基于busybox制作一个小linux,这篇文章则介绍的是从头至尾,一步一步根据系统启动流程制作的微型linux,并且逐渐将其功能完善. 系统启动流程: POST 加电自检,载入一段程序 ...

  5. Linux系统裁剪与定制

    Linux系统裁剪与定制 新加一块硬盘,提供单独运行的bash系统 新增一块20G硬盘 创建分区以及文件系统 挂载文件系统并制作grub 制作/bin/bash 在现有VM中以第二块硬盘加载/bin/ ...

  6. Linux系统裁剪summary

    linux系统裁剪一summary 原料和工具 系统启动流程图 小系统制作流程分析 一些脚本及配置文件的意义 具体流程 总结 一些有用的脚本和配置文件 导出与导入 导出 导入 原料和工具 一台pc机( ...

  7. 全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩

    文章目录 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2 删除不使用的驱动 2.3.3 修改内核源代码 ...

  8. Linux内核编译及系统裁剪

    核心:/boot/vmlinuz-version 内核模块(ko):/lib/modules/version/ 内核设计:       单内核             模块化设计       微内核 ...

  9. Linux学习笔记二十——系统裁剪之二

    在系统裁剪之一的基础上,给系统添加挂载文件系统.关机重启.设置主机名.运行对应级别的服务脚本.启动终端.装载网卡驱动并启用网络等功能. 挂载文件系统 ①重新挂载根文件系统为可读写 vim 编辑/mnt ...

最新文章

  1. mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用
  2. 集合的势也称集合的基数(cardinal number)
  3. HDU Redraw Beautiful Drawings 推断最大流是否唯一解
  4. 2021信服云创新峰会:托管云成上云第三种选择
  5. 2021曲靖高考成绩查询时间,2021年曲靖高考成绩排名及成绩公布时间什么时候出来...
  6. linux 发文件被过滤的内容,linux文件过滤以及内容编辑处理
  7. 1040 Longest Symmetric String (25 分)
  8. 神经网络不胜语__M-P模型似可寻
  9. Snagit--高难度、多功能截图,有了它截图不求人!
  10. 做了三年前端开发后,我选择回家创业
  11. GPIO 模拟SPI
  12. Android学习笔记-隐藏app图标
  13. 普通定时器输出互补PWM带死区
  14. Map.Entry和Map中的map.keySet()、map.entrySet()详解
  15. 小学计算机考试感受作文,考试后的感想小学作文6篇
  16. 写给养花小白的水培小教程
  17. 虚拟键码如何在c语言里使用方法,二、Windows按键消息—虚拟键码
  18. 2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)
  19. 高数重要极限证明原创中英文对照版
  20. 基于大数据技术的园区安全环保一体化综合管理系统的应用

热门文章

  1. 5G通信系统的Salen-Valenzula信道分析
  2. Cobaltstrike简介、安装及简单使用
  3. 2022年国庆红旗头像制作微信小程序源码
  4. Linux修改主机名(静态主机名、临时主机名)
  5. 2021最新短信验证码接收平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
  6. 吴恩达卷积神经网络 笔记,吴恩达 深度神经网络
  7. AI英雄出少年!奔赴星辰,他们正在创造黄金时代
  8. 合并多个 .ts 文件为单个 .mp4 解决方案
  9. UWB定位实验 - 客户端模式(被动式)TDOA定位精度测试
  10. php爬取html内容,php抓取网页html,curl和file_get_contents通过get或post方式抓取网页内容,源代码