精华内容
下载资源
问答
  • 导读:更多:• 32 亿电子邮件和明文密码被泄露 • Chrome 88 中普遍推出了通过二维码分享网页的功能本文字数:1119,阅读时长大约:1分钟作者:硬核老王你在运行树莓派 OS ...

     

    导读:更多:• 32 亿电子邮件和明文密码被泄露 • Chrome 88 中普遍推出了通过二维码分享网页的功能

    本文字数:1119,阅读时长大约:1分钟

    作者:硬核老王

    你在运行树莓派 OS 吗?微软知道你

    树莓派基金会官方支持的操作系统是基于 Debian 的树莓派 OS(原名 Raspbian)。然而,最近树莓派 OS 中的一个变化,让每一个运行树莓派的用户在进行 apt 更新时都会通知一下微软。

    在最近的更新中,它在所有运行树莓派 OS 的机器上都安装了一个微软的 apt 存储库,并且是在无需管理员同意的情况下进行的。这主要是为了安装微软的 VS Code 编辑器。然而,其带来的副作用是,每次你在树莓派上进行 apt update 时,它都会联系一下微软的服务器。换言之,微软会知道谁正在使用树莓派 OS、他的 IP 地址等信息。

    当社区质疑树莓派在做此改变时没有通知社区,而且是静默改变的,希望树莓派基金会可以更加透明时,树莓派的创始人回应称,“我不明白为什么你会认为这是一件有争议的事情。我们一直是这样做的,而从没有发布过关于如何选择不要的博文。”

    开源社区对大型商业企业的警惕是可以理解的,即使是再拥抱开源的企业,也是一个商业公司,因此,总是有一些在意软件自由的人会特别在意和商业公司保持界限,尤其是那些曾经有不良历史的企业。我认为,树莓派基金会此举有些草率,而且创始人的回复略失轻佻。看来他们对树莓派 OS 所基于 Debian 追求的自由有些不以为然。

    32 亿电子邮件和明文密码被泄露

    近日,一个超过 30 亿的用户凭证库被发布在网上,其数据是由以往多次用户数据违规泄露事件汇编而成,这个汇编集合被称为 COMB。它包含了过 32 亿个电子邮件和明文密码,拥有像 Netflix、LinkedIn、Bitcoin 等大平台的用户数据。COMB 被放入到一个受密码保护的加密容器中,里面的内容按照数据字母顺序排列在一个树状结构中。

    虽然并不是新泄露的密码,不过,无论如何,还是要经常修改你的密码,并使用双因子认证加以保护。如果你担心你的邮件和密码是否被泄露,可以在此查询:https://cybernews.com/personal-data-leak-check/ 。

    Chrome 88 中普遍推出了通过二维码分享网页的功能

    此前该功能已经存在于 Chrome 中已经有一段时间了,但并没有被展示出来。而在 Chrome 88 中,70% 的 Chrome 桌面用户都已经被自动开启了该功能。该功能可以通过点击地址栏,或者通过右键点击网页来调出。

    这个功能是打通手机和 PC 之间分享网址的一个好方式。之前也有第三方的浏览器扩展可以做到,而现在内置的这个小功能,并不复杂,是一个方便的功能。

    昨日观察

    关注 Linux 中国,每日硬核点评


    欢迎遵照 CC-BY-NC-SA 协议规定转载,

    如需转载,请在文章下留言 “转载:公众号名称”,

    我们将为您添加白名单,授权“转载文章时可以修改”。

    展开全文
  • 树莓派实验报告 lab1 MACOS 访问串口教程https://software.intel.com/en-us/setting-up-serial-terminal-on-system-with-mac-os-x 命令行  qemu-system-aarch64 -M raspi3 -k en-us -serial null -serial stdio -...

    树莓派实验报告

    lab1

    MACOS 访问串口教程https://software.intel.com/en-us/setting-up-serial-terminal-on-system-with-mac-os-x

    命令行

     qemu-system-aarch64 -M raspi3 -k en-us -serial null -serial stdio -drive file=sdcard.img,format=raw -kernel kernel8.img

    arm中的cpsr相当于MIPS CP0里的status

    arm中 通过w0-30表示32位引用寄存器的方法, x0-30表示64位引用寄存器的方法

    Broadcom Arm Cortex A53-architecture processor 是一个arm 处理器 为v8代ARM

    配置树莓派开发板

    将uart to usb转换口连接到GPIO上, 将kernel8.img和相关配置文件拷贝到microsd卡上, 连接usb,

    上电, 启动, 使用screen -L /dev/cu.usbserial-00006014 115200 指令观察串口输出。

    启动

    配置include.mk, 修改gcc和ld的路径到自己电脑安装交叉编译器的路径

    在start.S中, 首先获得当前CPU的编号

    获得CPU编号的方法很简单, 通过MPIDR_EL1寄存级获得, 通过查阅手册, 可以发现

    MPIDR_EL1这个寄存器可以提供关于当前运行的CPU的核的信息, 想要知道当前是第几个核心, 只需要访问最后四位就好了。

    ​ mrs x0, mpidr_el1

    [外链图片转存失败(img-Zi99XmLM-1562856918022)(/Users/edward/Library/Application Support/typora-user-images/image-20190528153456748.png)]

    [外链图片转存失败(img-nPKYt2K5-1562856918023)(/Users/edward/Library/Application Support/typora-user-images/image-20190528153524359.png)]

    使用mrs指令以64位的方式放入0号寄存器中。

    如果这是0号CPU的话, 也就是最低三位都是0, 那么跳转到main函数。

    否则一直循环。

    uart

    参考了教程中的函数, 实现了uart和读取功能。

    我把和GPIO相关的宏放到了gpio.h中, UART的宏定义放在uart.h中, uart的函数放在uart.c中

    设置14, 15号为uart的端口, 初始化GPIO, 并且设置波特率为115200b/s

    需要注意的是树莓派显示下\r和]\n的转化

    lab2

    to do list

    1. 设置间接内存属性寄存器
    2. 设置翻译控制寄存器
    3. 准备内核用的页目录
    4. 设置页表基地址寄存器
    5. 设置系统控制寄存器
    6. 修改启动代码 从EL2回落到EL1
    7. 改写链接脚本

    MMU设置

    通过这一个lab的学习, 我理解了之前计组的软件硬件接口。

    在计算机中, 任何一个软件层级都采用了封装的方式去隐藏细节, 通过提供接口来给外界去使用。

    而对于CPU来讲, 寄存器+手册就是CPU的接口, OS通过这个接口访问CPU, 同时给出自己的接口给用户。

    对于ARM来说有不同的处理器权限

    1. MAIR_EL1

      这个寄存器的目的是给内存属性提供编码方式

      通过查阅手册, 可以发现这个寄存器有8个attribute, 每个attribute8位

      [外链图片转存失败(img-A0bjgdF7-1562856918024)(/Users/edward/Library/Application Support/typora-user-images/image-20190611230131206.png)]

      通过下面的编码方式可以用户自定义内存属性

      举个例子, 比如PTE_DEVICE = 1<<2, 也就是说PTE_DEVICE定义的内存在attr1里

      那么ATTR1中存入, 0x04 对应device-nGnREmemeory

      在arm v8中, G代表Gathering, R代表Reordering, E 代表early-achnowledge

      [外链图片转存失败(img-Lq6N6Nkq-1562856918024)(/Users/edward/Library/Application Support/typora-user-images/image-20190611225902317.png)]

    1. 翻译控制寄存器

      TCR_EL1是设置翻译控制的一个寄存器

      [外链图片转存失败(img-kTkXfzc8-1562856918024)(/Users/edward/Library/Application Support/typora-user-images/image-20190611230917298.png)]

      查到的资料表示, 这个寄存器表示哪个寄存器用来显示一级页表的地址。

      TCR_EL1的38-0位是有效的

      应设置使TTBR1_EL1作为内核空间一级页表物理地址, TTBR0_EL1用于用户空间

      isb清除流水线中所有的指令

    回落EL1

    EL0 EL1 EL2 EL3

    [外链图片转存失败(img-fb2mmYlZ-1562856918025)(/Users/edward/Library/Application Support/typora-user-images/image-20190526212639817.png)]

    通过阅读手册, 可以知道这四种权限的功能。

    [外链图片转存失败(img-WV5dD13A-1562856918025)(/Users/edward/Library/Application Support/typora-user-images/image-20190528155350192.png)]

    [外链图片转存失败(img-Vqyikcy6-1562856918025)(/Users/edward/Library/Application Support/typora-user-images/image-20190528155331814.png)]

    currentEL[3:2]代表了当前处于哪一级, 比如currentEL为4说明为EL1

    在设置MMU之前, 首先需要回落到EL1

    通过检查currentEl判断当前到底在哪个权限级上

    [外链图片转存失败(img-70Bq6iib-1562856918026)(/Users/edward/Library/Application Support/typora-user-images/image-20190603223808046.png)]

    在这张图中, 可以看到Arm cortex-A53的内存模型, 每个core有一个L1 cache, 同时四个core共用一个L2 cache, 在我的树莓派OS设计中, 我只用到了一个core。

    在start.S中, 首先设置栈指针为0x80000, 然后进入vm函数

    在这个函数中, 我做了如下事情

    1. 用boot_alloc分配一页内存给pgdir

    2. 用boot_map把0-P_LIMIT 和P_LIMIT往上0x1000000和0x40000000上BY2PG大小

      分别对应正常的内存, IO以及控制寄存器

    经过设置vm后, 开始一些寄存器的设置

    首先通过currentel判断是否处在EL1

    之后用给的参考代码来从EL2回落到EL1

    之后再start里, 我设置了指导书中的一些寄存器

    1. 设置mair_el1为 0x440488, 代表内存类型

    2. 设置tcr_el1 0x2BA593A19,

    3. 把ttbr0_EL1和ttbr1_el1都设置为0x00200000

    4. 设置系统控制寄存器sctlr_el1为0x30d51825

    之后, 仿照MIPS OS, 把boot_pgdir, 等函数改成 9 9 9 12三级页表的方式,

    设置mmu.h中的宏

    按照如下方式分配内存

    #define K_TIMESTACK_TOP     KADDR(P_TIMESTACK_TOP)
    #define K_ENVS_BASE         KADDR(P_ENVS_BASE)
    #define K_PAGES_BASE        KADDR(P_PAGES_BASE)
    #define K_PGDIR_BASE        KADDR(P_PGDIR_BASE)
    #define K_STACK_TOP         KADDR(P_STACK_TOP)
    
    #define U_PAGES_BASE        0x90000000
    #define U_ENVS_BASE         0x80000000
    #define U_LIMIT             0x80000000
    #define U_XSTACK_TOP        0x80000000
    #define U_STACK_TOP         0x01000000
    #define U_TEXT              0x00000000
    

    通过page_alloc和page_insert来进行内存的分配

    在pmap中, 除了pgdir_walk的时候要考虑三级页表pde, pme, 和pte之外,其他和MIPS OS基本相同。

    lab3

    ARM中R15位pc, 通过ISB, 冲刷

    to do list

    1. 引入env.c中的内容。
    2. 加入kernel_elfloader.c。
    3. TLB刷新, envrun。
    4. 时钟中断加入。

    加入进程管理

    从0x00B00000开始存储ENV结构体

    Env结构体里存储了trapframe, env_id, parent_id, ipc value, ipc from ,ipc recving, env_pgfault_handler, env_xstacktop等变量。 和mips实验基本保持一致

    在env_init里, 初始化envs数组, 把所有env结构体设置为ENV_FREE

    创建一个进程的时候, 通过env_create, 读入u_char *binary和文件大小

    1. 调用env_alloc 分配一个env结构体
    2. 调用load_icode, 用load_elf把程序读入到entry point, 之后设置trapframe的elr, 让进程被调度的时候从elr开始运行,

    在运行进程的时候, 首先把TIMESTACK中的内容拷贝到当前进程的trapframe结构体里

    之后把 curenv 改为要新运行的进程

    设置ttbr为curenv的 pgdir地址

    最后tlb_invalidate, 运行新进程。

    dsb data memry barrier

    tlbi invalidate tlb

    Isb 清空延迟槽中的所有指令

    时钟中断

    通过向cntp_tval寄存器写入开启中断

    通过cntp_ctl_el0寄存器写入来控制主频

    异常处理

    处理时钟中断的时候

    首先push time stack

    之后跳转到handle_int

    lab4

    系统调用

    系统调用在MIPS lab的基础上加入了emmc read

    使用svc指令陷入内核态, 然后跳转到handle syscall

    根据传入的sys callnumber 跳转到对应的处理函数

    进程通信

    进程通信和MIPS 实验没有改动

    fork

    fork中 写一个三重循环for i, j, k 遍历三级页表, 来复制页面

    写时复制机制和MIPS类似, PTE_USER为EL0, EL1都可访问,

    PTE_4KB仅仅为EL1可以访问

    lab5

    注意 如果读多了 会read_blk报错

    macos下dd教程

    https://www.cyberciti.biz/faq/how-to-create-disk-image-on-mac-os-x-with-dd-command/

    diskutil list

    diskutil unmountDisk /dev/disk2

    dd if=user/pingpong.elf of=/dev/disk2 seek=4000 bs=512

    写了后, 后面的磁盘会被清除cat

    在文件系统中, 把文件系统挂载在了10000扇区开始的地方, 把MIPS OS里的read_block替换成EMMC的驱动, 就形成了树莓派的文件系统。

    [外链图片转存失败(img-HNTIIMfe-1562856918026)(/Users/edward/Desktop/image-20190623000757962.png)]

    lab6

    需要加入的文件

    1. icode.c
    2. spawn.c
    3. init.c
    4. rsh.c
    5. ls.c
    6. cat.c

    LAB6需要修改的主要是spawn和run.sh

    在spawn中需要自己实现一个系统调用来完成set elr的工作, 此外在加载程序的时候, 还要用64位的elf方式加载。

    其余部分, 参考MIPSOS和调用LAB5的接口就可以实现

    展开全文
  • 最近一直在用树莓派调试程序,安装了64位的RaspberryPi OS.树莓派官方系统是RaspberryPi OS,一款在Debain上深度定制的操作系统。随着官方开发团队的不断努力,目前从网址...

    最近一直在用树莓派调试程序,安装了64位的RaspberryPi OS.树莓派官方系统是RaspberryPi OS,一款在Debain上深度定制的操作系统。随着官方开发团队的不断努力,目前从网址https://downloads.raspberrypi.org/raspios_arm64/images/下载最新镜像,写入SD卡后,即可尝试该系统。
    目前,64位上不正常的软件、缺少的软件基本都就绪了,用树莓派基本可以作为便携式小电脑,插在酒店的机顶盒边使用啦。

    1 Wolfram Mathematica

    前期,64位镜像是找不到这个数学工具的,现在已经提供。感觉性能肯定不入PC,但在PC上这个东西是收费的,在Pi上是免费的。
    Mathemtic

    2 SDR 系列

    使用USRP、RTLSDR 测试了 软件无线电全家桶中的主要成员,可用。
    对讲机

    3 Octave /QGIS

    注意,Octave 需要root权限。这个还是有点问题,不过不影响。QGIS效果杠杠的。
    在这里插入图片描述

    4 FreeCAD

    三维建模可用
    FreeCAD

    5 虚拟机

    使用QEMU可以虚拟PC环境,不过速度嘛差强人意。
    AQEMU

    建议

    购买了树莓派4B,内存4GB或者8GB的可以直接换装该系统,速度很快。

    展开全文
  • 树莓派4b OS选择

    2021-01-12 10:11:41
    这个时候最佳的实践方法时更换树莓派OS为 64bit OS还是使用其他编译工具?尝试过教程中另一种arm交叉编译工具还是会报错。 谢谢!</p><p>该提问来源于开源项目:alibaba/MNN</p></div>
  • 树莓派Raspberry Pi OS Lite怎么用VNC树莓派安装Zoom安装Raspberry Pi OS Lite安装Pi-apps安装图形界面 树莓派安装Zoom 现在会议要用到Zoom,一般在laptop上用,但是感觉不太方便,看到篇文章介绍了最近很火的Pi-...

    树莓派安装Zoom

    现在会议要用到Zoom,一般在laptop上用,但是感觉不太方便,看到篇文章介绍了最近很火的Pi-apps,可以安装各种软件,十分方便。最近闲来无事,又翻出了原来买的树莓派4B,看看能不能直接装上连电视用

    安装Raspberry Pi OS Lite

    感觉安装Raspberry Pi OS with desktop太臃肿,桌面一般也用不上,所以还是选择了Raspberry Pi OS Lite。
    当然这个安装系统很简单,直接上 链接: 树莓派官网. 找到下载连接,然后烧录到SD卡即可。这个一般人都会就不详细介绍了。 这个系统顾名思义,是没有GUI的,比较简洁,一般如果想把它作为一些服务器使用比较合适, 平时可以SSH连接。

    安装Pi-apps

    最近这个比较火,很多程序可以直接安装,很方便。具体链接:Pi-apps
    安装后里面的各种软件很多。可是到运行是才发现,没有GUI,这些程序都运行不了,VNC也没法连到Pi OS Lite.

    安装图形界面

    在重新烧录desktop版本太花时间。找了很多资料才发现,Lite可以直接装桌面,运行sudo apt-get install raspberrypi-ui-mods,接下来大概8-10分钟,完成安装后重启。接下来就简单了,直接打开VNC, 能连接,同时Pi apps也可以运行。

    展开全文
  • TinkerBoard是不能直接运行树莓派Raspbian OS的,但可以把 TinkerOS的文件系统移植过去,能够实现开机,基本功一般都能够使用,但是某些对树莓派底层依赖较强的软件会运行不了哦。 如果TinkerOS支持TinkerBoard-S/R...
  • 树莓派Raspberry Pi OS开机自启动脚本

    万次阅读 2020-06-23 18:41:29
    树莓派Raspberry Pi OS开机自启动脚本
  • 树莓派raspberry os 安装pytorch进行深度学习运行1-系统烧录以及运行欢迎使用树莓派{????}准备 欢迎使用树莓派{????} 准备 拿到树莓派开发板,小心引脚短路。 准备一张16G以上的内存卡 进入到树莓派官网下载官方...
  • 树莓派爱好者基地结合基地64位系统内核,对树莓派适配了谷歌chromium-os系统供大家使用。 推荐树莓派4B 2G以上版本使用,具体信息如下:
  • 树莓派官方下载页面下载树莓派的映像安装OS之后,还需要通过terminal安装一些基本的库之后才能满足开发需求。 比如在Raspberry pi上配置OpenCV的库,这里以Pyimageresearch的OpenCV安装教程为例进行说明。 第一次...
  • 树莓派3 安装Flint OS

    千次阅读 2017-02-04 14:01:27
    1、树莓派3 2、Flint OS 3、内存卡(推荐8G以上) 4、显示器(可通过hdmi转vga线连接到vga显示器) 二、安装步骤 1、下载安装镜像 2、烧写内存卡 烧写的方法可以看官网的介绍,写的非常详细,推荐直接使用极简方
  • 1、下载64位的raspbian 下载安装时注意你的派是否支持64位 https://downloads.raspberrypi.org/raspios_arm64/images/ (官网上下的都是32位,在这里下:...2、得换国内源: 把/etc/apt/sources.list
  • 树莓派安装GUI

    2020-09-21 17:31:09
    有时安装树莓派os时,选择了不带桌面GUI的系统。但是在之后的使用过程中当需要用到GUI时,就要自行安装。下面介绍一下如何给树莓派安装GUI。 更新软件 $ sudo apt-get update -y $ sudo apt-get upgrade -y $ sudo...
  • openmediavault是一个优秀的小型nas系统,提供samba、nfs、ftp、tftp、rsync(备份)及其他增强的插件功能 参考: ... 安装openmediavault keyring apt-get install --yes gnupg wget -O "/etc/apt/trusted.gpg.d/open...
  • 因为ubuntu系统好像有点神经,换源的时候有点问题(也可能是我自己搞不定吧hhh)以前都没出现这种问题的,所以为了让各位能操作起来轻松一些,我们就只好换成Raspberry Pi OS系统(树莓派官方系统)啦 镜像下载 本次...
  • 在过去四年中,树莓派基金会非常努力地针对树莓派的硬件优化了 Debian 的移植版 Raspbian,包括创建新的教育软件、编程工具和更美观的桌面。 在(去年) 9 月份,我们发布了一个更新,介绍了树莓派新的桌面环境 ...
  • 在过去四年中,树莓派基金会非常努力地针对树莓派的硬件优化了 Debian 的移植版 Raspbian,包括创建新的教育软件、编程工具和更美观的桌面。 在(去年) 9 月份,我们发布了一个更新,介绍了树莓派新的桌面环境 ...
  • 关于如何为树莓派树莓派一键更换国内 apt 镜像源,可参考之前的文章。 但是通过官网下载系统镜像也非常慢,从国内下载是一个有效的解决方案。目前网络上现有的经验均试图通过百度网盘或 BT 种子下载,效果不够理想...
  • 文章目录基于树莓派搭建 Intel Movidius 神经网络计算棒2代深度学习环境@[toc]开发平台要求安装树莓派 OS安装树莓派 OS 的 OpenVINO™ 工具包【Install the OpenVINO™ Toolkit for Raspbian* OS Package】安装其它...
  • 树莓派链接WiFi设置

    2017-11-05 09:52:00
    在看这篇文章之前,请确保自己树莓派OS已经正常安装且已经连接网线,然后准备一个无线网卡,开始实现我们的树莓派摆脱网线的束缚吧 ! -_- 一、 安装网卡驱动 1. 查看网卡状态是否正常 把无线网卡插到树莓派上,...
  • 1.安装树莓派OS,并配置键盘、时区、语言编码格式等; 2.新增组、用户、配置静态IP地址; 3.配置应用,并配置2个自启动的服务; 而这些都是重复性配置,工作量巨大;之前采用了一种方式,直接使用树莓派官方的USB...
  • 一、树莓派系统开机

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 675
精华内容 270
关键字:

树莓派os