Archive for July, 2015

SCHED_DEADLINE realtime scheduling in Linux

This is best explained by the lwn.net article:

https://lwn.net/Articles/396634/

http://www.artist-embedded.org/docs/Events/2010/OSPERT/OSPERT2010-Proceedings.pdf

http://retis.sssup.it/~marko/papers/ICPP09.pdf

ftp://ftp.rcs.ei.tum.de/pub/papers/rtsg/edffast.pdf

https://wiki.automotivelinux.org/sched_deadline

http://retis.sssup.it/~jlelli/talks/rts-like14/SCHED_DEADLINE.pdf

https://www.kernel.org/doc/Documentation/scheduler/sched-deadline.txt

elinux.org/images/b/b6/ELC2013-Kobayashi.pdf

Realtime framework in Android:

http://stackoverflow.com/questions/2380774/android-architecture-for-real-time-applications?rq=1

Back to school: Learning security in Linux: old and new stuff

Linux Security: Securing and Hardening Linux Production Systems

http://www.puschitz.com/SecuringLinux.shtml

And Ubuntu has a matrix to show its security features:

https://wiki.ubuntu.com/Security/Features

Seccomp and Sandboxing:

http://lwn.net/Articles/332974/
https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt

“What the Chrome developers would like is a more flexible way of specifying which system calls can be run directly by code inside the sandbox.One suggestion that came out was to add a new “mode” to seccomp. The API was designed with the idea that different applications might have different security requirements; it includes a “mode” value which specifies the restrictions that should be put in place. Only the original mode has ever been implemented, but others can certainly be added. Creating a new mode which allowed the initiating process to specify which system calls would be allowed would make the facility more useful for situations like the Chrome sandbox.”

Bypassing module_disabled functionality (disabling kernel modules loading):

http://turbochaos.blogspot.sg/2013/10/writing-linux-rootkits-301_31.html

Ultrasonic sensor + Arduino programming

After purchasing this ultrasonic sensor (JSN-SR04T):

http://www.aliexpress.com/store/product/JSN-SR04T-integrated-ultrasonic-ranging-module-waterproof-type-ultrasonic-reversing-radar/221555_2041881738.html

I have got some problem understanding the specs and programming it. After some experimentation, and reading up Arduino’s version of the solution:

http://playground.arduino.cc/Main/UltrasonicSensor

The following is the outcome:

unsigned long echo = 0;
int ultraSoundSignal = 9; // Ultrasound signal pin
int ultraSoundSignalIN = 7; // Ultrasound signal pin

unsigned long ultrasoundValue = 0;

void setup()
{
Serial.begin(9600);
pinMode(ultraSoundSignal,OUTPUT);
pinMode(ultraSoundSignalIN,INPUT);

}

unsigned long ping(){
pinMode(ultraSoundSignal, OUTPUT); // Switch signalpin to output
digitalWrite(ultraSoundSignal, LOW); // Send low pulse
delayMicroseconds(2); // Wait for 2 microseconds
digitalWrite(ultraSoundSignal, HIGH); // Send high pulse
delayMicroseconds(15); // Wait for 15 microseconds
digitalWrite(ultraSoundSignal, LOW); // Holdoff
pinMode(ultraSoundSignalIN, INPUT); // Switch signalpin to input
digitalWrite(ultraSoundSignalIN, HIGH); // Turn on pullup resistor
// please note that pulseIn has a 1sec timeout, which may
// not be desirable. Depending on your sensor specs, you
// can likely bound the time like this — marcmerlin
// echo = pulseIn(ultraSoundSignal, HIGH, 38000)
echo = pulseIn(ultraSoundSignalIN, HIGH); //Listen for echo
Serial.println(echo);
ultrasoundValue = (echo / 58.138) * .39; //convert to CM then to inches
return ultrasoundValue;

}

void loop()
{
int x = 0;
x = ping();
//Serial.println(x);
delay(250); //delay 1/4 seconds.

}

%d bloggers like this: