This commit is contained in:
kkk2z 2024-07-22 04:46:44 +00:00
parent 35ef3ad4af
commit 37458067a9
25 changed files with 249 additions and 0 deletions

23
Makefile Normal file
View file

@ -0,0 +1,23 @@
# Makefile
C_SOURCES = $(wildcard kernel/*.c apps/*.c)
HEADERS = $(wildcard include/*.h)
OBJ = ${C_SOURCES:.c=.o}
CC = gcc
CFLAGS = -m32 -g -ffreestanding -Wall -Wextra
kernel.bin: boot/boot.o ${OBJ}
ld -m elf_i386 -Ttext 0x1000 $^ -o $@ --oformat binary
%.o: %.c ${HEADERS}
${CC} ${CFLAGS} -c $< -o $@
boot/boot.o: boot/boot.s
nasm -f elf32 $< -o $@
os-image.bin: kernel.bin
dd if=/dev/zero bs=512 count=2048 of=os-image.bin
dd if=kernel.bin of=os-image.bin conv=notrunc
clean:
rm -f boot/*.o kernel/*.o apps/*.o kernel.bin os-image.bin

5
apps/basic_interpreter.c Normal file
View file

@ -0,0 +1,5 @@
#include "basic.h"
void execute_basic_program(const char* program) {
// BASICプログラム実行コード
}

View file

@ -0,0 +1,5 @@
#include "python.h"
void execute_python_script(const char* script) {
// Pythonスクリプト実行コード
}

5
apps/text_editor.c Normal file
View file

@ -0,0 +1,5 @@
#include "file_system.h"
void edit_file(const char* filename) {
// ファイル編集コード
}

73
boot/boot.s Normal file
View file

@ -0,0 +1,73 @@
; boot.s: A minimal bootloader in assembly for 16-bit real mode
BITS 16
ORG 0x7C00
START:
; Set up the stack
mov ax, 0x07C0
mov ss, ax
mov sp, 0xFFFF
; Set up the data segment
mov ax, 0x07C0
mov ds, ax
mov es, ax
; Set up the GDT
cli
lgdt [gdt_descriptor]
mov eax, cr0
or eax, 1
mov cr0, eax
jmp 08h:code_segment
BITS 32
code_segment:
; Set up the segment registers
mov ax, data_segment
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax
; Set up the stack pointer
mov esp, 0x9FC00
; Call kernel main function
call kernel_main
hang:
; Hang the system
jmp hang
; Define the GDT
gdt_start:
; Null descriptor
dd 0
dd 0
; Code segment descriptor
dw 0xFFFF
dw 0x0000
db 0x00
db 0x9A
db 0xCF
db 0x00
; Data segment descriptor
dw 0xFFFF
dw 0x0000
db 0x00
db 0x92
db 0xCF
db 0x00
gdt_end:
gdt_descriptor:
dw gdt_end - gdt_start - 1
dd gdt_start
TIMES 510 - ($ - $$) db 0
DW 0xAA55

7
include/account.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef ACCOUNT_H
#define ACCOUNT_H
void create_account(const char* username, const char* password);
void authenticate_user(const char* username, const char* password);
#endif

6
include/basic.h Normal file
View file

@ -0,0 +1,6 @@
#ifndef BASIC_H
#define BASIC_H
void run_basic_program(const char* program);
#endif

7
include/file_system.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef FILE_SYSTEM_H
#define FILE_SYSTEM_H
void init_file_system(void);
void read_file(const char* filename);
#endif

8
include/kernel.h Normal file
View file

@ -0,0 +1,8 @@
#ifndef KERNEL_H
#define KERNEL_H
void kernel_main(void);
void terminal_initialize(void);
void terminal_writestring(const char* data);
#endif

7
include/network.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef NETWORK_H
#define NETWORK_H
void init_network(void);
void send_http_request(const char* url);
#endif

6
include/python.h Normal file
View file

@ -0,0 +1,6 @@
#ifndef PYTHON_H
#define PYTHON_H
void run_python_script(const char* script);
#endif

7
include/terminal.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef TERMINAL_H
#define TERMINAL_H
void terminal_initialize(void);
void terminal_writestring(const char* data);
#endif

7
include/vpn.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef VPN_H
#define VPN_H
void init_vpn(void);
void connect_vpn(const char* server);
#endif

6
include/web.h Normal file
View file

@ -0,0 +1,6 @@
#ifndef WEB_H
#define WEB_H
void fetch_web_page(const char* url);
#endif

9
kernel/account.c Normal file
View file

@ -0,0 +1,9 @@
#include "account.h"
void create_account(const char* username, const char* password) {
// アカウント作成コード
}
void authenticate_user(const char* username, const char* password) {
// ユーザ認証コード
}

5
kernel/basic.c Normal file
View file

@ -0,0 +1,5 @@
#include "basic.h"
void run_basic_program(const char* program) {
// BASICプログラム実行コード
}

9
kernel/file_system.c Normal file
View file

@ -0,0 +1,9 @@
#include "file_system.h"
void init_file_system() {
// ファイルシステム初期化コード
}
void read_file(const char* filename) {
// ファイル読み取りコード
}

5
kernel/interrupts.c Normal file
View file

@ -0,0 +1,5 @@
#include "kernel.h"
void irq_handler() {
// 割り込み処理コード
}

7
kernel/kernel.c Normal file
View file

@ -0,0 +1,7 @@
#include "kernel.h"
void kernel_main(void) {
terminal_initialize();
terminal_writestring("Hello, kernel World!\n");
// 他の初期化コードや機能の呼び出し
}

5
kernel/keyboard.c Normal file
View file

@ -0,0 +1,5 @@
#include "kernel.h"
void keyboard_handler() {
// キーボード入力処理コード
}

9
kernel/network.c Normal file
View file

@ -0,0 +1,9 @@
#include "network.h"
void init_network() {
// ネットワーク初期化コード
}
void send_http_request(const char* url) {
// HTTPリクエスト送信コード
}

5
kernel/python.c Normal file
View file

@ -0,0 +1,5 @@
#include "python.h"
void run_python_script(const char* script) {
// Pythonスクリプト実行コード
}

9
kernel/terminal.c Normal file
View file

@ -0,0 +1,9 @@
#include "terminal.h"
void terminal_initialize() {
// ターミナル初期化コード
}
void terminal_writestring(const char* data) {
// 文字列出力コード
}

9
kernel/vpn.c Normal file
View file

@ -0,0 +1,9 @@
#include "vpn.h"
void init_vpn() {
// VPN初期化コード
}
void connect_vpn(const char* server) {
// VPN接続コード
}

5
kernel/web.c Normal file
View file

@ -0,0 +1,5 @@
#include "web.h"
void fetch_web_page(const char* url) {
// Webページ取得コード
}