Comments (3)
Running ash in busybox
strace ./busybox sh
The strace output is:
execve("./busybox", ["./busybox", "sh"], ["HOSTNAME=3e7006a98bdb", "PWD=/root/busybox-1.35.0", "HOME=/root", "LS_COLORS=rs=0:di=01;34:ln=01;36"..., "TERM=xterm", "SHLVL=1", "PATH=/usr/local/sbin:/usr/local/"..., "_=/usr/bin/strace", "OLDPWD=/root"]) = 0
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe99d97ab0) = -1 EINVAL (Invalid argument)
brk(NULL) = 0xbc6000
brk(0xbc7200) = 0xbc7200
arch_prctl(ARCH_SET_FS, 0xbc68c0) = 0
uname({sysname="Linux", nodename="3e7006a98bdb", release="5.15.0-48-generic", version="#54~20.04.1-Ubuntu SMP Thu Sep 1 16:17:26 UTC 2022", machine="x86_64", domainname="(none)"}) = 0
readlink("/proc/self/exe", "/root/busybox-1.35.0/busybox", 4096) = 28
brk(0xbe8200) = 0xbe8200
brk(0xbe9000) = 0xbe9000
mprotect(0x67c000, 24576, PROT_READ) = 0
prctl(PR_GET_NAME, "busybox") = 0
getuid() = 0
getpid() = 17
getppid() = 14
getcwd("/root/busybox-1.35.0", 192) = 21
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(1, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGPGRP, [14]) = 0
fcntl(0, F_DUPFD_CLOEXEC, 255) = 255
fcntl(255, F_SETFD, FD_CLOEXEC) = 0
getpgrp() = 14
ioctl(255, TIOCGPGRP, [14]) = 0
rt_sigaction(SIGHUP, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
setpgid(0, 0) = 0
ioctl(255, TIOCSPGRP, [17]) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
openat(AT_FDCWD, "/root/.hush_history", O_RDONLY) = -1 ENOENT (No such file or directory)
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=26, ws_col=140, ws_xpixel=0, ws_ypixel=0}) = 0
getcwd("/root/busybox-1.35.0", 192) = 21
geteuid() = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY) = 3
fstat(3, {st_dev=makedev(0, 0xcc), st_ino=104335636, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=926, st_atime=1647828549 /* 2022-03-21T02:09:09.363458134+0000 */, st_atime_nsec=363458134, st_mtime=1641401277 /* 2022-01-05T16:47:57+0000 */, st_mtime_nsec=0, st_ctime=1642749328 /* 2022-01-21T07:15:28.671539588+0000 */, st_ctime_nsec=671539588}) = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 926
close(3) = 0
geteuid() = 0
fstat(1, {st_dev=makedev(0, 0xdc), st_ino=3, st_mode=S_IFCHR|0620, st_nlink=1, st_uid=0, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(0x88, 0), st_atime=1667289184 /* 2022-11-01T07:53:04.981857601+0000 */, st_atime_nsec=981857601, st_mtime=1667289184 /* 2022-11-01T07:53:04.981857601+0000 */, st_mtime_nsec=981857601, st_ctime=1667289064 /* 2022-11-01T07:51:04.038189430+0000 */, st_ctime_nsec=38189430}) = 0
rt_sigaction(SIGWINCH, {sa_handler=0x5e3228, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(1, "~/busybox-1.35.0 # ", 19~/busybox-1.35.0 # ) = 19
poll([{fd=0, events=POLLIN}], 1, -1
When press key, the poll will return and poll another event.
from asterinas.
run ls
in ash
openat(AT_FDCWD, "/root/.hush_history", O_WRONLY|O_CREAT|O_APPEND, 0600) = 3
lseek(3, 0, SEEK_END) = 0
write(3, "ls\n", 3) = 3
close(3) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
rt_sigaction(SIGWINCH, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x42e5c0}, NULL, 8) = 0
vfork() = 18
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WSTOPPED, NULL) = 18
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=18, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({mask=[]}) = 18
getpgrp() = 17
ioctl(255, TIOCSPGRP, [17]) = 0
wait4(-1, 0x7ffe99d97634, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
wait4(-1, 0x7ffe99d97634, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=26, ws_col=140, ws_xpixel=0, ws_ypixel=0}) = 0
getcwd("/root/busybox-1.35.0", 192) = 21
geteuid() = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY) = 3
fstat(3, {st_dev=makedev(0, 0xcc), st_ino=104335636, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=926, st_atime=1647828549 /* 2022-03-21T02:09:09.363458134+0000 */, st_atime_nsec=363458134, st_mtime=1641401277 /* 2022-01-05T16:47:57+0000 */, st_mtime_nsec=0, st_ctime=1642749328 /* 2022-01-21T07:15:28.671539588+0000 */, st_ctime_nsec=671539588}) = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 926
close(3) = 0
geteuid() = 0
rt_sigaction(SIGWINCH, {sa_handler=0x5e3228, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x42e5c0}, 8) = 0
write(1, "~/busybox-1.35.0 # ", 19~/busybox-1.35.0 # ) = 19
poll([{fd=0, events=POLLIN}], 1, -1
from asterinas.
Done
from asterinas.
Related Issues (20)
- `make build` causes `ERROR 403: rate limit exceeded.` HOT 4
- something wrong with make run command HOT 2
- [Performance] Frequent usage of `mutex` significantly slows down performance. HOT 3
- Polling ifaces may not ensure packets be transmitted
- [RFC] Device IO dispatcher design HOT 1
- [RFC] Refactor virtual memory module
- make run fails: no suitable video mode found HOT 2
- Revisit the memory order used in the `WaitQueue`/`Waker`/`Waiter` HOT 3
- [Performance] The functions `core::ptr::copy` and `core::ptr::copy_nonoverlapping` for copying memory are slow HOT 38
- [Performance] The slowness of `trapframe` leads to a slowdown in handling syscalls.
- Missing `f_mode` in FileLike Interface Affects Multiple System Calls
- Support `#[ktest(before_all)]` for ktest framework HOT 3
- CI occationally fails when running regression test HOT 2
- CI on regression encounters an error HOT 1
- iperf3 get heap allocation error because of big backlog
- Epoll syscall tests crash occasionally
- [ERROR]: Uncaught panic! panicked at coeff.rs HOT 2
- "[ERROR]: Uncaught panic!" when running the 100-line kernel example in the asterinas book. HOT 5
- Tracking issue for publishing OSDK HOT 1
- [RFC] The basic API documentation style guideline
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asterinas.