#osdev
Explore tagged Tumblr posts
Text
wow systems development will be really fun! i cant wait to program my own operating system!!!
the uefi specification 2.8:
13 notes
·
View notes
Text
Alright, Im commencing plan "post osdev shit" and gonna update this as i debug the weird ass issue im having with serial comms.
the repo in question
the issue? i have a mostly simple serial communication system that allows the guest to send commands to the host in lieu of debugging. said system involves a bunch of types that are stored in Packets (ugh tumblr doesn't support code blocks). For some godforsaken reason two of the types (the OpenFile or WriteFile) are spitting out extra bytes? for no reason? when the size of the packets is 100% fixed to the size of the request explicitly to avoid extra bytes? so i have no clue why but im gonna put on the "osdev what the fuck" glasses and figure this shit out and put it here cuz why not.
7 notes
·
View notes
Text

The operating system project is going amazing
9 notes
·
View notes
Note
hello!! hopefully i'm not bothering you! i saw the post about running uclinux on macintosh plus, so i wanted to try it on my machine, i've found your source on github and i've gotten everything compiled however the kernal can't mount the root filesystem, neither through mame or my macintosh plus (sda1 is where the root file system should be, i increased the image size to 128mb from 64mb) thanks
hi, thanks for bringing this to my attention! i can't seem to replicate it though, even when i increase the image size to 128 mb it boots just fine in mame (and i don't really feel like pulling out my mac plus to test when i know it works in mame)
are you sure you're using the right command line options for mame? i can run it just fine with something along the lines of mame macplus -scsibus:1 harddisk -hard1 $(pwd)/root.img (god i wish i could get this to format properly i'm genuinely so fucking mad at tumblr rn. genuinely inexcusable)
and are you sure you're not getting the root filesystem mount error confused with the fact that it fails to boot into a shell for some reason? because i've been aware of that problem for a while, but haven't been motivated to try and fix it because i've been working on an os specifically designed to solve the many issues with nommu uclinux on low memory platforms
hopefully this is helpful, but if not then this is the most i can do without detailed instructions on how to replicate the issue because i can't figure it out myself
6 notes
·
View notes
Text
All-level Rust
Web servers require layers upon layers of software and hardware. Routing, multiplexing, protocols, everything. Rust is a viable solution to making a web server, because it's safe and fast, and has many crates to help (tokio, warp, ws). You can make a browser in Rust, as well as games.
But at the same time, you can make an operating system with it. The lowest level of access to a computer you can get, creating and dereferencing raw pointers, running on the CPU itself. You can make not only games but game engines. You can make compilers. You can do FFI. You can make FFI. Your entire stack can be made with Rust.
You would make a web server in JavaScript, Java, C#, Go, or maybe even Python. But you wouldn't use any of those to make an operating system, because they require a runtime aren't bare metal enough, or throw exceptions. They are good for making web servers because they abstract away problems like buffer overflows, and they are extendable languages. You would use C, C++, or Zig. They are good for making operating systems because it's easy to dig into memory ((unsigned short*)0xb8000 is the VGA text buffer).
Rust can do both. Sure, you can make a web server in those OS languages, but you need to make sure it's safe as hell. Rust itself is safe as hell.
/rust rant
#programming#server#web server#web development#operating system#operating systems#javascript#java#c#c++#csharp#zig#go#rust#osdev
10 notes
·
View notes
Text
who could have know osdev might be hard
4 notes
·
View notes
Text
that was such a cool project tbh

Linux on a PSP :3

