Posts
3460
Following
207
Followers
342
Linux kernel maintainer. Compilers and virtualization at Parity Technologies.

Jarkko Sakkinen

ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic errors) in NeoVim 0.6.0+ and Vim 8.0+ while you edit your text files, and acts as a Vim Language Server Protocol client.

https://github.com/dense-analysis/ale

#neovim

1
1
0

Jonathan Corbet

Daniel Bristot de Oliveira passed away a few days ago at far too young an age. Some of his associates have just asked us to publish their memories of him:

https://lwn.net/Articles/979912/

What an incredible loss.
0
15
21

Jarkko Sakkinen

Edited 5 months ago

I put my old Unprivileged #Nix notes to Medium so that I won’t loose them by mistake: https://medium.com/@jarkko.sakkinen/unprivileged-nix-2c9f06b99f8e

I.e. how to get a fresh and most recent userland to any remote Linux system that you have SSH access to when exactly two contraints are met:

  1. User NS is ON.
  2. PID NS is ON.

Or to put in other words: Nix Home Manager without NixOS recipe…

0
1
1

Jarkko Sakkinen

did not know that this was to become a literal truth when the song came out https://www.youtube.com/watch?v=NWxISwEBU0U
0
0
1

Jarkko Sakkinen

X aka "never ever touch this crate" tag ;-) That is how I literally interpret it.

#Rust #RustCrypto #rustlang
1
2
8

ferris_gesture crates.io celebrates its 10 year anniversary today! 🎉

On 2014-06-25 Alex Crichton created the initial commit in the crates.io git repository: https://github.com/rust-lang/crates.io/commit/54cfc8d

A lot has happened since then, and the current crates.io team would like to say "thank you!" to all current and former contributors to crates.io and the ecosystem around it! 🤗

1
3
1

Jarkko Sakkinen

my first ever pull request for #nnn: https://github.com/jarun/nnn/pull/1904
0
0
0

Jarkko Sakkinen

Edited 5 months ago

If #Radare2 vs #Rizin makes no sense to you, perhaps #Python will. It is pretty solid tool for driving #Capstone :-)

Transcript:

raw = open('/home/jarkko/work/nnn/nnn', 'rb')
from elftools.elf.elffile import ELFFile
elf = ELFFile(raw)
symtab = {s.name: s for s in (elf.get_section_by_name('.symtab')).iter_symbols()}
sym = symtab.get('move_cursor')
addr = sym['st_value']
size = sym['st_size']
text = elf.get_section_by_name('.text')
offset = addr - text['sh_addr'] + text['sh_offset']
raw.seek(offset)
payload = raw.read(size)
from capstone import Cs, CS_ARCH_ARM64, CS_MODE_ARM)
disasm =  Cs(CS_ARCH_ARM64, CS_MODE_ARM)
for opcode in disasm.disasm(payload, addr):
    print(f"0x{opcode.address:x}:\t{opcode.mnemonic}\t{opcode.op_str}")

Just got a bit familiar this. The main benefits are obviously:

  • Recursive traversal #disassembly (vs linear sweep style in objdump)
  • Re-usable analysis
  • No boundaries how you can post-process the analysis (or visualize it)

I find this super fascinating!

3
4
1

The SIGPLAN Programming Languages Software Award goes to the original Rust team!!!!!

0
6
1

Jarkko Sakkinen

Edited 5 months ago

After reading #Ueber’s post about their use of #Zig, I tried it to random C and C++ projects:

export CC="zig cc"
export CXX="zig c++"
make

At least for relatively small projects such as nnn this seems to result working results. Still quite impressive. Next iteration would to replace Makefile with build.rs.

Also one tool that I like, ncdu, has successfully executed such conversion: https://dev.yorhel.nl/ncdu

I think I’ll try Linux with tinyconfig next by using this hacky script as basis next:

#!/usr/bin/env bash

set -e

make defconfig
scripts/config --set-str CONFIG_INITRAMFS_SOURCE "initramfs.txt"
yes '' | make oldconfig

cat > initramfs.txt << EOF
dir /dev 755 0 0
nod /dev/console 644 0 0 c 5 1
nod /dev/loop0 644 0 0 b 7 0
dir /bin 755 1000 1000
slink /bin/sh busybox 777 0 0
file /bin/busybox initramfs/busybox 755 0 0
dir /proc 755 0 0
dir /sys 755 0 0
dir /mnt 755 0 0
file /init initramfs/init.sh 755 0 0
EOF

mkdir initramfs

curl -sSf https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/busybox-static-1.36.1-r25.apk | tar zx --strip-components 1
cp busybox.static initramfs/busybox

cat > initramfs/init.sh << EOF
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
sh
EOF

It is from my old’ish post: https://social.kernel.org/notice/AgzHqrYFGplZuYr3gG

0
0
0

PipeWire 1.2 Released With Async Processing, Explicit Sync & Other Features

PipeWire 1.2 was christened today as the latest major feature update to this solution common to the modern Linux desktop for managing audio/video streams...
https://www.phoronix.com/news/PipeWire-1.2-Released

0
2
1

Jarkko Sakkinen

another classic piece of software with *uncluttered* Tk GUI: #gitk :-) #git
0
0
0

Jarkko Sakkinen

#Python #IDLE is still rockin' :-) Always have it open as my calculator (and doing binary analysis and whatnot).
0
2
2

Jarkko Sakkinen

Edited 5 months ago
rpm -qpR signal-desktop-7.13.0.aarch64.rpm 
/bin/sh
/bin/sh
at-spi2-core
gtk3
libXScrnSaver
libXtst
libnotify
libuuid
nss
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
xdg-utils

I don’t get the #xscreensaver dependency that #Signal has…

2
0
0

Jarkko Sakkinen

Edited 5 months ago

Just an observation but if considering testing ARM64-Linux, Apple is actually a “budget choice” compared to:

  1. Low-volume Linux ARM64 laptops (few available).
  2. ARM64 server racks.

Especially if you take -1 gen Apple hardware, which you can get for bargain prices pre/post the next WWDC ;-) The laptop seen in previous screenshot is M1 Pro, and it is quite nice and fast , and that is even -2 gen.

#arm64 #linux #hardware

1
3
4

Jarkko Sakkinen

1
0
4

Jarkko Sakkinen

Rick Beato is like Anthony Bourdain of music, favorite tubers: https://www.youtube.com/watch?v=1bZ0OSEViyo
0
0
1
Show older