Pinboard (jbkcc)
https://pinboard.in/u:jbkcc/public/
recent bookmarks from jbkccComputer Science from the Bottom Up2023-09-11T02:11:47+00:00
https://www.bottomupcs.com/
jbkcclowlevel operating_systems programming_languages implementation !!! systems_programming tutorialhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:1103d01ec6ea/Analysis of the overhead of a minimal Zig program - Zig NEWS2022-01-03T05:52:54+00:00
https://zig.news/aransentin/analysis-of-the-overhead-of-a-minimal-zig-program-4lg0
jbkccminimal zig programming lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:aa7846b8d2e2/Statically Recompiling NES Games into Native Executables with LLVM and Go - Andrew Kelley2021-05-04T00:06:45+00:00
https://andrewkelley.me/post/jamulator.html
jbkccI have always wanted to write an emulator. I made a half-hearted attempt in college but it never made it to a demo-able state. I also didn't want to write Yet Another Emulator. It should at least bring something new to the table. When I discovered LLVM, I felt like I finally had worthwhile idea for a project.
This article presents original research regarding the possibility of statically disassembling and recompiling Nintendo Entertainment System games into native executables. I attempt to bring the reader along from beginning to end in a sort of "let's build it together" fashion. I assume as little as possible about what the reader knows about the subjects at hand, without compromising the depth of the article.
]]>lowlevel compilation llvm andrew.kelleyhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:94f1edc69a7e/The case of the curiously slow shader | Raph Levien’s blog2021-04-29T04:51:18+00:00
https://raphlinus.github.io/gpu/2021/04/28/slow-shader.html
jbkccgpu lowlevel memory_traffic profiling performance cacheshttps://pinboard.in/https://pinboard.in/u:jbkcc/b:12c962b8fe32/Gekkio/gb-ctr: Game Boy: Complete Technical Reference2021-04-20T19:29:59+00:00
https://github.com/Gekkio/gb-ctr
jbkccgameboy emulation lowlevel documentation reverse_engineeringhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:313d60e5e7c8/Learning About ELF With Zig | g-w1’s Blog2021-04-09T03:55:37+00:00
https://g-w1.github.io/blog/zig/low-level/2021/03/15/elf-linux.html
jbkccELF is an object format that is widely used in Linux and other modern operating systems. I wanted to learn about it to become more fluent in low-level code as well as start contributing to the zig self-hosted ELF linker backend.
This post will go through how I learned about the ELF format and applied it to create a minimal linker. I then used this linker on some x86_64 brainfuck code. The next post will go over how I linked and created the brainfuck code, since it relates to this “linker” a little.
]]>example zig format elf lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:2cffb6b364de/code-relay/HowIDidIt.md at main · mmulet/code-relay2021-03-20T23:10:02+00:00
https://github.com/mmulet/code-relay/blob/main/markdown/HowIDidIt.md
jbkcc
So, how did I make a video game from a font? To understand the answer, you must first understand fonts.
[...]
Imagine my surprise when I discovered Type 2 charstrings can do more than draw! They can:
Load/store data in RAM (a whole 32 bytes of it!)
Generate random numbers
Do arithmetic
Control Flow: if, else, etc.
But in reality, most of these operators that are fun and useful for making games, have no support in the wild or are disabled altogether. But, don't lose hope, there is one incredibly useful operator, with wide support that's perfect for making games: Subroutines.
Subroutines are the function calls of Type2 Charstrings. It allows you to define a sprite once, call it from anywhere! Entire frames in fontemon are a combination of move operators and subroutine calls.
]]>font technology games lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:769cda7c79bf/Fun with Timers and cpuid - CPU fun2021-03-16T18:52:30+00:00
https://cpufun.substack.com/p/fun-with-timers-and-cpuid
jbkcclowlevel timing registers cpu microarchitecture useful referencehttps://pinboard.in/https://pinboard.in/u:jbkcc/b:e25d5e74e06c/Status update: GHC on Apple M1 hardware — The Glasgow Haskell Compiler2021-03-11T02:10:22+00:00
https://www.haskell.org/ghc/blog/20210309-apple-m1-story.html
jbkccarm haskell lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:dd5a4f5314f2/What's up with monomorphism?2021-02-20T07:42:28+00:00
https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
jbkcclowlevel javascript implementation polymorphism performancehttps://pinboard.in/https://pinboard.in/u:jbkcc/b:5be765931ea8/Python behind the scenes #8: how Python integers work2021-02-10T00:02:14+00:00
https://tenthousandmeters.com/blog/python-behind-the-scenes-8-how-python-integers-work/
jbkcclowlevel python arithmetic bignum numerics implementation deepdive seeing_the_bottomhttps://pinboard.in/u:jbkcc/b:25d2495886fe/The Elements of Computing Systems, Second Edition | The MIT Press2021-02-09T09:12:31+00:00
https://mitpress.mit.edu/books/elements-computing-systems-second-edition
jbkcc
The best way to understand how computers work is to build one from scratch, and this textbook leads learners through twelve chapters and projects that gradually build the hardware platform and software hierarchy for a simple but powerful computer system. In the process, learners gain hands-on knowledge of hardware, architecture, operating systems, programming languages, compilers, data structures and algorithms, and software engineering. Using this constructive approach, the book introduces learners to a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other computer science courses fit into the overall picture. The outcome of these efforts is known as Nand to Tetris: a journey that starts with the most elementary logic gate, called Nand, and ends, twelve projects later, with a general-purpose computer system capable of running Tetris. The first edition of this popular textbook inspired Nand to Tetris classes in universities, coding boot camps, hacker clubs, and online course platforms. This second edition has been extensively revised. It has been restructured into two distinct parts—part I, Hardware, and part II, Software—with six projects in each part. All chapters and projects have been rewritten, with an emphasis on separating abstraction from implementation, and many new sections, figures, and examples have been added. Substantial new appendixes offer focused presentation on technical and theoretical topics.
]]>seeing_the_bottom lowlevel computer_architecture physical_computinghttps://pinboard.in/https://pinboard.in/u:jbkcc/b:d768e109ae63/Rambles around computer science2021-01-08T08:39:06+00:00
https://www.cs.kent.ac.uk/people/staff/srk21/blog/2021/01/04/#elf-chain-loading
jbkccc linking lowlevel loadinghttps://pinboard.in/https://pinboard.in/u:jbkcc/b:0649870e38fe/Actually Portable Executable2021-01-07T00:26:06+00:00
https://justine.storage.googleapis.com/ape.html
jbkccwindows linux polyglot machine_code executable lowlevel hack infrastructure artifact technology political_technology artifact_activismhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:982fe2ebcf70/osx_app_in_plain_c/main.c at master · jimon/osx_app_in_plain_c2020-12-31T03:12:12+00:00
https://github.com/jimon/osx_app_in_plain_c/blob/master/main.c
jbkcclowlevel osx application c objchttps://pinboard.in/https://pinboard.in/u:jbkcc/b:69b9af8b0162/Python behind the scenes #6: how Python object system works2020-12-25T00:13:50+00:00
https://tenthousandmeters.com/blog/python-behind-the-scenes-6-how-python-object-system-works/
jbkcclowlevel python implementationhttps://pinboard.in/u:jbkcc/b:a357a15351db/Static calls in Linux 5.102020-12-18T04:20:53+00:00
https://blog.yossarian.net/2020/12/16/Static-calls-in-Linux-5-10
jbkccmicroarchitecture software_architecture cpu compilation machine_code implementation lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:785e25288621/A Physicist’s Approach to Biology Brings Ecological Insights | Quanta Magazine2020-10-19T18:42:50+00:00
https://www.quantamagazine.org/a-physicists-approach-to-biology-brings-ecological-insights-20201013/
jbkccphysics complexity ecology lowlevel modeling statistics dynamical_systemshttps://pinboard.in/https://pinboard.in/u:jbkcc/b:26c21445dc81/The (missing) harm of manual dispatch in Julia2020-09-24T19:43:51+00:00
https://andreaskroepelin.de/blog/manual_dispatch/
jbkccjulia dispatch lowlevelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:669bb73017cf/Pointers Are Complicated, or: What's in a Byte?2020-09-05T01:21:51+00:00
https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html
jbkcclowlevel llvm c memory_model semanticshttps://pinboard.in/https://pinboard.in/u:jbkcc/b:185eb510f7cd/6502 Instruction Set2020-08-28T03:16:48+00:00
https://www.masswerk.at/6502/6502_instruction_set.html
jbkccreference lowlevel 6502https://pinboard.in/https://pinboard.in/u:jbkcc/b:5594f40846ff/Darling Development Blog: Mach-O linking and loading tricks2020-08-25T03:50:40+00:00
http://blog.darlinghq.org/2018/07/mach-o-linking-and-loading-tricks.html
jbkcclowlevel macos dyldhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:05715640856b/scotws/Cthulhu-Scheme: A primitive bare-metal Scheme for the 65c022020-08-16T21:19:14+00:00
https://github.com/scotws/Cthulhu-Scheme
jbkccscheme 6502 lowlevel high_level_low_levelhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:a3e47176a3cc/Dr. Brian Robert Callahan2020-08-13T03:55:08+00:00
https://briancallahan.net/blog/20200808.html
jbkcclowlevel unix c programming _starthttps://pinboard.in/https://pinboard.in/u:jbkcc/b:15f01b9b3e66/2020-08-03: Extreme minimalism and constraints in game development (Code deep dive #1)2020-08-13T03:46:01+00:00
https://briancallahan.net/blog/20200803.html
jbkcclowlevel gamedev minimalismhttps://pinboard.in/https://pinboard.in/u:jbkcc/b:a088a15d93e2/Suppression and emphasis of features in typeface design | Just Another Blog2020-08-10T02:42:37+00:00
https://blog.justanotherfoundry.com/2014/06/suppression-and-emphasis-of-features/
jbkcctypeface_design graphic_design lowlevel micro_macrohttps://pinboard.in/https://pinboard.in/u:jbkcc/b:234873e023cd/Implementing simple cooperative threads in C • Stephen Brennan2020-05-24T19:48:55+00:00
https://brennan.io/2020/05/24/userspace-cooperative-multitasking/
jbkcccontrol_flow control_primitives setjmp longjmp coroutines lowlevelhttps://pinboard.in/u:jbkcc/b:c33ae6d36147/musl libc - Design Concepts2020-03-26T21:47:33+00:00
https://wiki.musl-libc.org/design-concepts.html
jbkccsystems_programming library_design lowlevelhttps://pinboard.in/u:jbkcc/b:b55d55274748/Concurrent programming, with examples2020-03-24T23:41:23+00:00
https://begriffs.com/posts/2020-03-23-concurrent-programming.html
jbkccprogramming_models concurrency concurrency_primitives lowlevelhttps://pinboard.in/u:jbkcc/b:b1f772e97586/Zip Files: History, Explanation and Implementation2020-03-06T17:57:26+00:00
https://www.hanshq.net/zip.html
jbkcchistory lowlevel zip history_of_technology compressionhttps://pinboard.in/u:jbkcc/b:7d539e5c0593/Smallest x86 ELF Hello World2020-01-05T06:46:27+00:00
http://timelessname.com/elfbin/
jbkccminimalism lowlevel programminghttps://pinboard.in/u:jbkcc/b:955a6a0f36fc/Hello world | Drew DeVault’s Blog2020-01-05T06:45:43+00:00
https://drewdevault.com/2020/01/04/Slow.html
jbkccminimalism lowlevelhttps://pinboard.in/u:jbkcc/b:110c6eb47eb9/Effective Python › Item 74: Consider memoryview and bytearray for Zero-Copy Interactions with bytes2019-12-17T15:51:56+00:00
https://effectivepython.com/2019/10/22/memoryview-bytearray-zero-copy-interactions
jbkccarray_programming lowlevel pythonhttps://pinboard.in/u:jbkcc/b:20462dbee6f8/Compile Metal shader Bitcode to x86 and ARM assembly | Worth Doing Badly2019-09-23T22:05:33+00:00
https://worthdoingbadly.com/metalbitcode/
jbkccbitcode metal gpu lowlevel reverse_engineeringhttps://pinboard.in/u:jbkcc/b:2774c76cdeb0/What Remains Technical Breakdown | dustmop.io blog2019-09-11T17:57:06+00:00
http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/
jbkccnes lisp nintendo low_level_high_level lowlevelhttps://pinboard.in/u:jbkcc/b:ef1253179603/From zero to main(): Bare metal C2019-05-16T17:39:14+00:00
https://interrupt.memfault.com/blog/zero-to-main-1
jbkccarm embedded francois.baldassari lowlevelhttps://pinboard.in/u:jbkcc/b:fd2458fc66fe/Demystifying NSApplication by recreating it2019-03-25T05:01:06+00:00
https://www.cocoawithlove.com/2009/01/demystifying-nsapplication-by.html
jbkccNSApplicationMain call (invoked in a Cocoa application's main function) and the sendEvent: method (which distributes the events to windows and views from the main run loop). By recreating this code for you, I hope to explain the steps that occur between program startup and the dispatch of events to your code — so you can gain greater understanding of what NSApplication does on your behalf.]]>cocoa lowlevel matt.gallagher seeing_the_bottom nsapplicationhttps://pinboard.in/u:jbkcc/b:f2bb5b61876a/emmericp/ixy: Simple userspace packet processing for educational purposes 🎓2019-03-01T23:22:07+00:00
https://github.com/emmericp/ixy
jbkcctutorial userspace_networking userspace drivers network_drivers lowlevelhttps://pinboard.in/u:jbkcc/b:24914a4cd0ca/Socket options SO_REUSEADDR and SO_REUSEPORT, how do they differ? Do they mean the same across all major operating systems? - Stack Overflow2019-02-06T18:34:49+00:00
https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t/14388707#14388707
jbkccnetworking sockets lowlevel bsd reference tutorial comprehensivehttps://pinboard.in/u:jbkcc/b:fbae18b7e647/Mapping High Level Constructs to LLVM IR — Mapping High Level Constructs to LLVM IR documentation2019-01-28T17:20:47+00:00
https://mapping-high-level-constructs-to-llvm-ir.readthedocs.io/en/latest/
jbkccreference implementation compilers lowlevel llvm high_level_low_level tutorialhttps://pinboard.in/u:jbkcc/b:bd1cbcb6ad0c/Performance of Rust's match vs. lookup tables2019-01-28T17:13:16+00:00
https://kevinlynagh.com/notes/match-vs-lookup/
jbkccdevlog performance writeup development rust llvm lowlevelhttps://pinboard.in/u:jbkcc/b:806e4c210e02/LLVM Language Reference Manual2018-11-12T17:28:40+00:00
https://llvm.org/docs/LangRef.html
jbkccllvm language llvm_ir reference compilers lowlevelhttps://pinboard.in/u:jbkcc/b:c58d41932cde/Bringing macros to Python by abusing type annotations - Tinkering2018-08-20T15:16:10+00:00
https://tinkering.xyz/abusing-type-annotations/
jbkccpython metaprogramming play lowlevelhttps://pinboard.in/u:jbkcc/b:574c7088dde4/Controlling Queue Delay - ACM Queue2018-08-17T06:12:51+00:00
https://queue.acm.org/detail.cfm?id=2209336
jbkccbufferbloat networking queue_delay lowlevelhttps://pinboard.in/u:jbkcc/b:9a6bc4b4fb70/Mach Scheduling and Thread Interfaces2018-08-02T00:41:40+00:00
https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html
jbkccapi lowlevel scheduling threads machhttps://pinboard.in/u:jbkcc/b:f299b9bdf779/Performance of Wireless Networks: WiFi - High Performance Browser Networking (O'Reilly)2018-06-11T15:44:04+00:00
https://hpbn.co/wifi/
jbkccwireless wifi reference networking 802.11b lowlevelhttps://pinboard.in/u:jbkcc/b:4fe83fb2f6ac/When FFI Function Calls Beat Native C « null program2018-05-29T17:17:50+00:00
https://nullprogram.com/blog/2018/05/27/
jbkccbenchmarking x86_64 ffi jit function_call lowlevelhttps://pinboard.in/u:jbkcc/b:3b65174fecf7/Why Raspberry Pi isn't vulnerable to Spectre or Meltdown - Raspberry Pi2018-01-06T04:48:55+00:00
https://www.raspberrypi.org/blog/why-raspberry-pi-isnt-vulnerable-to-spectre-or-meltdown/
jbkccside_effects side_channel spectre meltdown explanation branch_prediction caching data_dependencies lowlevel cpu cpu_architecturehttps://pinboard.in/u:jbkcc/b:616659e9d6ac/How to Print Integers Really Fast (With Open Source AppNexus Code!) - Paul Khuong: some Lisp2017-12-25T06:37:05+00:00
https://www.pvk.ca/Blog/2017/12/22/appnexus-common-framework-its-out-also-how-to-print-integers-faster/
jbkcclowlevel paul.khuong analysis algorithms optimizationhttps://pinboard.in/u:jbkcc/b:dd596c42c52c/Writing a basic x86-64 JIT compiler from scratch in stock Python2017-11-10T01:58:25+00:00
https://csl.name/post/python-jit/
jbkccpython x86_64 tutorial jit lowlevelhttps://pinboard.in/u:jbkcc/b:7a94352f418f/Build a working game of Tetris in Conway's Game of Life - Programming Puzzles & Code Golf Stack Exchange2017-09-14T08:51:25+00:00
https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-tetris-in-conways-game-of-life
jbkccmateriality computation lowlevel game_of_life conway emulation abstraction engineering designhttps://pinboard.in/u:jbkcc/b:86eed9230aee/Cello • High Level C2017-04-11T19:54:40+00:00
http://libcello.org/
jbkccprogramming_language_design metaprogramming c reflection lowlevelhttps://pinboard.in/u:jbkcc/b:9d008a35f5e9/ABI Compliance Checker2016-04-20T16:54:09+00:00
http://lvc.github.io/abi-compliance-checker/
jbkccabi compliance validation compilers lowlevelhttps://pinboard.in/u:jbkcc/b:3502fd0617c8/The Descent to C2016-04-19T02:09:49+00:00
http://www.chiark.greenend.org.uk/~sgtatham/cdescent/
jbkccintroduction c_language programming lowlevelhttps://pinboard.in/u:jbkcc/b:10ef913a058c/Introduction | Practical Guide to Bare Metal C++2016-04-06T07:57:40+00:00
https://arobenko.gitbooks.io/bare_metal_cpp/content/
jbkccbaremetal embedded_programming c++ lowlevel internals embedded_systems freestandinghttps://pinboard.in/u:jbkcc/b:fdec5fcfc549/The Definitive Guide to Linux System Calls2016-04-06T07:56:53+00:00
http://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/
jbkccsyscall lowlevel linuxhttps://pinboard.in/u:jbkcc/b:e1d5d6d6b7a4/Tracing Objective-C method calls – Technical Notes2016-04-06T07:53:12+00:00
http://debugtrap.com/2016/02/28/ARM64-method-tracing/
jbkcctracing lowlevel objchttps://pinboard.in/u:jbkcc/b:05be51df954d/Hotpatching a C Function on x86 « null program2016-04-06T06:58:21+00:00
http://nullprogram.com/blog/2016/03/31/
jbkccminimal dynamism code_as_data jit examples lowlevelhttps://pinboard.in/u:jbkcc/b:b381bc3b0f9b/A Basic Just-In-Time Compiler « null program2016-04-06T06:16:28+00:00
http://nullprogram.com/blog/2015/03/19/
jbkcclowlevel tiny examples jit beautiful hack compilationhttps://pinboard.in/u:jbkcc/b:5a98a8dbdc10/Run Hello » Blog Archive » No Compiler2016-03-04T02:25:05+00:00
http://msm.runhello.com/p/1003
jbkcccompilers llvm war_story lowlevel tutorial programming blog didactic languageshttps://pinboard.in/u:jbkcc/b:1597ff8dbb02/Joe Duffy - Safe Native Code2015-12-20T22:22:58+00:00
http://joeduffyblog.com/2015/12/19/safe-native-code/
jbkcclanguage_design programming_languages programming_language_design joe.duffy lowlevelhttps://pinboard.in/u:jbkcc/b:bdab6f66d4ce/rentzsch/mach_inject2015-07-29T15:09:43+00:00
https://github.com/rentzsch/mach_inject
jbkccmach_inject - interprocess code injection for Mac OS X]]>lowlevel code_injection interposition reverse_engineeringhttps://pinboard.in/u:jbkcc/b:4b125db6ca55/rodionovd/task_vaccine2015-07-29T15:09:25+00:00
https://github.com/rodionovd/task_vaccine
jbkcctask_vaccine - Yet another code injection library for OS X]]>lowlevel code_injection osxhttps://pinboard.in/u:jbkcc/b:58dc9f3851ab/Errata Security: x86 is a high-level language2015-03-25T17:35:37+00:00
http://blog.erratasec.com/2015/03/x86-is-high-level-language.html#.VRLn95PF_XE
jbkccx86 lowlevel internalshttps://pinboard.in/u:jbkcc/b:c8f2d74e4bec/What's new in CPUs since the 80s and how does it affect programmers?2015-01-13T17:27:21+00:00
http://danluu.com/new-cpu-features/
jbkcccpu performance architecture programming hardware lowlevel mental_modelhttps://pinboard.in/u:jbkcc/b:ab18aac3b7f1/Debugging: A Case Study - Debugging - objc.io issue #192014-12-15T16:01:17+00:00
http://www.objc.io/issue-19/debugging-case-study.html
jbkccA periodical about best practices and advanced techniques for iOS and OS X development.]]>debugging lowlevel objc swift lldbhttps://pinboard.in/u:jbkcc/b:53fd17702c76/Chasing an EPROTOTYPE Through Rust, Sendto, and the OSX Kernel With C-Reduce - Tilting at Rabbit Holes2014-11-20T02:35:14+00:00
http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/
jbkccdebugging error war_story kernel trace osx lowlevel testcasehttps://pinboard.in/u:jbkcc/b:f97d7754e913/Free Interactive Network Packet Builder 1.062014-11-10T17:56:38+00:00
http://www.wirefloss.com/
jbkccFree Interactive network Packet Builder]]>lowlevel packet network toolshttps://pinboard.in/u:jbkcc/b:c1b35c57ebe5/WireEdit2014-11-10T17:56:24+00:00
https://wireedit.com/
jbkcclowlevel packet network editor tool_designhttps://pinboard.in/u:jbkcc/b:d37d50c8ff20/Haskell for all: How to desugar Haskell code2014-11-04T16:25:55+00:00
http://www.haskellforall.com/2014/10/how-to-desugar-haskell-code.html
jbkcchaskell lowlevel desugar syntax reference programming sugar seeing_the_bottomhttps://pinboard.in/u:jbkcc/b:3d6de8bffa9b/