3K notes
·
View notes
Text
lol osdev got me reading about linux kernel stuff it sounds wild like theres an "OOM killer" (OOM means out-of-memory but it sounds funny)
25 notes
·
View notes
Text
This Week in Rust 582
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on X (formerly Twitter) or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
Announcing Rust 1.84.0
This Month in Our Test Infra: December 2024
Foundation
Announcing Rust Global 2025: London
Newsletters
This Month in Rust OSDev: December 2024
Rust Trends Issue #57
Project/Tooling Updates
cargo.nvim - A Neovim plugin for Rust's Cargo commands
Context-Generic Programming Updates: v0.3.0 Release and New Chapters
The RTen machine learning runtime - a 2024 retrospective
Observations/Thoughts
The gen auto-trait problem
Async Rust is about concurrency, not (just) performance
The Emotional Appeal of Rust
[audio] Brave with Anton Lazarev
[audio] Lychee with Matthias Endler
Rust Walkthroughs
Creating an embedded device driver in Rust
Const Evaluation in Rust For Hex Strings Validation
Concurrent and parallel future execution in Rust
[video] Intro to Embassy: embedded development with async Rust
[video] Comprehending Proc Macros
[video] CppCon - C++/Rust Interop: Using Bridges in Practice
Miscellaneous
December 2024 Rust Jobs Report
Tracing Large Memory Allocations in Rust with BPFtrace
On LLMs and Code Optimization
Nand2Tetris - Project 7 (VM Translator Part 1)
Crate of the Week
This week's crate is vidyut, a Sanskrit toolkit containing functionality about meter, segmentation, inflections, etc.
Thanks to Arun Prasad for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
RFCs
No calls for testing were issued this week.
Rust
Tracking issue for RFC 3695: Allow boolean literals as cfg predicates
Testing steps
Rustup
No calls for testing were issued this week.
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
RFCs
Rust
Rustup
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
rama - see if improvements can/have-to be made to rama's http open telemetry layer support
rama – add rama to TechEmpower's FrameworkBenchmark
rama – add rama server benchmark to sharkbench
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
Rust Week (Rust NL) | Closes on 2024-01-19 | Utrecht, NL | Event on 2025-05-13 & 2025-05-14
Rust Summit | Rolling deadline | Belgrade, RS | Event on 2025-06-07
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
Updates from the Rust Project
469 pull requests were merged in the last week
add new {x86_64,i686}-win7-windows-gnu targets
arm: add unstable soft-float target feature
-Zrandomize-layout harder. Foo<T> != Foo<U>
best_blame_constraint: Blame better constraints when the region graph has cycles from invariance or 'static
mir_transform: implement #[rustc_force_inline]
run_make_support: add #![warn(unreachable_pub)]
account for identity substituted items in symbol mangling
add -Zmin-function-alignment
add default_field_values entry to unstable book
add a list of symbols for stable standard library crates
add an InstSimplify for repetitive array expressions
add inherent versions of MaybeUninit methods for slices
add missing provenance APIs on NonNull
assert that Instance::try_resolve is only used on body-like things
avoid ICE: Account for for<'a> types when checking for non-structural type in constant as pattern
avoid replacing the definition of CURRENT_RUSTC_VERSION
cleanup suggest_binding_for_closure_capture_self diag in borrowck
condvar: implement wait_timeout for targets without threads
convert typeck constraints in location-sensitive polonius
depth limit const eval query
detect mut arg: &Ty meant to be arg: &mut Ty and provide structured suggestion
do not ICE when encountering predicates from other items in method error reporting
eagerly collect mono items for non-generic closures
ensure that we don't try to access fields on a non-struct pattern type
exhaustively handle expressions in patterns
fix ICE with references to infinite structs in consts
fix cycle error only occurring with -Zdump-mir
fix handling of ZST in win64 ABI on windows-msvc targets
implement const Destruct in old solver
lower Guard Patterns to HIR
make (unstable API) UniqueRc invariant for soundness
make MIR cleanup for functions with impossible predicates into a real MIR pass
make lit_to_mir_constant and lit_to_const infallible
normalize each signature input/output in typeck_with_fallback with its own span
remove a bunch of diagnostic stashing that doesn't do anything
remove allocations from case-insensitive comparison to keywords
remove special-casing for argument patterns in MIR typeck (attempt to fix perf regression of #133858)
reserve x18 register for aarch64 wrs vxworks target
rm unnecessary OpaqueTypeDecl wrapper
suggest Replacing Comma with Semicolon in Incorrect Repeat Expressions
support target specific optimized-compiler-builtins
unify conditional-const error reporting with non-const error reporting
use a post-monomorphization typing env when mangling components that come from impls
use llvm.memset.p0i8.* to initialize all same-bytes arrays
used pthread name functions returning result for FreeBSD and DragonFly
warn about broken simd not only on structs but also enums and unions when we didn't opt in to it
implement trait upcasting
mir-opt: GVN some more transmute cases
miri: add FreeBSD maintainer; test all of Solarish
miri: added Android to epoll and eventfd test targets
miri: adjust the way we build miri-script in RA, to fix proc-macros
miri: illumos: added epoll and eventfd
miri: supported fioclex for ioctl on macos
miri: switched FreeBSD to pthread_setname_np
miri: use deref_poiner_as instead of deref_pointer
proc_macro: Use ToTokens trait in quote macro
add #[inline] to copy_from_slice
impl String::into_chars
initial fs module for uefi
hashbrown: added Allocator template argument for rustc_iter
account for optimization levels other than numbers
cargo: schemas: Fix 'metadata' JSON Schema
cargo: schemas: Fix the [lints] JSON Schema
cargo: perf: cargo-package: match certain path prefix with pathspec
cargo: fix: emit warnings as warnings when learning rust target info
cargo: make "C" explicit in extern "C"
cargo: setup cargo environment for cargo rustc --print
cargo: simplify SourceID Ord/Eq
rustdoc-json: include items in stripped modules in Crate::paths
rustdoc: use import stability marker in display
rustdoc: use stable paths as preferred canonical paths
rustfmt: drop nightly-gating of the --style-edition flag registration
clippy: add new lint unneeded_struct_pattern
clippy: auto-fix slow_vector_initialization in some cases
clippy: do not intersect spans coming from different contexts
clippy: do not look for significant drop inside .await expansion
clippy: do not propose to elide lifetimes if this causes an ambiguity
clippy: do not remove identity mapping if mandatory mutability would be lost
clippy: do not trigger redundant_pub_crate in external macros
clippy: don't emit machine applicable map_flatten lint if there are code comments
clippy: don't suggest to use cloned for Cow in unnecessary_to_owned
clippy: fix type suggestion for manual_is_ascii_check
clippy: improve needless_as_bytes to also detect str::bytes()
clippy: new lint: manual_ok_err
clippy: remove unneeded parentheses in unnecessary_map_or lint output
rust-analyzer: add a new and improved syntax tree view
rust-analyzer: add config setting which allows adding additional include paths to the VFS
rust-analyzer: re-implement rust string highlighting via tool attribute
rust-analyzer: fix JSON project PackageRoot buildfile inclusion
rust-analyzer: do not compute prettify_macro_expansion() unless the "Inline macro" assist has actually been invoked
rust-analyzer: do not offer completions within macro strings
rust-analyzer: fix env/option_env macro check disregarding macro_rules definitions
rust-analyzer: fix ref text edit for binding mode hints
rust-analyzer: fix a bug with missing binding in MBE
rust-analyzer: fix actual token lookup in completion's expand()
rust-analyzer: fix another issue with fixup reversing
rust-analyzer: fix diagnostics not clearing between flychecks
rust-analyzer: make edition per-token, not per-file
rust-analyzer: implement #[rust_analyzer::skip] for bodies
rust-analyzer: implement implicit sized bound inlay hints
rust-analyzer: improve hover module path rendering
Rust Compiler Performance Triage
A quiet week with little change to the actual compiler performance. The biggest compiler regression was quickly recognized and reverted.
Triage done by @rylev. Revision range: 0f1e965f..1ab85fbd
Summary:
(instructions:u) mean range count Regressions ❌ (primary) 0.4% [0.1%, 1.8%] 21 Regressions ❌ (secondary) 0.5% [0.0%, 2.0%] 35 Improvements ✅ (primary) -0.8% [-2.7%, -0.3%] 6 Improvements ✅ (secondary) -10.2% [-27.8%, -0.1%] 13 All ❌✅ (primary) 0.2% [-2.7%, 1.8%] 27
4 Regressions, 3 Improvements, 3 Mixed; 3 of them in rollups 44 artifact comparisons made in total
Full report here
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
RFCs
Supertrait item shadowing v2
Tracking Issues & PRs
Rust
remove support for the (unstable) #[start] attribute
fully de-stabilize all custom inner attributes
Uplift clippy::double_neg lint as double_negations
Optimize Seek::stream_len impl for File
[rustdoc] Add sans-serif font setting
Tracking Issue for PathBuf::add_extension and Path::with_added_extension
Make the wasm_c_abi future compat warning a hard error
const-eval: detect more pointers as definitely not-null
Consider fields to be inhabited if they are unstable
disallow repr() on invalid items
Cargo
No Cargo Tracking Issues or PRs entered Final Comment Period this week.
Language Team
No Language Team Proposals entered Final Comment Period this week.
Language Reference
distinct 'static' items never overlap
Unsafe Code Guidelines
No Unsafe Code Guideline Tracking Issues or PRs entered Final Comment Period this week.
New and Updated RFCs
Make trait methods callable in const contexts
RFC: Allow packages to specify a set of supported targets
Upcoming Events
Rusty Events between 2025-01-15 - 2025-02-12 🦀
Virtual
2025-01-15 | Virtual (London, UK) | London Rust Project Group
Meet and greet with project allocations
2025-01-15 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
An introduction to WASM in Rust with Márk Tolmács (Virtual, English)
2025-01-15 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Leptos
2025-01-16 | Virtual (Berlin, DE) | OpenTechSchool Berlin + Rust Berlin
Rust Hack and Learn | Mirror: Rust Hack n Learn Meetup
2025-01-16 | Virtual (San Diego, CA, US) | San Diego Rust
San Diego Rust January 2025 Tele-Meetup
2025-01-16 | Virtual and In-Person (Redmond, WA, US) | Seattle Rust User Group
January Meetup
2025-01-17 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2025-01-21 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
Exploring Rust Enums with Yoni Peleg (Virtual, Hebrew)
2025-01-21 | Virtual (Washington, DC, US) | Rust DC
Mid-month Rustful
2025-01-22 | Virtual (Rotterdam, NL) | Bevy Game Development
Bevy Meetup #8
2025-01-23 & 2025-01-24 | Virtual | Mainmatter Rust Workshop
Remote Workshop: Testing for Rust projects – going beyond the basics
2025-01-24 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2025-01-26 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
Rust and embedded programming with Leon Vak (online in Hebrew)
2025-01-27 | Virtual (London, UK) | London Rust Project Group
using traits in Rust for flexibility, mocking/ unit testing, and more
2025-01-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Last Tuesday
2025-01-30 | Virtual (Berlin, DE) | OpenTechSchool Berlin + Rust Berlin
Rust Hack and Learn | Mirror: Rust Hack n Learn Meetup
2025-01-30 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
Quantum Computers Can’t Rust-Proof This!
2025-01-30 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
Are We Embedded Yet? - Implementing tiny HTTP server on a microcontroller
2025-01-31 | Virtual (Delhi, IN) | Hackathon Raptors Association
Blazingly Fast Rust Hackathon
2025-01-31 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2025-02-01 | Virtual (Kampala, UG) | Rust Circle Kampala
Rust Circle Meetup
2025-02-04 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
Buffalo Rust User Group
2025-02-05 | Virtual (Indianapolis, IN, US) | Indy Rust
Indy.rs - with Social Distancing
2025-02-07 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2025-02-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Second Tuesday
2025-02-11 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
Meet Elusion: New DataFrame Library powered by Rust 🦀 with Borivoj Grujicic
Europe
2025-01-16 | Amsterdam, NL | Rust Developers Amsterdam Group
Meetup @ Avalor AI
2025-01-16 | Karlsruhe, DE | Rust Hack & Learn Karlsruhe
Karlsruhe Rust Hack and Learn Meetup bei BlueYonder
2025-01-18 | Stockholm, SE | Stockholm Rust
Ferris' Fika Forum #8
2025-01-21 | Edinburgh, GB | Rust and Friends
Rust and Friends (evening pub)
2025-01-21 | Ghent, BE | Systems Programming Ghent
Tech Talks & Dinner: Insights on Systems Programming Side Projects (in Rust) - Leptos (full-stack Rust with webassembly), Karyon (distributed p2p software in Rust), FunDSP (audio synthesis in Rust)
2025-01-21 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
Self-Organized Peer-to-Peer Networks using Rust
2025-01-22 | London, GB | Rust London User Group
Rust London's New Years Party & Community Swag Drop
2025-01-22 | Oberursel, DE | Rust Rhein Main
Rust 2024 Edition and Beyond
2025-01-23 | Barcelona, ES | Barcelona Free Software
Why Build a New Browser Engine in Rust?
2025-01-23 | Paris, FR | Rust Paris
Rust meetup #74
2025-01-24 | Edinburgh, GB | Rust and Friends
Rust and Friends (daytime coffee)
2025-01-27 | Prague, CZ | Rust Prague
Rust Meetup Prague (January 2025)
2025-01-28 | Aarhus, DK | Rust Aarhus
Hack Night - Advent of Code
2025-01-28 | Manchester, GB | Rust Manchester
Rust Manchester January Code Night
2025-01-30 | Augsburg, DE | Rust Meetup Augsburg
Rust Meetup #11: Hypermedia-driven development in Rust
2025-01-30 | Berlin, DE | Rust Berlin
Rust and Tell - Title
2025-02-01 | Brussels, BE | FOSDEM 2025
FOSDEM Rust Devroom
2025-02-01 | Nürnberg, DE | Rust Nuremberg
Technikmuseum Sinsheim
2025-02-05 | Oxford, GB | Oxford Rust Meetup Group
Oxford Rust and C++ social
2025-02-12 | Reading, GB | Reading Rust Workshop
Reading Rust Meetup
North America
2025-01-16 | Nashville, TN, US | Music City Rust Developers
Rust Game Development Series 1: Community Introductions
2025-01-16 | Redmond, WA, US | Seattle Rust User Group
January Meetup
2025-01-16 | Spokane, WA, US | Spokane Rust
Spokane Rust Monthly Meetup: Traits and Generics
2025-01-17 | México City, MX | Rust MX
Multithreading y Async en Rust 101 - HolaMundo - Parte 3
2025-01-18 | Boston, MA, US | Boston Rust Meetup
Back Bay Rust Lunch, Jan 18
2025-01-21 | New York, NY, US | Rust NYC
Rust NYC Monthly Meetup
2025-01-21 | San Francisco, CA, US | San Francisco Rust Study Group
Rust Hacking in Person
2025-01-22 | Austin, TX, US | Rust ATX
Rust Lunch - Fareground
2025-01-23 | Mountain View, CA, US | Hacker Dojo
RUST MEETUP at HACKER DOJO | Rust Meetup at Hacker Dojo - Mountain View Rust Meetup Page
2025-01-28 | Boulder, CO, US | Boulder Rust Meetup
From Basics to Advanced: Testing
2025-02-06 | Saint Louis, MO, US | STL Rust
Async, the Future of Futures
Oceania:
2025-02-04 | Auckland, NZ | Rust AKL
Rust AKL: How We Learn Rust
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
This is a wonderful unsoundness and I am incredibly excited about it :3
– lcnr on github
Thanks to Christoph Grenz for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
2 notes
·
View notes
Text
What people don't tell you about osdev is that it changes you fundamentally as a person
0 notes
Text
Perhaps some gratitude for contemporary kids' culture
It has been so long since I last played Roblox around ~2009 (but I re-registered fairly recently but haven't tried anything just yet) but across this whole games' platform, I kinda find joy seeing the creativity and innovation of those kids in the ways they express themselves and all... (also remembered one convo I had with some friends' kids playing Roblox in the last year or so, which also warms my heart some to them)
youtube
Like how there are plenty of history reenactments, simulation / strategy games, content creators... quite the fascinating theater of a kids ecosystem. And among some more things I observed and witnessed in the past few months that make me see that humanity and Earth is healing. (We are getting somewhere better soon I swear, also manifesting towards it)
Idk, I appreciate it much as it is justly neat to discover what skills they practice and best deeds they are up to online in this ocean of madness. (Even in the proprietary monopolistic hellscape of side markets and data digging technologies, there is still hope amongst the young developers from what I understood)
youtube
youtube
Doesn't excuse the drama, abusive systems and horror stories coming out of this ecosystem nonetheless, but I wanted to show some empathy to this generation of people coming about, which deserve much better just like we do. (Scratch raycasters & "osdev" stuff is very cool too mind you)
youtube
So yeah, at least that whole thread of sorts motivates me furthermore to develop my very own libre creative ecosystem to improve onto this recipe of sorts... at the very least to see what great things can be made out of more... "obsolete" / "historical" tech; Thanks for reading and see you soon.
#maskoch#gratitude log#actually autistic#red instead#roblox kids and younglings stuff is fascinating to observe#Youtube
1 note
·
View note
Text
There's a few options here, most of them centered on buffering techniques. Conventionally you double-buffer graphics, which is that you have a buffer (front-buffer) that you are displaying and a buffer (back-buffer) that you are drawing to and you flip between them every time a new frame is due to be drawn, typically just by pointing the graphics card at a memory address every 1/60th or 1/144th or whatever of a second, which is cheap.
You can do this as fast as your CPU and graphics card can keep up with it, or you could delay certain tasks to try and line them up with a target framerate and the buffer flips. If you're going faster than the graphics card and display can actually display frames, you could end up overwriting the back-buffer multiple times before it draws, which is "wasted" work, since you won't see it. Frame rate limiters can take various approaches to preventing this wasted work, with varying effects on latency and performance.
There's all sorts of things that could go wrong here, like tearing, where you have started overwriting the back buffer and the graphic card decides it's time to flip buffers before you're done, so you draw a frame that is torn in half wherever you were when the flip occured. Vertical sync, triple-buffering, and other techniques can be used to avoid this.
Of course, if you have enough control of the hardware (like with, say, a variable refresh rate capable display and graphics card, or in my case, with this LED strip and microcontroller I'm working with) you can just tell the GPU "okay, time to draw now" and it'll flip and draw from the buffer on demand provided you aren't exceeding its capabilities.
Further reading:
Let's say you're writing some code with graphical output. Like a game, or a gui, or whatever. It needs to write things to the screen every frame. But if you stick in a while loop or whatever, that's just gonna run as fast as the processor can run it, it will execute those lines of code as fast as it can. How do you... keep track of the frames, relative to this, and make everything work?
116 notes
·
View notes
Text
i might start throwing my osdev stuff here cuz its interesting and frankly incredibly fucking annoying and times but it's cool
also it's the longest i've gotten my adhd to work on one project (i think like.. *checks papers* 2 years what THE FUCK??? )
3 notes
·
View notes
Text
Why do bisexuals love osdev? Because their preferred system is BI-OS
0 notes
Text
Rosehip update:
Tried using C for bootstrapping the OS (so i can use it for development, rather than my daily driver, for kicks.) and it was honestly worse to try and get it working than it was to just keep working on Davis.
I think I might make a quick stack-based language like tsoding's Porth but simpler, essentially an x86 macro but nicely formatted. Not sure tho, I'll see where Davis goes as well as how much time I have free.
4 notes
·
View notes
Text
similar art: the thing where a subset of infosec ppl LOVE to talk in a very coy "boy wouldn't you like to know" fashion about some hot #insider 0-day they know about, or some super-seekret #hax0r group they belong to, etc
often in a very annoyingly bait-y fashion, like, "oh man i heard about this crazy vuln that's gonna drop soon," "i'd love to tell you but y'know i promised secrecy," "i mean i can give you a HINT: openssl is bad" (lmao no shit), and they *desperately* want you to ask for deets so they can refuse to give deets & feel smug and superior about it
now, the vast majority of the time, these people are teens or college students, and like, i get it. you want to feel super special and super cool and you don't yet realize that your lil script kiddie group is not actually doing anything novel, it's fine
but sometimes you run into grown-ass men with multiple kids who are talking about #osdev like it's the goddamn Skull and Bones and it's like. who the hell do you think you're impressing lol
for a while i wondered if ppl were doing this b/c i'm relatively young/ladylike/get perceived as "mentorable"/etc, but then i mentioned it to a bunch of much older infosec dudes whom i actually respect and literally every single one of them rolled their eyes and was like "uuuugh THAT fucking guy i know exactly the kind you're talking about" so. i guess that's just an unfortunate constant lol
it's funny how often infosec ppl do the whole "NO recording devices allowed, blinds are DRAWN, this talk is SUPER SECRET" thing... and then have a guest list so large you know anything interesting is gonna be on twitter in 2 days tops
(fortunately for the talk-giver usually their talk has 0 interesting things so their "secrets" remain safe ig)
but yeah, it's 100% the metaphorical equivalent of those restaurants that do a whole ceremony of Making You Sign A Waiver before you order the spiciest thing on the menu
33 notes
·
View notes