Homu
77373d59b2
Auto merge of #22 - phil-opp:phil-opp-patch-1, r=phil-opp
...
Link the blog in README
2015-11-02 03:35:33 +09:00
Philipp Oppermann
fa96486353
Add link to blog
2015-11-01 18:59:45 +01:00
Philipp Oppermann
e582b37f19
Merge pull request #21 from phil-opp/imul_mul
...
Use unsigned `mul` instead of signed `imul`
2015-10-31 13:50:46 +01:00
Philipp Oppermann
8789fa8531
Use unsigned mul instead of signed imul
2015-10-31 13:48:58 +01:00
Philipp Oppermann
1e7236caf5
Merge pull request #18 from phil-opp/2mib_pages
...
Use 2MiB pages instead of one 1GiB page
2015-10-29 18:20:58 +01:00
Philipp Oppermann
2a35ec19b6
Use 2MiB pages instead of one 1GiB page
2015-10-29 17:47:21 +01:00
Philipp Oppermann
dfabc0ff32
Merge pull request #15 from phil-opp/printing_to_screen_improvements
...
Add the clear_screen function from the blog post
2015-10-27 20:50:08 +01:00
Philipp Oppermann
e439e9eb5d
Use a byte char instead of casting
2015-10-27 20:48:14 +01:00
Philipp Oppermann
c36a3d19d2
Add and use a clear_screen function
2015-10-27 20:47:58 +01:00
Philipp Oppermann
54b47aaac1
Merge pull request #14 from phil-opp/multiboot_header_section_name
...
Rename `multiboot` section to `multiboot_header`
2015-10-27 18:47:03 +01:00
Philipp Oppermann
7b0428b07a
Rename multiboot section to multiboot_header
2015-10-27 18:42:28 +01:00
Philipp Oppermann
8640091bc6
Merge pull request #12 from phil-opp/a_minimal_kernel_fixes
...
Makefile fixes
2015-10-26 23:02:34 +01:00
Philipp Oppermann
5e5374cd7d
Update grub.cfg to use renamed kernel file
...
Renaming occurred in 37b576e to be in line with the blog posts.
2015-10-26 16:54:45 +01:00
Jacob Krall
37b576eb3c
Explicitly rename copied kernel to kernel.bin
...
Otherwise your `grub.cfg` from earlier in the article will be out of date (we're producing `kernel-x86_64.bin`, but grub expects `kernel.bin`).
2015-10-26 15:45:46 +01:00
Jacob Krall
9ecaf0fe0c
make iso depends on grub.cfg
...
This way, if you fix a typo in grub.cfg, you don't have to `make clean` to get `make iso` to pick it up.
2015-10-26 15:45:19 +01:00
Philipp Oppermann
1e90a1e78d
Merge pull request #8 from phil-opp/printing_to_screen_repr_c
...
Add #[repr(C)] to ScreenChar
2015-10-25 15:53:45 +01:00
Philipp Oppermann
34dd42a6fc
Add #[repr(C)] to ScreenChar
2015-10-25 15:38:08 +01:00
Philipp Oppermann
68c0ab0d59
Merge pull request #7 from phil-opp/fix_long_mode_test
...
Fix long mode test
2015-10-25 01:51:43 +02:00
Philipp Oppermann
f670e330f5
Fix long mode test ( fixes #6 )
2015-10-25 01:49:42 +02:00
Philipp Oppermann
a39a611629
Wording: replace check with test
2015-10-25 01:48:57 +02:00
Philipp Oppermann
9cd9ec25db
Merge pull request #5 from phil-opp/rust-target
...
Specify rust target
2015-10-24 16:25:50 +02:00
Philipp Oppermann
3d94304bbb
Specify rust target
2015-10-24 16:20:46 +02:00
Philipp Oppermann
95028c0f5d
Merge pull request #3 from phil-opp/vga_buffer
...
Add a VGA buffer module
2015-10-23 12:47:44 +02:00
Philipp Oppermann
5b1f2361f2
Use println! to print the `Hello World!
2015-10-23 01:45:10 +02:00
Philipp Oppermann
4d29482952
Add custom print and println macros
2015-10-23 01:45:10 +02:00
Philipp Oppermann
e4a8c4c9fa
Silence dead code warnings for unused colors
2015-10-23 01:45:10 +02:00
Philipp Oppermann
c547b128e5
Implement fmt::Write trait for Writer
2015-10-23 01:45:10 +02:00
Philipp Oppermann
4668acb09e
Add a public static writer
...
Since `unsafe const` aren't allowed yet, we temorary add a custom version of Unique to make `Unique::new` const (instead of unsafe).
2015-10-23 01:45:10 +02:00
Philipp Oppermann
ab464b107d
Add a basic writer type to print single bytes
...
It prints always to the last line and shifts lines up on newline or line wrap. To easily shift lines up, we make the ColorCode and ScreenChar types Copy.
2015-10-23 01:45:10 +02:00
Philipp Oppermann
49fd8926a5
Add a VGA buffer module skeleton
...
It contains basic types for colors, screen characters, and the buffer itself.
2015-10-23 01:45:10 +02:00
Philipp Oppermann
3e7fd1b433
Merge pull request #4 from phil-opp/better_hello_world
...
Improve `Hello World!` code
2015-10-03 17:40:14 +02:00
Philipp Oppermann
5bcd6d2c2d
Improve Hello World! code
...
Avoid special core features and complicated iterator chaining to make the code simpler overall.
2015-10-03 17:38:41 +02:00
Philipp Oppermann
893d720ae8
Merge pull request #1 from phil-opp/cargo_test_support
...
Fix testing
2015-09-15 14:54:58 +02:00
Philipp Oppermann
9c4d057e3d
Don't implement lang items on testing
...
The `std` library is imported on testing. It already implements all lang items.
2015-09-15 14:51:38 +02:00
Philipp Oppermann
5db8977495
Rename main to rust_main to support testing
...
On testing, `std` is imported, which defines an own `main` function. Thus `cargo test` fails if there alread exists one non-mangled main.
2015-09-15 14:51:07 +02:00
Philipp Oppermann
3030b1c862
Print Hello World!
2015-08-25 14:54:06 +02:00
Philipp Oppermann
03a46b4141
Print OS returned! instead of OKAY
2015-08-25 14:54:06 +02:00
Philipp Oppermann
e09ae042a3
Setup SSE because rust needs it
2015-08-25 14:54:06 +02:00
Philipp Oppermann
c65797d89f
Add an 64-bit error function
2015-08-25 14:54:06 +02:00
Philipp Oppermann
c6223ed48f
Omit unwinding landing pads (we don't support panics atm)
2015-08-25 14:54:06 +02:00
Philipp Oppermann
fcf69dcc53
Remove unused sections to avoid float issues
...
Avoids a linker error for `fmod` and `fmodf`. These functions are refenced in libcore. The KEEP ensures that the Multiboot section isn't removed.
2015-08-25 14:54:06 +02:00
Philipp Oppermann
4c793e6dd9
Add rlibc dependency for memset, memcpy, etc.
2015-08-25 14:54:06 +02:00
Philipp Oppermann
3c08203437
Call rust main function
2015-08-25 14:54:06 +02:00
Philipp Oppermann
d9ce36be11
Compile rust project in Makefile
2015-08-25 14:54:06 +02:00
Philipp Oppermann
66cc22608c
Add a rust project
2015-08-25 14:54:06 +02:00
Philipp Oppermann
7e898e6a4c
Reload selector registers and print OKAY
2015-08-25 14:54:06 +02:00
Philipp Oppermann
9c4b8fef9d
Add and load a 64-bit GDT
2015-08-25 14:54:06 +02:00
Philipp Oppermann
457a61341a
Enable paging
2015-08-25 14:54:06 +02:00
Philipp Oppermann
b47699685f
Add and setup a P4 and a P3 table
2015-08-25 14:54:06 +02:00
Philipp Oppermann
bd11ed9a6f
Check for Multiboot, CPUID, and Long Mode
2015-08-25 14:54:06 +02:00