< 返回版块

mook 发表于 2021-12-01 23:01

Tags:rust, 日报

Hubris - 一个用于嵌入计算机系统的小型开源操作系统

Hubris 是由Oxide Computer Company开发的用于微控制器的操作系统。

Hubris 提供抢占式多任务处理、单独编译的组件之间内存隔离、崩溃的驱动程序可以在不影响系统情况下重新启动,以及灵活的组件间消息传递,减少了系统调用,——大约 2000 行 Rust

没有运行时创建或销毁任务的操作,没有动态资源分配,没有特权模式运行的驱动程序代码,系统中没有C代码。这通过构造消除了许多存在于类似系统中的攻击面。

ReadMore:https://hubris.oxide.computer/

一个新的 DJ 应用

一名在Mixxx工作6.5 年的工程师,打算用 Rust 重写 Mixxx。

ReadMore:https://rust-audio.discourse.group/t/a-new-dj-application-in-rust/484

byteme

实现trait将struct转换为 Vec 并返回。默认情况下,转换为大端序。

use byteme::ByteMe;
pub use num_derive::FromPrimitive;


#[derive(Debug, FromPrimitive)]
pub enum Mode {
  Unavailable = 0,
  Unauthenticated = 1,
  Authenticated = 2,
  Encrypted = 4,
}

#[derive(ByteMe, Debug)]
pub struct FrameOne {
  pub unused: [u8; 12],
  #[byte_me(u32)]
  pub mode: Mode,
  pub challenge: [u8; 16],
  pub salt: [u8; 16],
  pub count: u32,
  pub mbz: [u8; 12],
};

let frame = FrameOne {
  unused: [0; 12],
  mode: Mode::Authenticated,
  challenge: [0; 16],
  salt: [0; 16],
  count: 1024,
  mbz: [0; 12],
};

let size = FrameOne::SIZE; // Get the number of bytes in the frame
let bytes: Vec<u8> = frame.into(); // Converts the frame into vector of bytes
let frame: FrameOne = bytes.into(); // Converts the bytes back to frame

ReadMore:https://github.com/breuHQ/byteme


From 日报小组 冰山上的 mook && Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页