Opened 4 years ago

Last modified 4 years ago

#16500 new enhancement

app_server: Option to operate Haiku without app_server

Reported by: CodeforEvolution Owned by: axeld
Priority: low Milestone: Unscheduled
Component: Servers/app_server Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

What: Simply put, I feel that there should be the ability for Haiku to function and (optionally) boot without the app_server being available. I believe we used "consoled" in the past when app_server didn't even exist. :)

Why: Here are a few reasons to add this functionality:

  • Allow users to recover from app_server crashes
  • Allow users to retrieve more information for developers if experiencing a "black screen" related problem
  • Allows developers to more easily determine if a user is experiencing a boot up problem or a graphics problem (avoid the "black screen" all together!)
  • Allow developers to investigate an app_server crash with more information (you don't have to use the KDL debugger, and can use the command line interface to Debugger instead)
  • Allow developers working on new architectures to run Haiku on test hardware without graphical support.

Change History (6)

comment:1 by pulkomandy, 4 years ago

Hi,

Well consoled is still here and still works.

Let's check your suggestions:

When app_server crashes, all applications using BApplication will run into major problems. Dropping to a bash shell isn't better than dropping to the Debugger CLI. Really recovering from an app_server crash would be managing to restart the app_server and reconnect all apps to the new one. Or, ideally, app_server should not crash.

For black screen problems, the failsafe video driver (VESA or framebuffer) will work fine.

For debugging graphics drivers, consoled is useless because it needs a working display. If app_server put you in a "black screen" state, consoled will not know how to fix that. Like KDL, it uses the already set up framebuffer.

For debugging app_server and graphics card drivers, you can just ssh into Haiku from another computer. This way you can debug without a working display. Likewise for architectures without graphics output: your problem is not app_server there (you could use it in remote mode for example). And consoled will not help since its job is to have a console on screen, and you have no screen.

So, just use ssh and bash, it will be more helpful.

Moreover, Haiku is a desktop operating system meant to be easy to use. That is not what consoled achieves. It's OK as a debugging tool in some rare cases (ssh makes more sense in 90% of cases), but that's about it. So I don't see the point in making this supported.

comment:2 by X512, 4 years ago

Well consoled is still here and still works.

I am unable to run consoled: https://discuss.haiku-os.org/t/how-to-use-consoled/9807. consoled is only working when called by debug_server, I don't understand what kind of magic it use.

comment:3 by pulkomandy, 4 years ago

It can't be started from a Terminal because it needs to be the TTY session master. Starting it from Tracker works. Starting it from the bootscript should work too.

comment:4 by jackburton, 4 years ago

Maybe having an always active consoled session available could be useful. I mean something similar to what is done in linux, where you can switch from XOrg to different tty sessions with CTRL-ALT-Fn.

comment:5 by pulkomandy, 4 years ago

I don't see the need for that. It's just a debugging tool. If you need a terminal, use Terminal (and you can dedicate a workspace to it and run it fullscreen).

Thant being said, you can easily set a shortcut to start consoled if you want to. No way to go back to app_server however, they are not really designed to run side by side. The design is that app_server normally decides who gets to access the screen. There is no reason the console gets special treatment there. It should go through app_server too (and no, "but Linux does it" is not a valid reason)

comment:6 by CodeforEvolution, 4 years ago

I see, I see. Well, I may spin off this ticket to be for the ability to properly restart the app_server. (Though that ticket may already exist...)

Note: See TracTickets for help on using tickets.