Skip to content

Commit

Permalink
✅ [Сборка 1386] Выпуск релиза SayoriOS Soul v0.3.4 Latest
Browse files Browse the repository at this point in the history
  • Loading branch information
pimnik98 committed Dec 31, 2023
1 parent 2dff05a commit 2658c3a
Show file tree
Hide file tree
Showing 329 changed files with 122,892 additions and 15,908 deletions.
122 changes: 105 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ $(OBJ_DIRECTORY)/%.o : %.s | $(OBJ_DIRECTORY)

$(OBJ_DIRECTORY)/%.o : %.c | $(OBJ_DIRECTORY)
@echo -e '\x1b[32mC \x1b[0m' $@
@$(CC) $(CFLAGS) -O0 -c -o $@ $<
@$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIRECTORY)/%.o : %.cpp | $(OBJ_DIRECTORY)
@echo -e '\x1b[32mCPP \x1b[0m' $@
@$(CXX) $(CPP_FLAGS) -c -o $@ $<

build_rust:
@echo -e '\x1b[32mRUST \x1b[0mBuild rust kernel'
cd $(RUST_DIR) && rustup override set nightly && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu && cargo build
@echo -e '\x1b[32mRUST \x1b[0mBuilding Rust subsystem'
cd rust && rustup override set nightly && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu && cargo +nightly build

# Сборка ядра
build: $(SOURCES)
Expand All @@ -50,16 +50,34 @@ run_remote_mon:

run_ahci_sata:
$(QEMU) $(QEMU_FLAGS) -serial mon:stdio \
-drive id=disk,file=disk.img,if=none \
-device ahci,id=ahci \
-device ide-hd,drive=disk,bus=ahci.0
-drive id=thatdisk,file=disk.img,if=none \
-device ide-hd,drive=thatdisk,bus=ahci.0 \
-drive id=thatcdrom,file=/dev/cdrom,if=none \
-device ide-cd,drive=thatcdrom,bus=ahci.1 \
# -trace "ahci*" \

run_disks:
$(QEMU) $(QEMU_FLAGS) -serial mon:stdio -hda disk1.img -hdb disk2.img -hdd disk3.img

bra:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) run_ahci_sata

disks:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) run_disks

# Запуск Milla
milla:
qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -serial tcp:127.0.0.1:64552,server,nowait -accel kvm -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime -soundhw pcspk
qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -serial telnet:sayorios.piminoff.ru:10000 -accel kvm -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime -soundhw pcspk

floppy:
qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -m 128M -name "SayoriOS v0.3.x (Dev)" -d guest_errors -rtc base=localtime -fda floppy.img -boot order=dc
qemu-system-i386 -cdrom kernel.iso -serial mon:stdio -m 64M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime -fda floppy.img -boot order=dc -accel kvm

# Запуск с логами в консоль
runlive:
Expand All @@ -68,48 +86,52 @@ runlive:
# Запуск в режиме UEFI с логами в файл
uefi:
qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd -cdrom SayoriOS_UEFI.iso -serial file:Qemu.log -accel kvm \
-m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime
-m 128M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime

# Запуск в режиме UEFI с логами в консоль
uefilive:
qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd -cdrom SayoriOS_UEFI.iso -serial mon:stdio -accel kvm \
-m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime
-m 128M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime
# Генерация ISO-файла
geniso: $(KERNEL)
grub2-mkrescue -o "kernel.iso" iso/ -V kernel
$(shell bash tools/grub.sh) -o "kernel.iso" iso/ -V kernel

# Генерация ISO-файла с поддержкой UEFI
genuefi:
grub2-mkrescue -d /usr/lib/grub/x86_64-efi -o SayoriOS_UEFI.iso iso/ --locale-directory=/usr/share/locale/ -V "SayoriOS Soul"
$(shell bash tools/grub.sh) -d /usr/lib/grub/x86_64-efi -o SayoriOS_UEFI.iso iso/ --locale-directory=/usr/share/locale/ -V "SayoriOS v0.3.4 Soul - Scythe"

