diff --git a/my-blog/content/posts/2025-07-04-aios.md b/my-blog/content/posts/2025-07-04-aios.md new file mode 100644 index 0000000..80c70fe --- /dev/null +++ b/my-blog/content/posts/2025-07-04-aios.md @@ -0,0 +1,81 @@ +--- +title: "aiosを作り直した" +slug: "aios" +date: 2025-07-05 +tags: ["os"] +draft: false +--- + +`aios`とは自作osのことで、archlinuxをベースにしていました。 + +```sh +#!/bin/zsh +git clone https://gitlab.archlinux.org/archlinux/archiso +cp -rf ./cfg/profiledef.sh ./archiso/configs/releng/profiledef.sh +cp -rf ./cfg/profiledef.sh ./archiso/configs/baseline/profiledef.sh +cp -rf ./scpt/mkarchiso ./archiso/archiso/mkarchiso +./archiso/archiso/mkarchiso -v -o ./ ./archiso/configs/releng/ +tar xf aios-bootstrap*.tar.gz +mkdir -p root.x86_64/var/lib/machines/arch +pacstrap -c root.x86_64/var/lib/machines/arch base +echo -e 'Server = http://mirrors.cat.net/archlinux/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' >> ./root.x86_64/etc/pacman.d/mirrorlist +sed -i s/CheckSpace/#CheckeSpace/ root.x86_64/etc/pacman.conf +arch-chroot root.x86_64 /bin/sh -c 'pacman-key --init' +arch-chroot root.x86_64 /bin/sh -c 'pacman-key --populate archlinux' +arch-chroot root.x86_64 /bin/sh -c 'pacman -Syu --noconfirm base base-devel linux' +tar -zcvf aios-bootstrap.tar.gz root.x86_64/ +``` + +```sh:./cfg/profiledef.sh +#!/usr/bin/env bash +# shellcheck disable=SC2034 + +iso_name="aios" +iso_label="AI_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" +iso_publisher="ai os " +iso_application="ai os Live/Rescue DVD" +iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" +install_dir="ai" +#buildmodes=('iso') +buildmodes=('bootstrap') +bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' + 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp' + 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito') +arch="x86_64" +pacman_conf="pacman.conf" +airootfs_image_type="squashfs" +airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M') +file_permissions=( + ["/etc/shadow"]="0:0:400" + ["/root"]="0:0:750" + ["/root/.automated_script.sh"]="0:0:755" + ["/root/.gnupg"]="0:0:700" + ["/usr/local/bin/choose-mirror"]="0:0:755" + ["/usr/local/bin/Installation_guide"]="0:0:755" + ["/usr/local/bin/livecd-sound"]="0:0:755" +) +``` + +## rust + unix + +一からosを作りたいと思っていたので、rustでunixのosを作り始めました。 + +![](/img/aios_v0201.png) + +名前は`Aios`にして、今回は`syui`のprojectとして作り始めました。 + +後に`ai/os`と統合するかもしれません。 + +1. [https://git.syui.ai/ai/os](https://git.syui.ai/ai/os) +2. [https://git.syui.ai/syui/aios](https://git.syui.ai/syui/aios) + +```sh +#!/bin/zsh +d=${0:a:h:h} +cd $d/kernel +cargo bootimage --release +BOOT_IMAGE="../target/x86_64-unknown-none/release/bootimage-aios-kernel.bin" +qemu-system-x86_64 -drive format=raw,file="$BOOT_IMAGE" +``` + diff --git a/my-blog/static/img/aios_v0201.png b/my-blog/static/img/aios_v0201.png new file mode 100644 index 0000000..cec329b Binary files /dev/null and b/my-blog/static/img/aios_v0201.png differ