Le 16/06/2016 23:16, Steve Litt a écrit :
If the machine were anything but a demonstration experimental machine,
so would I contemplate suicide or systemd. Same with Python, Ruby, and
(urk) Javascript. But truth be told, if PID1 were written in Lua, I
would not be dismayed in the slightest.
IIUC (not having a very strong practice on English), you don't like
it in Perl (except for demo) but you would love it written in Lua. I
have written a program in Lua long ago and got a good opinion of this
language, but he problem is that Lua is not as easily available as Perl.
Even in the tiny Busybox, you can have Perl, or even a subset called
Miniperl which is probably enough to run an init program.
Le 17/06/2016 03:44, Adam Borowski a écrit :
Yeah, we need to use an efficient language!
.globl _start
.data
nopid1: .ascii "No pid 1, no fun.\n"
command: .ascii "/sbin/osloader.sh"
norc: .ascii "Starting /sbin/osloader.sh failed!\n"
.text
_start:
mov $39, %rax # getpid
syscall
cmp $1, %rax
je pid1
mov $1, %rax # write
mov $1, %rdi
mov $nopid1, %rsi
mov $18, %rdx
syscall
mov $60, %rax # _exit
mov $1, %rdi
syscall
pid1:
mov $57, %rax # fork
syscall
cmp $0, %rax
jne child
parent:
mov $61, %rax # wait4
mov $-1, %rdi
xor %rsi, %rsi
xor %rdx, %rdx
syscall
jmp parent
child:
mov $59, %rax # execve
mov $command, %rdi
xor %rsi, %rsi
xor %rdx, %rdx
syscall
mov $1, %rax # write
mov $1, %rdi
mov $norc, %rsi
mov $36, %rdx
syscall
mov $60, %rax # _exit
mov $1, %rdi
syscall
Hmmm... I think I'd go with Perl after all.
Here again, I'm not sure if you are serious, but I take it
seriously. I wouldn't like to have init written in assembly language
because it is arch-dependent, but wether it is in C or Perl, I think it
doesn't matter - I prefer the C language because I know it well while I
don't know Perl, but this is just personnal.
However I think init must do more on the long run than reaping
zombies. It should ensure in some way that at least someone can login to
the system to do something, for example it should supervise a
supervisor, or at least supervise a getty. Otherwise the only way to
reboot a locked-in system is power-down.
Didier
_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng