当前位置: 首页 > news >正文

浙江省建设注册管理中心网站首页优设设计网站导航

浙江省建设注册管理中心网站首页,优设设计网站导航,河南网站建设公司哪家好,布吉附近网站建设公司文章目录 [清华开源操作系统训练营]《Rust fox Linux》课程的练习1-2完整版记录。1. 环境搭建2. 编译rust内核2.1 下载源代码2.2 安装rust支持2.3 检查linux内核是否支持rust2.4 编译linux内核 3. aarch64的qemu环境3.1.下载源代码3.2. 解压编译安装3.3. 配置环境变量3.4.验证 … 文章目录 [清华开源操作系统训练营]《Rust fox Linux》课程的练习1-2完整版记录。1. 环境搭建2. 编译rust内核2.1 下载源代码2.2 安装rust支持2.3 检查linux内核是否支持rust2.4 编译linux内核 3. aarch64的qemu环境3.1.下载源代码3.2. 解压编译安装3.3. 配置环境变量3.4.验证 4. 准备debian文件系统4.1 下载文件系统4.2 解压缩4.3 测试下载的内核和文件系统 5. 运行自己编译的内核5.1 拷贝自己编译的内核5.2 运行自己编译的内核 6. rust模块6.1 编译linux中的rust用例6.2 自己编写一个rust的helloworld驱动 [清华开源操作系统训练营]《Rust fox Linux》课程的练习1-2完整版记录。 1. 环境搭建 我们基于Ubuntu22.04进行环境搭建需要安装编译内核的包和LLVM等包 sudo apt-get -y install binutils build-essential libtool texinfo gzip zip unzip patchutils curl git make cmake ninja-build automake bison flex gperf grep sed gawk bc zlib1g-dev libexpat1-dev libmpc-dev libglib2.0-dev libfdt-dev libpixman-1-dev libelf-dev libssl-dev clang-format clang-tidy clang-tools clang clangd libc-dev libc1 libcabi-dev libcabi1 libclang-dev libclang1 liblldb-dev libllvm-ocaml-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm python3-clang llvm2. 编译rust内核 2.1 下载源代码 git clone https://github.com/Rust-for-Linux/linux -b rust-dev我们使用Rust-for-Linux的rust-dev分支进行学习。 2.2 安装rust支持 cd linux-rust rustup override set $(scripts/min-tool-version.sh rustc) rustup component add rust-src cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen-cli2.3 检查linux内核是否支持rust jianjian:~/share/linux-rust$ make LLVM1 rustavailable Rust is available! 2.4 编译linux内核 首先生成配置文件.config make ARCHarm64 LLVM1 Obuild defconfig然后修改配置文件把CONFIG_RUST设置为y make ARCHarm64 LLVM1 Obuild menuconfig最后编译内核 cd build make ARCHarm64 LLVM1 -j83. aarch64的qemu环境 3.1.下载源代码 https://download.qemu.org/qemu-7.0.0.tar.xz3.2. 解压编译安装 tar -xf qemu-7.0.0.tar.xz cd qemu-7.0.0 mkdir build-aarch64 cd build-aarch64 ../configure --target-listaarch64-softmmu,aarch64-linux-user make -j $(nproc)3.3. 配置环境变量 在~/.bashrc文件中添加下面语句 export PATH$PATH:/home/jian/share/qemu/qemu-7.0.0/build-aarch64 export PATH$PATH:/home/jian/share/qemu/qemu-7.0.0/build-aarch64/aarch64-softmmu export PATH$PATH:/home/jian/share/qemu/qemu-7.0.0/build-aarch64/aarch64-linux-user 3.4.验证 新开一个控制台输入下面 jianjian:~/share/qemu/qemu-7.0.0$ qemu-system-aarch64 --version QEMU emulator version 7.0.0 Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers jianjian:~/share/qemu/qemu-7.0.0$ qemu-aarch64 --version qemu-aarch64 version 7.0.0 Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers jianjian:~/share/qemu/qemu-7.0.0$ 4. 准备debian文件系统 4.1 下载文件系统 去Debian官方网站上下载 Images for arm64-virt 版本的压缩包 https://people.debian.org/~gio/dqib/ 4.2 解压缩 unzip arm64-virt.zip解压缩后可以看到下面的内容 jianjian:~/share/arm64-virt$ tree . ├── arm64-virt.zip └── dqib_arm64-virt├── Image├── image.qcow2├── initrd├── kernel├── mymake├── readme.txt├── ssh_user_ecdsa_key├── ssh_user_ed25519_key└── ssh_user_rsa_key1 directory, 10 files4.3 测试下载的内核和文件系统 执行下面的命令可以尝试把整个的debian文件系统跑起来 qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 1G -device virtio-blk-device,drivehd -drive fileimage.qcow2,ifnone,idhd -device virtio-net-device,netdevnet -netdev user,idnet,hostfwdtcp::2222-:22 -kernel kernel -initrd initrd -nographic -append rootLABELrootfs consolettyAMA05. 运行自己编译的内核 5.1 拷贝自己编译的内核 cp ~/share/linux-rust/build/arch/arm64/boot/Image /home/jian/share/arm64-virt/dqib_arm64-virt5.2 运行自己编译的内核 qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 1G -device virtio-blk-device,drivehd -drive fileimage.qcow2,ifnone,idhd -device virtio-net-device,netdevnet -netdev user,idnet,hostfwdtcp::2222-:22 -kernel Image -initrd initrd -nographic -append rootLABELrootfs consolettyAMA06. rust模块 6.1 编译linux中的rust用例 make ARCHarm64 LLVM1 Obuild menuconfig cd build make ARCHarm64 LLVM1 -j8把CONFIG_SAMPLE_RUST_PRINT和CONFIG_SAMPLE_RUST_MINIMAL选上。然后在编译。 可以看到下面的输出 [ 2.836088] rust_minimal: Rust minimal sample (init) [ 2.836386] rust_minimal: Am I built-in? true [ 2.837094] rust_print: Rust printing macros sample (init) [ 2.837225] rust_print: Emergency message (level 0) without args [ 2.837379] rust_print: Alert message (level 1) without args [ 2.837610] rust_print: Critical message (level 2) without args [ 2.837805] rust_print: Error message (level 3) without args [ 2.838325] rust_print: Warning message (level 4) without args [ 2.838456] rust_print: Notice message (level 5) without args [ 2.838579] rust_print: Info message (level 6) without args [ 2.838712] rust_print: A line that is continued without args [ 2.839166] rust_print: Emergency message (level 0) with args [ 2.839481] rust_print: Alert message (level 1) with args [ 2.839803] rust_print: Critical message (level 2) with args [ 2.840127] rust_print: Error message (level 3) with args [ 2.840456] rust_print: Warning message (level 4) with args [ 2.840587] rust_print: Notice message (level 5) with args [ 2.841027] rust_print: Info message (level 6) with args [ 2.841338] rust_print: A line that is continued with args [ 2.841794] rust_print: 1 [ 2.842115] rust_print: hello, world [ 2.842667] rust_print: [../samples/rust/rust_print.rs:34] c hello, world 6.2 自己编写一个rust的helloworld驱动 线进入samples/rust目录编写一个rust的驱动rust_hello.rs // SPDX-License-Identifier: GPL-2.0 //! Rust minimal sample.use kernel::prelude::*;module! {type: RustHelloWorld,name: rust_helloworld,author: whocare,description: hello world module in rust,license: GPL, }struct RustHelloWorld {}impl kernel::Module for RustHelloWorld {//fn init(_name: static CStr, _module: static ThisModule) - ResultSelf {fn init(_module: static ThisModule) - ResultSelf {pr_info!(Hello World from Rust module);Ok(RustHelloWorld {})} }然后在Makefile文件中添加 obj-y rust_hello.o最后再次编译和运行可以看到下面的输出 [ 2.843635] rust_helloworld: Hello World from Rust module
http://www.w-s-a.com/news/832815/

