Wikipedia (de): Robert Watson (Informatiker)
Wikipedia (en): Robert Watson (computer scientist)
www.watson.org
Robert N. M. Watson Homepage
University of Cambridge: Robert N. M. Watson
vDSOs (virtual dynamically linked shared objects)
What are vdso and vsyscall?
Creating a vDSO: the Colonel’s Other Chicken
On vsyscalls and the vDSO
Linux syscall, vsyscall, and vDSO… Oh My!
What is linux-gate.so.1?
Sysenter Based System Call Mechanism in Linux 2.6
How to invoke a system call via sysenter in inline assembly (x86/amd64 linux)?
Intel x86 vs x64 system call
Call gate
System Calls
Sysenter
Debugging in AMD64 64-bit Mode in Theory
Linux kernel interfaces
The Linux Programming Interface
System call
wait (system call)
read (system call)
Linux System Calls Overview
Where is the system call table in linux kernel v3.9?
Where is the system call table in linux kernel v3.9?
Adding a System call for Linux 3.10 x86_64
ARM Kernel-provided User Helpers
Add new system call to linux kernel…
Linux Syscall Reference for Kernel 2.6
List of Linux/i386 system calls for Kernel 2.6
man syscalls – Linux system calls
Adding Syscalls To FreeBSD
runtime: reconsider using SYSCALL instruction on FreeBSD
Reading the FreeBSD Kernel
int80h.org
grep -r sysenter . grep -r sysexit . grep -r db_inst_0f0x . grep -r db_inst_0f . grep -r "int 0x80" . grep -r "syscall" . grep -r "sys/syscall.h" . grep -r "sy_call" . grep -r sigtramp.S . grep -r "NON_GPROF_ENTRY(sigcode)" . grep -r "sigcode" . grep -r SYS_sigreturn .
#include <sys/syscall.h>
./powerpc/booke/vm_machdep.c
./powerpc/booke/trap.c:
./i386/i386/trap.c
./i386/i386/elf_machdep.c
./i386/i386/locore.s
./i386/xen/locore.s
./arm/arm/sys_machdep.c
./arm/arm/vm_machdep.c
./arm/arm/trap.c
./arm/arm/locore.S
./arm/arm/elf_machdep.c
./amd64/amd64/trap.c
./amd64/amd64/elf_machdep.c
./amd64/ia32/ia32_signal.c
./amd64/ia32/ia32_sigtramp.S
./amd64/ia32/ia32_reg.c
./amd64/ia32/ia32_syscall.c
SYS_syscall
cpu_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
/*
* System call handler for native binaries. The trap frame is already
* set up by the assembler trampoline and a pointer to it is saved in
* td_frame.
*/
void
amd64_syscall(struct thread *td, int traced)
{
[...]
}
./kern/subr_syscall.c:syscallenter(struct thread *td, struct syscall_args *sa)
static inline int
syscallenter(struct thread *td, struct syscall_args *sa)
{
struct proc *p;
int error, traced;
PCPU_INC(cnt.v_syscall);
p = td->td_proc;
error = (p->p_sysent->sv_fetch_syscall_args)(td, sa);
error = syscall_thread_enter(td, sa->callp);
AUDIT_SYSCALL_ENTER(sa->code, td);
error = (sa->callp->sy_call)(td, sa->args);
AUDIT_SYSCALL_EXIT(error, td);
syscall_thread_exit(td, sa->callp);
}
./amd64/amd64/db_trace.c: sy_call_t *f;
./amd64/amd64/db_trace.c: f = p->p_sysent->sv_table[number].sy_call;
The arguments of sys_sigreturn
svn commit: r245414 – head/sys/arm/arm/locore.S
==================================================
Wikipedia: INT (x86 instruction)
List of ARM microarchitectures
Thumb software interrupt and breakpoint instructions > Software interrupt (SWI)
Developing software for Cortex-M3 > Supervisor Calls (SVC) => formerly SWI
ARM and Thumb Instructions > Hypervisor Call (HVC) (Virtualization Extensions)
SWI : SoftWare Interrupt
Keil: SWI Functions, run in Supervisor Mode of ARM7 and ARM9, interrupt protected
Keil: SVC Functions, run in Privileged Handler Mode of the Cortex-M core
Are ARM instructuons SWI and SVC exactly same thing?
How to use the SWI in ARM Cortex A9 for enabling the IRQ interrupt?
Which Cortex-M3 interrupts can I use for general purpose work?
Effective Use of ARM Cortex-M3 SVCall
Windowing system
Display server
Desktop Environments
Comparison of X Window System desktop environments
What kinds of desktop environments and shells are available?
Window Manager
Comparison of X Window Managers
How to determine which window manager is running
$ sudo apt-get install wmctrl $ man wmctrl -m Display information about the window manager ... $ wmctrl -m Name: Metacity $ echo $DESKTOP_SESSION ubuntu-2d $ echo $XDG_CURRENT_DESKTOP Unity
CC3200, for CC3200-LAUNCHXL
TI Stellaris LaunchPad EK-LM4F120XL
CC3200 SDK (Windows Only)
CC31xx & CC32xx Wiki (SimpleLink)
CC3200 SimpleLink Overview
CC3200 SimpleLink Porting
CC3200 Peripheral Driver Library User’s Guide
CC32xx LaunchPad Hardware
TI PinMux Tool
TI PinMux Tool v4 in the Cloud (YouTube Video)
CC32xx SDK Sample Applications
Getting Started with WLAN Station -User’s Guide
Programmer’s Guide
Energia CC3200 Jumper Settings
Creating a basic Wireless App for CC3200
Using the CC3200 Launchpad Under Linux
TI’s SimpleLink CC3200-LaunchXL with Linux First Steps
CC3200 development under Linux
CC3200-Linux-SDK: SDK, tools and doc about CC3200 uC development under linux
awk = Aho, Weinberger, and Kernighan
$0 = whole line $1 = first field $2 = second field [...] $NF = last field FS = field separator, default FS=\s+ OFS = output field seperator RS = record (line) separator ORS = output record seperator NR = number of records (counter from 1 to n) NF = total number of fields FILENAME = name of the current input file FNR = number of records relative to the current input file match() -> RSTART = where the pattern starts -> RLENGTH = the length of the pattern
Awk – A Tutorial and Introduction – by Bruce Barnett
Awk Introduction Tutorial – 7 Awk Print Examples
10 Awk Tips, Tricks and Pitfalls
gawk Manual – Startup and Cleanup Actions
AWK scripting: 10 BEGIN and END block examples
BEGIN { just once }
{ every record by itself }
END { just once }
8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
gawk Manual – String-Manipulation Functions
awk – concatenate two string variable and assign to a third
gawk Manual – String Concatenation
$ awk '{b=$1$2; print b}' file
$ awk '{b=$1" "$2; print b}' file
$ awk '{b=$1 FS $2; print b}' file
gawk Manual – Using Dynamic Regexps
gawk Manual – Using Regular Expression Constants
Pass shell variable as a /pattern/ to awk
How to use awk variables in regular expressions?
Passing variable to awk and using that in a regular expression
![]() |
Internet of Things Protocols & Standards
IEEE 802.15.4
6LoWPAN
Yaler.net – Access devices from the Web
LORIOT | LoRaWAN Services and Software
LoRa Technology
Semtech Corporation SX1276MB1MAS, LORA BI-BAND 433/868 MBED SHIELD
Extreme Range Links: LoRa 868 / 900MHz SX1272 LoRa module for Arduino Waspmote and Raspberry Pi
SX127X LoRa Product Family
Lora-net/lora_gateway
Lora-net/packet_forwarder
Lora-net/LoRaMac-node
mirakonta: Run lora_gateway and packet_forwarder on OpenWrt
mirakonta: MAKE your own 200€ LoRa gateway
IBM Research Lab Zurich: IBM Long-Range Signaling and Control (LRSC) – LoRa WAN in C
github: devttys0/libmpsse, Open source library for SPI/I2C control via FTDI chips
TTN ZH: From zero to LoRaWAN in a weekend
LoRa Gateways and Concentrators
iC880A – LoRaWAN Concentrator 868MHz
Webshop: iC880A-SPI – LoRaWAN Concentrator 868MHz
Modtronix inAir9, Sydney
Modtronix SX1276Lib
Microchip RN2483, over UART
Multi-Tech git Repository
digikey: Multi-Tech Systems MTAC-LORA-868
digikey: Multi-Tech Systems MTAC-LORA-915
Multi-Tech Systems AN868-915A-10HRA
IMST iC880A, Photo with USB connection
Raspberry Pi and Multitech LoRa mCard
MultiTech MultiConnect mCard in mini-PCIe slot on ALIX6 or APU from PC Engines
TheThingsNetwork
The Things Network Shop
Gateway Test
TheThingsNetwork Wiki
Getting STarted with The Things Network
Software Overview
Hardware Overview – Gateways
Hardware Overview – Nodes
Installing your Multitech mLinux Conduit
Architecture
Current Network
TheThingsNetwork/lora_gateway
TheThingsNetwork/packet_forwarder
Gateway IMST IC880A / RBPI
TTN Gateway
LPWAN Map
Meiland TTN Map
TTN Zurich
The AirBoard
The AirBoard – Quick Start
The Things Network
The Things Network Wiki
Hardware Overview – Nodes
Microchip RN2483
IMST iM880a
SIGFOX
Let’s start playing with sigfox technology, 20.03.2014
Using Telecom Design’s TD120x as a SIGFOX gateway with a Z1 mote
Wireless Garden sensing Prototype A and B (Intel Galileo, Spark Core and Grove)
A simple WiFi power cord switch with the OLIMEX ESP8266 evaluation board
Transceivers
SoC
Modules
EVK & Dev Kits
Ingenu’s RPMA Technology
Wikipedia: Random phase multiple access (RPMA)