Compare commits

...

73 Commits

Author SHA1 Message Date
Philipp Oppermann
93d0daa1e0 Merge branch 'post-02' into post-03 2025-09-03 17:58:28 +02:00
Philipp Oppermann
83e6c0bc00 Merge pull request #1436 from phil-opp/post-02-fix-target
Fix: `target-pointer-width` field now expects an integer
2025-09-03 17:56:38 +02:00
Philipp Oppermann
2b11ad8397 Fix: target-pointer-width field now expects an integer 2025-09-03 17:53:14 +02:00
Philipp Oppermann
fa51f3adbf Update to latest bootloader version 2025-09-03 17:52:56 +02:00
Philipp Oppermann
1f097bba71 Run cargo update 2025-08-18 09:43:39 +02:00
Philipp Oppermann
99fbbad9b0 Merge branch 'post-02' into post-03 2025-08-18 09:43:25 +02:00
Philipp Oppermann
94d14d8d62 Run cargo update for bootloader crate 2025-08-18 09:42:41 +02:00
Philipp Oppermann
6f0be666f3 Merge branch 'post-02' into post-03 2025-08-07 13:09:45 +02:00
Philipp Oppermann
d9fa84edd6 Merge pull request #1425 from phil-opp/post-02-fix-target
Fix: `target-c-int-width` field now expects an integer
2025-08-07 13:09:35 +02:00
Philipp Oppermann
97de98df33 Merge branch 'post-02' into post-03 2025-08-07 13:07:41 +02:00
Philipp Oppermann
9684f75819 Merge branch 'post-01' into post-02 2025-08-07 13:07:09 +02:00
Philipp Oppermann
d6cc562907 Fix: target-c-int-width field now expects an integer 2025-08-07 12:25:03 +02:00
Philipp Oppermann
b44d8ab7fc Merge pull request #1412 from tigeryant/post-01
Added [[bin]] section to Cargo.toml
2025-05-09 15:46:51 +02:00
John Davies
c551fec1ce Added [[bin]] section to Cargo.toml with test and bench set to false to prevent duplicate definition of lang item 2025-05-02 00:35:50 +07:00
Philipp Oppermann
e2a3e76a32 Merge branch 'post-02' into post-03 2025-03-27 15:07:41 +01:00
Philipp Oppermann
16bbb8f972 Merge branch 'post-01' into post-02 2025-03-27 15:07:24 +01:00
Philipp Oppermann
430e2143f8 Fix: no_mangle is an unsafe attribute since Rust 2024 2025-03-27 15:06:17 +01:00
Philipp Oppermann
86ffa24e8e Update to Rust 2024 edition 2025-03-27 15:05:58 +01:00
Philipp Oppermann
df0c0b5783 Merge branch 'post-02' into post-03 2025-03-24 11:09:21 +01:00
Philipp Oppermann
c27eb1da9c Run cargo update for bootloader crate 2025-03-24 11:08:41 +01:00
Philipp Oppermann
2a61f88d8a Merge branch 'post-02' into post-03 2025-02-10 12:35:54 +01:00
Philipp Oppermann
a90a8bea67 Run cargo update for bootloader crate 2025-02-10 12:35:16 +01:00
Philipp Oppermann
f52872f3b9 Merge branch 'post-02' into post-03 2025-02-10 11:16:21 +01:00
Philipp Oppermann
688a21e4ed Set rustc-abi: x86-softfloat in target JSON
This additional field is required by the Rust compiler since https://github.com/rust-lang/rust/pull/136146 .
2025-02-10 11:16:14 +01:00
Philipp Oppermann
07d6c9c84e Merge branch 'post-02' into post-03 2024-04-30 15:39:07 +02:00
Philipp Oppermann
2265ddecad Run cargo update 2024-04-30 15:37:30 +02:00
Philipp Oppermann
3bc023ec2d Merge branch 'post-02' into post-03 2024-02-16 15:59:38 +01:00
Philipp Oppermann
38604da92f Update bootloader version to v0.9.27 in Cargo.lock 2024-02-16 15:59:13 +01:00
Philipp Oppermann
1a53a115da Merge branch 'post-02' into post-03 2024-02-16 13:21:45 +01:00
Philipp Oppermann
c6990cb52d Don't specify patch version in Cargo.toml
Avoids confusion for people that don't know that cargo always chooses the latest patch version.
2024-02-16 13:21:21 +01:00
Philipp Oppermann
ef9bb1a087 Merge branch 'post-02' into post-03 2024-02-16 13:13:55 +01:00
Philipp Oppermann
2bc4490404 Update bootloader version to v0.9.26 in Cargo.lock 2024-02-16 13:13:31 +01:00
Philipp Oppermann
7288459bdf Merge branch 'post-02' into post-03 2024-02-16 12:39:51 +01:00
Philipp Oppermann
7959b77ebd Update data layout for LLVM 18
Fixes build on latest rustc nightly.
2024-02-16 12:38:32 +01:00
Philipp Oppermann
bebad6d5a9 Update bootloader version in Cargo.lock 2024-02-16 12:36:31 +01:00
Philipp Oppermann
6c8fea8b00 Merge branch 'post-02' into post-03 2024-01-28 11:45:32 +01:00
Philipp Oppermann
b99c3f6d1d Use latest data layout for custom target 2024-01-28 11:44:35 +01:00
Philipp Oppermann
66c1792034 Update bootloader version in Cargo.lock 2024-01-28 11:44:23 +01:00
Philipp Oppermann
3280a0afc7 Merge branch 'post-02' into post-03 2022-09-25 11:31:07 +02:00
Philipp Oppermann
6393247a3b Update bootloader version in Cargo.lock 2022-09-25 11:29:38 +02:00
Philipp Oppermann
a387a00c85 Merge branch 'post-02' into post-03
# Conflicts:
#	Cargo.lock
2022-01-18 10:06:27 +01:00
Philipp Oppermann
faa8d15cb7 Run cargo update for bootloader crate 2022-01-18 10:05:56 +01:00
Philipp Oppermann
4c9cd3ae32 Merge branch 'post-02' into post-03 2021-12-22 09:27:26 +01:00
Philipp Oppermann
26f1f5b896 Run cargo update for bootloader crate 2021-12-22 09:27:00 +01:00
Philipp Oppermann
cbead25b43 Merge branch 'post-02' into post-03 2021-05-21 19:54:20 +02:00
Philipp Oppermann
1f49e2e9fe Merge branch 'post-01' into post-02 2021-05-21 19:53:49 +02:00
Philipp Oppermann
8708b54756 Readme: Update workflow name in badge 2021-05-21 19:53:01 +02:00
Philipp Oppermann
2c25d55810 Merge branch 'post-02' into post-03 2021-05-20 14:32:42 +02:00
Philipp Oppermann
021762cf30 Run cargo update for bootloader 2021-05-20 14:32:27 +02:00
Philipp Oppermann
ec95ac0e5a Merge branch 'post-02' into post-03 2021-05-17 11:29:14 +02:00
Philipp Oppermann
d8f280315f Run cargo update for bootloader crate 2021-05-17 11:28:54 +02:00
Philipp Oppermann
e39c7d8ad8 Merge branch 'post-02' into post-03 2021-03-10 09:23:02 +01:00
Philipp Oppermann
066c278277 Merge branch 'post-01' into post-02 2021-03-10 09:23:02 +01:00
Philipp Oppermann
bdb6a424a8 CI: Rename 'Build Code' workflow to 'Code' 2021-03-10 09:22:57 +01:00
Philipp Oppermann
f40717901b Merge branch 'post-02' into post-03 2021-03-10 09:15:58 +01:00
Philipp Oppermann
96844f6519 Merge branch 'post-01' into post-02 2021-03-10 09:15:58 +01:00
Philipp Oppermann
1501669819 Update lockfile format 2021-03-10 09:15:54 +01:00
Philipp Oppermann
195f4489e6 Merge branch 'post-02' into post-03 2021-03-10 09:13:39 +01:00
Philipp Oppermann
1b86d7fd62 Merge branch 'post-01' into post-02 2021-03-10 09:13:39 +01:00
Philipp Oppermann
deb0f63dff Ci: Don't fail fast 2021-03-10 09:13:00 +01:00
Philipp Oppermann
fbdcd45d16 Merge branch 'post-02' into post-03 2021-03-10 08:53:37 +01:00
Philipp Oppermann
d658949f5b Run cargo update for bootloader crate 2021-03-10 08:53:21 +01:00
Philipp Oppermann
d12842bcd5 Merge branch 'post-02' into post-03 2021-02-02 10:52:00 +01:00
Philipp Oppermann
0e52ccbebb Run cargo update for bootloader crate 2021-02-02 10:51:03 +01:00
Philipp Oppermann
ea5aad0e0c Merge branch 'post-02' into post-03 2020-10-02 23:17:08 +02:00
Rob Gries
4e38e7ddf8 Remove rlibc and use compiler-builtins-mem feature (#865) 2020-10-02 23:14:25 +02:00
Philipp Oppermann
1afa3af79d Merge branch 'post-02' into post-03 2020-09-29 12:19:54 +02:00
Philipp Oppermann
49dce7ada7 cargo update the bootloadercrate to fix nightly breakage 2020-09-29 12:19:48 +02:00
Philipp Oppermann
552eb97f75 Merge branch 'post-02' into post-03 2020-09-24 10:10:16 +02:00
Philipp Oppermann
c42cee8d89 Update bootloader to 0.9.10 2020-09-24 10:09:57 +02:00
Philipp Oppermann
eace075f2c Run cargo update for post-03 2020-09-24 09:08:28 +02:00
Philipp Oppermann
2d5150f2a3 Merge branch 'post-02' into post-03 2020-09-24 09:08:11 +02:00
Philipp Oppermann
ebb9f0b8a7 Run cargo update 2020-09-24 09:07:45 +02:00
7 changed files with 35 additions and 28 deletions

View File

@@ -1,5 +1,6 @@
[unstable] [unstable]
build-std = ["core", "compiler_builtins"] build-std = ["core", "compiler_builtins"]
build-std-features = ["compiler-builtins-mem"]
[build] [build]
target = "x86_64-blog_os.json" target = "x86_64-blog_os.json"

View File

@@ -1,4 +1,4 @@
name: Build Code name: Code
on: on:
push: push:
@@ -16,6 +16,7 @@ jobs:
check: check:
name: Check name: Check
strategy: strategy:
fail-fast: false
matrix: matrix:
platform: [ platform: [
ubuntu-latest, ubuntu-latest,
@@ -41,6 +42,7 @@ jobs:
test: test:
name: Test name: Test
strategy: strategy:
fail-fast: false
matrix: matrix:
platform: [ platform: [
ubuntu-latest, ubuntu-latest,

33
Cargo.lock generated
View File

@@ -1,37 +1,32 @@
# This file is automatically @generated by Cargo. # This file is automatically @generated by Cargo.
# It is not intended for manual editing. # It is not intended for manual editing.
version = 4
[[package]] [[package]]
name = "blog_os" name = "blog_os"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"bootloader", "bootloader",
"lazy_static", "lazy_static",
"rlibc", "spin 0.5.2",
"spin",
"volatile", "volatile",
] ]
[[package]] [[package]]
name = "bootloader" name = "bootloader"
version = "0.9.8" version = "0.9.33"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ad686b9b47363de7d36c05fb6885f17d08d0f2d15b1bc782a101fe3c94a2c7c" checksum = "7bdfddac270bbdd45903296bc1caf29a7fdce6b326aaf0bbab7f04c5f98b7447"
[[package]] [[package]]
name = "lazy_static" name = "lazy_static"
version = "1.4.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
dependencies = [ dependencies = [
"spin", "spin 0.9.8",
] ]
[[package]]
name = "rlibc"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc874b127765f014d792f16763a81245ab80500e2ad921ed4ee9e82481ee08fe"
[[package]] [[package]]
name = "spin" name = "spin"
version = "0.5.2" version = "0.5.2"
@@ -39,7 +34,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]] [[package]]
name = "volatile" name = "spin"
version = "0.2.6" version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6af0edf5b4faacc31fc51159244d78d65ec580f021afcef7bd53c04aeabc7f29" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "volatile"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6b06ad3ed06fef1713569d547cdbdb439eafed76341820fb0e0344f29a41945"

View File

@@ -2,14 +2,18 @@
name = "blog_os" name = "blog_os"
version = "0.1.0" version = "0.1.0"
authors = ["Philipp Oppermann <dev@phil-opp.com>"] authors = ["Philipp Oppermann <dev@phil-opp.com>"]
edition = "2018" edition = "2024"
[dependencies] [dependencies]
bootloader = "0.9.8" bootloader = "0.9"
rlibc = "1.0.0"
volatile = "0.2.6" volatile = "0.2.6"
spin = "0.5.2" spin = "0.5.2"
[dependencies.lazy_static] [dependencies.lazy_static]
version = "1.0" version = "1.0"
features = ["spin_no_std"] features = ["spin_no_std"]
[[bin]]
name = "blog_os"
test = false
bench = false

View File

@@ -1,6 +1,6 @@
# Blog OS (VGA Text Mode) # Blog OS (VGA Text Mode)
[![Build Status](https://github.com/phil-opp/blog_os/workflows/Build%20Code/badge.svg?branch=post-03)](https://github.com/phil-opp/blog_os/actions?query=workflow%3A%22Build+Code%22+branch%3Apost-03) [![Build Status](https://github.com/phil-opp/blog_os/workflows/Code/badge.svg?branch=post-03)](https://github.com/phil-opp/blog_os/actions?query=workflow%3A%22Code%22+branch%3Apost-03)
This repository contains the source code for the [VGA Text Mode][post] post of the [Writing an OS in Rust](https://os.phil-opp.com) series. This repository contains the source code for the [VGA Text Mode][post] post of the [Writing an OS in Rust](https://os.phil-opp.com) series.

View File

@@ -1,13 +1,11 @@
#![no_std] #![no_std]
#![no_main] #![no_main]
extern crate rlibc;
use core::panic::PanicInfo; use core::panic::PanicInfo;
mod vga_buffer; mod vga_buffer;
#[no_mangle] #[unsafe(no_mangle)]
pub extern "C" fn _start() -> ! { pub extern "C" fn _start() -> ! {
println!("Hello World{}", "!"); println!("Hello World{}", "!");

View File

@@ -1,15 +1,16 @@
{ {
"llvm-target": "x86_64-unknown-none", "llvm-target": "x86_64-unknown-none",
"data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128", "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128",
"arch": "x86_64", "arch": "x86_64",
"target-endian": "little", "target-endian": "little",
"target-pointer-width": "64", "target-pointer-width": 64,
"target-c-int-width": "32", "target-c-int-width": 32,
"os": "none", "os": "none",
"executables": true, "executables": true,
"linker-flavor": "ld.lld", "linker-flavor": "ld.lld",
"linker": "rust-lld", "linker": "rust-lld",
"panic-strategy": "abort", "panic-strategy": "abort",
"disable-redzone": true, "disable-redzone": true,
"features": "-mmx,-sse,+soft-float" "features": "-mmx,-sse,+soft-float",
"rustc-abi": "x86-softfloat"
} }