Executable and Linkable Format (ELF), is the default binary format on Linux-based systems.
Here is easy steps to try Windows 10 on ARM or Ubuntu for ARM64 on your Apple Silicon Mac. Enjoy!
NOTE: that this is current, 10/1/2021 state.
- Install Xcode from App Store or install Command Line Tools on your Mac
for (self.progs.items) |*prog| { | |
const rel_name = try std.mem.join(self.allocator, "", &[_][]const u8{ ".rel", prog.name }); | |
defer self.allocator.free(rel_name); | |
const rel_section: *Elf.Section = for (self.elf.relos.items) |relo| { | |
if (mem.eql(u8, self.elf.get_section_name(relo), rel_name)) { | |
break relo; | |
} | |
} else continue; |
If you, like me, resent every dollar spent on commercial PDF tools,
you might want to know how to change the text content of a PDF without
having to pay for Adobe Acrobat or another PDF tool. I didn't see an
obvious open-source tool that lets you dig into PDF internals, but I
did discover a few useful facts about how PDFs are structured that
I think may prove useful to others (or myself) in the future. They
are recorded here. They are surely not universally applicable --
the PDF standard is truly Byzantine -- but they worked for my case.
// | |
// スクリプトコンソールで使うスクリプトです。 | |
// 指定されたビューにある、無効化されたジョブに関して以下の作業をします: | |
// | |
// * ワークスペースがあれば削除します | |
// * 最後の成功ビルドと安定ビルド以外を削除します | |
// * 実際に削除する行がコメントアウトしてあるので、一度、何が消えるか確認してから、コメントを外して再実行しましょう | |
// | |
def jenkins = Jenkins.instance |
This document describes how to play SRv6 PSP and End.AM with a modified linux kernel, which was implemented for Interop Tokyo 2019 ShowNet.
The enhancements are:
- End.AM (Masquerading proxy)
- PSP (penultimate segment POP of the SRH) for End, End.X, and End.T
- End.AC (Caching proxy, designed in ShowNet 2019, and its detail will be presented soon)
We are currently working for brushing up patches to try upstream ;)
HotOS 2019 で Microsoft Research からの論文である.Unixの代表的なシステムコールであるfork()についての問題点を挙げている.
fork()は最も基本的なシステムコールといっても良く,新しいプロセスを作るときに使われる.今回の論文の主張はfork()は1970年代のマシンではハックと呼べるものだったが,現代では過去の負債となっているというものでおり,カーネルから完全に取り除くべきであるというものである.ただし,ここでいうカーネルとはLinuxカーネルのことを直接指しているのではなく,著者の先行研究でのOSの実装のことを指している.
面白いのは,fork()は研究者にとっては研究を阻害するといったことや,教育者は歴史としては教えるべきだが最初に教わるべきプロセス作成の仕組みとしてはふさわしくないといった中々過激なことを言っているところである.
現代的なコンピュータシステムにおける問題点として次のようなことが挙げられている.
- かつてはシンプルであったが,最早そうではない
- 25もの特別なケースが親プロセスの状態を子プロセスにコピーするときに存在する.例えば,ファイルロック,タイマー,非同期IOやトレーシングなど.また,コピー後のメモリマッピングに関して,madvice()に与えるフラグも非常に多いものとなっている.
- Remote Code Executionとして、Advisoryが更新された。
- https://groups.google.com/d/msg/rubyonrails-security/zRNVOUhKHrg/GmmcVXcmAAAJ
- Thanks to @sorah @tenderlove
#define KBUILD_MODNAME "foo" | |
#include <uapi/linux/bpf.h> | |
#include <linux/bpf.h> | |
#include <linux/icmp.h> | |
#include <linux/if_ether.h> | |
#include <linux/if_vlan.h> | |
#include <linux/in.h> | |
#include <linux/ip.h> | |
#include <linux/tcp.h> | |
#include <linux/udp.h> |
root@R4:~# trace-cmd record -p function_graph -g input_action_end_dx4 | |
plugin 'function_graph' | |
Hit Ctrl^C to stop recording | |
^CCPU0 data recorded at offset=0x4b5000 | |
4096 bytes in size | |
root@R4:~# trace-cmd report | |
cpus=1 | |
<idle>-0 [000] 4724.772017: funcgraph_entry: | input_action_end_dx4() { | |
<idle>-0 [000] 4724.772043: funcgraph_entry: | decap_and_validate() { | |
<idle>-0 [000] 4724.772043: funcgraph_entry: | get_srh() { |