大西冰城的博客

大西冰城的博客

记录生活、分享知识、探索世界

loading
Linux内核启动探秘:从汇编到C语言的完整调用链路
从事嵌入式Linux这么久,一直在dts、驱动、应用等方面打转,对Linux的源码了解甚少。最近决定深入内核源码,就从最基础的问题开始:Linux内核是怎么启动的?它的主入口在哪里? 由于Linux内核是在持续更新中的,本文分析源码时内核版本为6.16.7,其实也大差不差的。 启动流程概览:从硬件到软件的过渡很多人可能以为Linux内核启动就像普通程序一样,直接从main函数开始。但实际上,在进入到C语言编写的main.c文件之前,系统必须先通过汇编代码完成最基础的硬件初始化工作。 这是因为此时硬件环境还没有准备好运行C语言代码。以x86架构为例,内核的入口文件是arch/x86/boo...
技术已死
我们正在见证一场静悄悄的革命——不是技术的革命,而是技术意义的革命。当编程从少数人的专属技艺变成大众化的基础素养,当算法的门槛被AI无限拉低,我们面临的不仅仅是技能的贬值,更是整个技术价值体系的重构。 技能稀缺性的消解回望20年前,掌握C++或Java如同掌握古老的炼金术——神秘、复杂、充满仪式感。那时的程序员确实拥有某种近似巫师的地位:他们用晦涩的语法召唤机器的魔法,用逻辑的咒语驯服硅片的狂野。这种稀缺性不仅来自技术本身的复杂度,更来自获取知识的壁垒——昂贵的计算机、匮乏的教育资源、封闭的技术社区。然而,当Scratch让儿童也能拖拽出程序,当GPT能在几秒内生成工业级代码,这种神秘感...
Ubuntu Server 安装指南
ubuntu 的server版本是广泛使用的服务器操作系统,适用于各种服务器应用场景。本文将介绍如何安装 Ubuntu Server。 准备工作你需要准备以下内容: Ubuntu Server:Ubuntu Server下载页面 下载最新的 Ubuntu Server ISO 镜像,推荐使用 LTS版本,这样可以获得更长时间的支持和更新。 ventony:ventony 下载页面 这是一个开源的多启动工具,可以将你的优盘制作成启动盘,支持 ISO 镜像文件的直接引导。 优盘:至少 8GB 的容量,建议使用 USB 3.0 优盘以获得更快的读写速度。 制作启动盘打开ventony的官网...
Ubuntu使用netplan配置无线网络
新装了一台Ubuntu 24.04 LTS的服务器,nmtui似乎已经被移除,现在的Ubuntu版本需要使用netplan来配置无线网络,本文记录了配置过程。 查看无线网卡使用ip addr命令查看无线网卡的名称。 12345678910111213jr@dataserver:~$ ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:...
自动化.img镜像瘦身脚本实现
在嵌入式开发过程中,经常遇到从8GB/32GB的SD卡导出系统.img镜像文件,然而dd命令导出的镜像文件会把整个SD卡的内容都包含在内,包括未使用的空间,当你想把这个镜像文件烧录到一个更小的SD卡时,就会出现空间不足的问题。为了避免这种情况,我们需要对镜像文件进行瘦身处理,去除未使用的空间。 1234567891011121314151617181920212223242526272829303132#!/bin/bash# 自动剔除镜像未使用空间的脚本IMAGE="$1"if [ -z "$IMAGE" ]; then echo...
MyBatis-Plus如何正置配置一对多关系数据的分页查询
今天遇到个需求,是一个一对多的数据,因为数据量过于庞大,导致请求异常缓慢,于是要给这个数据加分业,出现了分页数据条数不正确的问题,先来看看原数据是怎么写的 问题复现123456789@Datapublic class ProjectReceivablesVo implements Serializable { private String projectId; // 项目id private String customerNo;//客户编号 private String projectNo; // 项目编号(自动生成) ...省略一堆属性.....
利用HEXO+Gitee(码云)创建一个属于自己的免费博客
Hexo是一个小而美的博客框架,基于Node.js,简便小巧,本站自豪的使用Hexo驱动! 准备工作这里会用到 Node.js Hexo git Gitee 安装gitGit 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,具体安装过程请看这里 Node.js 安装Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好前往Node.js官网,下载安装包点击这里 具体安装过程请看这里 使用npm安装Hexonpm是在安装node.js时就已经安装完成了,所...
SQLServer 安装教程
下载安装首先,你需要下载SQLServer的安装包点击这里即可下载,这里给的是开发版本的,其他版本下载请去微软官网,下载好后,执行安装文件,会出现如下界面: 在这个界面安装类型这里选择 基本 安装,接着来到下一步 这里选择 接受 然后进入选择安装目录 因为数据库这玩儿,本人也是菜鸡,目录这东西老麻烦了,所以,就默认C盘安装咯,所以这里点击 安装就行 然后等他慢慢下载………. 下载好后会来到这里,注意! 不要点关闭! 不要点关闭! 不要点关闭!! 这里只是安装好了,还没配置,点击 自定义 进入配置界面 配置SQLServer上面几部还算简单,按照上面的步骤,不出意外,就会来...
Flutter for Linux 桌面开发笔记
Flutter是一当前谷歌大力推行的夸平台App开发框架,现已支持Linux! 开启Linux的支持根据我排雷的经验,开发Flutter最好还是在ubuntu 18.4这些新版本里安装,作者16.04,好多软件包太老,需要拖源代码编译新的,老烦了打开终端,运行(这里已经装好了Flutter,不会装看这里)flutter config --enable-linux-desktop这样就开启了Linux的支持,最好再运行一下flutter doctor linux还要安装以下几个包: cmake (3.10+) libblkid-dev ninja-build libgtk-3-dev...
Linux设置NFS向后兼容
在移植Linux的过程中,我使用了NFS挂载rootfs,方便驱动开发和调试,在电脑更新系统后发现NFS死活挂载不上,经过多方查找资料,原来是NFS太新,单片机那没法挂载,故需要配置向后兼容,这里记录一下过程 修改配置文件用 vim 打开 /etc/default/nfs-kernel-server (记得需要root权限)sudo vim /etc/default/nfs-kernel-server输入 i 在最后一行添加RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"然后按 es...
avatar
大西冰城
带专仔的野望