Skip to content

Commit f1d82ba

Browse files
committed
refactor/docs: fix shell, update readme
1 parent 915ca27 commit f1d82ba

File tree

7 files changed

+25
-30
lines changed

7 files changed

+25
-30
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
commit 915ca27874432db51cd6d1370d4accd7b53d5d12
2+
Author: Alexeev Bronislav <[email protected]>
3+
Date: Mon Aug 25 02:32:46 2025 +0700
4+
5+
fix paging finally
6+
17
commit 623dfed03e195ce3de99dda013399f497e936a5f
28
Author: Alexeev Bronislav <[email protected]>
39
Date: Mon Aug 25 01:27:39 2025 +0700

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ LDFLAGS = -Ttext 0x1000 --oformat binary
1717

1818
KERNEL_ENTRY = $(BIN_DIR)/bootloader/kernel_entry.o
1919
INTERRUPT_OBJ = $(BIN_DIR)/kernel/cpu/interrupt.o
20+
PAGING_OBJ = $(BIN_DIR)/kernel/paging_asm.o
2021

2122
C_SOURCES = $(shell find $(SRC_DIR) -name '*.c')
2223
C_OBJS = $(C_SOURCES:$(SRC_DIR)/%.c=$(BIN_DIR)/%.o)
@@ -70,11 +71,11 @@ run_bin: $(BIN_DIR)/kintsugios.bin
7071

7172
run: $(DISKIMG_DIR)/$(DISKIMG_NAME)
7273
@printf "$(GREEN)[QEMU] Run img %-50s$(RESET)\n" "$<"
73-
@qemu-system-i386 -fda $< -boot a -m 128
74+
@qemu-system-i386 -fda $< -boot a -m 16
7475

7576
debug: $(DISKIMG_DIR)/$(DISKIMG_NAME)
7677
@printf "$(GREEN)[QEMU] Debug img %-50s$(RESET)\n" "$<"
77-
@qemu-system-i386 -fda $< -boot a -s -S -m 128
78+
@qemu-system-i386 -fda $< -boot a -s -S -m 16
7879

7980
clean:
8081
@printf "$(RED)[RM] Clean $(BIN_DIR) and $(DISKIMG_DIR)$(RESET)\n"

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
- **GDT** (Глобальная таблица дескрипторов)
2020
- **Управление памятью** с аллокаторами:
2121
- Аллокатор на основе связанных блоков памяти
22+
- Paging
2223
- **Драйверы**:
2324
- VGA-экран с поддержкой цветного текста
2425
- Клавиатура (PS/2)

image.png

-2.95 KB
Loading

src/bootloader/paging.asm

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/kernel/kernel/utils.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@
1212

1313
void fibonacci_command(char **args) {
1414
if (!args[0]) {
15-
kprint("FIB usage: FIB <num>\n");
15+
kprint("FIB usage: FIB <num>");
1616
return;
1717
}
1818

1919
int num = strtoint(args[0]);
2020

2121
u32 fib = fibonacci(num);
2222

23-
kprintf("fib(%d) = %d\n", num, fib);
23+
kprintf("fib(%d) = %d", num, fib);
2424
}
2525

2626
void binary_pow_command(char **args) {
2727
if (!args[0] || !args[1]) {
28-
kprint("BINPOW usage: BINPOW <base> <exponent>\n");
28+
kprint("BINPOW usage: BINPOW <base> <exponent>");
2929
return;
3030
}
3131

@@ -34,31 +34,31 @@ void binary_pow_command(char **args) {
3434

3535
int powered = binary_pow(b, e);
3636

37-
kprintf("%d ** %d = %d\n", b, e, powered);
37+
kprintf("%d ** %d = %d", b, e, powered);
3838
}
3939

4040
void rand_comamnd(char **args) {
4141
if (!args[0]) {
42-
kprint("RAND usage: RAND <seed>\n");
42+
kprint("RAND usage: RAND <seed>");
4343
return;
4444
}
4545

4646
u32 seed = strtoint(args[0]);
4747

48-
kprintf("%d\n", rand(&seed));
48+
kprintf("%d", rand(&seed));
4949
}
5050

5151
void rand_range_command(char **args) {
5252
if (!args[0] || !args[1] || !args[2]) {
53-
kprint("RANDRANGE usage: RANDRANGE <seed> <min> <max>\n");
53+
kprint("RANDRANGE usage: RANDRANGE <seed> <min> <max>");
5454
return;
5555
}
5656

5757
u32 seed = strtoint(args[0]);
5858
u32 min = strtoint(args[1]);
5959
u32 max = strtoint(args[2]);
6060

61-
kprintf("%d\n", rand_range(&seed, min, max));
61+
kprintf("%d", rand_range(&seed, min, max));
6262
}
6363

6464
void reboot_command(char** args) {
@@ -67,7 +67,7 @@ void reboot_command(char** args) {
6767

6868
void sleep_command(char** args) {
6969
if (!args[0]) {
70-
kprint("SLEEP usage: SLEEP <ms>\n");
70+
kprint("SLEEP usage: SLEEP <ms>");
7171
return;
7272
}
7373

@@ -108,7 +108,7 @@ void info_command_shell(char** args) {
108108
kprintf("HEAP (%d): start at %d, minimal block size %d\n", meminfo.heap_size, meminfo.heap_start, meminfo.block_size);
109109
kprintf("Total used: %d\n", meminfo.total_used);
110110
kprintf("Total free: %d\n", meminfo.total_free);
111-
kprintf("Block count: %d\n", meminfo.block_count);
111+
kprintf("Block count: %d", meminfo.block_count);
112112
}
113113

114114
void mem_dump(char** args) {
@@ -119,12 +119,11 @@ void echo_command(char **args) {
119119
for (int i = 0; args[i] != NULL; i++) {
120120
kprintf("%s ", args[i]);
121121
}
122-
kprint("\n");
123122
}
124123

125124
void free_command(char **args) {
126125
if (!args[0]) {
127-
kprint("FREE usage: FREE <hex_address>\n");
126+
kprint("FREE usage: FREE <hex_address>");
128127
return;
129128
}
130129

@@ -135,7 +134,7 @@ void free_command(char **args) {
135134

136135
u32 addr = hex_strtoint(addr_str);
137136
kfree((void*)addr);
138-
kprintf("Freed memory at %x\n", addr);
137+
kprintf("Freed memory at %x", addr);
139138
}
140139

141140
void kmalloc_command(char** args) {
@@ -150,5 +149,5 @@ void kmalloc_command(char** args) {
150149
char buf1[32] = "";
151150
hex_to_ascii((int)ptr, buf1);
152151

153-
kprintf("Allocate %d bytes.\nPointer: %s\n", size, buf1);
152+
kprintf("Allocate %d bytes.\nPointer: %s", size, buf1);
154153
}

src/kernel/kklibc/paging.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ void initialise_paging() {
179179

180180
// Включаем paging!
181181
switch_page_directory(kernel_directory);
182+
183+
kprintf("Paging enabled: nframes=%d, frames=%d, free mem addr: %x\n", nframes, frames, free_mem_addr);
182184
}
183185

184186
/* Переключение page directory */

0 commit comments

Comments
 (0)