# Удаление оригинального файла и *.о файлов
clean:
-rm -f $(KERNEL)
-rm -f $(KERNEL_NEED)
-rm -f $(DEPS)
-rm -f iso/boot/ramdisk
-rm -f $(RUST_OBJ_DEBUG)
-rm -f $(RUST_OBJ_RELEASE)

# Линковка файлов
$(KERNEL): $(KERNEL_NEED) $(RUST_SOURCES) rust/Cargo.toml
@$(MAKE) build_rust
# $(MAKE) build_rust
@echo -e '\x1b[32mLINK \x1b[0m' $(KERNEL)
@rm -f $(KERNEL)
@$(LD) $(LDFLAGS) -o $(KERNEL) $(KERNEL_NEED) $(RUST_OBJ_DEBUG)
@llvm-strip -s $(KERNEL)
@$(LD) $(LDFLAGS) -o $(KERNEL) $(KERNEL_NEED) # $(RUST_OBJ_DEBUG)
#@llvm-strip -s $(KERNEL) # I know I strip all symbols so making unwind useless. (Fix it later)
@bash tools/genmap.sh
@bash tools/insertmap.sh
@ls -lh $(KERNEL)
@-rm kernel.map

# Быстрая линковка, генерация ISO, запуск
bir:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) run

# Быстрая линковка, генерация ISO, запуск
birl:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) runlive

Expand All @@ -131,25 +153,91 @@ bf:
cppcheck:
cppcheck --enable=warning,performance,portability .


debug: geniso
$(QEMU) $(QEMU_FLAGS) -s -S &
gdb -ex "target remote localhost:1234" -ex "break kernel" -ex "continue"

ensure_tools:
@echo "C:" $(CC)
@echo "C++:" $(CXX)
@echo "LD:" $(LD)

release:
ADDCFLAGS="-DRELEASE" $(MAKE)
@$(MAKE) RAM

# ВНИМАНИЕ: Данное правило установит SayoriOS на ваш компьютер!
deploy: $(KERNEL)
sudo cp iso/boot/kernel.elf /boot/sayorios_kernel.elf
sudo cp iso/boot/sayori_sefs.img /boot/
sudo cp iso/boot/ramdisk /boot/sayori_ramdisk
sudo cp other/41_sayori /etc/grub.d/

sudo update-grub

RAM:
@-rm ./iso/boot/ramdisk
@tar -cvf ./iso/boot/ramdisk ./ramdisk/

VBOX_create_vm:
@echo "TODO"
@VBoxManage createvm --name=SayoriOS --register
@VBoxManage storagectl SayoriOS --name=ide --add=ide --bootable=on
@VBoxManage storageattach SayoriOS --type=dvddrive --medium kernel.iso --storagectl=ide --port=0 --device=0

VBOX:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@VBoxManage startvm "SayoriOS"

WSL_RUN:
"/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)


WSL:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@-mkdir /mnt/c/SayoriDev/
mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
"/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)

WSL_NAT:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@-mkdir /mnt/c/SayoriDev/
mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
"/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -serial telnet:sayorios.piminoff.ru:10000 -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)

WSL_DISKS:
@$(MAKE)
@$(MAKE) RAM
@$(MAKE) geniso
@-mkdir /mnt/c/SayoriDev/
mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
@-mv disk1.img /mnt/c/SayoriDev/disk1.img
@-mv disk2.img /mnt/c/SayoriDev/disk2.img
@-mv disk3.img /mnt/c/SayoriDev/disk3.img
"/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL) -hda "C:\\SayoriDev\\disk1.img" -hdb "C:\\SayoriDev\\disk2.img" -hdd "C:\\SayoriDev\\disk3.img"

create_fat_disk:
fallocate -l 64M disk1.img
sudo mkfs.fat -F 32 disk1.img