相关文章:

  • 台州小型网站建设国内免费的建网站平台
  • 自己做网站不推广网站建设工作室发展
  • 有女人和马做网站吗宁波seo优势
  • 网站做用户记录表电商运营推广计划方案
  • 网站备案认领杭州网页设计公司招聘
  • 易签到网站开发设计做网站运营有前途吗
  • 南通网站建设心得2023必考十大时政热点
  • 苍溪建设局网站公建设计网站
  • 九歌人工智能诗歌写作网站电子商务网站建设项目书
  • 做外贸的经常浏览的三个网站律师做哪个网站好
  • 中国公路建设招标网站长沙大型网站建设公司
  • 沈阳企业网站模板建站注册电子邮箱免费注册
  • 如何做简洁网站设计企业网站排名优化方案
  • 东莞网站建设服务商做触屏网站
  • 外国网站代理音乐网站建设
  • 珠江网站建设广安广告公司
  • 高端创意网站建设网页制作咨询公司
  • 网站建设及发布的流程图wordpress文章摘要显示
  • 淮北网站网站建设省好多会员app
  • 如何查看网站的更新频率网站图片要求
  • 网站设计公司收费标准wordpress修改文章链接
  • 镇江网站建设公司网站关键词密度怎么计算的
  • c 网站开发公司的网站的设计
  • 网站建设多长时间能学会做网站猫要做端口映射吗
  • 新手做网站视频网页设计期末作品要求
  • 做网站用户充值提现郑州高端模板建站
  • 运城做网站方式方法网站改版完成
  • 上海建设网站制作东西湖建设局网站
  • 建设购物网站课程设计建设部领导干部官方网站
  • 沈阳企业制作网站北京两学一做网站