net_tap_dev: geniso
sudo $(QEMU) -cdrom kernel.iso -m $(MEMORY_SIZE) \
-name "SayoriOS v0.3.4 Soul - Scythe - [NETWORK ON TAP]" \
-rtc base=localtime \
-d guest_errors,cpu_reset,int \
-smp 1 \
-netdev tap,id=net0 \
-device rtl8139,netdev=net0,id=mydev0 \
-boot d \
-cpu core2duo-v1 \
-serial mon:stdio \
$(KVM_QEMU_FLAGS)


clangd:
$(MAKE) clean
bear -- $(MAKE) -j2
Expand Down
23 changes: 14 additions & 9 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,22 @@
Коммиты идут пачками (по одному коммиту на каждый релиз)
<h1>Скриншоты</h1>
<center>
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.2/1.png" alt="v0.3.2 S1">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.2/2.png" alt="v0.3.2 S2">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.2/3.png" alt="v0.3.2 S3">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.2/4.png" alt="v0.3.2 S4">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/1.png" alt="v0.3.4 S1">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/2.png" alt="v0.3.4 S2">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/3.png" alt="v0.3.4 S3">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/4.png" alt="v0.3.4 S4">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/5.png" alt="v0.3.4 S5">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/6.png" alt="v0.3.4 S6">
<img src="https://raw.githubusercontent.com/NDRAEY/SayoriOS/screens/screens/v0.3.4/7.png" alt="v0.3.4 S7">
</center><br>
<h1>Примерный план действий:</h1>
<p>
Прогресс: <br>
❤ [Ядро] Выполнено 4 из 7 (57%) [=====-----]<br>
💫 [Драйвера] Выполнено 3 из 6 (50%) [=====-----]<br>
📂 [Файлы] Выполнено 4 из 8 (50%) [=====-----]<br>
🌐 [Сеть] Выполнено 0 из 1 (0%) [----------]<br>
🔌 [Прочие] Выполнено 2 из 5 (40%) [====------]<br>
❤ [Ядро] Выполнено 10 из 20 (50%) [=====-----]<br>
💫 [Драйвера] Выполнено 9 из 10 (90%) [=========-]<br>
📂 [Файлы] Выполнено 8 из 10 (80%) [========--]<br>
🌐 [Сеть] Выполнено 1 из 3 (33%) [===-------]<br>
🔌 [Прочие] Выполнено 6 из 9 (66%) [======----]<br>
<img src="http://forum.glark.ru/smiles.lm?id=38" alt="*"> <a href="https://raw.githubusercontent.com/pimnik98/SayoriOS/screens/screens/soul.png">Нажав сюда</a>, вы увидите изображение, где отображены примерные планы на ядро.<br>
<b>Обновление данного изображения, будет только при следующем релизе.</b> или <a href="https://sayorios.piminoff.ru/page/1-plans.html">нажмите сюда</a>, для просмотра на сайте
</p>
Expand Down Expand Up @@ -88,11 +91,13 @@
<b><i>make clean-objs</b></i> - Удаляет все скомпилированные файлы <br>
<b><i>make link</b></i> - Линк файлов ядра <br>
<b><i>make bir</b></i> - Сборка ISO и запуск ядра <br>
<b><i>make WSL</b></i> - Сборка ISO и запуск ядра через WSL <br>
</p>
<h1>Список людей, которые поддерживают ядро:</h1>
<p>
* <a href="https://github.com/pimnik98">Nikita Piminoff</a> (Создатель SayoriOS)<br>
* <a href="https://github.com/NDRAEY">Drew Pavlenko</a><br><br>
* <a href="https://github.com/durisash">Даниил Лебедев</a><br><br>
* <a href="https://vk.com/sayorios">Коммьюнити SayoriOS в VK</a><br>
</p>
<h1>Отказ от ответственности:</h1>
Expand Down
3 changes: 3 additions & 0 deletions README.MD:Zone.Identifier
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[ZoneTransfer]
ZoneId=3
HostUrl=https://github.com/
Loading

0 comments on commit 2658c3a

Please sign in to comment.